Hi,
I created test cases out of the ArgoUML and Guava systems. There is still a problem with spring-core, but I did not figure it out yet. Nevertheless, it would be great if you could try again and perhaps extend the analysis to other systems. @Meinert: one thing that would be cool even if we do not have the all github would be to prepare a set of scripts like you offered for the Guava case. The thing is that for Guava, I tried to get the Maven dependencies and it did not work (at least not on the head of development). This means that I could not see what happens in the best case scenario when we have all libraries and we can resolve the dependencies. What do you think? Cheers, Doru > On Jul 20, 2016, at 2:57 PM, Tudor Girba <[hidden email]> wrote: > > Thanks! I will look at these. > > Cheers, > Doru > > >> On Jul 20, 2016, at 2:50 PM, Meinert Schwartau <[hidden email]> wrote: >> >> Wie analysing guava I had similar problems: >> >> git clone https://github.com/google/guava.git >> >> cd guava >> >> >> mvn dependency:copy-dependencies -DoutputDirectory=dependencies -DoverWriteSnapshots=true -DoverWriteReleases=false`` >> >> ../jdt2famix/release/jdt2famix.sh >> >> Then I got the following exception: >> >> jdt2famix - parsing started - /Users/meinert/Develop/moose_parser/guava >> >> jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/annotations/Beta.java >> >> jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/annotations/GwtCompatible.java >> >> jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/annotations/GwtIncompatible.java >> >> jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/annotations/package-info.java >> >> jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/annotations/VisibleForTesting.java >> >> jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/base/Absent.java >> >> jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/base/AbstractIterator.java >> >> jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/base/Ascii.java >> >> jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/base/CaseFormat.java >> >> Exception in thread "main" java.lang.ClassCastException: com.feenk.jdt2famix.model.famix.Enum cannot be cast to com.feenk.jdt2famix.model.famix.Method >> >> at com.feenk.jdt2famix.injava.InJavaImporter.createInvocationFromMethodBinding(InJavaImporter.java:598) >> >> at com.feenk.jdt2famix.injava.AstVisitor.visit(AstVisitor.java:293) >> >> at org.eclipse.jdt.core.dom.MethodInvocation.accept0(MethodInvocation.java:231) >> >> at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711) >> >> at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2782) >> >> at org.eclipse.jdt.core.dom.EnumConstantDeclaration.accept0(EnumConstantDeclaration.java:260) >> >> at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711) >> >> at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2782) >> >> at org.eclipse.jdt.core.dom.EnumDeclaration.accept0(EnumDeclaration.java:281) >> >> at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711) >> >> at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2782) >> >> at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:212) >> >> at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711) >> >> at com.feenk.jdt2famix.injava.AstRequestor.acceptAST(AstRequestor.java:17) >> >> at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:1029) >> >> at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:636) >> >> at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java:990) >> >> at com.feenk.jdt2famix.Importer.run(Importer.java:28) >> >> >> at com.feenk.jdt2famix.injava.Main.main(Main.java:25) >> >> Best regards >> >> Meinert >> >> >> 2016-07-20 22:33 GMT+02:00 Meinert Schwartau <[hidden email]>: >> As a first test I tried to import the spring framework from github (https://github.com/spring-projects/spring-framework) and got some exceptions e.g when I tried to import spring-core: >> >> jdt2famix - importing - /Users/meinert/Develop/moose_parser/spring-framework/spring-core/src/main/java/org/springframework/util/SocketUtils.java >> >> Exception in thread "main" java.lang.ClassCastException: org.eclipse.jdt.core.dom.EnumConstantDeclaration cannot be cast to org.eclipse.jdt.core.dom.ClassInstanceCreation >> >> at com.feenk.jdt2famix.injava.InJavaImporter.ensureTypeFromAnonymousDeclaration(InJavaImporter.java:303) >> >> at com.feenk.jdt2famix.injava.AstVisitor.visit(AstVisitor.java:119) >> >> at org.eclipse.jdt.core.dom.AnonymousClassDeclaration.accept0(AnonymousClassDeclaration.java:141) >> >> at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711) >> >> >> >> >> ---------- Weitergeleitete Nachricht ---------- >> From: Tudor Girba <[hidden email]> >> To: Moose-related development <[hidden email]> >> Cc: >> Date: Tue, 19 Jul 2016 07:41:05 -0600 >> Subject: [Moose-dev] [ann] jdt2famix standalone - alpha version >> >> >> improve the error handling. As Java has a ton of edge cases, it would be great if you would use it to parse your systems and report possible errors. We would then manufacture test cases out of those. >> >> >> >> I'll definitely give it a try. Because the number of people who'll try this out will be limited, to be sure that there aren't any bugs in this parser I suggest that we let it parse all java github projects. Then we could group the resulting errors (if there exists any ;-)) per error type, write tests for these edge cases and then fix them. If all of the java git hub projects can per parsed without errors then we could be really sure this parser can is at least to parse the edge cases without exceptions. For sure, we don't know if the result makes sense but at least it produces a result. >> >> Getting the download url for all java github projects is very easy: >> >> https://api.github.com/search/repositories?q=language:Java >> >> Further optional parameters for this url for paging: {&page,per_page,sort,order}. Documentation for this request: https://developer.github.com/v3/search/#search-repositories >> >> How do you think about it? >> >> Best regards >> Meinert >> >> >> >> >> >> >> >> _______________________________________________ >> Moose-dev mailing list >> [hidden email] >> https://www.list.inf.unibe.ch/listinfo/moose-dev > > -- > www.tudorgirba.com > www.feenk.com > > "We are all great at making mistakes." > > > > > > > > -- www.tudorgirba.com www.feenk.com "One cannot do more than one can do." _______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
Hi Tudor, actually I'm on vacation the next two weeks. So I can help only after that unfortunately. Maybe as a first step we should just create a Project were everybody could add his failing scripts as pull request. Best regards Meinert Am 22.07.2016 um 14:35 schrieb Tudor Girba <[hidden email]>: Hi, I created test cases out of the ArgoUML and Guava systems. There is still a problem with spring-core, but I did not figure it out yet. Nevertheless, it would be great if you could try again and perhaps extend the analysis to other systems. @Meinert: one thing that would be cool even if we do not have the all github would be to prepare a set of scripts like you offered for the Guava case. The thing is that for Guava, I tried to get the Maven dependencies and it did not work (at least not on the head of development). This means that I could not see what happens in the best case scenario when we have all libraries and we can resolve the dependencies. What do you think? Cheers, Doru On Jul 20, 2016, at 2:57 PM, Tudor Girba <[hidden email]> wrote: Thanks! I will look at these. Cheers, Doru On Jul 20, 2016, at 2:50 PM, Meinert Schwartau <[hidden email]> wrote: Wie analysing guava I had similar problems: git clone https://github.com/google/guava.git cd guava mvn dependency:copy-dependencies -DoutputDirectory=dependencies -DoverWriteSnapshots=true -DoverWriteReleases=false`` ../jdt2famix/release/jdt2famix.sh Then I got the following exception: jdt2famix - parsing started - /Users/meinert/Develop/moose_parser/guava jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/annotations/Beta.java jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/annotations/GwtCompatible.java jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/annotations/GwtIncompatible.java jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/annotations/package-info.java jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/annotations/VisibleForTesting.java jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/base/Absent.java jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/base/AbstractIterator.java jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/base/Ascii.java jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/base/CaseFormat.java Exception in thread "main" java.lang.ClassCastException: com.feenk.jdt2famix.model.famix.Enum cannot be cast to com.feenk.jdt2famix.model.famix.Method at com.feenk.jdt2famix.injava.InJavaImporter.createInvocationFromMethodBinding(InJavaImporter.java:598) at com.feenk.jdt2famix.injava.AstVisitor.visit(AstVisitor.java:293) at org.eclipse.jdt.core.dom.MethodInvocation.accept0(MethodInvocation.java:231) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711) at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2782) at org.eclipse.jdt.core.dom.EnumConstantDeclaration.accept0(EnumConstantDeclaration.java:260) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711) at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2782) at org.eclipse.jdt.core.dom.EnumDeclaration.accept0(EnumDeclaration.java:281) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711) at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2782) at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:212) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711) at com.feenk.jdt2famix.injava.AstRequestor.acceptAST(AstRequestor.java:17) at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:1029) at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:636) at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java:990) at com.feenk.jdt2famix.Importer.run(Importer.java:28) at com.feenk.jdt2famix.injava.Main.main(Main.java:25) Best regards Meinert 2016-07-20 22:33 GMT+02:00 Meinert Schwartau <[hidden email]>: As a first test I tried to import the spring framework from github (https://github.com/spring-projects/spring-framework) and got some exceptions e.g when I tried to import spring-core: jdt2famix - importing - /Users/meinert/Develop/moose_parser/spring-framework/spring-core/src/main/java/org/springframework/util/SocketUtils.java Exception in thread "main" java.lang.ClassCastException: org.eclipse.jdt.core.dom.EnumConstantDeclaration cannot be cast to org.eclipse.jdt.core.dom.ClassInstanceCreation at com.feenk.jdt2famix.injava.InJavaImporter.ensureTypeFromAnonymousDeclaration(InJavaImporter.java:303) at com.feenk.jdt2famix.injava.AstVisitor.visit(AstVisitor.java:119) at org.eclipse.jdt.core.dom.AnonymousClassDeclaration.accept0(AnonymousClassDeclaration.java:141) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711) ---------- Weitergeleitete Nachricht ---------- From: Tudor Girba <[hidden email]> To: Moose-related development <[hidden email]> Cc: Date: Tue, 19 Jul 2016 07:41:05 -0600 Subject: [Moose-dev] [ann] jdt2famix standalone - alpha version improve the error handling. As Java has a ton of edge cases, it would be great if you would use it to parse your systems and report possible errors. We would then manufacture test cases out of those. I'll definitely give it a try. Because the number of people who'll try this out will be limited, to be sure that there aren't any bugs in this parser I suggest that we let it parse all java github projects. Then we could group the resulting errors (if there exists any ;-)) per error type, write tests for these edge cases and then fix them. If all of the java git hub projects can per parsed without errors then we could be really sure this parser can is at least to parse the edge cases without exceptions. For sure, we don't know if the result makes sense but at least it produces a result. Getting the download url for all java github projects is very easy: https://api.github.com/search/repositories?q=language:Java Further optional parameters for this url for paging: {&page,per_page,sort,order}. Documentation for this request: https://developer.github.com/v3/search/#search-repositories How do you think about it? Best regards Meinert _______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev -- www.tudorgirba.com www.feenk.com "We are all great at making mistakes." -- www.tudorgirba.com www.feenk.com "One cannot do more than one can do."
_______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
In reply to this post by Tudor Girba-2
This is great Doru!
Keep doing! This is very important. Alexandre > On Jul 20, 2016, at 4:57 PM, Tudor Girba <[hidden email]> wrote: > > Thanks! I will look at these. > > Cheers, > Doru > > >> On Jul 20, 2016, at 2:50 PM, Meinert Schwartau <[hidden email]> wrote: >> >> Wie analysing guava I had similar problems: >> >> git clone https://github.com/google/guava.git >> >> cd guava >> >> >> mvn dependency:copy-dependencies -DoutputDirectory=dependencies -DoverWriteSnapshots=true -DoverWriteReleases=false`` >> >> ../jdt2famix/release/jdt2famix.sh >> >> Then I got the following exception: >> >> jdt2famix - parsing started - /Users/meinert/Develop/moose_parser/guava >> >> jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/annotations/Beta.java >> >> jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/annotations/GwtCompatible.java >> >> jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/annotations/GwtIncompatible.java >> >> jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/annotations/package-info.java >> >> jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/annotations/VisibleForTesting.java >> >> jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/base/Absent.java >> >> jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/base/AbstractIterator.java >> >> jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/base/Ascii.java >> >> jdt2famix - importing - /Users/meinert/Develop/moose_parser/guava/guava/src/com/google/common/base/CaseFormat.java >> >> Exception in thread "main" java.lang.ClassCastException: com.feenk.jdt2famix.model.famix.Enum cannot be cast to com.feenk.jdt2famix.model.famix.Method >> >> at com.feenk.jdt2famix.injava.InJavaImporter.createInvocationFromMethodBinding(InJavaImporter.java:598) >> >> at com.feenk.jdt2famix.injava.AstVisitor.visit(AstVisitor.java:293) >> >> at org.eclipse.jdt.core.dom.MethodInvocation.accept0(MethodInvocation.java:231) >> >> at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711) >> >> at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2782) >> >> at org.eclipse.jdt.core.dom.EnumConstantDeclaration.accept0(EnumConstantDeclaration.java:260) >> >> at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711) >> >> at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2782) >> >> at org.eclipse.jdt.core.dom.EnumDeclaration.accept0(EnumDeclaration.java:281) >> >> at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711) >> >> at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2782) >> >> at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:212) >> >> at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711) >> >> at com.feenk.jdt2famix.injava.AstRequestor.acceptAST(AstRequestor.java:17) >> >> at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:1029) >> >> at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:636) >> >> at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java:990) >> >> at com.feenk.jdt2famix.Importer.run(Importer.java:28) >> >> >> at com.feenk.jdt2famix.injava.Main.main(Main.java:25) >> >> Best regards >> >> Meinert >> >> >> 2016-07-20 22:33 GMT+02:00 Meinert Schwartau <[hidden email]>: >> As a first test I tried to import the spring framework from github (https://github.com/spring-projects/spring-framework) and got some exceptions e.g when I tried to import spring-core: >> >> jdt2famix - importing - /Users/meinert/Develop/moose_parser/spring-framework/spring-core/src/main/java/org/springframework/util/SocketUtils.java >> >> Exception in thread "main" java.lang.ClassCastException: org.eclipse.jdt.core.dom.EnumConstantDeclaration cannot be cast to org.eclipse.jdt.core.dom.ClassInstanceCreation >> >> at com.feenk.jdt2famix.injava.InJavaImporter.ensureTypeFromAnonymousDeclaration(InJavaImporter.java:303) >> >> at com.feenk.jdt2famix.injava.AstVisitor.visit(AstVisitor.java:119) >> >> at org.eclipse.jdt.core.dom.AnonymousClassDeclaration.accept0(AnonymousClassDeclaration.java:141) >> >> at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711) >> >> >> >> >> ---------- Weitergeleitete Nachricht ---------- >> From: Tudor Girba <[hidden email]> >> To: Moose-related development <[hidden email]> >> Cc: >> Date: Tue, 19 Jul 2016 07:41:05 -0600 >> Subject: [Moose-dev] [ann] jdt2famix standalone - alpha version >> >> >> improve the error handling. As Java has a ton of edge cases, it would be great if you would use it to parse your systems and report possible errors. We would then manufacture test cases out of those. >> >> >> >> I'll definitely give it a try. Because the number of people who'll try this out will be limited, to be sure that there aren't any bugs in this parser I suggest that we let it parse all java github projects. Then we could group the resulting errors (if there exists any ;-)) per error type, write tests for these edge cases and then fix them. If all of the java git hub projects can per parsed without errors then we could be really sure this parser can is at least to parse the edge cases without exceptions. For sure, we don't know if the result makes sense but at least it produces a result. >> >> Getting the download url for all java github projects is very easy: >> >> https://api.github.com/search/repositories?q=language:Java >> >> Further optional parameters for this url for paging: {&page,per_page,sort,order}. Documentation for this request: https://developer.github.com/v3/search/#search-repositories >> >> How do you think about it? >> >> Best regards >> Meinert >> >> >> >> >> >> >> >> _______________________________________________ >> Moose-dev mailing list >> [hidden email] >> https://www.list.inf.unibe.ch/listinfo/moose-dev > > -- > www.tudorgirba.com > www.feenk.com > > "We are all great at making mistakes." > > > > > > > > > _______________________________________________ > Moose-dev mailing list > [hidden email] > https://www.list.inf.unibe.ch/listinfo/moose-dev -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. _______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
In reply to this post by Tudor Girba-2
Well done.
This is a failure of our system that blocked us to release VerveineJ as open-source: I asked continuously for about 2 years and I will never get trapped like that in the future. We will contribute to jdt2famix and kill verveineJ. I will encourage Nicolas to do it. Stef Le 19/7/16 à 15:41, Tudor Girba a écrit : > Hi, > > I am happy to announce that I now obtained a reasonable first beta stage of a standalone jdt2famix Java importer. This is implemented in Java, it works from the command line and has a similar structure to VerveineJ (the previous solution relied on JNIPort, but that did not scale well due to 32bits and needs rethinking). It is based on FameJava and JDT, and it is available under EPL2. The model is a new Famix version generated out of the Pharo meta-descriptions. To this end, I extended a bit the tool support around Fame and I will follow up with some details one that. > > Here is the repository including some basic info: > https://github.com/girba/jdt2famix > > The importer was created through fine-grained tests, there are some 100 of them right now, and the coverage of the importer is more than 93%. > > However, there are still things to do: > - finish the coverage of the imported entities (see below). > - improve the error handling. As Java has a ton of edge cases, it would be great if you would use it to parse your systems and report possible errors. We would then manufacture test cases out of those. > - check the semantics of the produced data (possibly by comparing with VerveineJ). > - find a better way to package the application. > - integrate in Moose with one click. Ideally, even downloading the application should be doable directly from Moose. The goal here is to make jdt2famix part of the Moose 6 release. > > As a deadline, I am targeting August 1 for a beta version, and August 10 for a Moose 6.0 release. > > Please let me know what you think, and most importantly please give it a try and provide feedback. > > Here is a detailed list of what works and what is left to do: > ✓Namespace > ✓Type > ✓Type without binding > ✓Inheritance without binding > ✓Interface > ✓Parameterizable Class > ✓ParameterizedType > ✓Method > ✓Constructor > ✓Visibility (public, private, protected, package) > ✓Parameter > ✓Method signature > ✓Local variable > ✓Attribute > ✓Anonymous Class > ✓Anonymous Class with Parameterized Type > ✓Invocation > ✓Super invocation > ✓Constructor Invocation > ✓Super constructor invocation > ✓Class instantiation > ✓Class initializer > ✓Invocation receiver > ✓Field read access in invocation receiver > ✓Field read access in invocation parameter > ✓Field read access in class instantiation > ✓Field read access in assignment > ✓Field read access in super invocation parameter > ✓Field write access in assignment > ✓Local write access in assignment > ✓Local read access in invocation receiver > ✓Local read access in invocation parameter > ✓Local read access in super invocation parameter > ✓Local read access in super constructor parameter > ✓Read access through return > ✓Read accesses in: do, while, if, for, switch, enhanced for, conditional (?:) > ✓Read access in synchronized > ✓Attribute initializer > ✓Read access in attribute initializer > ✓Read access to qualified enum value > ✓Read access to qualified attribute > ✓Parentheses > ✓Enum > ✓EnumValue > ✓Array types [] > ✓AnnotationType > ✓AnnotationType attributes > ✓AnnotationInstance for types > ☐AnnotationInstance for attributes > ☐AnnotationInstance for methods > ☐AnnotationInstance for parameters > ☐Generic Type in Method scope > ☐Class reference > ☐Inner Class > ☐Wildcard types <?> > ☐ThrownException > ☐CaughtException > ☐DeclaredException > ☐SourceAnchor > ☐Array Access > ☐Comments > ☐Implicit variables > ☐Lambda variables > > > Cheers, > Doru > > > -- > www.tudorgirba.com > www.feenk.com > > "One cannot do more than one can do." > > > > > _______________________________________________ > Moose-dev mailing list > [hidden email] > https://www.list.inf.unibe.ch/listinfo/moose-dev _______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
Thanks!
Doru > On Jul 24, 2016, at 10:44 PM, stepharo <[hidden email]> wrote: > > Well done. > > This is a failure of our system that blocked us to release VerveineJ as open-source: I asked continuously > > for about 2 years and I will never get trapped like that in the future. > > We will contribute to jdt2famix and kill verveineJ. I will encourage Nicolas to do it. > > Stef > > > Le 19/7/16 à 15:41, Tudor Girba a écrit : >> Hi, >> >> I am happy to announce that I now obtained a reasonable first beta stage of a standalone jdt2famix Java importer. This is implemented in Java, it works from the command line and has a similar structure to VerveineJ (the previous solution relied on JNIPort, but that did not scale well due to 32bits and needs rethinking). It is based on FameJava and JDT, and it is available under EPL2. The model is a new Famix version generated out of the Pharo meta-descriptions. To this end, I extended a bit the tool support around Fame and I will follow up with some details one that. >> >> Here is the repository including some basic info: >> https://github.com/girba/jdt2famix >> >> The importer was created through fine-grained tests, there are some 100 of them right now, and the coverage of the importer is more than 93%. >> >> However, there are still things to do: >> - finish the coverage of the imported entities (see below). >> - improve the error handling. As Java has a ton of edge cases, it would be great if you would use it to parse your systems and report possible errors. We would then manufacture test cases out of those. >> - check the semantics of the produced data (possibly by comparing with VerveineJ). >> - find a better way to package the application. >> - integrate in Moose with one click. Ideally, even downloading the application should be doable directly from Moose. The goal here is to make jdt2famix part of the Moose 6 release. >> >> As a deadline, I am targeting August 1 for a beta version, and August 10 for a Moose 6.0 release. >> >> Please let me know what you think, and most importantly please give it a try and provide feedback. >> >> Here is a detailed list of what works and what is left to do: >> ✓Namespace >> ✓Type >> ✓Type without binding >> ✓Inheritance without binding >> ✓Interface >> ✓Parameterizable Class >> ✓ParameterizedType >> ✓Method >> ✓Constructor >> ✓Visibility (public, private, protected, package) >> ✓Parameter >> ✓Method signature >> ✓Local variable >> ✓Attribute >> ✓Anonymous Class >> ✓Anonymous Class with Parameterized Type >> ✓Invocation >> ✓Super invocation >> ✓Constructor Invocation >> ✓Super constructor invocation >> ✓Class instantiation >> ✓Class initializer >> ✓Invocation receiver >> ✓Field read access in invocation receiver >> ✓Field read access in invocation parameter >> ✓Field read access in class instantiation >> ✓Field read access in assignment >> ✓Field read access in super invocation parameter >> ✓Field write access in assignment >> ✓Local write access in assignment >> ✓Local read access in invocation receiver >> ✓Local read access in invocation parameter >> ✓Local read access in super invocation parameter >> ✓Local read access in super constructor parameter >> ✓Read access through return >> ✓Read accesses in: do, while, if, for, switch, enhanced for, conditional (?:) >> ✓Read access in synchronized >> ✓Attribute initializer >> ✓Read access in attribute initializer >> ✓Read access to qualified enum value >> ✓Read access to qualified attribute >> ✓Parentheses >> ✓Enum >> ✓EnumValue >> ✓Array types [] >> ✓AnnotationType >> ✓AnnotationType attributes >> ✓AnnotationInstance for types >> ☐AnnotationInstance for attributes >> ☐AnnotationInstance for methods >> ☐AnnotationInstance for parameters >> ☐Generic Type in Method scope >> ☐Class reference >> ☐Inner Class >> ☐Wildcard types <?> >> ☐ThrownException >> ☐CaughtException >> ☐DeclaredException >> ☐SourceAnchor >> ☐Array Access >> ☐Comments >> ☐Implicit variables >> ☐Lambda variables >> >> >> Cheers, >> Doru >> >> >> -- >> www.tudorgirba.com >> www.feenk.com >> >> "One cannot do more than one can do." >> >> >> >> >> _______________________________________________ >> Moose-dev mailing list >> [hidden email] >> https://www.list.inf.unibe.ch/listinfo/moose-dev > > _______________________________________________ > Moose-dev mailing list > [hidden email] > https://www.list.inf.unibe.ch/listinfo/moose-dev -- www.tudorgirba.com www.feenk.com "It's not what we do that matters most, it's how we do it." _______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
In reply to this post by stepharo
We are potentially 45 000 Euros on this trap. I imagine that I learned a
real lesson. Stef > Well done. > > This is a failure of our system that blocked us to release VerveineJ > as open-source: I asked continuously > > for about 2 years and I will never get trapped like that in the future. > > We will contribute to jdt2famix and kill verveineJ. I will encourage > Nicolas to do it. > > Stef > > > Le 19/7/16 à 15:41, Tudor Girba a écrit : >> Hi, >> >> I am happy to announce that I now obtained a reasonable first beta >> stage of a standalone jdt2famix Java importer. This is implemented in >> Java, it works from the command line and has a similar structure to >> VerveineJ (the previous solution relied on JNIPort, but that did not >> scale well due to 32bits and needs rethinking). It is based on >> FameJava and JDT, and it is available under EPL2. The model is a new >> Famix version generated out of the Pharo meta-descriptions. To this >> end, I extended a bit the tool support around Fame and I will follow >> up with some details one that. >> >> Here is the repository including some basic info: >> https://github.com/girba/jdt2famix >> >> The importer was created through fine-grained tests, there are some >> 100 of them right now, and the coverage of the importer is more than >> 93%. >> >> However, there are still things to do: >> - finish the coverage of the imported entities (see below). >> - improve the error handling. As Java has a ton of edge cases, it >> would be great if you would use it to parse your systems and report >> possible errors. We would then manufacture test cases out of those. >> - check the semantics of the produced data (possibly by comparing >> with VerveineJ). >> - find a better way to package the application. >> - integrate in Moose with one click. Ideally, even downloading the >> application should be doable directly from Moose. The goal here is to >> make jdt2famix part of the Moose 6 release. >> >> As a deadline, I am targeting August 1 for a beta version, and August >> 10 for a Moose 6.0 release. >> >> Please let me know what you think, and most importantly please give >> it a try and provide feedback. >> >> Here is a detailed list of what works and what is left to do: >> ✓Namespace >> ✓Type >> ✓Type without binding >> ✓Inheritance without binding >> ✓Interface >> ✓Parameterizable Class >> ✓ParameterizedType >> ✓Method >> ✓Constructor >> ✓Visibility (public, private, protected, package) >> ✓Parameter >> ✓Method signature >> ✓Local variable >> ✓Attribute >> ✓Anonymous Class >> ✓Anonymous Class with Parameterized Type >> ✓Invocation >> ✓Super invocation >> ✓Constructor Invocation >> ✓Super constructor invocation >> ✓Class instantiation >> ✓Class initializer >> ✓Invocation receiver >> ✓Field read access in invocation receiver >> ✓Field read access in invocation parameter >> ✓Field read access in class instantiation >> ✓Field read access in assignment >> ✓Field read access in super invocation parameter >> ✓Field write access in assignment >> ✓Local write access in assignment >> ✓Local read access in invocation receiver >> ✓Local read access in invocation parameter >> ✓Local read access in super invocation parameter >> ✓Local read access in super constructor parameter >> ✓Read access through return >> ✓Read accesses in: do, while, if, for, switch, enhanced for, >> conditional (?:) >> ✓Read access in synchronized >> ✓Attribute initializer >> ✓Read access in attribute initializer >> ✓Read access to qualified enum value >> ✓Read access to qualified attribute >> ✓Parentheses >> ✓Enum >> ✓EnumValue >> ✓Array types [] >> ✓AnnotationType >> ✓AnnotationType attributes >> ✓AnnotationInstance for types >> ☐AnnotationInstance for attributes >> ☐AnnotationInstance for methods >> ☐AnnotationInstance for parameters >> ☐Generic Type in Method scope >> ☐Class reference >> ☐Inner Class >> ☐Wildcard types <?> >> ☐ThrownException >> ☐CaughtException >> ☐DeclaredException >> ☐SourceAnchor >> ☐Array Access >> ☐Comments >> ☐Implicit variables >> ☐Lambda variables >> >> >> Cheers, >> Doru >> >> >> -- >> www.tudorgirba.com >> www.feenk.com >> >> "One cannot do more than one can do." >> >> >> >> >> _______________________________________________ >> Moose-dev mailing list >> [hidden email] >> https://www.list.inf.unibe.ch/listinfo/moose-dev > > _______________________________________________ > Moose-dev mailing list > [hidden email] > https://www.list.inf.unibe.ch/listinfo/moose-dev _______________________________________________ Moose-dev mailing list [hidden email] https://www.list.inf.unibe.ch/listinfo/moose-dev |
Free forum by Nabble | Edit this page |