Hi Eric,

 

It looks cool! What I don't understand is the relationship between the
jetspeed:cactus-war goal and Cactus. It seems to me that the aim of
jetspeed:cactus-war is simply to generate a fully working jetspeed jar
from both a vanilla jetspeed jar (whatever that is, I'm not familiar
with jetspeed) and a user project war.

 

My second comment would be about speed: it seems you're doing a lot of
unwar/war which can get really time-consuming especially on systems with
bad I/Os (such as windows). The Cactus plugins supports taking as input
an expanded war so you don't need to repackage everything as a war
(especially as the Cactus plugin will then unwar it once more ;-)).
Anyway, that's just a detail.

 

Thanks

-Vincent

 

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] 
Sent: 23 December 2002 15:49
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Subject: [SUBMIT] maven-jetspeed-plugin with Cactus support

 

Hi all, 

after starting to really get into development with Jetspeed, I
discovered how much I miss my cactus tests, and it seemed rather
difficult to integrate cactus test, primarily because you need to
customize a standard Jetspeed WAR file to have all of your permissions
etc..

I wanted to leverage all the work done in the Maven cactus plugin, and
since I noticed on the TODO list that Jetspeed would like to build with
Maven, I started a maven plugin to create a WAR file that was designed
to support Cactus testing.

Basically, when you call 

        maven jetspeed:cactus-war 

The plugin takes a standard plain vanilla jetspeed.war, and expands it
into /target/jetspeed-cactus.  Then the plugin calls war:war which
builds YOUR code as a war, and then expands it into
/target/jetspeed-cactus, overlaying your code.  Lastly, it calls the
merge-properties goal to merge all of your properties files settings
into the Torque.properties/TR.props/JS.props etc int
/target/jetspeed-cactus.  Lastly, we rewar the /target/jetspeed-cactus
directory, and place it in /target/yourproject.war.  Then, if you call

        maven cactus:test-tomcat-4x 

Then Cactus unwars your special Jetspeed war, add's the cactus stuff,
and runs the tests!  It was amazing to see it all work together!

Caveats: 
1) This is my first real work with Jelly/Maven, be gentle! 
2) Merge files are inflexible.  I set up a pattern where in your
specified source files, all files where name Merge{targetfile}, so
MergeTorque.properties would be merged into Torque.properties.
MergeJetspeedSecurity.properties would be merged into
JetspeedSecurity.properties.  

3) Merge files are limited to the standard four.  I didn't figure out
looping successfully, so I hardcoded them in. 
4) You must specify where the plain vanilla war file is.  By default,
the property maven.jetspeed.vanilla.war expects the jetspeed.war in your
plugin directory, but you should change it to reference the version you
want.

5) You must put a jetspeed.jar in your /maven/repository/jetspeed/jars/
directory.  I compiled the plugin against CVS head.  Jetspeed.jar's need
to be uploaded to iBiblio.

I recommend that the src be in /src/plugins-build/jetspeed (similar to
how the Maven project itself organizes plugins). 

Please give me your comments and feedback, and I would love to see this
added to the main CVS for Jetspeed!  I will be off though till early
January.  Enjoy the holidays.

Eric Pugh 

  

Reply via email to