dion 2002/06/10 09:44:34
Modified: src/test/org/apache/maven BuildTest.java
src/java/org/apache/maven Build.java
Added: src/test-build project1.xml
Log:
Added a real project.xml for testing purposes.
Changed the tests to use this file.
Changed Build's set...Descriptor to generate the maven project at that time.
Revision Changes Path
1.1 jakarta-turbine-maven/src/test-build/project1.xml
Index: project1.xml
===================================================================
<?xml version="1.0"?>
<project>
<pomVersion>3</pomVersion>
<id>maven</id>
<name>jakarta-turbine-maven</name>
<currentVersion>1.0-b5-dev</currentVersion>
<organization>
<name>Apache Software Foundation</name>
<url>http://jakarta.apache.org/</url>
<logo>/images/jakarta-logo-blue.gif</logo>
</organization>
<inceptionYear>2001</inceptionYear>
<package>org.apache.maven</package>
<logo>/images/maven.jpg</logo>
<!-- Gump integration -->
<gumpRepositoryId>jakarta</gumpRepositoryId>
<description>
Maven is a project management and project comprehension tool. Maven
is based on the concept of a project object model: builds, documentation
creation, site publication, and distribution publication are all
controlled from the project object model. Maven also provides tools
to create source metrics, change logs based directly on source
repository, and source cross-references.
</description>
<shortDescription>Java Project Management Tools</shortDescription>
<url>http://jakarta.apache.org/turbine/maven/</url>
<issueTrackingUrl>http://nagoya.apache.org/scarab/servlet/scarab/</issueTrackingUrl>
<siteAddress>jakarta.apache.org</siteAddress>
<siteDirectory>/www/jakarta.apache.org/turbine/maven/</siteDirectory>
<distributionDirectory>/www/jakarta.apache.org/builds/jakarta-turbine-maven/</distributionDirectory>
<repository>
<connection>scm:cvs:pserver:[EMAIL PROTECTED]:/home/cvspublic:jakarta-turbine-maven</connection>
<url>http://cvs.apache.org/viewcvs/jakarta-turbine-maven/</url>
</repository>
<versions>
<version>
<id>b1</id>
<name>1.0-b1</name>
<tag>MAVEN_1_0_B1</tag>
</version>
<version>
<id>b2</id>
<name>1.0-b2</name>
<tag>MAVEN_1_0_B2</tag>
</version>
<version>
<id>b3</id>
<name>1.0-b3</name>
<tag>MAVEN_1_0_B3</tag>
</version>
<version>
<id>b4</id>
<name>1.0-b4</name>
<tag>MAVEN_1_0_B4</tag>
</version>
<version>
<id>b5</id>
<name>1.0-b5</name>
<tag>HEAD</tag>
</version>
</versions>
<branches>
</branches>
<mailingLists>
<mailingList>
<name>Maven User List</name>
<subscribe>[EMAIL PROTECTED]</subscribe>
<unsubscribe>[EMAIL PROTECTED]</unsubscribe>
<!-- Using mail-archive until there is something in nagoya's eyebrowse...
<archive>http://nagoya.apache.org/eyebrowse/SummarizeList?[EMAIL PROTECTED]</archive>
-->
<archive>http://www.mail-archive.com/[email protected]/</archive>
</mailingList>
<mailingList>
<name>Maven Developer List</name>
<subscribe>[EMAIL PROTECTED]</subscribe>
<unsubscribe>[EMAIL PROTECTED]</unsubscribe>
<!-- Using mail-archive until there is something in nagoya's eyebrowse...
<archive>http://nagoya.apache.org/eyebrowse/SummarizeList?[EMAIL PROTECTED]</archive>
-->
<archive>http://www.mail-archive.com/[email protected]/</archive>
</mailingList>
</mailingLists>
<developers>
<developer>
<name>Juancarlo Anez</name>
<id>juanco</id>
<email>[EMAIL PROTECTED]</email>
<organization></organization>
<roles>
<role>Java Developer</role>
</roles>
</developer>
<developer>
<name>Stephane Bailliez</name>
<id>sbailliez</id>
<email>[EMAIL PROTECTED]</email>
<organization></organization>
<roles>
<role>Java Developer</role>
</roles>
</developer>
<developer>
<name>Jeff Brekke</name>
<id>brekke</id>
<email>[EMAIL PROTECTED]</email>
<organization></organization>
<roles>
<role>Java Developer</role>
</roles>
</developer>
<developer>
<name>Tom Copeland</name>
<id>tcopeland</id>
<email>[EMAIL PROTECTED]</email>
<organization>InfoEther</organization>
<roles>
<role>Java Developer</role>
</roles>
</developer>
<developer>
<name>Eric Dobbs</name>
<id>dobbs</id>
<email>[EMAIL PROTECTED]</email>
<organization></organization>
<roles>
<role>Java Developer</role>
</roles>
</developer>
<developer>
<name>dIon Gillard</name>
<id>dion</id>
<email>[EMAIL PROTECTED]</email>
<organization>Multitask Consulting</organization>
<roles>
<role>Java Developer</role>
</roles>
</developer>
<developer>
<name>Pete Kazmier</name>
<id>kaz</id>
<email>[EMAIL PROTECTED]</email>
<organization></organization>
<roles>
<role>Documentation</role>
</roles>
</developer>
<developer>
<name>Geir Magnusson Jr.</name>
<id>geirm</id>
<email>[EMAIL PROTECTED]</email>
<organization>Independent (DVSL Maven)</organization>
<roles>
<role>Java Developer</role>
</roles>
</developer>
<developer>
<name>Bob McWhirter</name>
<id>werken</id>
<email>[EMAIL PROTECTED]</email>
<organization>Werken and Sons</organization>
<roles>
<role>Java Developer</role>
</roles>
</developer>
<developer>
<name>Vincent Massol</name>
<id>vmassol</id>
<email>[EMAIL PROTECTED]</email>
<organization>Octo Technology</organization>
<roles>
<role>Java Developer</role>
</roles>
</developer>
<developer>
<name>Daniel Rall</name>
<id>dlr</id>
<email>[EMAIL PROTECTED]</email>
<organization>CollabNet, Inc.</organization>
<roles>
<role>Java Developer</role>
</roles>
</developer>
<developer>
<name>Kurt Schrader</name>
<id>kschrader</id>
<email>[EMAIL PROTECTED]</email>
<organization>University of Michigan</organization>
<roles>
<role>Java Developer</role>
</roles>
</developer>
<developer>
<name>James Strachan</name>
<id>jstrachan</id>
<email>[EMAIL PROTECTED]</email>
<organization>Spiritsoft</organization>
<roles>
<role>Java Developer</role>
</roles>
</developer>
<developer>
<name>James Taylor</name>
<id>jtaylor</id>
<email>[EMAIL PROTECTED]</email>
<organization></organization>
<roles>
<role>Java Developer</role>
</roles>
</developer>
<developer>
<name>Jason van Zyl</name>
<id>jvanzyl</id>
<email>[EMAIL PROTECTED]</email>
<organization>Zenplex</organization>
<roles>
<role>Architect</role>
<role>Release Manager</role>
</roles>
</developer>
<developer>
<name>Glenn McAllister</name>
<id>glennm</id>
<email>[EMAIL PROTECTED]</email>
<organization>SOMA Networks, Inc.</organization>
<roles>
<role>Java Developer</role>
</roles>
</developer>
<developer>
<name>Bob McWhirter</name>
<id>werken</id>
<email>[EMAIL PROTECTED]</email>
<organization>The Werken Company</organization>
<roles>
<role>Java Developer</role>
</roles>
</developer>
</developers>
<contributors>
<contributor>
<name>Nathan Coast</name>
<email>[EMAIL PROTECTED]</email>
</contributor>
<contributor>
<name>Peter Lynch</name>
</contributor>
<contributor>
<name>Martin van dem Bemt</name>
<email>[EMAIL PROTECTED]</email>
</contributor>
</contributors>
<!-- Need to mark these as compile-time/run-time -->
<dependencies>
<dependency>
<id>dom4j</id>
<version>1.4-dev</version>
<url>http://www.dom4j.org/</url>
</dependency>
<dependency>
<id>junit</id>
<version>3.7</version>
<url>http://junit.org/</url>
</dependency>
<dependency>
<id>commons-betwixt</id>
<version>1.0-dev</version>
<url>http://jakarta.apache.org/commons/sandbox/betwixt/</url>
</dependency>
<dependency>
<id>commons-digester</id>
<version>1.2</version>
<url>http://jakarta.apache.org/commons/digester.html</url>
</dependency>
<dependency>
<id>commons-jelly</id>
<version>1.0-dev</version>
<url>http://jakarta.apache.org/commons/sandbox/jelly/</url>
</dependency>
<dependency>
<id>commons-logging</id>
<version>1.0</version>
<url>http://jakarta.apache.org/commons/logging.html</url>
</dependency>
<dependency>
<id>commons-graph</id>
<version>0.8</version>
</dependency>
<dependency>
<id>bcel</id>
<version>5.0</version>
<url>http://jakarta.apache.org/bcel/</url>
</dependency>
<dependency>
<id>velocity</id>
<version>1.4-dev</version>
<url>http://jakarta.apache.org/velocity/</url>
</dependency>
<dependency>
<id>oro</id>
<version>2.0.6</version>
<url>http://jakarta.apache.org/oro/</url>
</dependency>
<!-- Runtime dependencies -->
<dependency>
<id>log4j</id>
<version>1.1.3</version>
<url>http://jakarta.apache.org/log4j/</url>
</dependency>
<dependency>
<id>commons-lang</id>
<version>1.0-dev</version>
<url>http://jakarta.apache.org/commons/</url>
</dependency>
<dependency>
<id>commons-io</id>
<version>0.1</version>
<url>http://jakarta.apache.org/commons/</url>
</dependency>
<dependency>
<id>commons-util</id>
<version>1.0-rc2-dev</version>
<url>http://jakarta.apache.org/commons/</url>
</dependency>
<dependency>
<id>commons-beanutils</id>
<version>1.0</version>
<url>http://jakarta.apache.org/commons/</url>
</dependency>
<dependency>
<id>commons-collections</id>
<version>2.0</version>
<url>http://jakarta.apache.org/commons/</url>
</dependency>
<dependency>
<id>commons-cli</id>
<version>1.0-dev</version>
<url>http://jakarta.apache.org/commons/sandbox/cli/</url>
</dependency>
<!-- Documentation dependencies -->
<dependency>
<id>velocity-dvsl</id>
<version>0.43</version>
<url>http://jakarta.apache.org/velocity/dvsl/</url>
</dependency>
<dependency>
<id>jdepend</id>
<version>2.2</version>
<url>http://www.clarkware.com/software/JDepend.html</url>
</dependency>
<!-- maven:pdf requirements
<dependency>
<id>fop</id>
<version>0.20.3</version>
<url>http://xml.apache.org/fop/</url>
</dependency>
<dependency>
<id>batik</id>
<version>1.0</version>
<url>http://xml.apache.org/batik/</url>
</dependency>
<dependency>
<id>logkit</id>
<version>1.0.1</version>
<url>http://jakarta.apache.org/avalon/logkit/</url>
</dependency>
<dependency>
<id>avalon-framework</id>
<version>4.0</version>
<url>http://jakarta.apache.org/avalon/</url>
</dependency>
<dependency>
<id>xerces</id>
<version>1.2.3</version>
<url>http://xml.apache.org/xerces/</url>
</dependency>
<dependency>
<id>xalan</id>
<version>2.0.0</version>
<url>http://xml.apache.org/xalan/</url>
</dependency>
-->
<!-- the following are all required for checkstyle to work -->
<dependency>
<id>checkstyle</id>
<version>2.2</version>
<url>http://checkstyle.sourceforge.net/</url>
</dependency>
<dependency>
<id>antlr</id>
<version>2.7.1</version>
<url>http://www.antlr.org/</url>
</dependency>
<dependency>
<id>regexp</id>
<version>1.2</version>
<url>http://jakarta.apache.org/regexp/</url>
</dependency>
<!-- end checkstyle requirements -->
</dependencies>
<build>
<nagEmailAddress>[EMAIL PROTECTED]</nagEmailAddress>
<sourceDirectory>src/java</sourceDirectory>
<unitTestSourceDirectory>src/test</unitTestSourceDirectory>
<integrationUnitTestSourceDirectory/>
<aspectSourceDirectory></aspectSourceDirectory>
<!-- Unit test classes -->
<unitTestPatterns>
<unitTestPattern>include = **/*Test.java</unitTestPattern>
</unitTestPatterns>
<!-- Integration unit test classes -->
<integrationUnitTestPatterns>
</integrationUnitTestPatterns>
<!-- J A R R E S O U R C E S -->
<!-- Resources that are packaged up inside the JAR file -->
<jarResources>
<jarResource>include = *.dtd</jarResource>
<jarResource>include = log4j.properties</jarResource>
<jarResource>include = maven-taskdefs.properties</jarResource>
</jarResources>
<jars>
</jars>
</build>
</project>
1.3 +14 -8 jakarta-turbine-maven/src/test/org/apache/maven/BuildTest.java
Index: BuildTest.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-maven/src/test/org/apache/maven/BuildTest.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- BuildTest.java 10 Jun 2002 15:18:24 -0000 1.2
+++ BuildTest.java 10 Jun 2002 16:44:34 -0000 1.3
@@ -62,12 +62,14 @@
* Unit tests for {@link Build}
*
* @author dion
- * @version $Id: BuildTest.java,v 1.2 2002/06/10 15:18:24 dion Exp $
+ * @version $Id: BuildTest.java,v 1.3 2002/06/10 16:44:34 dion Exp $
*/
public class BuildTest extends TestCase
{
/** instance being tested */
- Build instance;;
+ Build instance;
+ /** test project 1's filename */
+ String project1;
/** Creates a new instance of the test case
* @param testName the name of the test
@@ -84,6 +86,12 @@
public void setUp() throws Exception
{
instance = new Build();
+ String baseDir = System.getProperty("basedir");
+ assertNotNull("The system property basedir was not defined.", baseDir);
+ String fs = System.getProperty("file.separator");
+ assertNotNull("The system property file.separator was not defined.",
+ fs);
+ project1 = baseDir + fs + "src/test-build/project1.xml";
}
@@ -96,19 +104,17 @@
/** test that configuration works for pom short param name */
public void testConfigureProjectDescriptorShort() throws Exception
{
- String dummyProjectFile = "p.xml";
- instance.configure(new String[] {"-p", dummyProjectFile});
+ instance.configure(new String[] {"-p", project1});
assertEquals("-p option not parsed",
- instance.getProjectDescriptorFileName(), dummyProjectFile);
+ instance.getProjectDescriptorFileName(), project1);
}
/** test that configuration works for pom with long args */
public void testConfigureProjectDescriptorLong() throws Exception
{
- String dummyProjectFile = "p.xml";
- instance.configure(new String[] {"--project", dummyProjectFile});
+ instance.configure(new String[] {"--project", project1});
assertEquals("--project option not parsed",
- instance.getProjectDescriptorFileName(), dummyProjectFile);
+ instance.getProjectDescriptorFileName(), project1);
}
}
1.3 +15 -5 jakarta-turbine-maven/src/java/org/apache/maven/Build.java
Index: Build.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-maven/src/java/org/apache/maven/Build.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Build.java 10 Jun 2002 15:18:24 -0000 1.2
+++ Build.java 10 Jun 2002 16:44:34 -0000 1.3
@@ -62,6 +62,7 @@
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.apache.commons.cli.UnrecognizedOptionException;
+import org.apache.maven.project.Project;
/**
* The 'driver' for maven, in java form.
@@ -88,7 +89,7 @@
* </ul>
*
* @author dion
- * @version $Id: Build.java,v 1.2 2002/06/10 15:18:24 dion Exp $
+ * @version $Id: Build.java,v 1.3 2002/06/10 16:44:34 dion Exp $
*/
public class Build
{
@@ -96,11 +97,12 @@
private static final char PROJECT_OPTION = 'p';
/** the longer string version of the project option */
private static final String PROJECT_LONG_OPTION = "project";
- /** */
+ /** default file name for the project descriptor */
private static final String DEFAULT_PROJECT_DESCRIPTOR = "project.xml";
-
/** the file name of the maven project descriptor */
private String projectDescriptorFileName;
+ /** the maven project */
+ private Project project;
/** Creates a new instance of Build */
public Build()
@@ -134,9 +136,12 @@
* @param args command line arguments
* @throws MissingArgumentException if one of the options which is supposed
* to have an argument, doesn't.
+ * @throws ParseException if args can't be parsed correctly
+ * @throws Exception if the project descriptor can't be converted to an
+ * object
*/
public void configure(String[] args) throws MissingArgumentException,
- ParseException
+ ParseException, Exception
{
try
{
@@ -153,7 +158,7 @@
}
catch (MissingOptionException moe)
{
- // no arguments are currently required, so ignoring
+ // no options are currently required, so ignoring
}
catch (UnrecognizedOptionException ure)
{
@@ -192,10 +197,15 @@
* FIXME: Need comments here about when the change of this value makes
* no sense/has unintended effects
* @param projectDescriptorFileName new value as a String
+ * @throws Exception when there are problems creating the project object
+ * from the descriptor file name
+ * @task remove Exception here and use real one
*/
public void setProjectDescriptorFileName(String projectDescriptorFileName)
+ throws Exception
{
this.projectDescriptorFileName = projectDescriptorFileName;
+ project = MavenUtils.getProject(projectDescriptorFileName);
}
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>