[ann] jdt2famix - an open-source java importer project

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

[ann] jdt2famix - an open-source java importer project

Tudor Girba-2
Hi,

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.

CAVEATS:
- Due to a problem in JNIPort, currently, this project only works in Moose 5.0. 
- 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 participate.

Cheers,
Doru

--

"Every thing has its own flow"

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: [ann] jdt2famix - an open-source java importer project

Tudor Girba-2
Hi (again),

The project below is made possible by JNIPort. Thanks, Joachim!

Cheers,
Doru


On Sun, Aug 2, 2015 at 11:26 PM, Tudor Girba <[hidden email]> wrote:
Hi,

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.

CAVEATS:
- Due to a problem in JNIPort, currently, this project only works in Moose 5.0. 
- 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 participate.

Cheers,
Doru

--

"Every thing has its own flow"



--

"Every thing has its own flow"

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: [ann] jdt2famix - an open-source java importer project

Tudor Girba-2
In reply to this post by Tudor Girba-2
Hi,

In the meantime, I and Ricky made the project work on Windows as well. The installation instructions were updated:

Please test it, and let me know if you could get it to work.

Cheers,
Doru



On Sun, Aug 2, 2015 at 11:26 PM, Tudor Girba <[hidden email]> wrote:
Hi,

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.

CAVEATS:
- Due to a problem in JNIPort, currently, this project only works in Moose 5.0. 
- 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 participate.

Cheers,
Doru

--

"Every thing has its own flow"



--

"Every thing has its own flow"

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: [ann] jdt2famix - an open-source java importer project

Fabrizio Perin-3
Waoh. That is efficiency :) I will try it now

2015-08-04 21:38 GMT+02:00 Tudor Girba <[hidden email]>:

> Hi,
>
> In the meantime, I and Ricky made the project work on Windows as well. The
> installation instructions were updated:
> http://www.smalltalkhub.com/#!/~Moose/Jdt2Famix
>
> Please test it, and let me know if you could get it to work.
>
> Cheers,
> Doru
>
>
>
> On Sun, Aug 2, 2015 at 11:26 PM, Tudor Girba <[hidden email]> wrote:
>>
>> Hi,
>>
>> I would like to announce the jdt2famix project. This aims to be an
>> open-source solution for importing Java projects into Moose:
>> http://www.smalltalkhub.com/#!/~Moose/Jdt2Famix
>>
>> 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.
>>
>> CAVEATS:
>> - Due to a problem in JNIPort, currently, this project only works in Moose
>> 5.0.
>> - 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
>> participate.
>>
>> Cheers,
>> Doru
>>
>> --
>> www.tudorgirba.com
>>
>> "Every thing has its own flow"
>
>
>
>
> --
> www.tudorgirba.com
>
> "Every thing has its own flow"
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: [ann] jdt2famix - an open-source java importer project

abergel
In reply to this post by Tudor Girba-2
Just wondering, how does it compare with VerveineJ? Is it just because it is open source?

cheers,
Alexandre
-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.



On Aug 2, 2015, at 6:26 PM, Tudor Girba <[hidden email]> wrote:

Hi,

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.

CAVEATS:
- Due to a problem in JNIPort, currently, this project only works in Moose 5.0. 
- 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 participate.

Cheers,
Doru

--

"Every thing has its own flow"
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: [ann] jdt2famix - an open-source java importer project

Tudor Girba-2
Hi,

Thanks for asking :).

Indeed, the first thing is to have an open-source solution for Java. The main reason for this is that there are people that would like to play with Moose, and within the context of Java, I often get the feedback that people expect the availability of open-source solutions. I know that VerveineJ is available if you ask, but this step of asking looks expensive in the eye of a casual visitor. I would like to achieve a solution that can provide a one-click experience (or something close to that).

Besides being open-source, the main technical difference is that the concrete visiting and model building code is built in Pharo, not in Java. It relies on JNIPort to communicate with the JDT parser, and the visitor on the Java side just forwards the calls to the Pharo code. This implies that we can do live analysis without the intermediary step of generating a large MSE file. However, we are still at the beginning, and it can be that at the end it will prove that there are technical impediments. In that case, we will fall back to a Java-based implementation similar to VerveineJ.

I want to focus this month on getting far enough to understand the limits. There are many details to explore, and that is why I would benefit from help from the community.

If it works, the side-effect benefit of this project is that it will document that Pharo is actually able to communicate with a Java library for real use cases.

