Hi,
I had a look at Andreas Schaefer's template project for
JBoss and it was a great help to get started. It wasn't
without problems though as I'm running Linux and there
was a few things that didn't work as they should.
Therefore I've modified the template somewhat and
thought I'd submit my work back to the project.
The changes are as follows:
* Created a file .ant.properties.redhat.example wich
contains an example setup for use with RedHat Linux.
When installing Ant from the RPM package
$ANT_HOME is set to /usr but the ant.jar file is located
in /usr/share/java. I've added a property called ant.lib
which is used instead of ant.home in the build.xml.
Unles set explicitly ant.lib is set to ${ant.home}/lib in
the build.xml. Xdoclet.lib is handled the same way.
* Renamed .ant.properties.example
to .ant.properties.win32.example
* Added comments in the build.xml file which parts to
change to adapt file to a new project. I wanted to get it
to only be the Name and version properties but the
include statements in javac and war sections remains.
I've marked those parts with "Change" so to adapt the
file to a new project one can find where to change it by
searching for "Change". I suspect though that I've
missed some places that needs adaption.
* I've added new properties called war.name, ejb.name
and client.name which by default are derivated from the
Name property. The war and jar files generated are
named by these properties. That way when adapting to
a new project only Name has to be changed.
* xdoclet.lib is used instead of xdoclet.home to be able
to handle situations where the xdoclet.jar file is not in
$XDOCLET_HOME/lib. I use to put it in /usr/share/java
analog to how ant is installed.
* Not all projects contain ejb's, web files, servlets and
standalone clients. Therefore I've created the properties
ejb.present, servlet.present, client.present and
web.present that controls the compile process. E.g. I
have a project that so far is only html and jsp files and
ant now detects that I don't have any ejb's nor client nor
servlets and don't compile those parts. You can look in
target check-environment to find out how that is
determined. The benefit is that I can use the same
template for all my projects and as they evolve e.g. add
some ejb's to my project without having to modify the
build.xml.
* servlet-lib.path is, unless set explicity
in .ant.properties, set to ${jboss.home}/server/
${jboss.configuration}/lib/javax.servlet.jar
* Bug fixed: src/etc/web-inf is refered to as src/etc/WEB-
INF at one occation in build.xml. I've changed the dir to
be src/etc/WEB-INF and set all references accordingly.
Unixe filesystems are case sensitive.
I'm not sure that everything is optimal but at least in the
tests I've done so far everything have worked fine and
have been very convenient. It can most likely be
enhanced further.
I've attached a patch. A zip-file with the new teplate can
be downloaded from
http://www.abrahamsson.com/JBoss.3.0Template.Projec
t.new.zip
patch for template project