You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2011/07/06 17:27:36 UTC
svn commit: r1143463 - in
/maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test:
ArchetyperRoundtripTest.java ArchetyperRoundtripWithProxyTest.java
RoundtripMultiModuleTest.java
Author: olamy
Date: Wed Jul 6 15:27:35 2011
New Revision: 1143463
URL: http://svn.apache.org/viewvc?rev=1143463&view=rev
Log:
[ARCHETYPE-376] port used in unit test is hardcoded so can cause port allocation issue on ci machine
Modified:
maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java
maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyTest.java
maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleTest.java
Modified: maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java?rev=1143463&r1=1143462&r2=1143463&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java (original)
+++ maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripTest.java Wed Jul 6 15:27:35 2011
@@ -32,31 +32,23 @@ import org.apache.maven.archetype.common
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectBuilder;
-import org.codehaus.cargo.container.deployable.DeployableType;
-import org.codehaus.cargo.container.deployable.WAR;
-import org.codehaus.cargo.container.deployer.Deployer;
-import org.codehaus.cargo.container.deployer.URLDeployableMonitor;
-import org.codehaus.cargo.container.jetty.Jetty6xEmbeddedLocalContainer;
-import org.codehaus.cargo.container.jetty.Jetty6xEmbeddedLocalDeployer;
-import org.codehaus.cargo.container.jetty.Jetty6xEmbeddedStandaloneLocalConfiguration;
-import org.codehaus.cargo.container.property.ServletPropertySet;
-import org.codehaus.cargo.generic.deployable.DefaultDeployableFactory;
-import org.codehaus.cargo.generic.deployable.DeployableFactory;
import org.codehaus.plexus.PlexusTestCase;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.StringUtils;
+import org.mortbay.jetty.Server;
+import org.mortbay.jetty.webapp.WebAppContext;
import java.io.File;
import java.io.FileWriter;
import java.io.Writer;
-import java.net.URL;
import java.util.Properties;
-/** @author Jason van Zyl */
+/**
+ * @author Jason van Zyl
+ */
public class ArchetyperRoundtripTest
extends PlexusTestCase
{
- private Jetty6xEmbeddedLocalContainer container;
public void testArchetyper()
throws Exception
@@ -68,15 +60,23 @@ public class ArchetyperRoundtripTest
MavenProjectBuilder projectBuilder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE );
- ArtifactRepository localRepository =
- registryManager.createRepository( new File( getBasedir(), "target" + File.separator + "test-classes"
- + File.separator + "repositories" + File.separator + "local" ).toURI().toURL().toExternalForm(),
- "local-repo" );
-
- ArtifactRepository centralRepository =
- registryManager.createRepository( new File( getBasedir(), "target" + File.separator + "test-classes"
- + File.separator + "repositories" + File.separator + "central" ).toURI().toURL().toExternalForm(),
- "central-repo" );
+ ArtifactRepository localRepository = registryManager.createRepository( new File( getBasedir(),
+ "target" + File.separator
+ + "test-classes"
+ + File.separator
+ + "repositories"
+ + File.separator
+ + "local" ).toURI().toURL().toExternalForm(),
+ "local-repo" );
+
+ ArtifactRepository centralRepository = registryManager.createRepository( new File( getBasedir(),
+ "target" + File.separator
+ + "test-classes"
+ + File.separator
+ + "repositories"
+ + File.separator
+ + "central" ).toURI().toURL().toExternalForm(),
+ "central-repo" );
// (1) create a project from scratch
// (2) create an archetype from the project
@@ -90,9 +90,9 @@ public class ArchetyperRoundtripTest
// (1) create a project from scratch
// File sourceProject = new File( getBasedir( ), "target/test-classes/projects/roundtrip-1-project" );
- File workingProject =
- new File( getBasedir(), "target" + File.separator + "test-classes" + File.separator + "projects"
- + File.separator + "roundtrip-1-project" );
+ File workingProject = new File( getBasedir(),
+ "target" + File.separator + "test-classes" + File.separator + "projects"
+ + File.separator + "roundtrip-1-project" );
FileUtils.forceDelete( new File( workingProject, "target" ) );
// (2) create an archetype from the project
@@ -101,10 +101,9 @@ public class ArchetyperRoundtripTest
MavenProject project = projectBuilder.build( pom, localRepository, null );
Properties properties = new Properties();
- properties.setProperty("someProperty", "someValue");
+ properties.setProperty( "someProperty", "someValue" );
ArchetypeCreationRequest acr = new ArchetypeCreationRequest().setProject( project ).
- setLocalRepository( localRepository ).setProperties(properties)
- .setPostPhase( "package" );
+ setLocalRepository( localRepository ).setProperties( properties ).setPostPhase( "package" );
ArchetypeCreationResult creationResult = archetype.createArchetypeFromProject( acr );
@@ -120,31 +119,25 @@ public class ArchetyperRoundtripTest
File catalogFile = new File( catalogDirectory, "archetype-catalog.xml" );
// (5) install the archetype we just created
- File generatedArchetypeDirectory =
- new File( project.getBasedir(), "target" + File.separator + "generated-sources" + File.separator
- + "archetype" );
+ File generatedArchetypeDirectory = new File( project.getBasedir(),
+ "target" + File.separator + "generated-sources" + File.separator
+ + "archetype" );
File generatedArchetypePom = new File( generatedArchetypeDirectory, "pom.xml" );
- MavenProject generatedArchetypeProject = projectBuilder.build( generatedArchetypePom,
- localRepository, null );
+ MavenProject generatedArchetypeProject = projectBuilder.build( generatedArchetypePom, localRepository, null );
File archetypeDirectory =
new File( generatedArchetypeDirectory, "src" + File.separator + "main" + File.separator + "resources" );
- File archetypeArchive = archetype.archiveArchetype( archetypeDirectory,
- new File( generatedArchetypeProject.getBuild().getDirectory() ),
- generatedArchetypeProject.getBuild().getFinalName() );
-
- String baseName = StringUtils.replace( generatedArchetypeProject.getGroupId(), ".", File.separator )
- + File.separator
- + generatedArchetypeProject.getArtifactId()
- + File.separator
- + generatedArchetypeProject.getVersion()
- + File.separator
- + generatedArchetypeProject.getBuild().getFinalName();
- File archetypeInRepository =
- new File( centralRepository.getBasedir(), baseName + ".jar" );
- File archetypePomInRepository =
- new File( centralRepository.getBasedir(), baseName + ".pom" );
+ File archetypeArchive = archetype.archiveArchetype( archetypeDirectory, new File(
+ generatedArchetypeProject.getBuild().getDirectory() ),
+ generatedArchetypeProject.getBuild().getFinalName() );
+
+ String baseName =
+ StringUtils.replace( generatedArchetypeProject.getGroupId(), ".", File.separator ) + File.separator
+ + generatedArchetypeProject.getArtifactId() + File.separator + generatedArchetypeProject.getVersion()
+ + File.separator + generatedArchetypeProject.getBuild().getFinalName();
+ File archetypeInRepository = new File( centralRepository.getBasedir(), baseName + ".jar" );
+ File archetypePomInRepository = new File( centralRepository.getBasedir(), baseName + ".pom" );
archetypeInRepository.getParentFile().mkdirs();
FileUtils.copyFile( archetypeArchive, archetypeInRepository );
FileUtils.copyFile( generatedArchetypePom, archetypePomInRepository );
@@ -155,7 +148,7 @@ public class ArchetyperRoundtripTest
generatedArchetype.setGroupId( generatedArchetypeProject.getGroupId() );
generatedArchetype.setArtifactId( generatedArchetypeProject.getArtifactId() );
generatedArchetype.setVersion( generatedArchetypeProject.getVersion() );
- generatedArchetype.setRepository( "http://localhost:18881/repo" );
+ generatedArchetype.setRepository( "http://localhost:" + port + "/repo" );
catalog.addArchetype( generatedArchetype );
ArchetypeCatalogXpp3Writer catalogWriter = new ArchetypeCatalogXpp3Writer();
@@ -164,20 +157,19 @@ public class ArchetyperRoundtripTest
IOUtils.closeQuietly( writer );
// (6) create a project form the archetype we just created
- String outputDirectory =
- new File( getBasedir(), "target" + File.separator + "test-classes" + File.separator + "projects"
- + File.separator + "roundtrip-1-recreatedproject" ).getAbsolutePath();
+ String outputDirectory = new File( getBasedir(),
+ "target" + File.separator + "test-classes" + File.separator + "projects"
+ + File.separator + "roundtrip-1-recreatedproject" ).getAbsolutePath();
FileUtils.forceDelete( outputDirectory );
ArchetypeGenerationRequest agr =
- new ArchetypeGenerationRequest().setArchetypeGroupId(
- generatedArchetypeProject.getGroupId() ).
- setArchetypeArtifactId( generatedArchetypeProject.getArtifactId() ).
- setArchetypeVersion( generatedArchetypeProject.getVersion() ).
- setGroupId( "com.mycompany" ).setArtifactId( "myapp" ).setVersion( "1.0-SNAPSHOT" ).
- setPackage( "com.mycompany.myapp" ).setProperties(properties).
- setOutputDirectory( outputDirectory ).setLocalRepository( localRepository ).
- setArchetypeRepository( "http://localhost:18881/repo/" );
+ new ArchetypeGenerationRequest().setArchetypeGroupId( generatedArchetypeProject.getGroupId() ).
+ setArchetypeArtifactId( generatedArchetypeProject.getArtifactId() ).
+ setArchetypeVersion( generatedArchetypeProject.getVersion() ).
+ setGroupId( "com.mycompany" ).setArtifactId( "myapp" ).setVersion( "1.0-SNAPSHOT" ).
+ setPackage( "com.mycompany.myapp" ).setProperties( properties ).
+ setOutputDirectory( outputDirectory ).setLocalRepository( localRepository ).
+ setArchetypeRepository( "http://localhost:" + port + "/repo/" );
ArchetypeGenerationResult generationResult = archetype.generateProjectFromArchetype( agr );
if ( generationResult.getCause() != null )
@@ -187,10 +179,9 @@ public class ArchetyperRoundtripTest
//ASSERT symbol_pound replacement (archetype-180 archetype-183)
String content = FileUtils.fileRead(
- outputDirectory + File.separator + "myapp" + File.separator +
- "src" + File.separator + "main" + File.separator + "java" +
- File.separator + "com" + File.separator + "mycompany" +
- File.separator + "myapp" + File.separator + "App.java");
+ outputDirectory + File.separator + "myapp" + File.separator + "src" + File.separator + "main"
+ + File.separator + "java" + File.separator + "com" + File.separator + "mycompany" + File.separator
+ + "myapp" + File.separator + "App.java" );
System.err.println( "content=" + content );
assertTrue( content.indexOf( "//A #\\{some}" ) > 0 );
assertTrue( content.indexOf( "//B #{some}" ) > 0 );
@@ -212,33 +203,29 @@ public class ArchetyperRoundtripTest
//Assert symbol_dollar archetype-138
}
+ private Server server;
+
+ int port;
+
public void setUp()
throws Exception
{
super.setUp();
- // Start Cargo
-
- Jetty6xEmbeddedStandaloneLocalConfiguration configuration =
- new Jetty6xEmbeddedStandaloneLocalConfiguration( "target/repository-webapp" );
- configuration.setProperty( ServletPropertySet.PORT, "18881" );
+ // Start Jetty
System.setProperty( "org.apache.maven.archetype.repository.directory",
- getTestPath( "target/test-classes/repositories/central" ) );
- container = new Jetty6xEmbeddedLocalContainer( configuration );
- container.setTimeout( 180000L );
- container.start();
-
- DeployableFactory factory = new DefaultDeployableFactory();
- WAR war = (WAR) factory.createDeployable( container.getId(),
- "target/wars/archetype-repository.war",
- DeployableType.WAR );
-
- war.setContext( "/repo" );
-
- Deployer deployer = new Jetty6xEmbeddedLocalDeployer( container );
- deployer.deploy( war,
- new URLDeployableMonitor( new URL( "http://localhost:18881/repo/dummy" ) ) );
- deployer.start( war );
+ getTestPath( "target/test-classes/repositories/central" ) );
+
+ server = new Server( 0 );
+
+ WebAppContext webapp = new WebAppContext();
+ webapp.setContextPath( "/repo" );
+ webapp.setWar( "target/wars/archetype-repository.war" );
+ server.setHandler( webapp );
+
+ server.start();
+
+ port = server.getConnectors()[0].getLocalPort();
}
@@ -246,8 +233,8 @@ public class ArchetyperRoundtripTest
throws Exception
{
super.tearDown();
- // Stop Cargo
+ // Stop Jetty
- container.stop();
+ server.stop();
}
}
Modified: maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyTest.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyTest.java?rev=1143463&r1=1143462&r2=1143463&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyTest.java (original)
+++ maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyTest.java Wed Jul 6 15:27:35 2011
@@ -33,34 +33,32 @@ import org.apache.maven.artifact.manager
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectBuilder;
-import org.codehaus.cargo.container.deployable.DeployableType;
-import org.codehaus.cargo.container.deployable.WAR;
-import org.codehaus.cargo.container.deployer.Deployer;
-import org.codehaus.cargo.container.deployer.URLDeployableMonitor;
-import org.codehaus.cargo.container.jetty.Jetty6xEmbeddedLocalContainer;
-import org.codehaus.cargo.container.jetty.Jetty6xEmbeddedLocalDeployer;
-import org.codehaus.cargo.container.jetty.Jetty6xEmbeddedStandaloneLocalConfiguration;
-import org.codehaus.cargo.container.property.ServletPropertySet;
-import org.codehaus.cargo.generic.deployable.DefaultDeployableFactory;
-import org.codehaus.cargo.generic.deployable.DeployableFactory;
import org.codehaus.plexus.PlexusTestCase;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.StringUtils;
+import org.mortbay.jetty.Server;
+import org.mortbay.jetty.webapp.WebAppContext;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.OutputStream;
import java.io.Writer;
-import java.net.URL;
import java.util.Properties;
-/** @author Jason van Zyl */
+/**
+ * @author Jason van Zyl
+ */
public class ArchetyperRoundtripWithProxyTest
extends PlexusTestCase
{
- Jetty6xEmbeddedLocalContainer jettyContainer;
- Jetty6xEmbeddedLocalContainer jettyContainer2;
+ Server proxyServer;
+
+ int proxyPort;
+
+ Server server;
+
+ int port;
public void testArchetyper()
throws Exception
@@ -71,14 +69,22 @@ public class ArchetyperRoundtripWithProx
MavenProjectBuilder projectBuilder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE );
- ArtifactRepository localRepository =
- registryManager.createRepository( new File( getBasedir(), "target" + File.separator + "test-classes"
- + File.separator + "repositories" + File.separator + "local" ).toURI().toURL().toExternalForm(),
- "local-repo" );
- ArtifactRepository centralRepository =
- registryManager.createRepository( new File( getBasedir(), "target" + File.separator + "test-classes"
- + File.separator + "repositories" + File.separator + "central" ).toURI().toURL().toExternalForm(),
- "central-repo" );
+ ArtifactRepository localRepository = registryManager.createRepository( new File( getBasedir(),
+ "target" + File.separator
+ + "test-classes"
+ + File.separator
+ + "repositories"
+ + File.separator
+ + "local" ).toURI().toURL().toExternalForm(),
+ "local-repo" );
+ ArtifactRepository centralRepository = registryManager.createRepository( new File( getBasedir(),
+ "target" + File.separator
+ + "test-classes"
+ + File.separator
+ + "repositories"
+ + File.separator
+ + "central" ).toURI().toURL().toExternalForm(),
+ "central-repo" );
// (1) create a project from scratch
// (2) create an archetype from the project
@@ -92,9 +98,9 @@ public class ArchetyperRoundtripWithProx
// (1) create a project from scratch
// File sourceProject = new File( getBasedir( ), "target/test-classes/projects/roundtrip-1-project" );
- File workingProject =
- new File( getBasedir(), "target" + File.separator + "test-classes" + File.separator + "projects"
- + File.separator + "roundtrip-2-project" );
+ File workingProject = new File( getBasedir(),
+ "target" + File.separator + "test-classes" + File.separator + "projects"
+ + File.separator + "roundtrip-2-project" );
FileUtils.forceDelete( new File( workingProject, "target" ) );
// (2) create an archetype from the project
@@ -103,8 +109,7 @@ public class ArchetyperRoundtripWithProx
MavenProject project = projectBuilder.build( pom, localRepository, null );
ArchetypeCreationRequest acr = new ArchetypeCreationRequest().setProject( project ).
- setLocalRepository( localRepository )
- .setPostPhase( "package" );
+ setLocalRepository( localRepository ).setPostPhase( "package" );
ArchetypeCreationResult creationResult = archetype.createArchetypeFromProject( acr );
@@ -118,8 +123,7 @@ public class ArchetyperRoundtripWithProx
File catalogFile = new File( catalogDirectory, "archetype-catalog.xml" );
- File catalogProperties = new File( catalogDirectory,
- "archetype-catalog.properties" );
+ File catalogProperties = new File( catalogDirectory, "archetype-catalog.properties" );
catalogDirectory.mkdirs();
@@ -130,31 +134,25 @@ public class ArchetyperRoundtripWithProx
p.store( os, "Generated catalog properties" );
// (5) install the archetype we just created
- File generatedArchetypeDirectory =
- new File( project.getBasedir(), "target" + File.separator + "generated-sources" + File.separator
- + "archetype" );
+ File generatedArchetypeDirectory = new File( project.getBasedir(),
+ "target" + File.separator + "generated-sources" + File.separator
+ + "archetype" );
File generatedArchetypePom = new File( generatedArchetypeDirectory, "pom.xml" );
- MavenProject generatedArchetypeProject = projectBuilder.build( generatedArchetypePom,
- localRepository, null );
+ MavenProject generatedArchetypeProject = projectBuilder.build( generatedArchetypePom, localRepository, null );
File archetypeDirectory =
new File( generatedArchetypeDirectory, "src" + File.separator + "main" + File.separator + "resources" );
- File archetypeArchive = archetype.archiveArchetype( archetypeDirectory,
- new File( generatedArchetypeProject.getBuild().getDirectory() ),
- generatedArchetypeProject.getBuild().getFinalName() );
-
- String baseName = StringUtils.replace( generatedArchetypeProject.getGroupId(), ".", File.separator )
- + File.separator
- + generatedArchetypeProject.getArtifactId()
- + File.separator
- + generatedArchetypeProject.getVersion()
- + File.separator
- + generatedArchetypeProject.getBuild().getFinalName();
- File archetypeInRepository =
- new File( centralRepository.getBasedir(), baseName + ".jar" );
- File archetypePomInRepository =
- new File( centralRepository.getBasedir(), baseName + ".pom" );
+ File archetypeArchive = archetype.archiveArchetype( archetypeDirectory, new File(
+ generatedArchetypeProject.getBuild().getDirectory() ),
+ generatedArchetypeProject.getBuild().getFinalName() );
+
+ String baseName =
+ StringUtils.replace( generatedArchetypeProject.getGroupId(), ".", File.separator ) + File.separator
+ + generatedArchetypeProject.getArtifactId() + File.separator + generatedArchetypeProject.getVersion()
+ + File.separator + generatedArchetypeProject.getBuild().getFinalName();
+ File archetypeInRepository = new File( centralRepository.getBasedir(), baseName + ".jar" );
+ File archetypePomInRepository = new File( centralRepository.getBasedir(), baseName + ".pom" );
archetypeInRepository.getParentFile().mkdirs();
FileUtils.copyFile( archetypeArchive, archetypeInRepository );
FileUtils.copyFile( generatedArchetypePom, archetypePomInRepository );
@@ -165,7 +163,7 @@ public class ArchetyperRoundtripWithProx
generatedArchetype.setGroupId( generatedArchetypeProject.getGroupId() );
generatedArchetype.setArtifactId( generatedArchetypeProject.getArtifactId() );
generatedArchetype.setVersion( generatedArchetypeProject.getVersion() );
- generatedArchetype.setRepository( "http://127.0.0.2:18881/" );
+ generatedArchetype.setRepository( "http://127.0.0.2:" + port + "/" );
catalog.addArchetype( generatedArchetype );
ArchetypeCatalogXpp3Writer catalogWriter = new ArchetypeCatalogXpp3Writer();
@@ -174,22 +172,21 @@ public class ArchetyperRoundtripWithProx
IOUtils.closeQuietly( writer );
// (6) create a project form the archetype we just created
- String outputDirectory =
- new File( getBasedir(), "target" + File.separator + "test-classes" + File.separator + "projects"
- + File.separator + "roundtrip-2-recreatedproject" ).getAbsolutePath();
+ String outputDirectory = new File( getBasedir(),
+ "target" + File.separator + "test-classes" + File.separator + "projects"
+ + File.separator + "roundtrip-2-recreatedproject" ).getAbsolutePath();
FileUtils.forceDelete( outputDirectory );
WagonManager manager = (WagonManager) lookup( WagonManager.class.getName() );
- manager.addProxy( "http", "localhost", 18882, null, null, null );
+ manager.addProxy( "http", "localhost", proxyPort, null, null, null );
ArchetypeGenerationRequest agr =
- new ArchetypeGenerationRequest().setArchetypeGroupId(
- generatedArchetypeProject.getGroupId() ).
- setArchetypeArtifactId( generatedArchetypeProject.getArtifactId() ).
- setArchetypeVersion( generatedArchetypeProject.getVersion() ).
- setGroupId( "com.mycompany" ).setArtifactId( "myapp" ).setVersion( "1.0-SNAPSHOT" ).
- setPackage( "com.mycompany.myapp" ).setOutputDirectory( outputDirectory ).
- setLocalRepository( localRepository ).setArchetypeRepository( "http://127.0.0.2:18881/" );
+ new ArchetypeGenerationRequest().setArchetypeGroupId( generatedArchetypeProject.getGroupId() ).
+ setArchetypeArtifactId( generatedArchetypeProject.getArtifactId() ).
+ setArchetypeVersion( generatedArchetypeProject.getVersion() ).
+ setGroupId( "com.mycompany" ).setArtifactId( "myapp" ).setVersion( "1.0-SNAPSHOT" ).
+ setPackage( "com.mycompany.myapp" ).setOutputDirectory( outputDirectory ).
+ setLocalRepository( localRepository ).setArchetypeRepository( "http://127.0.0.2:" + port + "/" );
ArchetypeGenerationResult generationResult = archetype.generateProjectFromArchetype( agr );
if ( generationResult.getCause() != null )
@@ -203,52 +200,32 @@ public class ArchetyperRoundtripWithProx
throws Exception
{
super.setUp();
- // Start Cargo
-
- Jetty6xEmbeddedStandaloneLocalConfiguration configuration =
- new Jetty6xEmbeddedStandaloneLocalConfiguration( "target/proxy-webapp" );
- configuration.setProperty( ServletPropertySet.PORT, "18882" );
+ // Start Proxy Jetty
System.setProperty( "org.apache.maven.archetype.repository.directory",
- getTestPath( "target/test-classes/repositories/central" ) );
- jettyContainer = new Jetty6xEmbeddedLocalContainer( configuration );
- jettyContainer.setTimeout( 180000L );
- jettyContainer.start();
-
- DeployableFactory factory = new DefaultDeployableFactory();
- WAR war = (WAR) factory.createDeployable( jettyContainer.getId(),
- "target/wars/archetype-proxy.war",
- DeployableType.WAR );
-
- war.setContext( "/" );
-
- Deployer deployer = new Jetty6xEmbeddedLocalDeployer( jettyContainer );
- deployer.deploy( war,
- new URLDeployableMonitor( new URL( "http://localhost:18882/dummy" ) ) );
- deployer.start( war );
-
-
- Jetty6xEmbeddedStandaloneLocalConfiguration configuration2 =
- new Jetty6xEmbeddedStandaloneLocalConfiguration( "target/repository-webapp" );
- configuration2.setProperty( ServletPropertySet.PORT, "18881" );
+ getTestPath( "target/test-classes/repositories/central" ) );
- System.setProperty( "org.apache.maven.archetype.repository.directory",
- getTestPath( "target/test-classes/repositories/central" ) );
- jettyContainer2 = new Jetty6xEmbeddedLocalContainer( configuration2 );
- jettyContainer2.setTimeout( 180000L );
- jettyContainer2.start();
-
- DeployableFactory factory2 = new DefaultDeployableFactory();
- WAR war2 = (WAR) factory2.createDeployable( jettyContainer2.getId(),
- "target/wars/archetype-repository.war",
- DeployableType.WAR );
-
- war2.setContext( "/" );
-
- Deployer deployer2 = new Jetty6xEmbeddedLocalDeployer( jettyContainer2 );
- deployer2.deploy( war2,
- new URLDeployableMonitor( new URL( "http://localhost:18881/repo/dummy" ) ) );
- deployer2.start( war );
+ proxyServer = new Server( 0 );
+
+ WebAppContext webappProxy = new WebAppContext();
+ webappProxy.setContextPath( "/" );
+ webappProxy.setWar( "target/wars/archetype-proxy.war" );
+ proxyServer.setHandler( webappProxy );
+
+ proxyServer.start();
+
+ proxyPort = proxyServer.getConnectors()[0].getLocalPort();
+
+ server = new Server( 0 );
+
+ WebAppContext webapp = new WebAppContext();
+ webapp.setContextPath( "/repo" );
+ webapp.setWar( "target/wars/archetype-repository.war" );
+ server.setHandler( webapp );
+
+ server.start();
+
+ port = server.getConnectors()[0].getLocalPort();
}
@@ -256,9 +233,9 @@ public class ArchetyperRoundtripWithProx
throws Exception
{
super.tearDown();
- // Stop Cargo
+ // Stop Jettys
- jettyContainer.stop();
- jettyContainer2.stop();
+ proxyServer.stop();
+ server.stop();
}
}
Modified: maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleTest.java
URL: http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleTest.java?rev=1143463&r1=1143462&r2=1143463&view=diff
==============================================================================
--- maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleTest.java (original)
+++ maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleTest.java Wed Jul 6 15:27:35 2011
@@ -33,35 +33,26 @@ import org.apache.maven.archetype.common
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectBuilder;
-import org.codehaus.cargo.container.deployable.DeployableType;
-import org.codehaus.cargo.container.deployable.WAR;
-import org.codehaus.cargo.container.deployer.Deployer;
-import org.codehaus.cargo.container.deployer.URLDeployableMonitor;
-import org.codehaus.cargo.container.jetty.Jetty6xEmbeddedLocalContainer;
-import org.codehaus.cargo.container.jetty.Jetty6xEmbeddedLocalDeployer;
-import org.codehaus.cargo.container.jetty.Jetty6xEmbeddedStandaloneLocalConfiguration;
-import org.codehaus.cargo.container.property.ServletPropertySet;
-import org.codehaus.cargo.generic.deployable.DefaultDeployableFactory;
-import org.codehaus.cargo.generic.deployable.DeployableFactory;
import org.codehaus.plexus.PlexusTestCase;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.StringUtils;
+import org.mortbay.jetty.Server;
+import org.mortbay.jetty.webapp.WebAppContext;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.OutputStream;
import java.io.Writer;
-import java.net.URL;
import java.util.Iterator;
import java.util.Properties;
-/** @author Jason van Zyl */
+/**
+ * @author Jason van Zyl
+ */
public class RoundtripMultiModuleTest
extends PlexusTestCase
{
- private Jetty6xEmbeddedLocalContainer jettyContainer;
-
public void testArchetyper()
throws Exception
{
@@ -73,14 +64,22 @@ public class RoundtripMultiModuleTest
MavenProjectBuilder projectBuilder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE );
ArtifactRepository localRepository = registryManager.createRepository( new File( getBasedir(),
- "target" + File.separator + "test-classes" + File.separator + "repositories" + File.separator + "local" )
- .toURI().toURL().toExternalForm(),
- "local-repo" );
+ "target" + File.separator
+ + "test-classes"
+ + File.separator
+ + "repositories"
+ + File.separator
+ + "local" ).toURI().toURL().toExternalForm(),
+ "local-repo" );
ArtifactRepository centralRepository = registryManager.createRepository( new File( getBasedir(),
- "target" + File.separator + "test-classes" + File.separator + "repositories" + File.separator + "central" )
- .toURI().toURL().toExternalForm(),
- "central-repo" );
+ "target" + File.separator
+ + "test-classes"
+ + File.separator
+ + "repositories"
+ + File.separator
+ + "central" ).toURI().toURL().toExternalForm(),
+ "central-repo" );
// (1) create a project from scratch
// (2) create an archetype from the project
@@ -95,7 +94,8 @@ public class RoundtripMultiModuleTest
// File sourceProject = new File( getBasedir( ), "target/test-classes/projects/roundtrip-1-project" );
File workingProject = new File( getBasedir(),
- "target" + File.separator + "test-classes" + File.separator + "projects" + File.separator + "roundtrip-multi" );
+ "target" + File.separator + "test-classes" + File.separator + "projects"
+ + File.separator + "roundtrip-multi" );
FileUtils.forceDelete( new File( workingProject, "target" ) );
// (2) create an archetype from the project
@@ -103,12 +103,10 @@ public class RoundtripMultiModuleTest
MavenProject project = projectBuilder.build( pom, localRepository, null );
- ArchetypeCreationRequest acr = new ArchetypeCreationRequest()
- .setProject( project )
- .setLocalRepository( localRepository )
- .setFiltereds(Constants.DEFAULT_FILTERED_EXTENSIONS)
- .setLanguages(Constants.DEFAULT_LANGUAGES)
- .setPostPhase( "package" );
+ ArchetypeCreationRequest acr =
+ new ArchetypeCreationRequest().setProject( project ).setLocalRepository( localRepository ).setFiltereds(
+ Constants.DEFAULT_FILTERED_EXTENSIONS ).setLanguages( Constants.DEFAULT_LANGUAGES ).setPostPhase(
+ "package" );
ArchetypeCreationResult creationResult = archetype.createArchetypeFromProject( acr );
@@ -137,30 +135,25 @@ public class RoundtripMultiModuleTest
p.store( os, "Generated catalog properties" );
// (5) install the archetype we just created
- File generatedArchetypeDirectory =
- new File( project.getBasedir(), "target" + File.separator + "generated-sources" + File.separator
- + "archetype" );
+ File generatedArchetypeDirectory = new File( project.getBasedir(),
+ "target" + File.separator + "generated-sources" + File.separator
+ + "archetype" );
File generatedArchetypePom = new File( generatedArchetypeDirectory, "pom.xml" );
MavenProject generatedArchetypeProject = projectBuilder.build( generatedArchetypePom, localRepository, null );
File archetypeDirectory =
new File( generatedArchetypeDirectory, "src" + File.separator + "main" + File.separator + "resources" );
- File archetypeArchive = archetype.archiveArchetype( archetypeDirectory,
- new File( generatedArchetypeProject.getBuild().getDirectory() ),
- generatedArchetypeProject.getBuild().getFinalName() );
-
- String baseName = StringUtils.replace( generatedArchetypeProject.getGroupId(), ".", File.separator )
- + File.separator
- + generatedArchetypeProject.getArtifactId()
- + File.separator
- + generatedArchetypeProject.getVersion()
- + File.separator
- + generatedArchetypeProject.getBuild().getFinalName();
- File archetypeInRepository =
- new File( centralRepository.getBasedir(), baseName + ".jar" );
- File archetypePomInRepository =
- new File( centralRepository.getBasedir(), baseName + ".pom" );
+ File archetypeArchive = archetype.archiveArchetype( archetypeDirectory, new File(
+ generatedArchetypeProject.getBuild().getDirectory() ),
+ generatedArchetypeProject.getBuild().getFinalName() );
+
+ String baseName =
+ StringUtils.replace( generatedArchetypeProject.getGroupId(), ".", File.separator ) + File.separator
+ + generatedArchetypeProject.getArtifactId() + File.separator + generatedArchetypeProject.getVersion()
+ + File.separator + generatedArchetypeProject.getBuild().getFinalName();
+ File archetypeInRepository = new File( centralRepository.getBasedir(), baseName + ".jar" );
+ File archetypePomInRepository = new File( centralRepository.getBasedir(), baseName + ".pom" );
archetypeInRepository.getParentFile().mkdirs();
FileUtils.copyFile( archetypeArchive, archetypeInRepository );
FileUtils.copyFile( generatedArchetypePom, archetypePomInRepository );
@@ -171,7 +164,7 @@ public class RoundtripMultiModuleTest
generatedArchetype.setGroupId( generatedArchetypeProject.getGroupId() );
generatedArchetype.setArtifactId( generatedArchetypeProject.getArtifactId() );
generatedArchetype.setVersion( generatedArchetypeProject.getVersion() );
- generatedArchetype.setRepository( "http://localhost:18881/repo" );
+ generatedArchetype.setRepository( "http://localhost:" + port + "/repo" );
catalog.addArchetype( generatedArchetype );
ArchetypeCatalogXpp3Writer catalogWriter = new ArchetypeCatalogXpp3Writer();
@@ -180,23 +173,18 @@ public class RoundtripMultiModuleTest
IOUtils.closeQuietly( writer );
// (6) create a project form the archetype we just created
- String outputDirectory =
- new File( getBasedir(), "target" + File.separator + "test-classes" + File.separator + "projects"
- + File.separator + "roundtrip-multi-recreated" ).getAbsolutePath();
- FileUtils.forceDelete(outputDirectory);
-
- ArchetypeGenerationRequest agr =
- new ArchetypeGenerationRequest()
- .setArchetypeGroupId( generatedArchetypeProject.getGroupId() )
- .setArchetypeArtifactId( generatedArchetypeProject.getArtifactId() )
- .setArchetypeVersion( generatedArchetypeProject.getVersion() )
- .setGroupId( "com.mycompany" )
- .setArtifactId( "myapp" )
- .setVersion( "1.0-SNAPSHOT" )
- .setPackage( "com.mycompany.myapp" )
- .setOutputDirectory( outputDirectory )
- .setLocalRepository( localRepository )
- .setArchetypeRepository( "http://localhost:18881/repo/" );
+ String outputDirectory = new File( getBasedir(),
+ "target" + File.separator + "test-classes" + File.separator + "projects"
+ + File.separator + "roundtrip-multi-recreated" ).getAbsolutePath();
+ FileUtils.forceDelete( outputDirectory );
+
+ ArchetypeGenerationRequest agr = new ArchetypeGenerationRequest().setArchetypeGroupId(
+ generatedArchetypeProject.getGroupId() ).setArchetypeArtifactId(
+ generatedArchetypeProject.getArtifactId() ).setArchetypeVersion(
+ generatedArchetypeProject.getVersion() ).setGroupId( "com.mycompany" ).setArtifactId( "myapp" ).setVersion(
+ "1.0-SNAPSHOT" ).setPackage( "com.mycompany.myapp" ).setOutputDirectory(
+ outputDirectory ).setLocalRepository( localRepository ).setArchetypeRepository(
+ "http://localhost:" + port + "/repo/" );
ArchetypeGenerationResult generationResult = archetype.generateProjectFromArchetype( agr );
if ( generationResult.getCause() != null )
@@ -211,44 +199,44 @@ public class RoundtripMultiModuleTest
assertTrue( new File( myapp + "myapp-model", ".classpath" ).exists() );
assertTrue( new File( myapp + File.separator + "myapp-stores" + File.separator + "myapp-store-memory",
".classpath" ).exists() );
- assertTrue( new File( myapp + "myapp-stores" + File.separator + "myapp-store-xstream", ".classpath" ).exists() );
+ assertTrue(
+ new File( myapp + "myapp-stores" + File.separator + "myapp-store-xstream", ".classpath" ).exists() );
assertTrue( new File( myapp + "myapp-api", ".checkstyle" ).exists() );
assertTrue( new File( myapp + "myapp-cli", ".checkstyle" ).exists() );
assertTrue( new File( myapp + "myapp-core", ".checkstyle" ).exists() );
assertTrue( new File( myapp + "myapp-model", ".checkstyle" ).exists() );
- assertTrue( new File( myapp + "myapp-stores" + File.separator + "myapp-store-memory", ".checkstyle" ).exists() );
- assertTrue( new File( myapp + "myapp-stores" + File.separator + "myapp-store-xstream", ".checkstyle" ).exists() );
+ assertTrue(
+ new File( myapp + "myapp-stores" + File.separator + "myapp-store-memory", ".checkstyle" ).exists() );
+ assertTrue(
+ new File( myapp + "myapp-stores" + File.separator + "myapp-store-xstream", ".checkstyle" ).exists() );
}
+ private Server server;
+
+ int port;
+
public void setUp()
throws Exception
{
super.setUp();
- // Start Cargo
-
- Jetty6xEmbeddedStandaloneLocalConfiguration configuration =
- new Jetty6xEmbeddedStandaloneLocalConfiguration( "target/repository-webapp" );
- configuration.setProperty( ServletPropertySet.PORT, "18881" );
+ // Start Jetty
System.setProperty( "org.apache.maven.archetype.repository.directory",
- getTestPath( "target/test-classes/repositories/central" ) );
- jettyContainer = new Jetty6xEmbeddedLocalContainer( configuration );
- jettyContainer.setTimeout( 180000L );
- jettyContainer.start();
-
- DeployableFactory factory = new DefaultDeployableFactory();
- WAR war = (WAR) factory.createDeployable( jettyContainer.getId(),
- "target/wars/archetype-repository.war",
- DeployableType.WAR );
-
- war.setContext( "/repo" );
-
- Deployer deployer = new Jetty6xEmbeddedLocalDeployer( jettyContainer );
- deployer.deploy( war,
- new URLDeployableMonitor( new URL( "http://localhost:18881/repo/dummy" ) ) );
- deployer.start( war );
+ getTestPath( "target/test-classes/repositories/central" ) );
+
+ server = new Server( 0 );
+
+ WebAppContext webapp = new WebAppContext();
+ webapp.setContextPath( "/repo" );
+ webapp.setWar( "target/wars/archetype-repository.war" );
+ server.setHandler( webapp );
+
+ server.start();
+
+ port = server.getConnectors()[0].getLocalPort();
+
}
@@ -256,9 +244,9 @@ public class RoundtripMultiModuleTest
throws Exception
{
super.tearDown();
- // Stop Cargo
+ // Stop Jetty
- jettyContainer.stop();
+ server.stop();
}
private void assertArchetypeCreated( File workingProject )
@@ -296,11 +284,11 @@ public class RoundtripMultiModuleTest
assertExistDirectory( stores );
assertExistFile( FileUtils.resolveFile( stores, "pom.xml" ) );
assertExistDirectory( FileUtils.resolveFile( stores, "__rootArtifactId__-store-memory" ) );
- assertExistFile( FileUtils.resolveFile( FileUtils.resolveFile( stores, "__rootArtifactId__-store-memory" ),
- "pom.xml" ) );
+ assertExistFile(
+ FileUtils.resolveFile( FileUtils.resolveFile( stores, "__rootArtifactId__-store-memory" ), "pom.xml" ) );
assertExistDirectory( FileUtils.resolveFile( stores, "__rootArtifactId__-store-xstream" ) );
- assertExistFile( FileUtils.resolveFile( FileUtils.resolveFile( stores, "__rootArtifactId__-store-xstream" ),
- "pom.xml" ) );
+ assertExistFile(
+ FileUtils.resolveFile( FileUtils.resolveFile( stores, "__rootArtifactId__-store-xstream" ), "pom.xml" ) );
assertExistFile( FileUtils.resolveFile( archetypeResourcesDirectory, "pom.xml" ) );
assertExistDirectory( archetypeMetadataDirectory );