Bruce originally suggested to split up Castor into modules in a branch for Castor 2.0. As there will be massive impact on Castor source which would lead to lots of files that need to be merged, we desided to do this work on trunc.
Intended target release for splitting up Castor into modules is 1.1.
It is not intended to move files, interfaces and classes from their current package to a different one with this task. If anything needs to be moved according to other tasks this does not influence the module assignment.
The base URL for all Modules is http://svn.codehaus.org/castor/castor/trunk/
Each module should reside in it's own directory and the parent POM resides in the trunk directory. This organization is very typical for a Maven directory structure. An example of this organization taken from the XFire Project trunk:
BUILDING.txt LICENSE.txt base.iml build-common.xml build.properties.template build.xml checkstyle.xml examples/ lib/ maven-bundle-plugin/ pom.xml pom.xml.old root.iml xfire-aegis/ xfire-all/ xfire-annotations/ xfire-castor/ xfire-core/ xfire-distribution/ xfire-generator/ xfire-java5/ xfire-jaxb/ xfire-jaxb2/ xfire-jaxws/ xfire-jibx/ xfire-jms/ xfire-loom/ xfire-picocontainer/ xfire-plexus/ xfire-sandbox/ xfire-spring/ xfire-ws-security/ xfire-xmlbeans/ xfire-xmpp/ xfire.ipr |
Now let's take a look at the directory structure inside of one of these modules. Here's the xfire-core directory structure:
build.xml core.iml pom.xml src/ target/ xdocs/ xfire-core.iml |
And here is a view into the src directory:
main/ test/ |
modules |
compatibility |
depends on |
responsibility |
|---|---|---|---|
castor-core |
Java 1.3 |
none |
Files, interfaces and classes of general use. Not restriced to internal use from other modules. |
castor-xml |
Java 1.3 |
core |
Files, interfaces and classes not moved to a specific module yet. Should only contain xml binding at the end of the whole module work. |
castor-jdo |
Java 1.3 |
core, xml |
Files, interfaces and classes for database persistence. Final target should be to have no compile time dependency to xml module from here. |
castor-srcgen |
Java 1.3 |
core, xml |
Files, interfaces and classes for source generator. |
castor-ddlgen |
Java 1.3 |
core, xml, jdo |
Files, interfaces and classes for ddl generator (Google SOC 2006 project). |
modules |
compatibility |
depends on |
responsibility |
|---|---|---|---|
castor-mapping |
Java 1.3 |
core |
Files, interfaces and classes that build the infrastructur to load mappings and jdo configuration. A bidirectional dependency between mapping and xml modules need to be omited. |
castor-jaxb2 |
Java 1.5 |
|
JAXB 2.0 spec APIs |
castor-spring |
Java 1.4 |
|
The Spring integration for Castor JDO |
castor-schema |
Java 1.4 |
|
The Castor XML Schema Object Model; Maybe we could consider putting all schema models in this module (e.g., XML schema, relational schema, LDAP schema, etc.) |