VerveineJ and InFusion
1- thanks to the tutorial pointed by Tudor, I ran infusion. Don't know
what went wrong the other time
2- I am attaching a zip file with the infusion and verveine generated
mse files for the LanModel project (sources available with
verveine.extractor.java). I hope this is not contrary to the rules of
the list, the file is only 6K.
There are differences, you can look at it and decide for yourselves
which one you prefer.
And if something strikes you as clearly wrong in Verveine, it can be
changed to fit the expected behaviour. For example verveine creates
Namespaces with their full java name: moose.lan.server, which can
admittedly be less elegant when you nest them:
moose :: moose.lan :: moose.lan.server
infusion creates a more concise:
moose :: lan :: server
yet the name of the inner Namespace becomes "server", which does not
seem to fit exactly the eclipse understanding of packages where
packages are not nested ...
(I know, Eclipse is not Java)
I ran infusion and verveine on Eclipse v.3.1.
It took about 3 min. for infusion and 1min for verveine which is not
very significant given that you are suppose to do it only once. From
my part, it could take one hour and I would not be too much worried
(even if < 5 min is much better).
And of course, infusion does much more things than verveine: it's a
graphical tool, that computes metrics and does a bunch of other
Verveine sole purpose is to generate MSE from java source.
Actually I prefer the batch oriented philosophy of verveine that
allows to call it in srcipt, and let Moose do all the fancy stuff. It
used to be called the Unix philosophy: small tools that are good at
what they do but don't try to do everything.
(Does it makes me an old geek ?)
I might be wrong, but infusion seems to accept only one root directory
for the java project. This can be an issue. For example if you
consider Eclipse that has code for Linux, Mac and windows, you may
want to analyse only one of the versions to avoid duplicate classes (3
implementations of the Button class).
VerveineJ allows to do this by specifying the source path (it is based
on a "compiler" so it has all these options)
That's about what I could see in the 10 minutes I devoted to it.
Nicolas Anquetil Univ. Lille1 / INRIA-equipe RMod