I would like to announce the jdt2famix project. This aims to be an
open-source solution for importing Java projects into Moose:
The project is based on:
- JDT for raw parsing. This is implemented in Java.
- JNIPort for delegating to Pharo the Java methods that visit the Java AST.
Installation details can be found on the main project page.
The current importing logic is rudimentary, but the first goal was to setup
the whole ping-pong between Pharo and Java. This one works, and I am quite
happy about that. You can take a look at the JdtImporterTest.
- Due to a problem in JNIPort, currently, this project only works in Moose
- Also, for now it works out of the box only for Mac OS X.
- And, on top of that, it requires Java 1.6 for now (until we will get the
Spur VM on 64 bits).
There are still quite some challenges left, but once we get this going, we
would also be able to use deep AST analysis live, and to do incremental
model update when something changes on disk. Furthermore, if it scales,
this would not be based on an intermediary MSE file anymore.
I would like to ask for help in several directions:
1. Implement the full model import. This would require diving into JDT and
implementing the corresponding mapping logic. I spent a few days on this.
It is hairy, but it is not that impossible (only it has a ton of edge
cases). This should be test driven, in that, for each case, we need to have
a corresponding sample.
2. Fix JNIPort to work in Pharo 5.
3. Get the whole thing to work out of the box for Linux and Windows.
4. Check scalability.
Please let me know your opinions, and let me know if you would like to
"Every thing has its own flow"