Separate tests from ArchetypeCatalogsTest, ensure LocalCatalogArchetypeDataSource isn't using a webserver
Project: http://git-wip-us.apache.org/repos/asf/maven-archetype/repo Commit: http://git-wip-us.apache.org/repos/asf/maven-archetype/commit/4b2d005f Tree: http://git-wip-us.apache.org/repos/asf/maven-archetype/tree/4b2d005f Diff: http://git-wip-us.apache.org/repos/asf/maven-archetype/diff/4b2d005f Branch: refs/heads/master Commit: 4b2d005ff99d15c5d7612351fae9f232b07fd87e Parents: fbf678b Author: rfscholte <rfscho...@apache.org> Authored: Fri Jan 27 23:49:14 2017 +0100 Committer: rfscholte <rfscho...@apache.org> Committed: Fri Jan 27 23:49:14 2017 +0100 ---------------------------------------------------------------------- .../maven/archetype/ArchetypeCatalogsTest.java | 130 ------------------- .../LocalCatalogArchetypeDataSourceTest.java | 81 ++++++++++++ .../RemoteCatalogArchetypeDataSourceTest.java | 105 +++++++++++++++ 3 files changed, 186 insertions(+), 130 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/4b2d005f/archetype-common/src/test/java/org/apache/maven/archetype/ArchetypeCatalogsTest.java ---------------------------------------------------------------------- diff --git a/archetype-common/src/test/java/org/apache/maven/archetype/ArchetypeCatalogsTest.java b/archetype-common/src/test/java/org/apache/maven/archetype/ArchetypeCatalogsTest.java deleted file mode 100644 index c4cc5ec..0000000 --- a/archetype-common/src/test/java/org/apache/maven/archetype/ArchetypeCatalogsTest.java +++ /dev/null @@ -1,130 +0,0 @@ -package org.apache.maven.archetype; - -/* - * Copyright 2007 rafale. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * under the License. - */ - -import org.apache.commons.io.IOUtils; -import org.apache.maven.archetype.catalog.Archetype; -import org.apache.maven.archetype.catalog.ArchetypeCatalog; -import org.apache.maven.archetype.catalog.io.xpp3.ArchetypeCatalogXpp3Writer; -import org.apache.maven.project.DefaultProjectBuildingRequest; -import org.apache.maven.project.ProjectBuildingRequest; -import org.apache.maven.repository.internal.MavenRepositorySystemSession; -import org.codehaus.plexus.PlexusTestCase; -import org.mortbay.jetty.Server; -import org.mortbay.jetty.webapp.WebAppContext; -import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager; - -import java.io.File; -import java.io.FileWriter; -import java.io.Writer; - -/** - * @author rafale - */ -public class ArchetypeCatalogsTest - extends PlexusTestCase -{ - public void testRemoteCatalog() - throws Exception - { - ArchetypeManager archetype = lookup( ArchetypeManager.class ); - - ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(); - - ArchetypeCatalog result = archetype.getRemoteCatalog( buildingRequest, "http://localhost:" + port + "/repo/" ); - - assertEquals( 1, result.getArchetypes().size() ); - assertEquals( "groupId", result.getArchetypes().get( 0 ).getGroupId() ); - assertEquals( "artifactId", result.getArchetypes().get( 0 ).getArtifactId() ); - assertEquals( "1", result.getArchetypes().get( 0 ).getVersion() ); - assertEquals( "http://localhost:" + port + "/repo/", result.getArchetypes().get( 0 ).getRepository() ); - } - - public void testLocalCatalog() - throws Exception - { - ArchetypeManager archetype = lookup( ArchetypeManager.class ); - - ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(); - MavenRepositorySystemSession repositorySession = new MavenRepositorySystemSession(); - repositorySession.setLocalRepositoryManager( new SimpleLocalRepositoryManager( getTestFile( "target/test-classes/repositories/test-catalog" ) ) ); - buildingRequest.setRepositorySession( repositorySession ); - - - ArchetypeCatalog result = archetype.getLocalCatalog( buildingRequest ); - - assertEquals( 1, result.getArchetypes().size() ); - assertEquals( "groupId", result.getArchetypes().get( 0 ).getGroupId() ); - assertEquals( "artifactId", result.getArchetypes().get( 0 ).getArtifactId() ); - assertEquals( "1", result.getArchetypes().get( 0 ).getVersion() ); - assertEquals( "http://localhost:" + port + "/repo/", result.getArchetypes().get( 0 ).getRepository() ); - } - - - private Server server; - - int port; - - protected void setUp() - throws Exception - { - super.setUp(); - - System.setProperty( "org.apache.maven.archetype.repository.directory", - getTestPath( "target/test-classes/repositories/test-catalog" ) ); - - // Start Jetty - 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(); - - File catalogDirectory = getTestFile( "target/test-classes/repositories/test-catalog" ); - catalogDirectory.mkdirs(); - - getTestFile( "target/test-classes/repositories/test-catalog/dummy" ).createNewFile(); - - ArchetypeCatalog catalog = new ArchetypeCatalog(); - Archetype generatedArchetype = new Archetype(); - generatedArchetype.setGroupId( "groupId" ); - generatedArchetype.setArtifactId( "artifactId" ); - generatedArchetype.setVersion( "1" ); - generatedArchetype.setRepository( "http://localhost:" + port + "/repo/" ); - catalog.addArchetype( generatedArchetype ); - - File catalogFile = new File( catalogDirectory, "archetype-catalog.xml" ); - ArchetypeCatalogXpp3Writer catalogWriter = new ArchetypeCatalogXpp3Writer(); - Writer writer = new FileWriter( catalogFile ); - catalogWriter.write( writer, catalog ); - IOUtils.closeQuietly( writer ); - } - - protected void tearDown() - throws Exception - { - super.tearDown(); - // Stop Jetty - server.stop(); - } -} http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/4b2d005f/archetype-common/src/test/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSourceTest.java ---------------------------------------------------------------------- diff --git a/archetype-common/src/test/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSourceTest.java b/archetype-common/src/test/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSourceTest.java new file mode 100644 index 0000000..406c076 --- /dev/null +++ b/archetype-common/src/test/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSourceTest.java @@ -0,0 +1,81 @@ +package org.apache.maven.archetype.source; + +/* + * Copyright 2007 rafale. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +import java.io.File; +import java.io.FileWriter; +import java.io.Writer; + +import org.apache.commons.io.IOUtils; +import org.apache.maven.archetype.ArchetypeManager; +import org.apache.maven.archetype.catalog.Archetype; +import org.apache.maven.archetype.catalog.ArchetypeCatalog; +import org.apache.maven.archetype.catalog.io.xpp3.ArchetypeCatalogXpp3Writer; +import org.apache.maven.project.DefaultProjectBuildingRequest; +import org.apache.maven.project.ProjectBuildingRequest; +import org.apache.maven.repository.internal.MavenRepositorySystemSession; +import org.codehaus.plexus.PlexusTestCase; +import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager; + +public class LocalCatalogArchetypeDataSourceTest extends PlexusTestCase +{ + + protected void setUp() + throws Exception + { + super.setUp(); + + File catalogDirectory = getTestFile( "target/test-classes/repositories/test-catalog" ); + catalogDirectory.mkdirs(); + + ArchetypeCatalog catalog = new ArchetypeCatalog(); + Archetype generatedArchetype = new Archetype(); + generatedArchetype.setGroupId( "groupId" ); + generatedArchetype.setArtifactId( "artifactId" ); + generatedArchetype.setVersion( "1" ); + generatedArchetype.setRepository( "http://localhost:0/repo/" ); + catalog.addArchetype( generatedArchetype ); + + File catalogFile = new File( catalogDirectory, "archetype-catalog.xml" ); + ArchetypeCatalogXpp3Writer catalogWriter = new ArchetypeCatalogXpp3Writer(); + Writer writer = new FileWriter( catalogFile ); + catalogWriter.write( writer, catalog ); + IOUtils.closeQuietly( writer ); + } + + public void testLocalCatalog() + throws Exception + { + ArchetypeManager archetype = lookup( ArchetypeManager.class ); + + ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(); + MavenRepositorySystemSession repositorySession = new MavenRepositorySystemSession(); + repositorySession.setLocalRepositoryManager( new SimpleLocalRepositoryManager( getTestFile( "target/test-classes/repositories/test-catalog" ) ) ); + buildingRequest.setRepositorySession( repositorySession ); + + + ArchetypeCatalog result = archetype.getLocalCatalog( buildingRequest ); + + assertEquals( 1, result.getArchetypes().size() ); + assertEquals( "groupId", result.getArchetypes().get( 0 ).getGroupId() ); + assertEquals( "artifactId", result.getArchetypes().get( 0 ).getArtifactId() ); + assertEquals( "1", result.getArchetypes().get( 0 ).getVersion() ); + assertEquals( "http://localhost:0/repo/", result.getArchetypes().get( 0 ).getRepository() ); + } + +} http://git-wip-us.apache.org/repos/asf/maven-archetype/blob/4b2d005f/archetype-common/src/test/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSourceTest.java ---------------------------------------------------------------------- diff --git a/archetype-common/src/test/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSourceTest.java b/archetype-common/src/test/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSourceTest.java new file mode 100644 index 0000000..f4e4a88 --- /dev/null +++ b/archetype-common/src/test/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSourceTest.java @@ -0,0 +1,105 @@ +package org.apache.maven.archetype.source; + +/* + * Copyright 2007 rafale. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +import java.io.File; +import java.io.FileWriter; +import java.io.Writer; + +import org.apache.commons.io.IOUtils; +import org.apache.maven.archetype.ArchetypeManager; +import org.apache.maven.archetype.catalog.Archetype; +import org.apache.maven.archetype.catalog.ArchetypeCatalog; +import org.apache.maven.archetype.catalog.io.xpp3.ArchetypeCatalogXpp3Writer; +import org.apache.maven.project.DefaultProjectBuildingRequest; +import org.apache.maven.project.ProjectBuildingRequest; +import org.codehaus.plexus.PlexusTestCase; +import org.mortbay.jetty.Server; +import org.mortbay.jetty.webapp.WebAppContext; + +public class RemoteCatalogArchetypeDataSourceTest extends PlexusTestCase +{ + private Server server; + + int port; + + protected void setUp() + throws Exception + { + super.setUp(); + + System.setProperty( "org.apache.maven.archetype.repository.directory", + getTestPath( "target/test-classes/repositories/test-catalog" ) ); + + // Start Jetty + 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(); + + File catalogDirectory = getTestFile( "target/test-classes/repositories/test-catalog" ); + catalogDirectory.mkdirs(); + + getTestFile( "target/test-classes/repositories/test-catalog/dummy" ).createNewFile(); + + ArchetypeCatalog catalog = new ArchetypeCatalog(); + Archetype generatedArchetype = new Archetype(); + generatedArchetype.setGroupId( "groupId" ); + generatedArchetype.setArtifactId( "artifactId" ); + generatedArchetype.setVersion( "1" ); + generatedArchetype.setRepository( "http://localhost:" + port + "/repo/" ); + catalog.addArchetype( generatedArchetype ); + + File catalogFile = new File( catalogDirectory, "archetype-catalog.xml" ); + ArchetypeCatalogXpp3Writer catalogWriter = new ArchetypeCatalogXpp3Writer(); + Writer writer = new FileWriter( catalogFile ); + catalogWriter.write( writer, catalog ); + IOUtils.closeQuietly( writer ); + } + + protected void tearDown() + throws Exception + { + super.tearDown(); + // Stop Jetty + server.stop(); + } + + public void testRemoteCatalog() + throws Exception + { + ArchetypeManager archetype = lookup( ArchetypeManager.class ); + + ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest(); + + ArchetypeCatalog result = archetype.getRemoteCatalog( buildingRequest, "http://localhost:" + port + "/repo/" ); + + assertEquals( 1, result.getArchetypes().size() ); + assertEquals( "groupId", result.getArchetypes().get( 0 ).getGroupId() ); + assertEquals( "artifactId", result.getArchetypes().get( 0 ).getArtifactId() ); + assertEquals( "1", result.getArchetypes().get( 0 ).getVersion() ); + assertEquals( "http://localhost:" + port + "/repo/", result.getArchetypes().get( 0 ).getRepository() ); + } + +}