Now that Cayenne has matured during the past few months and I gained some
real life deployment experience, I am looking for ways to ease the
deployment process.
Basically, current limitation is that in any VM there can be only one
"cayenne.xml" file referencing the maps and connection info.
While, "single cayenne.xml" approach is simple and great for smaller
projects with a single persistence JAR file, this limits the ability to
import Cayenne-based "persistent frameworks" in your application to just one
per application.
What I am suggesting to do is to provide Ant and/or GUI tools that would
help packaging and deploying Cayenne in many different ways. Anyone could
comment if this makes sense?
1. Single app deployment - current type of deployment, when cayenne.xml and
all the files it references are JAR/WAR-ed together and are deployed with
the app (either from CLASSPATH or from WEB-INF)
2. "Cayenne Module" deployment (new) - a regular JAR file that only contains
DataMap files and any class/resource files that are part of the module (no
cayenne.xml or connection info is included). Such module is not a standalone
application, but one or more of such modules can be deployed with other
applications.
3. Application using "Cayenne Modules" - any Java application that uses
persistent classes packaged in "Cayenne Modules". It will have a
"cayenne.xml" file that references maps from "modules", while providing its
own connection info and association between the maps and physical
datasources.
While we already support (1) now, and creating (2) is trivial, (3) requires
some thought. Simplest way of implementing it would be an Ant task that
extracts DataMap files from "modules" and "injects" the links to them to an
existing cayenne.xml. This is rather dynamic and maybe just all we want. I
will work some more on the Ant and possibly GUI interface design for this.
Comments?
Andrus
This archive was generated by hypermail 2.0.0 : Fri Oct 25 2002 - 17:19:05 EDT