After working on the deployer and learning more about the Maven2 internals, I
want to share 2 thougths:
I've already raised the question whether it is possible to merge block.xml and
pom.xml. For now it's not as dependencies in pom.xml can't carry all the
necessary information for us. Maven 1.1 models had support for properties
elements, but they have been dropped in Maven 2.0 (Does anybody know the reason
for it?). I also mentioned my concerns about tieing us to closely to Maven.
I think the solution for this is very simple: Our contract is block.xml.
As soon as a Maven pom.xml can give us all the required information and people
use it as build descriptor, block.xml can be *automatically* generated for them
during the build lifecycle and they don't have to care for it anymore. People
that don't want to use Maven, have to provide a hand-crafted block.xml.
Going this way we are not blocked by getting the missing Maven features and
blocks don't get tied to Maven which would make a future replacement of Maven
very difficult.
- o -
A second thought: As outlined in one of my previous mails, a Cocoon block will
become a valid jar file, for example with following content:
ROOT
+-- block.xml
+-- pom.xml
+-- sitemap.xmap
+-- org
| +--myProject
| +-- MyJavaflowController.class
+-- app
+-- formTemplate.jx
+-- image.gif
+-- formDefinition.xml
At deployment this file is extracted into e.g. /WEB-INF/blocks/0000001. I wonder
if this can cause problems as a lot of resources become part of the classpath
but only MyJavaflowController.class should be.
If it is a problem we could provide two artifacts, one JAR file containing the
classes and one that contains the resources which is extracted into
/WEB-INF/blocks/0000001 but not added to the classpath. ... but this makes the
build and the deployment more complicated for our users ...
Ideas/opinions?
--
Reinhard Pötz Independent Consultant, Trainer & (IT)-Coach
{Software Engineering, Open Source, Web Applications, Apache Cocoon}
web(log): http://www.poetz.cc
--------------------------------------------------------------------