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.comwww.feenk.com
"One cannot do more than one can do."
>
>
>
> ---------- Weitergeleitete Nachricht ----------
> From: Tudor Girba <tudor(a)tudorgirba.com>
> To: Moose-related development <moose-dev(a)list.inf.unibe.ch>
> 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
Hi!
Does the moose build uses Pharo 6? It does not look like…
How to make Moose loads in Pharo 6?
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
At Synectique, we are extending FAMIX to create our own entities. To
guarantee our models are not filled in a bad way, we are defining
constraints on property setters (with #assert: or testing and throwing an
exception).
The problem comes when we then export and load the .mse because the
importer is not resolving things in a consistent order for our constraints.
Does anyone knows if there is a mechanism to guarantee constraints except
if the model is loading? Or at least to know if the model is currently
being loaded?
--
*Guillaume Larcheveque*
Hi,
I was looking for a comparison of OMG's Knowledge Discovery Model (KDM) and
FAMIX and found this thesis, which provides an overview of both and
provides a short, superficial comparison of the two:
https://boa.unimib.it/retrieve/handle/10281/31515/43100/phd_unimib_055259.p…
Are there any other sources of such information? I don't want to spend too
much time now reading all the details of KDM but a brief description
vis-à-vis FAMIX will be good for now. The purpose of the exercise: Client
runs some tools that use KDM and we may need interface with them. For now,
just reading about what supplementary information modelled by KDM not how
to connect the two.
regards.
Usman
Hi,
I just want to let you know that we will be starting our next Data Week
in few days. It's a 6 days intensive hackathon-workshop split in two
sessions from Thursday to Saturday each one in. Next one will be on Jul
21 to 23 and Jul 28 to 30. As usual, we work with an approach from data
activism & visualization. It's an event directed towards a broader
diverse population, coming from art, journalism and with different
levels of expertise, specially newbies, all interested in data
visualization. As a result we improve the tools [1] and packages [2] and
learning materials [3] (Spanish). Is a good way to bridge local and
international community. You can find more information (in Spanish)
about the event and our tool at [3a] and [3b].
Four our next project, we will work on our a project called Twitter Data
Selfies (draft info at [4]).
I will keep you posted about our advancements, improvements and problems
here and in slack and share some more in real time, using the #DataWeek4
hashtag on Twitter [5].
Cheers,
Offray
== Links:
[1] http://smalltalkhub.com/#!/~Offray/Grafoscopio
[2] http://smalltalkhub.com/#!/~Offray/Dataviz
[3] http://mutabit.com/repos.fossil/grafoscopio/wiki?name=inicio
[3a] http://mutabit.com/dataweek/
[3b] http://mutabit.com/grafoscopio/
[4] http://mutabit.com/offray/blog/en/entry/ds-twitter-mockup
[5] https://twitter.com/hashtag/DataWeek4?src=hash
Dear Friends and Colleagues,
Agile Visualization has now entered the last reviewing phase. The book will soon be available for sell. Feedback is highly welcome.
http://AgileVisualization.com
Kind regards,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi!
It would be great to fix this…
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi!
I have just downloaded the last image of Moose, and Spotter seems to not work at all…
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.