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
+