Fuut Dependencies

*Generative Model Transformer*
I(Ghica) would like to make some remarks about splitting fuut into various jars, considering dependency management. Maybe we can talk about it tonight.

A candidate to put into a separate jar is the org.eclipse.gmt.fuut.common package. This is exactly the code that needs to be included in the classpath for all generated applications (including fuut itself).

What is exactly the functionality there? Is it possible to generate code which doesn't use this common package -- MarkKofman

Similar for the org.eclipse.gmt.fuut.generator package. You will need it in addition to common if you are using code generation in your generated application.

Isn't it too specific case to deal with that? I guess the probability that you want to use fuut generator in you generated application is quite low. -- MarkKofman

Another thing to think about is, whether we should split the packages differently. For example, if you would not want to generate code using Velocity, The easiest thing to do would be to remove org.eclipse.gmt.fuut.action.FtGenVelocity from the list in the .ini file. As a result, you would not see it, but the code is still there. Since the space it takes is peanuts it is not problem. From a dependency management point of view it would maybe be better to move FtGenVelocity? to the org.eclipse.gmt.fuut.velocity package.

Rearranging packages differently sound good. But in this case we should proper design before. Doing it in refactorign style would take a lot of time -- MarkKofman

We should be very careful to not create too many jars. In my previous job the final project had a classpath of some 50 items, and I went totally nuts from it, therefore I repackaged fuutje again into one jar instead of the original 3. It is nice to re-use open or other source from many places in a project, managing the classpath can become a real nightmare and a source of very difficult to spot bugs.

Are you worried about FUUTje own classpath or FUUTje generated applications classpath? If first, then one idea is using Maven? If second, I agree. I would say more: why should generated application be dependent on FUUT jars at all? Only dependency should be generation time, when you use FUUTje. -- MarkKofman

-- MarkKofman - 28 Jun 2004