Currently Cocoon has so many jars in its lib directory structure that it
is hard to know the particulars of who, what, when, where, why, and how.

The jar.xml file helps somewhat in that regard, but it can only do so
much.  Avalon is getting ready to do some releases, and I am actually
surprised by all the JARs that are "required" in the system.  When
Avalon releases its new version of the ECM, there will be no
dependencies on Excalibur COncurrent or Excalibur Collections any
longer.  They would only be required for backwards compatibility
at that point.

Cocoon needs to mark libraries of this sort differently than including
them in the lib/core--because they are not needed.  None of the COcoon
code at this point depends on those JARs either.  They should be
considered deprecated, and all users are encouraged to use the better
maintained versions of those JARs (which is in Cocoon lib dir as well).

One thing that you can do is to have a "include.compat.jars" option
that tells the build to create a WebApp with the JARs that are needed
for backwards compatibility--whereas by default they are not there.

That will allow Cocoon to trim some fat with the number of JARs that
are kept in CVS.

Another option is to adopt a "Maven" like repository (i.e. download
the JARs from ibiblio) as they are needed.  THings like licensing
issues can easily be addressed by that solution--and CVS bulk is
limited as much as possible.  The Avalon build process takes care
of this by a separate ANT script used to import the libraries.

What do you guys think?



Reply via email to