Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Java to Scala transformation
Scala Java
Branch: master

Merge pull request #76 from dnadolny/scala-version-artifact-id

Change artifactId to the normal scala version naming convention
latest commit eb90da4d5b
@mangolas mangolas authored

README.md

Scalagen

Java to Scala conversion

Scalagen is a Java to Scala conversion tool. It uses a Java based parser for Java sources and provides modular transformation of the AST to match Scala idioms. The resulting transformed AST is serialized into Scala format.

Here is a list of example Java sources which have been successfully converted by Scalagen: https://github.com/mysema/scalagen/tree/master/scalagen/src/test/scala/com/mysema/examples

Scalagen has also been tested on our own projects such as Querydsl, RDFBean, Codegen and some customer projects.

Usage

Scalagen provides direct Maven support via a plugin. You can use it directly via the command line like this

mvn com.mysema.scalagen:scalagen-maven-plugin:0.2.2:main -DtargetFolder=target/scala

and for test sources

mvn com.mysema.scalagen:scalagen-maven-plugin:0.2.2:test -DtargetFolder=target/scala

Here is the snippet for an explicit configuration in a POM:

<plugin>
  <groupId>com.mysema.scalagen</groupId>
  <artifactId>scalagen-maven-plugin</artifactId>
  <version>0.2.2</version>
</plugin>

To convert main sources run

mvn scalagen:main

and to convert test sources run

mvn scalagen:test

The conversion results are to be seen as a starting point for the Java to Scala conversion. Some elements are not transformed correctly for various reasons and will need manual intervention.

Development

Scalagen development instructions are here https://github.com/mysema/scalagen/wiki/Scalagen-development

Building

To create the jar run

mvn -Pscala-2.11.x clean package

To import the project in to eclipse run

mvn -Pscala-2.11.x eclipse:eclipse

The maven profiles (the part after the -P) can be:

  • scala-2.11.x
  • scala-2.10.x
  • scala-2.9.x
Something went wrong with that request. Please try again.