Cheers,
Doru



On Thu, Aug 6, 2015 at 7:19 PM, Alexandre Bergel <[hidden email]> wrote:
Just wondering, how does it compare with VerveineJ? Is it just because it is open source?

cheers,
Alexandre
-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.



On Aug 2, 2015, at 6:26 PM, Tudor Girba <[hidden email]> wrote:

Hi,

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.

CAVEATS:
- Due to a problem in JNIPort, currently, this project only works in Moose 5.0. 
- 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 participate.

Cheers,
Doru

--

"Every thing has its own flow"
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev




--

"Every thing has its own flow"

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: [ann] jdt2famix - an open-source java importer project

abergel
Ok! Let us know how it goes! This looks exciting!

Alexandre
-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.



On Aug 7, 2015, at 7:27 AM, Tudor Girba <[hidden email]> wrote:

Hi,

Thanks for asking :).

Indeed, the first thing is to have an open-source solution for Java. The main reason for this is that there are people that would like to play with Moose, and within the context of Java, I often get the feedback that people expect the availability of open-source solutions. I know that VerveineJ is available if you ask, but this step of asking looks expensive in the eye of a casual visitor. I would like to achieve a solution that can provide a one-click experience (or something close to that).

Besides being open-source, the main technical difference is that the concrete visiting and model building code is built in Pharo, not in Java. It relies on JNIPort to communicate with the JDT parser, and the visitor on the Java side just forwards the calls to the Pharo code. This implies that we can do live analysis without the intermediary step of generating a large MSE file. However, we are still at the beginning, and it can be that at the end it will prove that there are technical impediments. In that case, we will fall back to a Java-based implementation similar to VerveineJ.

I want to focus this month on getting far enough to understand the limits. There are many details to explore, and that is why I would benefit from help from the community.

If it works, the side-effect benefit of this project is that it will document that Pharo is actually able to communicate with a Java library for real use cases.

Cheers,
Doru



On Thu, Aug 6, 2015 at 7:19 PM, Alexandre Bergel <[hidden email]> wrote:
Just wondering, how does it compare with VerveineJ? Is it just because it is open source?

cheers,
Alexandre
-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.



On Aug 2, 2015, at 6:26 PM, Tudor Girba <[hidden email]> wrote:

Hi,

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.

CAVEATS:
- Due to a problem in JNIPort, currently, this project only works in Moose 5.0. 
- 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 participate.

Cheers,
Doru

--

"Every thing has its own flow"
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev




--

"Every thing has its own flow"
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: [ann] jdt2famix - an open-source java importer project

abergel
In reply to this post by Tudor Girba-2
Ok! Let us know how it goes! This looks exciting!

Alexandre
-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.



On Aug 7, 2015, at 7:27 AM, Tudor Girba <[hidden email]> wrote:

Hi,

Thanks for asking :).

Indeed, the first thing is to have an open-source solution for Java. The main reason for this is that there are people that would like to play with Moose, and within the context of Java, I often get the feedback that people expect the availability of open-source solutions. I know that VerveineJ is available if you ask, but this step of asking looks expensive in the eye of a casual visitor. I would like to achieve a solution that can provide a one-click experience (or something close to that).

Besides being open-source, the main technical difference is that the concrete visiting and model building code is built in Pharo, not in Java. It relies on JNIPort to communicate with the JDT parser, and the visitor on the Java side just forwards the calls to the Pharo code. This implies that we can do live analysis without the intermediary step of generating a large MSE file. However, we are still at the beginning, and it can be that at the end it will prove that there are technical impediments. In that case, we will fall back to a Java-based implementation similar to VerveineJ.

I want to focus this month on getting far enough to understand the limits. There are many details to explore, and that is why I would benefit from help from the community.

If it works, the side-effect benefit of this project is that it will document that Pharo is actually able to communicate with a Java library for real use cases.

Cheers,
Doru



On Thu, Aug 6, 2015 at 7:19 PM, Alexandre Bergel <[hidden email]> wrote:
Just wondering, how does it compare with VerveineJ? Is it just because it is open source?

cheers,
Alexandre
-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.



On Aug 2, 2015, at 6:26 PM, Tudor Girba <[hidden email]> wrote:

Hi,

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.

CAVEATS:
- Due to a problem in JNIPort, currently, this project only works in Moose 5.0. 
- 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 participate.

Cheers,
Doru

--

"Every thing has its own flow"
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev




--

"Every thing has its own flow"
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev