tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Howard M. Lewis Ship" <hls...@attbi.com>
Subject Re: [Tapestry-contrib] Getting back into it
Date Mon, 13 Jan 2003 12:09:20 GMT
To help with Maven, here's some notes about how releases are currently
built.  Some of these notes overlap details in the Contributor's Guide, so
you should check that out as well.

The master build file does all the work, reinvoking Ant in many
subdirectories and combining all the results.

I've seen a lot of projects that require you to set environment variables
and/or use a shell script wrapper.  I don't get why.

The only thing external to the Tapestry workspace is the directories for a
couple of large, external tools:  JBoss, FOP, Saxon and Clover.

JBoss is needed because we build demos that plug into JBoss in a turnkey
way.  FOP is for DocBook to PDF.  Saxon is for DocBook to HTML or DocBook to
Flow Objects (fed into FOP) ... I use Saxon because it is about 20x faster
than Xalan doing the same job.  Clover is proprietary source code coverage

Getting Ant to use Saxon instead of Xalan requires a few command line
options that can be accomplished via the ANT_OPTS env variable:

ANT_OPTS=-Xmx256mb -Djavax.xml.parsers.DocumentBuilderFactory=org.apache.cri
mson.jaxp.DocumentBuilderFactoryImpl  -Djavax.xml.parsers.SAXParserFactory=o

The other three external tools (JBoss, FOP and Clover) are identified in the
build.properties file which must be placed into the config directory.  This
file sets three properties needed by the many Ant build scripts:


Each of these is the absolute path to the respective tool.  It is important
to use FORWARD SLASHES ONLY or you will get build errors.  I've enclosed a
copy that I use when I do builds.

Clover has kindly donated a copy of their tool to Tapestry; a copy of their
distribution is in the support directory.

The final piece of the puzzle is the disto build script.  This is in the
support directory.  I typically copy this out to a temporary directory.  I
also copy my current build.properties file to the same directory.

The distro build script has two targets.  "setup" uses anonymous CVS to grab
a fresh copy of the Tapestry workspace.  It uses export, so that the CVS
directories are not exported.  This takes about one minute.

"build" copies the build.properties file into the exported workspace and
invokes the "dist" target on the master build file.  It then copies the
resulting distro files back up to the current directory.  This takes about
nine minutes (on my new, blazing fast laptop, anyway).

Side note:  Tapestry has, checked into the repository, copies of DocBook XML
and the DocBook XSL distros.  It automatically unpacks these as needed
during the build.  We may want to change things to make these addtiional,
external tools as well.

Side note:  People have had compatibility issues when using Tapestry JARs
compiled by the 1.4 compiler, even in 1.3 compatibility mode.  I currently
set my JAVA_HOME to a JDK 1.3 before doing the build to ensure maximum

Currently, three distro files are created:  Tapestry-x.x-core.tar.gz is the
main distribution, containing the compiled JARs, external libraries (such as
OGNL and Log4J) and the source code (packaged into .jar files).

Tapestry-x.x.-doc.tar.gz contains all the documentation for Tapestry;
JavaDoc, Contributor's Guide, and the various manuals (in HTML and PDF).

Tapestry-Web-x.x.tar.gz contains an image of the Tapestry web site, which is
similar to the doc distro, but includes the Clover code coverage report.

Tapestry builds .tar.gz files currently because a) WinZip can open them fine
and b) they are smaller than the equivalent .zip files.

I'm sure there'll be some impedance using Maven, but since Tapestry is
already built to use straight Ant to perform full builds (albiet with a
couple of configuration gotchas) I hope it will not be too tricky.

----- Original Message -----
From: <dion@multitask.com.au>
To: "Andrew C. Oliver" <acoliver@apache.org>
Cc: <tapestry-contrib@lists.sourceforge.net>;
Sent: Monday, January 13, 2003 4:07 AM
Subject: Re: [Tapestry-contrib] Getting back into it

> tapestry-contrib-admin@lists.sourceforge.net wrote on 13/01/2003 09:07:03
> AM:
> > I really recommend Mavenizing to this effect.  I bet dion would help
> > with that..  (http://jakarta.apache.org/maven)
> I'm happy to help with Mavenizing, if only for the docs part of the
> process. We should also look and see if we can improve the docbook plugin
> for Maven (as it's rarely used and a little buggy!), to handle the
> existing formats.
> > Alternatively (and this is what POI does) if maven doesn't do what you
> > need Centipede (http://krysalis.org/centipede) and Forrest
> > (http://xml.apache.org/forrest) might help.
> >
> > However it really depends on whether Maven works under gump...
> Maven generates viable gump descriptors these days.
> > Gump should be one of our top priorities (jakarta.apache.org/gump)
> > because it could do the builds and site publish for us...
> +1
> --
> dIon Gillard, Multitask Consulting
> Blog:      http://www.freeroller.net/page/dion/Weblog
> Work:      http://www.multitask.com.au
> --
> To unsubscribe, e-mail:
> For additional commands, e-mail:

View raw message