Author: bentmann Date: Wed Nov 11 15:45:06 2009 New Revision: 834918 URL: http://svn.apache.org/viewvc?rev=834918&view=rev Log: [MNG-4412] Make legacy entry points to repository system pick offline mode from session
o Extended IT Added: maven/core-integration-testing/trunk/core-it-support/core-it-plugins/maven-it-plugin-artifact/src/main/java/org/apache/maven/plugin/coreit/CollectMojo.java (with props) Modified: maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4412OfflineModeInPluginTest.java maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-4412/pom.xml Modified: maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4412OfflineModeInPluginTest.java URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4412OfflineModeInPluginTest.java?rev=834918&r1=834917&r2=834918&view=diff ============================================================================== --- maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4412OfflineModeInPluginTest.java (original) +++ maven/core-integration-testing/trunk/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4412OfflineModeInPluginTest.java Wed Nov 11 15:45:06 2009 @@ -42,7 +42,7 @@ * Verify that plugins using the 2.x style artifact resolver directly are subject to the offline mode of the * current Maven session. */ - public void testit() + public void testitResolver() throws Exception { File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-4412" ); @@ -52,9 +52,11 @@ verifier.deleteDirectory( "target" ); verifier.deleteArtifacts( "org.apache.maven.its.mng4412" ); verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() ); + verifier.getCliOptions().add( "-Presolver" ); verifier.getCliOptions().add( "--offline" ); verifier.getCliOptions().add( "-s" ); verifier.getCliOptions().add( "settings.xml" ); + verifier.setLogFileName( "log-resolver.txt" ); try { verifier.executeGoal( "validate" ); @@ -71,4 +73,30 @@ } } + /** + * Verify that plugins using the 2.x style artifact collector directly are subject to the offline mode of the + * current Maven session. + */ + public void testitCollector() + throws Exception + { + File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-4412" ); + + Verifier verifier = new Verifier( testDir.getAbsolutePath() ); + verifier.setAutoclean( false ); + verifier.deleteDirectory( "target" ); + verifier.deleteArtifacts( "org.apache.maven.its.mng4412" ); + verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() ); + verifier.getCliOptions().add( "-Pcollector" ); + verifier.getCliOptions().add( "--offline" ); + verifier.getCliOptions().add( "-s" ); + verifier.getCliOptions().add( "settings.xml" ); + verifier.setLogFileName( "log-collector.txt" ); + verifier.executeGoal( "validate" ); + verifier.verifyErrorFreeLog(); + verifier.resetStreams(); + + verifier.assertArtifactNotPresent( "org.apache.maven.its.mng4412", "dep", "0.1", "pom" ); + } + } Modified: maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-4412/pom.xml URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-4412/pom.xml?rev=834918&r1=834917&r2=834918&view=diff ============================================================================== --- maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-4412/pom.xml (original) +++ maven/core-integration-testing/trunk/core-it-suite/src/test/resources/mng-4412/pom.xml Wed Nov 11 15:45:06 2009 @@ -29,35 +29,70 @@ <name>Maven Integration Test :: MNG-4412</name> <description> - Verify that plugins using the 2.x style artifact resolver directly are subject to the offline mode of the - current Maven session. + Verify that plugins using the 2.x style artifact resolver/collector directly are subject to the offline mode of + the current Maven session. </description> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.its.plugins</groupId> - <artifactId>maven-it-plugin-artifact</artifactId> - <version>2.1-SNAPSHOT</version> - <executions> - <execution> - <id>test</id> - <phase>validate</phase> - <goals> - <goal>resolve</goal> - </goals> - <configuration> - <dependencies> - <dependency> - <groupId>org.apache.maven.its.mng4412</groupId> - <artifactId>dep</artifactId> - <version>0.1</version> - </dependency> - </dependencies> - </configuration> - </execution> - </executions> - </plugin> - </plugins> - </build> + <profiles> + <profile> + <id>resolver</id> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.its.plugins</groupId> + <artifactId>maven-it-plugin-artifact</artifactId> + <version>2.1-SNAPSHOT</version> + <executions> + <execution> + <id>test</id> + <phase>validate</phase> + <goals> + <goal>resolve</goal> + </goals> + <configuration> + <dependencies> + <dependency> + <groupId>org.apache.maven.its.mng4412</groupId> + <artifactId>dep</artifactId> + <version>0.1</version> + </dependency> + </dependencies> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + <profile> + <id>collector</id> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.its.plugins</groupId> + <artifactId>maven-it-plugin-artifact</artifactId> + <version>2.1-SNAPSHOT</version> + <executions> + <execution> + <id>test</id> + <phase>validate</phase> + <goals> + <goal>collect</goal> + </goals> + <configuration> + <dependencies> + <dependency> + <groupId>org.apache.maven.its.mng4412</groupId> + <artifactId>dep</artifactId> + <version>0.1</version> + </dependency> + </dependencies> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + </profiles> </project> Added: maven/core-integration-testing/trunk/core-it-support/core-it-plugins/maven-it-plugin-artifact/src/main/java/org/apache/maven/plugin/coreit/CollectMojo.java URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-it-support/core-it-plugins/maven-it-plugin-artifact/src/main/java/org/apache/maven/plugin/coreit/CollectMojo.java?rev=834918&view=auto ============================================================================== --- maven/core-integration-testing/trunk/core-it-support/core-it-plugins/maven-it-plugin-artifact/src/main/java/org/apache/maven/plugin/coreit/CollectMojo.java (added) +++ maven/core-integration-testing/trunk/core-it-support/core-it-plugins/maven-it-plugin-artifact/src/main/java/org/apache/maven/plugin/coreit/CollectMojo.java Wed Nov 11 15:45:06 2009 @@ -0,0 +1,137 @@ +package org.apache.maven.plugin.coreit; + +/* + * 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.artifact.Artifact; +import org.apache.maven.artifact.factory.ArtifactFactory; +import org.apache.maven.artifact.metadata.ArtifactMetadataSource; +import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.artifact.resolver.ArtifactCollector; +import org.apache.maven.model.Dependency; +import org.apache.maven.plugin.AbstractMojo; +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugin.MojoFailureException; + +import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Set; + +/** + * Collects user-specified artifacts. This mimics in part the Maven Assembly Plugin. + * + * @goal collect + * + * @author Benjamin Bentmann + * @version $Id$ + */ +public class CollectMojo + extends AbstractMojo +{ + + /** + * The local repository. + * + * @parameter default-value="${localRepository}" + * @readonly + * @required + */ + private ArtifactRepository localRepository; + + /** + * The remote repositories of the current Maven project. + * + * @parameter default-value="${project.remoteArtifactRepositories}" + * @readonly + * @required + */ + private List remoteRepositories; + + /** + * The artifact collector. + * + * @component + */ + private ArtifactCollector collector; + + /** + * The artifact factory. + * + * @component + */ + private ArtifactFactory factory; + + /** + * The metadata source. + * + * @component + */ + private ArtifactMetadataSource metadataSource; + + /** + * The dependencies to resolve. + * + * @parameter + */ + private Dependency[] dependencies; + + /** + * Runs this mojo. + * + * @throws MojoFailureException If the artifact file has not been set. + */ + public void execute() + throws MojoExecutionException, MojoFailureException + { + getLog().info( "[MAVEN-CORE-IT-LOG] Collecting artifacts" ); + + try + { + Artifact origin = factory.createArtifact( "it", "it", "0.1", null, "pom" ); + + Set artifacts = new LinkedHashSet(); + + if ( dependencies != null ) + { + for ( int i = 0; i < dependencies.length; i++ ) + { + Dependency dependency = dependencies[i]; + + Artifact artifact = + factory.createArtifactWithClassifier( dependency.getGroupId(), dependency.getArtifactId(), + dependency.getVersion(), dependency.getType(), + dependency.getClassifier() ); + + artifacts.add( artifact ); + + getLog().info( "[MAVEN-CORE-IT-LOG] Collecting " + artifact.getId() ); + } + } + + collector.collect( artifacts, origin, localRepository, remoteRepositories, metadataSource, null, + Collections.EMPTY_LIST ); + } + catch ( Exception e ) + { + throw new MojoExecutionException( "Failed to collect artifacts: " + e.getMessage(), e ); + } + } + +} Propchange: maven/core-integration-testing/trunk/core-it-support/core-it-plugins/maven-it-plugin-artifact/src/main/java/org/apache/maven/plugin/coreit/CollectMojo.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/core-integration-testing/trunk/core-it-support/core-it-plugins/maven-it-plugin-artifact/src/main/java/org/apache/maven/plugin/coreit/CollectMojo.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision