Author: jmitchell Date: Tue Aug 30 16:45:58 2005 New Revision: 264894 URL: http://svn.apache.org/viewcvs?rev=264894&view=rev Log: With this commit, we pretty much have a descent multiproject Maven build to work with.
I don't know everyone's routine (code/deploy/test cycle), but I think I've encapsulated most of what everyone wants. Here are my changes: * Add a few entries to the ignore prop * Fix maven includes/excludes to correctly ignore the example sub directory (can we just remove it?) * Reorder and (somewhat) label the build dependencies * Complete many of the typical targets needed for code/test development * Add example tomcat.home entry required for running cactus tests (none created yet, but that'll change shortly) All of the targets in maven.xml have been tested, cleaned and checked for completeness. The only issues I can think of now are how we deal with allowing 1.4 and 1.5 to build this thing. Also, the Maven cactus plugin is having an issue with the fact that I want the cactus test to run on Tomcat 5.5.11. I'm getting an error saying "jakarta-tomcat-5.5.11 not recognized as a Tomcat 4.x installation". With the exception of the velocity log and the jcoverage serialized file (jcoverage.ser), all directories and files that are created during any of the build targets are correctly cleaned. If you add targets or enhance the current ones, please verify this still works. Added: struts/sandbox/trunk/ti/wars/samples/src/test-cactus/ Modified: struts/sandbox/trunk/ti/ (props changed) struts/sandbox/trunk/ti/README.txt struts/sandbox/trunk/ti/maven.xml struts/sandbox/trunk/ti/project.properties struts/sandbox/trunk/ti/project.xml Propchange: struts/sandbox/trunk/ti/ ------------------------------------------------------------------------------ --- svn:ignore (added) +++ svn:ignore Tue Aug 30 16:45:58 2005 @@ -0,0 +1,4 @@ +.classpath +.project +bin +.settings Modified: struts/sandbox/trunk/ti/README.txt URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/ti/README.txt?rev=264894&r1=264893&r2=264894&view=diff ============================================================================== --- struts/sandbox/trunk/ti/README.txt (original) +++ struts/sandbox/trunk/ti/README.txt Tue Aug 30 16:45:58 2005 @@ -14,29 +14,29 @@ authoring and Page Flow of Beehive, and the lessons learned from Struts 1.x. The key word for Struts Ti is simplicity. Ideally, Struts Ti should -approach Ruby on Rails levels of easy of use, yet scale up to large +approach Ruby on Rails levels of ease of use, yet scale up to large applications providing a smooth transition to JSF/Shale if desired. KEY FEATURES - * POJO-based action that combines an Action and ActionForm in a -similar manner to JSF backing beans and WebWork 2 Commands - * Intelligent defaults utilizing naming and placement conventions -to require minimal, if any, configuration per page, however it will be -possible to override everything on a global and per-action basis - * Configuration can be assumed or declared through annotations, -xml or properties files, or any other pluggable mechanism - * Pluggable EL for data binding defaulting to JSP 2.0 EL but -allowing OGNL or even BeanUtils - * Integration of a dialog or page flow capability drawing from -Beehive, Springs web flow, and Shales Dialogs. + * POJO-based action that combines an Action and ActionForm in a similar + manner to JSF backing beans and WebWork 2 Commands + * Intelligent defaults utilizing naming and placement conventions to + require minimal, if any, configuration per page, however it will be + possible to override everything on a global and per-action basis + * Configuration can be assumed or declared through annotations, xml or + properties files, or any other pluggable mechanism + * Pluggable EL for data binding defaulting to JSP 2.0 EL but allowing + OGNL or even BeanUtils + * Integration of a dialog or page flow capability drawing from Beehive, + Springs web flow, and Shales Dialogs. * Per-Action optional interceptor chain ala WebWork 2 * Built-in dependency injection support DESIGN GOALS - * No servlet dependency in core framework, portlet and JSF support -out of the box + * No servlet dependency in core framework, portlet and JSF support out + of the box * Spring-based dependency injection in core to allow for pluggability * No bias to any view technology * Ability to layer Struts 1.x compatibility on top @@ -47,12 +47,11 @@ IMPLEMENTATION * Built on the backbone of commons-chain - * No restriction on multiple Servlets and/or Servlet Filter -implementations - * Key decision points (action selection for example) use CoR chain -for maximum flexiblity - * Configuration specified using XDoclet (Java 1.4) or Annotations -(Java 5+), both supported out of the box + * No restriction on multiple Servlets and/or Servlet Filter implementations + * Key decision points (action selection for example) use CoR chain for + maximum flexiblity + * Configuration specified using XDoclet (Java 1.4) or Annotations (Java 5+), + both supported out of the box DEPENDENCIES @@ -63,8 +62,8 @@ Existing project collaboration - * XWork/WebWork using their XWork and possibly parts/all of their -tag libraries + * XWork/WebWork using their XWork and possibly parts/all of their tag + libraries * Beehive using the Page Flow and annotations BUILDING FROM SOURCE @@ -74,35 +73,6 @@ $ cd ti <- your local copy $ cd core $ maven dist - - - - The build plan: - - ${jdk} - replace this with either 1.4 or 1.5 - ${ver} - replace with current version 1.0-dev (or YYYYMMDD for nightly) - - Target Artifact(s) Description - ______ ___________ ___________ - dist target/ creates a full distribution of core and example apps - ti-core${jdk}-${ver}.jar - ti-sample${jdk}.war - - jar target/ creates only core archive - ti-core15.jar - - test (nothing) run full set of (1.5 based) junit tests - - cactus (nothing) run full set of (1.5 based) junit and cactus tests - - site target/docs/ create ti web site (includes build reports) - **/*.html - - nightly target/ creates nightly distribution that gets uploaded to - ti-core${jdk} http://svn.apache.org/builds/struts/maven/trunk/nightly/struts-sandbox/ti/ - ti-sample${jdk}-${ver}.war - - STATUS Modified: struts/sandbox/trunk/ti/maven.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/ti/maven.xml?rev=264894&r1=264893&r2=264894&view=diff ============================================================================== --- struts/sandbox/trunk/ti/maven.xml (original) +++ struts/sandbox/trunk/ti/maven.xml Tue Aug 30 16:45:58 2005 @@ -1,27 +1,100 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + The build plan: + + + +NIGHTLY + What should be available for nightly? + 1.4 + maven jar-all + maven war-all + 1.5 + maven jar-all + maven war-all + maven multiproject:site + +--> <project - xmlns:j="jelly:core" - xmlns:ant="jelly:ant" - xmlns:maven="jelly:maven" - default="multiproject:build"> + xmlns:j="jelly:core" + xmlns:ant="jelly:ant" + xmlns:maven="jelly:maven" + default="jar"> - <goal name="dist"> - <attainGoal name="usage"/> - </goal> - <goal name="usage"> - <echo> Usage: (this is specific to the ti build)</echo> - <echo> maven [-option] [target] </echo> - <echo> [see README.txt for a list of valid targets]</echo> + <echo> + + Usage: (this is specific to the ti build) + + $ maven [-option] [target] + + for [option] see Maven help + for [target] see below + + Target Artifact(s) Description + ______ ___________ ___________ + dist target/ creates a full distribution of core and example apps + struts-ti-core{jdk}-{ver}.jar + struts-ti-sample{jdk}.war + + clean-all (nothing) cleans all subprojects + + jar-all target/ creates core and java5 archives + struts-ti-core{jdk}-{ver}.jar + struts-ti-java5-{ver}.jar + + war-all target/ creates all web application archives + struts-ti-sample{jdk}-{ver}.war + + test-all (nothing) run full set of (1.5 based) junit tests + + cactus-all(nothing) run full set of (1.5 based) junit and cactus tests + + site target/docs/ create struts-ti web site (includes build reports) + **/*.html + + nightly target/ creates nightly distribution that gets uploaded to + http://svn.apache.org/builds/struts/maven/trunk/nightly/struts-sandbox/ti/ + struts-ti-core{jdk}-{YYYYMMDD}.jar + struts-ti-java5-{YYYYMMDD}.jar + struts-ti-sample{jdk}-{ver}-{YYYYMMDD}.war + + + + In the table above, the following substitutions apply + {jdk} - this will be either 1.4 or 1.5 + {ver} - current version 1.0-dev, or SNAPSHOT + {YYYYMMDD} - year, month, and day (for nightly distributions) + + + </echo> </goal> - - <goal name="dist-all"> + + <goal name="dist"> <attainGoal name="jar-all"/> <attainGoal name="war-all"/> - + <attainGoal name="multiproject-site"/> </goal> + + <goal name="site"> + <attainGoal name="multiproject:site"/> + </goal> + + + + <goal name="clean-all"> + <maven:reactor + basedir="." + banner="Creating Source and Binary Distribution" + includes="${maven.multiproject.includes}" + excludes="${maven.multiproject.excludes}" + postProcessing="true" + goals="clean" + ignoreFailures="false"/> + </goal> + <goal name="jar-all"> <maven:reactor basedir="." @@ -41,6 +114,28 @@ excludes="${maven.multiproject.war.excludes}" postProcessing="true" goals="war:install" + ignoreFailures="false"/> + </goal> + + <goal name="test-all"> + <maven:reactor + basedir="." + banner="Creating Source and Binary Distribution" + includes="${maven.multiproject.includes}" + excludes="${maven.multiproject.excludes}" + postProcessing="true" + goals="test:test" + ignoreFailures="false"/> + </goal> + + <goal name="cactus-all"> + <maven:reactor + basedir="." + banner="Creating Source and Binary Distribution" + includes="${maven.multiproject.war.includes}" + excludes="${maven.multiproject.war.excludes}" + postProcessing="true" + goals="cactus" ignoreFailures="false"/> </goal> Modified: struts/sandbox/trunk/ti/project.properties URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/ti/project.properties?rev=264894&r1=264893&r2=264894&view=diff ============================================================================== --- struts/sandbox/trunk/ti/project.properties (original) +++ struts/sandbox/trunk/ti/project.properties Tue Aug 30 16:45:58 2005 @@ -19,9 +19,16 @@ maven.compile.source=1.4 maven.javadoc.additionalparam=-tag todo:a:"To Do:" + +#Home directory of where you have installed the container on which you wish to run the Cactus tests. +#Valid container names are: tomcat4x, tomcat5x, resin2x, resin3x, orion1x, orion2x, jboss3x and weblogic7x. +#cactus.home.[container name] +cactus.home.tomcat5x=/home/jmitchell/apache_home/jakarta-tomcat-5.5.11 + maven.changelog.factory = org.apache.maven.svnlib.SvnChangeLogFactory -maven.multiproject.includes=*/*/project.xml +maven.multiproject.includes=*/*/project.xml +maven.multiproject.excludes=wars/example/project.xml maven.multiproject.jar.includes=jars/*/project.xml maven.multiproject.war.includes=wars/*/project.xml maven.multiproject.war.excludes=wars/example/project.xml Modified: struts/sandbox/trunk/ti/project.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/ti/project.xml?rev=264894&r1=264893&r2=264894&view=diff ============================================================================== --- struts/sandbox/trunk/ti/project.xml (original) +++ struts/sandbox/trunk/ti/project.xml Tue Aug 30 16:45:58 2005 @@ -176,6 +176,14 @@ <url>http://java.sun.com/products/jsp/</url> </dependency> + <!-- Ant --> + <dependency> + <groupId>ant</groupId> + <artifactId>ant</artifactId> + <version>1.6.5</version> + <url>http://ant.apache.org</url> + </dependency> + <!-- commons-* --> <dependency> <groupId>commons-beanutils</groupId> @@ -347,6 +355,7 @@ </properties> </dependency> + <!-- xjavadoc --> <dependency> <groupId>xjavadoc</groupId> <artifactId>xjavadoc</artifactId> @@ -357,6 +366,7 @@ </properties> </dependency> + <!-- Spring --> <dependency> <groupId>springframework</groupId> <artifactId>spring-core</artifactId> @@ -387,6 +397,7 @@ </properties> </dependency> --> + <!-- Eclipse --> <dependency> <groupId>eclipse</groupId> <artifactId>jdtcore</artifactId> @@ -397,21 +408,6 @@ </properties> </dependency> - <dependency> - <groupId>ant</groupId> - <artifactId>ant</artifactId> - <version>1.6.5</version> - <url>http://ant.apache.org</url> - </dependency> - - <!-- for unit tests --> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>3.8.1</version> - <url>http://www.junit.org/</url> - </dependency> - <dependency> <groupId>jdom</groupId> <artifactId>jdom</artifactId> @@ -495,6 +491,16 @@ <war.bundle>true</war.bundle> </properties> </dependency> + + + <!-- for unit tests --> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.8.1</version> + <url>http://www.junit.org/</url> + </dependency> + </dependencies> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]