scalagen

by timowest

timowest / scalagen

Java to Scala transformation

210 Stars 31 Forks Last release: Not found Apache License 2.0 167 Commits 3 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

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:

  com.mysema.scalagen
  scalagen-maven-plugin
  0.2.2

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

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.