I'm looking at what is required for ant builds of LCF, and for this I sort of want to understand "accepted practices" for Apache builds of this kind.

(1) Structure

LCF will build many distinct jars, which need to be kept distinct because not all deployments can build or include all functionality. So there will be, at minimum:

- A set of jars representing the framework itself
- A set of jars for each connector

I say a "set" here, because some components (e.g. the framework and the documentum connector) do in fact contain multiple sub-components.

The question is - do we want a single ant build for the whole thing? Or independent ant builds for each major component? Based on the way it's packaged in debian for MetaCarta, independent components would be better. Is that acceptable?

(2) Dependencies

LCF requires upstream dependencies, many from apache, others from third parties such as postgresql. The dependencies come in the following flavors:
- Sun dependency (standard jsp tag library jars and tlds: jstl.jar, 
standard.jar, sql.tld, c.tld, fmt.tld, x.tld, and servlet.jar)
- Apache dependency, unexceptional (commons-fileupload, commons-collections, 
commons-codec, commons-logging, log4j, axis, castor)
- Apache dependency, requiring upstream modifications in order to build 
properly (commons-httpclient, xerces2-java)
- LGPL dependency, possibly requiring upstream modifications in order to run 
properly (jcifs)
- LGPL dependency, not requiring upstream modifications in order to run 
properly (postgres jdbc driver)
- BSD jar dependency (Bitstream pool driver, jdbcpool-0.99.jar)
- Third party proprietary jars (not enumerated here)
- Dependencies which will be immediately removed (metacarta-license.jar)

I take it we'll just presume, for the purposes of ant, that the correctly generated jars are just dropped in the ant/lib area? What ant build strategy should we use for all of the above categories?

(3) Axis/castor build items

Connectors that build from wsdls or xsds use axis or castor to generate the appropriate java class code. Is there a standard Apache ant task that we can use for these?

Thanks,
Karl

Reply via email to