diff --git a/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/IntegrationTestSuite.java b/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/IntegrationTestSuite.java index 612c83f0e6..e7bfeaf01b 100644 --- a/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/IntegrationTestSuite.java +++ b/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/IntegrationTestSuite.java @@ -117,6 +117,8 @@ public class IntegrationTestSuite // suite.addTestSuite(MavenIT0106Test.class); // suite.addTestSuite(MavenIT0107Test.class); suite.addTestSuite( MavenIT0109SnapshotUpdateTest.class ); + suite.addTestSuite( MavenIT0110PluginDependenciesComeFromPluginReposTest.class ); + suite.addTestSuite( MavenIT0111PluginsThatRequireAResourceFromAnExtensionTest.class ); return suite; } } diff --git a/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0108ReleaseUpdateTest.java b/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0108ReleaseUpdateTest.java new file mode 100644 index 0000000000..00bd6a2703 --- /dev/null +++ b/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0108ReleaseUpdateTest.java @@ -0,0 +1,135 @@ +package org.apache.maven.integrationtests; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +import org.apache.maven.it.Verifier; +import org.apache.maven.it.util.FileUtils; +import org.apache.maven.it.util.ResourceExtractor; + +import java.io.File; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +/** + * Test to verify that a release can be updated. + */ +public class MavenIT0108ReleaseUpdateTest + extends AbstractMavenIntegrationTestCase +{ + private static final String GROUPID = "org.apache.maven.it"; + + private static final String ARTIFACTID = "maven-it-release-update"; + + private static final String TYPE = "jar"; + + private static final String POM_TYPE = "pom"; + + private static final String OLD_VERSION = "1.0"; + + private static final String NEW_VERSION = "1.1"; + + public void testReleaseUpdated() + throws Exception + { + File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/it0109-releaseUpdate" ); + Verifier verifier = new Verifier( testDir.getAbsolutePath() ); + verifier.deleteArtifact( GROUPID, ARTIFACTID, OLD_VERSION, TYPE ); + verifier.deleteArtifact( GROUPID, ARTIFACTID, OLD_VERSION, POM_TYPE ); + verifier.deleteArtifact( GROUPID, ARTIFACTID, NEW_VERSION, TYPE ); + verifier.deleteArtifact( GROUPID, ARTIFACTID, NEW_VERSION, POM_TYPE ); + + writeMetadata( new File( verifier.localRepo ), "maven-metadata-it.releases.xml", OLD_VERSION, + "20051230031110" ); + + // create a repository (TODO: into verifier) + File repository = new File( testDir, "repository" ); + repository.mkdirs(); + + // create artifact in repository (TODO: into verifier) + writeArtifact( repository, OLD_VERSION ); + writeArtifact( repository, NEW_VERSION ); + + writeMetadata( repository, "maven-metadata.xml", NEW_VERSION, "20061230031110" ); + + verifier.assertArtifactNotPresent( GROUPID, ARTIFACTID, OLD_VERSION, TYPE ); + verifier.assertArtifactNotPresent( GROUPID, ARTIFACTID, NEW_VERSION, TYPE ); + + Map m = new HashMap(); +/* + m.put( "MAVEN_OPTS", + "-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005" ); +*/ + verifier.executeGoal( "package", m ); + + verifier.assertArtifactNotPresent( GROUPID, ARTIFACTID, OLD_VERSION, TYPE ); + verifier.assertArtifactPresent( GROUPID, ARTIFACTID, NEW_VERSION, TYPE ); + + verifier.verifyErrorFreeLog(); + verifier.resetStreams(); + } + + private static void writeMetadata( File repository, String fileName, String version, String timestamp ) + throws IOException + { + File metadata = new File( repository, GROUPID.replace( '.', '/' ) + "/" + ARTIFACTID + "/" + fileName ); + metadata.getParentFile().mkdirs(); + + StringBuffer content = new StringBuffer(); + content.append( "\n" ); + content.append( " " + GROUPID + "\n" ); + content.append( " " + ARTIFACTID + "\n" ); + content.append( " \n" ); + content.append( " " + version + "\n" ); + content.append( " " + version + "\n" ); + content.append( " \n" ); + content.append( " " + OLD_VERSION + "\n" ); + content.append( " " + NEW_VERSION + "\n" ); + content.append( " \n" ); + content.append( " " + timestamp + "\n" ); + content.append( " \n" ); + content.append( "" ); + + FileUtils.fileWrite( metadata.getAbsolutePath(), content.toString() ); + } + + private static void writeArtifact( File repository, String version ) + throws IOException + { +/* + File artifact = new File( repository, GROUPID.replace( '.', '/' ) + "/" + ARTIFACTID + "/" + version + "/" + + ARTIFACTID + "-" + version + "." + TYPE ); + artifact.getParentFile().mkdirs(); + FileUtils.fileWrite( artifact.getAbsolutePath(), version ); + + StringBuffer content = new StringBuffer(); + content.append( "\n" ); + content.append( " 4.0.0\n" ); + content.append( " " + GROUPID + "\n" ); + content.append( " " + ARTIFACTID + "\n" ); + content.append( " " + version + "\n" ); + content.append( " maven-plugin\n" ); + content.append( "" ); + + artifact = new File( artifact.getParentFile(), ARTIFACTID + "-" + version + "." + POM_TYPE ); + FileUtils.fileWrite( artifact.getAbsolutePath(), content.toString() ); +*/ + } +} diff --git a/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0109SnapshotUpdateTest.java b/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0109SnapshotUpdateTest.java new file mode 100644 index 0000000000..e515b53030 --- /dev/null +++ b/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0109SnapshotUpdateTest.java @@ -0,0 +1,73 @@ +package org.apache.maven.integrationtests; + +/* + * Copyright 2004-2006 The Apache Software Foundation. + * + * 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. + */ + +import org.apache.maven.it.Verifier; +import org.apache.maven.it.util.FileUtils; +import org.apache.maven.it.util.ResourceExtractor; + +import java.io.File; + +/** + * Downloads a snapshot dependency that was deployed with uniqueVersion = false, and checks it can be + * updated. See MNG-1908. + */ +public class MavenIT0109SnapshotUpdateTest + extends AbstractMavenIntegrationTestCase +{ + + public void testSnapshotUpdated() + throws Exception + { + File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/it0108-snapshotUpdate" ); + Verifier verifier = new Verifier( testDir.getAbsolutePath() ); + verifier.deleteArtifact( "org.apache.maven", "maven-core-it-support", "1.0-SNAPSHOT", "jar" ); + + // create a repository (TODO: into verifier) + File repository = new File( testDir, "repository" ); + + repository.mkdirs(); + + // create artifact in repository (TODO: into verifier) + File artifact = new File( repository, + "org/apache/maven/maven-core-it-support/1.0-SNAPSHOT/maven-core-it-support-1.0-SNAPSHOT.jar" ); + artifact.getParentFile().mkdirs(); + FileUtils.fileWrite( artifact.getAbsolutePath(), "originalArtifact" ); + verifier.assertArtifactNotPresent( "org.apache.maven", "maven-core-it-support", "1.0-SNAPSHOT", "jar" ); + + verifier.executeGoal( "package" ); + + verifier.assertArtifactPresent( "org.apache.maven", "maven-core-it-support", "1.0-SNAPSHOT", "jar" ); + verifier.assertArtifactContents( "org.apache.maven", "maven-core-it-support", "1.0-SNAPSHOT", "jar", + "originalArtifact" ); + File localRepoFile = + new File( verifier.getArtifactPath( "org.apache.maven", "maven-core-it-support", "1.0-SNAPSHOT", "jar" ) ); + // set in the past to ensure it is downloaded + localRepoFile.setLastModified( System.currentTimeMillis() - 5000 ); + + FileUtils.fileWrite( artifact.getAbsolutePath(), "updatedArtifact" ); + + verifier.executeGoal( "package" ); + + verifier.assertArtifactPresent( "org.apache.maven", "maven-core-it-support", "1.0-SNAPSHOT", "jar" ); + verifier.assertArtifactContents( "org.apache.maven", "maven-core-it-support", "1.0-SNAPSHOT", "jar", + "updatedArtifact" ); + + verifier.verifyErrorFreeLog(); + verifier.resetStreams(); + } +} diff --git a/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0110PluginDependenciesComeFromPluginReposTest.java b/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0110PluginDependenciesComeFromPluginReposTest.java index d9d04445af..d0dc92cebf 100644 --- a/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0110PluginDependenciesComeFromPluginReposTest.java +++ b/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0110PluginDependenciesComeFromPluginReposTest.java @@ -5,22 +5,16 @@ import org.apache.maven.it.util.ResourceExtractor; import java.io.File; -/** #it0104 Commenting out, not fixed until post-2.0.4, due to dependency on new plexus-container-default version. */ public class MavenIT0110PluginDependenciesComeFromPluginReposTest extends AbstractMavenIntegrationTestCase { - - /** - * Verify that plugin configurations are resolved correctly, particularly - * when they contain ${project.build.directory} in the string value of a - * Map.Entry. - */ public void testit0110() throws Exception { File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/it0110-pluginDependenciesComeFromPluginRepos" ); Verifier verifier = new Verifier( testDir.getAbsolutePath() ); + verifier.deleteArtifact( "org.apache.maven.it", "mail", "1.3.2", "jar" ); verifier.executeGoal( "clean" ); verifier.verifyErrorFreeLog(); verifier.resetStreams(); diff --git a/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0111PluginsThatRequireAResourceFromAnExtensionTest.java b/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0111PluginsThatRequireAResourceFromAnExtensionTest.java index 15b4c0bdab..bbfca891d0 100644 --- a/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0111PluginsThatRequireAResourceFromAnExtensionTest.java +++ b/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenIT0111PluginsThatRequireAResourceFromAnExtensionTest.java @@ -1,29 +1,44 @@ package org.apache.maven.integrationtests; import java.io.File; +import java.util.List; +import java.util.ArrayList; import org.apache.maven.it.Verifier; import org.apache.maven.it.util.ResourceExtractor; -/** #it0104 Commenting out, not fixed until post-2.0.4, due to dependency on new plexus-container-default version. */ public class MavenIT0111PluginsThatRequireAResourceFromAnExtensionTest extends AbstractMavenIntegrationTestCase { - - /** - * Verify that plugin configurations are resolved correctly, particularly - * when they contain ${project.build.directory} in the string value of a - * Map.Entry. - */ public void testit0111() throws Exception { File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/it0111-pluginThatRequiresResourceFromAnExtension" ); - Verifier verifier = new Verifier( testDir.getAbsolutePath() ); + + Verifier verifier; + + // Install the parent POM + verifier = new Verifier( testDir.getAbsolutePath() ); + verifier.deleteArtifact( "org.apache.maven.its.it0111", "parent", "1.0", "pom" ); + verifier.deleteArtifact( "org.apache.maven.its.it0111", "checkstyle-test", "1.0", "jar" ); + verifier.deleteArtifact( "org.apache.maven.its.it0111", "checkstyle-assembly", "1.0", "jar" ); + List cliOptions = new ArrayList(); + cliOptions.add( "-N" ); verifier.executeGoal( "install" ); verifier.verifyErrorFreeLog(); verifier.resetStreams(); + // Install the extension with the resources required for the test + verifier = new Verifier( new File( testDir.getAbsolutePath(), "checkstyle-assembly" ).getAbsolutePath() ); + verifier.executeGoal( "install" ); + verifier.verifyErrorFreeLog(); + verifier.resetStreams(); + + // Run the whole test + verifier = new Verifier( new File( testDir.getAbsolutePath(), "checkstyle-test" ).getAbsolutePath() ); + verifier.executeGoal( "install" ); + verifier.verifyErrorFreeLog(); + verifier.resetStreams(); } } diff --git a/its/core-integration-tests/src/test/resources/it0110-pluginDependenciesComeFromPluginRepos/pom.xml b/its/core-integration-tests/src/test/resources/it0110-pluginDependenciesComeFromPluginRepos/pom.xml index 9c109d7c58..8d7e35756f 100644 --- a/its/core-integration-tests/src/test/resources/it0110-pluginDependenciesComeFromPluginRepos/pom.xml +++ b/its/core-integration-tests/src/test/resources/it0110-pluginDependenciesComeFromPluginRepos/pom.xml @@ -12,21 +12,21 @@ MNG-2539 + - diff --git a/its/core-integration-tests/src/test/resources/it0111-pluginThatRequiresResourceFromAnExtension/pom.xml b/its/core-integration-tests/src/test/resources/it0111-pluginThatRequiresResourceFromAnExtension/pom.xml index 14218e1963..353b74339c 100644 --- a/its/core-integration-tests/src/test/resources/it0111-pluginThatRequiresResourceFromAnExtension/pom.xml +++ b/its/core-integration-tests/src/test/resources/it0111-pluginThatRequiresResourceFromAnExtension/pom.xml @@ -5,8 +5,10 @@ pom 1 Checkstyle +