You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by br...@apache.org on 2005/07/26 11:05:01 UTC

svn commit: r225263 - in /maven/components/trunk: maven-artifact/src/main/java/org/apache/maven/artifact/handler/ maven-core-it-plugin/ maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/ maven-core-it-plugin/src/main/resources/META-INF/...

Author: brett
Date: Tue Jul 26 02:04:32 2005
New Revision: 225263

URL: http://svn.apache.org/viewcvs?rev=225263&view=rev
Log:
PR: MNG-598
implement ability to retrieve packaging handlers (lifecycle mappings) from extension plugins. Remove plugin mapping
metadata for the same
integration tests are in place for type handlers but commented out until implemented (41)

Added:
    maven/components/trunk/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/PackagingMojo.java   (with props)
    maven/components/trunk/maven-core-it-plugin/src/main/resources/META-INF/plexus/
    maven/components/trunk/maven-core-it-plugin/src/main/resources/META-INF/plexus/components.xml   (with props)
    maven/components/trunk/maven-core-it-support/1.2/
      - copied from r225236, maven/components/trunk/maven-core-it-support/1.1/
    maven/components/trunk/maven-core-it/it0040/   (with props)
    maven/components/trunk/maven-core-it/it0040/expected-results.txt   (with props)
    maven/components/trunk/maven-core-it/it0040/goals.txt   (with props)
    maven/components/trunk/maven-core-it/it0040/pom.xml   (with props)
    maven/components/trunk/maven-core-it/it0041/   (with props)
    maven/components/trunk/maven-core-it/it0041/expected-results.txt   (with props)
    maven/components/trunk/maven-core-it/it0041/goals.txt   (with props)
    maven/components/trunk/maven-core-it/it0041/pom.xml   (with props)
    maven/components/trunk/maven-core-it/it1009/
    maven/components/trunk/maven-core-it/it1009/goals.txt   (with props)
    maven/components/trunk/maven-core-it/it1009/pom.xml   (with props)
    maven/components/trunk/maven-core-it/it1010/
    maven/components/trunk/maven-core-it/it1010/goals.txt   (with props)
    maven/components/trunk/maven-core-it/it1010/pom.xml   (with props)
Modified:
    maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/handler/ArtifactHandler.java
    maven/components/trunk/maven-core-it-plugin/pom.xml
    maven/components/trunk/maven-core-it-support/1.2/pom.xml
    maven/components/trunk/maven-core-it/README.txt
    maven/components/trunk/maven-core-it/integration-tests.txt
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
    maven/components/trunk/maven-model/maven.mdo
    maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/PluginMappingManager.java
    maven/components/trunk/maven-plugin-mapping/src/main/mdo/plugins.mdo
    maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/metadata/AbstractPluginMappingMojo.java

Modified: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/handler/ArtifactHandler.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/handler/ArtifactHandler.java?rev=225263&r1=225262&r2=225263&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/handler/ArtifactHandler.java (original)
+++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/handler/ArtifactHandler.java Tue Jul 26 02:04:32 2005
@@ -22,7 +22,7 @@
  */
 public interface ArtifactHandler
 {
-    static String ROLE = ArtifactHandler.class.getName();
+    String ROLE = ArtifactHandler.class.getName();
 
     String getExtension();
 

Modified: maven/components/trunk/maven-core-it-plugin/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it-plugin/pom.xml?rev=225263&r1=225262&r2=225263&view=diff
==============================================================================
--- maven/components/trunk/maven-core-it-plugin/pom.xml (original)
+++ maven/components/trunk/maven-core-it-plugin/pom.xml Tue Jul 26 02:04:32 2005
@@ -23,6 +23,11 @@
       <version>2.0-beta-1-SNAPSHOT</version>
     </dependency>
     <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-archiver</artifactId>
+      <version>2.0-beta-1-SNAPSHOT</version>
+    </dependency>
+    <dependency>
       <groupId>jline</groupId>
       <artifactId>jline</artifactId>
       <version>0.9.1</version>

Added: maven/components/trunk/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/PackagingMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/PackagingMojo.java?rev=225263&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/PackagingMojo.java (added)
+++ maven/components/trunk/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/PackagingMojo.java Tue Jul 26 02:04:32 2005
@@ -0,0 +1,75 @@
+package org.apache.maven.plugin.coreit;
+
+/*
+ * Copyright 2001-2005 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.archiver.MavenArchiver;
+import org.apache.maven.archiver.MavenArchiveConfiguration;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.project.MavenProject;
+
+import java.io.File;
+
+/**
+ * @author <a href="brett@apache.org">Brett Porter</a>
+ * @version $Id$
+ * @goal package
+ */
+public class PackagingMojo
+    extends AbstractMojo
+{
+    
+    /**
+     * @parameter expression="${project}"
+     * @required
+     */
+    private MavenProject project;
+
+    /**
+     * @parameter expression="${project.build.finalName}"
+     * @required
+     */
+    private String finalName;
+
+    /**
+     * @parameter expression="${project.build.directory}"
+     * @required
+     * @readonly
+     */
+    private String outputDirectory;
+
+    public void execute()
+        throws MojoExecutionException
+    {
+        File jarFile = new File( outputDirectory, finalName + "-it.jar" );
+
+        MavenArchiver archiver = new MavenArchiver();
+
+        archiver.setOutputFile( jarFile );
+
+        try
+        {
+            archiver.createArchive( project, new MavenArchiveConfiguration() );
+        }
+        catch ( Exception e )
+        {
+            // TODO: improve error handling
+            throw new MojoExecutionException( "Error assembling JAR", e );
+        }
+    }
+
+}

Propchange: maven/components/trunk/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/PackagingMojo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it-plugin/src/main/java/org/apache/maven/plugin/coreit/PackagingMojo.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it-plugin/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it-plugin/src/main/resources/META-INF/plexus/components.xml?rev=225263&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it-plugin/src/main/resources/META-INF/plexus/components.xml (added)
+++ maven/components/trunk/maven-core-it-plugin/src/main/resources/META-INF/plexus/components.xml Tue Jul 26 02:04:32 2005
@@ -0,0 +1,29 @@
+<component-set>
+  <components>
+    <component>
+      <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
+      <role-hint>coreit-packaging</role-hint>
+      <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
+      <configuration>
+        <!-- START SNIPPET: plexus-application-lifecycle -->
+        <phases>
+          <package>core-it:package</package>
+          <install>install:install</install>
+          <deploy>deploy:deploy</deploy>
+        </phases>
+        <!-- END SNIPPET: plexus-application-lifecycle -->
+      </configuration>
+    </component>
+    <component>
+      <role>org.apache.maven.artifact.handler.ArtifactHandler</role>
+      <role-hint>coreit-artifact</role-hint>
+      <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation>
+      <configuration>
+        <type>coreit-artifact</type>
+        <extension>jar</extension>
+        <packaginge>coreit-packaging</packaginge>
+        <classifier>it</classifier>
+      </configuration>
+    </component>
+  </components>
+</component-set>

Propchange: maven/components/trunk/maven-core-it-plugin/src/main/resources/META-INF/plexus/components.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it-plugin/src/main/resources/META-INF/plexus/components.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/components/trunk/maven-core-it-support/1.2/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it-support/1.2/pom.xml?rev=225263&r1=225236&r2=225263&view=diff
==============================================================================
--- maven/components/trunk/maven-core-it-support/1.2/pom.xml (original)
+++ maven/components/trunk/maven-core-it-support/1.2/pom.xml Tue Jul 26 02:04:32 2005
@@ -3,8 +3,8 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.apache.maven</groupId>
   <artifactId>maven-core-it-support</artifactId>
-  <packaging>jar</packaging>
-  <version>1.1</version>
+  <packaging>coreit-packaging</packaging>
+  <version>1.2</version>
   <distributionManagement>
     <repository>
       <id>repo1</id>
@@ -12,4 +12,14 @@
       <url>scp://repo1.maven.org/home/projects/maven/repository-staging/to-ibiblio/maven2</url>
     </repository>
   </distributionManagement>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-core-it-plugin</artifactId>
+        <version>1.0-SNAPSHOT</version>
+        <extensions>true</extensions>
+      </plugin>
+    </plugins>
+  </build>
 </model>

Modified: maven/components/trunk/maven-core-it/README.txt
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/README.txt?rev=225263&r1=225262&r2=225263&view=diff
==============================================================================
--- maven/components/trunk/maven-core-it/README.txt (original)
+++ maven/components/trunk/maven-core-it/README.txt Tue Jul 26 02:04:32 2005
@@ -116,6 +116,10 @@
         pom.xml. The release-pom.xml file should be chosen above pom.xml for
         these projects in the build.
 
+it0040: Test the use of a packaging from a plugin
+
+it0041: Test the use of a new type from a plugin
+
 -------------------------------------------------------------------------------
 
 - generated sources
@@ -165,5 +169,9 @@
 -------------------------------------------------------------------------------
 it1008: Should fail due to requiring a version range for junit that doesn't exist
         in the repository. Currently succeeds (MNG-614)
+-------------------------------------------------------------------------------
+it1009: Tests packaging from a plugin fails when extensions is not true.
+-------------------------------------------------------------------------------
+it1010: Tests a type from a plugin fails when extensions is not true.
 -------------------------------------------------------------------------------
 

Modified: maven/components/trunk/maven-core-it/integration-tests.txt
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/integration-tests.txt?rev=225263&r1=225262&r2=225263&view=diff
==============================================================================
--- maven/components/trunk/maven-core-it/integration-tests.txt (original)
+++ maven/components/trunk/maven-core-it/integration-tests.txt Tue Jul 26 02:04:32 2005
@@ -1,3 +1,5 @@
+#it0041
+it0040
 it0039
 it0038
 it0037

Propchange: maven/components/trunk/maven-core-it/it0040/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Jul 26 02:04:32 2005
@@ -0,0 +1,2 @@
+log.txt
+target

Added: maven/components/trunk/maven-core-it/it0040/expected-results.txt
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0040/expected-results.txt?rev=225263&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0040/expected-results.txt (added)
+++ maven/components/trunk/maven-core-it/it0040/expected-results.txt Tue Jul 26 02:04:32 2005
@@ -0,0 +1 @@
+target/maven-core-it0040-1.0-it.jar

Propchange: maven/components/trunk/maven-core-it/it0040/expected-results.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it0040/expected-results.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it0040/goals.txt
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0040/goals.txt?rev=225263&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0040/goals.txt (added)
+++ maven/components/trunk/maven-core-it/it0040/goals.txt Tue Jul 26 02:04:32 2005
@@ -0,0 +1 @@
+package

Propchange: maven/components/trunk/maven-core-it/it0040/goals.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it0040/goals.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it0040/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0040/pom.xml?rev=225263&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0040/pom.xml (added)
+++ maven/components/trunk/maven-core-it/it0040/pom.xml Tue Jul 26 02:04:32 2005
@@ -0,0 +1,17 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven</groupId>
+  <artifactId>maven-core-it0040</artifactId>
+  <packaging>coreit-packaging</packaging>
+  <version>1.0</version>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-core-it-plugin</artifactId>
+        <version>1.0-SNAPSHOT</version>
+        <extensions>true</extensions>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Propchange: maven/components/trunk/maven-core-it/it0040/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it0040/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Propchange: maven/components/trunk/maven-core-it/it0041/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Jul 26 02:04:32 2005
@@ -0,0 +1,2 @@
+log.txt
+target

Added: maven/components/trunk/maven-core-it/it0041/expected-results.txt
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0041/expected-results.txt?rev=225263&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0041/expected-results.txt (added)
+++ maven/components/trunk/maven-core-it/it0041/expected-results.txt Tue Jul 26 02:04:32 2005
@@ -0,0 +1 @@
+target/maven-core-it0036-1.0.jar

Propchange: maven/components/trunk/maven-core-it/it0041/expected-results.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it0041/expected-results.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it0041/goals.txt
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0041/goals.txt?rev=225263&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0041/goals.txt (added)
+++ maven/components/trunk/maven-core-it/it0041/goals.txt Tue Jul 26 02:04:32 2005
@@ -0,0 +1 @@
+package

Propchange: maven/components/trunk/maven-core-it/it0041/goals.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it0041/goals.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it0041/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0041/pom.xml?rev=225263&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0041/pom.xml (added)
+++ maven/components/trunk/maven-core-it/it0041/pom.xml Tue Jul 26 02:04:32 2005
@@ -0,0 +1,24 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven</groupId>
+  <artifactId>maven-core-it0041</artifactId>
+  <version>1.0-SNAPSHOT</version>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-core-it-support</artifactId>
+      <version>1.2</version>
+      <type>coreit-artifact</type>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-core-it-plugin</artifactId>
+        <version>1.0-SNAPSHOT</version>
+        <extensions>true</extensions>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Propchange: maven/components/trunk/maven-core-it/it0041/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it0041/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it1009/goals.txt
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it1009/goals.txt?rev=225263&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it1009/goals.txt (added)
+++ maven/components/trunk/maven-core-it/it1009/goals.txt Tue Jul 26 02:04:32 2005
@@ -0,0 +1 @@
+package

Propchange: maven/components/trunk/maven-core-it/it1009/goals.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it1009/goals.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it1009/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it1009/pom.xml?rev=225263&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it1009/pom.xml (added)
+++ maven/components/trunk/maven-core-it/it1009/pom.xml Tue Jul 26 02:04:32 2005
@@ -0,0 +1,16 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven</groupId>
+  <artifactId>maven-core-it1009</artifactId>
+  <packaging>coreit-packaging</packaging>
+  <version>1.0-SNAPSHOT</version>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-core-it-plugin</artifactId>
+        <version>1.0-SNAPSHOT</version>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Propchange: maven/components/trunk/maven-core-it/it1009/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it1009/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it1010/goals.txt
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it1010/goals.txt?rev=225263&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it1010/goals.txt (added)
+++ maven/components/trunk/maven-core-it/it1010/goals.txt Tue Jul 26 02:04:32 2005
@@ -0,0 +1 @@
+package

Propchange: maven/components/trunk/maven-core-it/it1010/goals.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it1010/goals.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-core-it/it1010/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it1010/pom.xml?rev=225263&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it1010/pom.xml (added)
+++ maven/components/trunk/maven-core-it/it1010/pom.xml Tue Jul 26 02:04:32 2005
@@ -0,0 +1,23 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven</groupId>
+  <artifactId>maven-core-it1010</artifactId>
+  <version>1.0-SNAPSHOT</version>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-core-it-support</artifactId>
+      <version>1.2</version>
+      <type>coreit-artifact</type>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-core-it-plugin</artifactId>
+        <version>1.0-SNAPSHOT</version>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Propchange: maven/components/trunk/maven-core-it/it1010/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-core-it/it1010/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=225263&r1=225262&r2=225263&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java Tue Jul 26 02:04:32 2005
@@ -17,7 +17,6 @@
  */
 
 import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.metadata.RepositoryMetadataManagementException;
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.execution.MavenExecutionResponse;
 import org.apache.maven.execution.MavenSession;
@@ -37,8 +36,6 @@
 import org.apache.maven.plugin.lifecycle.Lifecycle;
 import org.apache.maven.plugin.lifecycle.Phase;
 import org.apache.maven.plugin.mapping.MavenPluginMappingBuilder;
-import org.apache.maven.plugin.mapping.PluginMappingManagementException;
-import org.apache.maven.plugin.mapping.PluginMappingManager;
 import org.apache.maven.plugin.version.PluginVersionResolutionException;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.injection.ModelDefaultsInjector;
@@ -287,106 +284,71 @@
     }
 
     private Map findMappingsForLifecycle( MavenSession session, MavenProject project )
-        throws LifecycleExecutionException
+        throws ArtifactResolutionException, LifecycleExecutionException
     {
-        Map mappings;
-
         String packaging = project.getPackaging();
-        try
-        {
-            PluginMappingManager mappingManager = getPluginMappingManager( session, project );
-
-            Plugin pluginContainingLifecycleMapping = mappingManager.getByPackaging( packaging );
-
-            LifecycleMapping m;
-
-            if ( pluginContainingLifecycleMapping != null )
-            {
-                try
-                {
-                    pluginManager.verifyPlugin( pluginContainingLifecycleMapping, project, session.getSettings(),
-                                                session.getLocalRepository() );
-
-                    m = (LifecycleMapping) pluginManager.getPluginComponent( pluginContainingLifecycleMapping,
-                                                                             LifecycleMapping.ROLE, packaging );
-
-                    mappings = m.getPhases();
-                }
-                catch ( ComponentLookupException e )
-                {
-                    throw new LifecycleExecutionException( "Plugin: " + pluginContainingLifecycleMapping.getKey() +
-                        " declares lifecycle mapping for: \'" + packaging +
-                        "\', but does not appear to contain the actual mapping among its component descriptors.", e );
-                }
-            }
-            else
-            {
-                try
-                {
-                    m = (LifecycleMapping) session.lookup( LifecycleMapping.ROLE, packaging );
+        LifecycleMapping m;
 
-                    mappings = m.getPhases();
-                }
-                catch ( ComponentLookupException e )
-                {
-                    getLogger().warn(
-                        "Lifecycle mappings not found for packaging: \'" + packaging + "\'. Using defaults." );
-
-                    getLogger().debug( "Lifecycle mappings not found for packaging: \'" + packaging + "\'.", e );
-
-                    mappings = defaultPhases;
-                }
-            }
-        }
-        catch ( ArtifactResolutionException e )
+        try
         {
-            throw new LifecycleExecutionException(
-                "Cannot load plugin which defines lifecycle mappings for: \'" + packaging + "\'.", e );
+            m = (LifecycleMapping) findExtension( project, LifecycleMapping.ROLE, packaging, session.getSettings(),
+                                                  session.getLocalRepository() );
         }
         catch ( PluginVersionResolutionException e )
         {
             throw new LifecycleExecutionException(
-                "Cannot load plugin which defines lifecycle mappings for: \'" + packaging + "\'.", e );
+                "Cannot load extension plugin obtaining lifecycle mappings for: \'" + packaging + "\'.", e );
         }
         catch ( PluginManagerException e )
         {
-            throw new LifecycleExecutionException( "Cannot load lifecycle mappings.", e );
+            throw new LifecycleExecutionException(
+                "Cannot load extension plugin obtaining lifecycle mappings for: \'" + packaging + "\'.", e );
         }
 
-        return mappings;
-    }
-
-    private PluginMappingManager getPluginMappingManager( MavenSession session, MavenProject project )
-        throws LifecycleExecutionException
-    {
-        PluginMappingManager mappingManager = session.getPluginMappingManager();
-
-        // don't reassemble the plugin mappings if the session has already been configured with them.
-        if ( mappingManager == null )
+        if ( m == null )
         {
             try
             {
-                List pluginGroupIds = session.getSettings().getPluginGroups();
-                List pluginRepositories = project.getPluginArtifactRepositories();
-                ArtifactRepository localRepository = session.getLocalRepository();
-
-                mappingManager = pluginMappingBuilder.loadPluginMappings( pluginGroupIds, pluginRepositories,
-                                                                          localRepository );
-
-                // lazily configure this on the session.
-                session.setPluginMappingManager( mappingManager );
+                m = (LifecycleMapping) session.lookup( LifecycleMapping.ROLE, packaging );
             }
-            catch ( RepositoryMetadataManagementException e )
+            catch ( ComponentLookupException e )
             {
-                throw new LifecycleExecutionException( "Cannot load plugin mappings.", e );
+                getLogger().warn(
+                    "Lifecycle mappings not found for packaging: \'" + packaging + "\'. Using defaults." );
+
+                getLogger().debug( "Lifecycle mappings not found for packaging: \'" + packaging + "\'.", e );
+
+                return defaultPhases;
             }
-            catch ( PluginMappingManagementException e )
+        }
+
+        return m.getPhases();
+    }
+
+    private Object findExtension( MavenProject project, String role, String roleHint, Settings settings,
+                                  ArtifactRepository localRepository )
+        throws ArtifactResolutionException, PluginManagerException, PluginVersionResolutionException
+    {
+        for ( Iterator i = project.getBuildPlugins().iterator(); i.hasNext(); )
+        {
+            Plugin plugin = (Plugin) i.next();
+
+            if ( plugin.isExtensions() )
             {
-                throw new LifecycleExecutionException( "Cannot load plugin mappings.", e );
+                pluginManager.verifyPlugin( plugin, project, settings, localRepository );
+
+                // TODO: if moved to the plugin manager we already have the descriptor from above and so do can lookup the container directly
+                try
+                {
+                    return pluginManager.getPluginComponent( plugin, role, roleHint );
+                }
+                catch ( ComponentLookupException e )
+                {
+                    getLogger().debug( "Unable to find the lifecycle component in the extension", e );
+                }
             }
         }
-
-        return mappingManager;
+        return null;
     }
 
     /**

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=225263&r1=225262&r2=225263&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java Tue Jul 26 02:04:32 2005
@@ -617,20 +617,20 @@
                 if ( resourceUrl == null )
                 {
                     artifactResolver.resolve( artifact, unresolved, localRepository );
-                    
+
                     artifactFile = artifact.getFile();
                 }
                 else
                 {
                     String artifactPath = resourceUrl.getPath();
-                    
+
                     if ( artifactPath.startsWith( "file:" ) )
                     {
                         artifactPath = artifactPath.substring( "file:".length() );
                     }
 
                     artifactPath = artifactPath.substring( 0, artifactPath.length() - resource.length() );
-                    
+
                     if ( artifactPath.endsWith( "/" ) )
                     {
                         artifactPath = artifactPath.substring( 0, artifactPath.length() - 1 );

Modified: maven/components/trunk/maven-model/maven.mdo
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-model/maven.mdo?rev=225263&r1=225262&r2=225263&view=diff
==============================================================================
--- maven/components/trunk/maven-model/maven.mdo (original)
+++ maven/components/trunk/maven-model/maven.mdo Tue Jul 26 02:04:32 2005
@@ -2229,6 +2229,13 @@
           <type>String</type>
         </field>
         <field>
+          <name>extensions</name>
+          <version>4.0.0</version>
+          <type>boolean</type>
+          <description>Whether to load Maven extensions (such as packaging and type handlers) from this plugin</description>
+          <defaultValue>false</defaultValue>
+        </field>
+        <field>
           <name>executions</name>
           <version>4.0.0</version>
           <description>Multiple specifications of a set of goals, each having (possibly) different

Modified: maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/PluginMappingManager.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/PluginMappingManager.java?rev=225263&r1=225262&r2=225263&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/PluginMappingManager.java (original)
+++ maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/PluginMappingManager.java Tue Jul 26 02:04:32 2005
@@ -26,15 +26,12 @@
 
 public class PluginMappingManager
 {
-
     private List mappings = new ArrayList();
 
     private boolean refreshed;
 
     private Map pluginDefinitionsByPrefix = new HashMap();
 
-    private Map pluginDefinitionsByPackaging = new HashMap();
-
     public void addPluginMap( PluginMap pluginMap )
     {
         mappings.add( pluginMap );
@@ -65,7 +62,6 @@
 
     private void clearCache()
     {
-        this.pluginDefinitionsByPackaging = null;
         this.pluginDefinitionsByPrefix = null;
     }
 
@@ -79,51 +75,6 @@
         }
 
         return (Plugin) pluginDefinitionsByPrefix.get( pluginPrefix );
-    }
-
-    public Plugin getByPackaging( String packaging )
-    {
-        synchronized ( this ) {
-            if ( pluginDefinitionsByPackaging == null )
-            {
-                calculatePluginDefinitionsByPackaging();
-            }
-        }
-
-        return (Plugin) pluginDefinitionsByPackaging.get( packaging );
-    }
-
-    private void calculatePluginDefinitionsByPackaging()
-    {
-        pluginDefinitionsByPackaging = new HashMap();
-
-        for ( Iterator it = mappings.iterator(); it.hasNext(); )
-        {
-            PluginMap pluginMap = (PluginMap) it.next();
-
-            String groupId = pluginMap.getGroupId();
-
-            for ( Iterator pluginIterator = pluginMap.getPlugins().iterator(); pluginIterator.hasNext(); )
-            {
-                MappedPlugin mapping = (MappedPlugin) pluginIterator.next();
-
-                String artifactId = mapping.getArtifactId();
-
-                Plugin plugin = new Plugin();
-
-                plugin.setGroupId( groupId );
-
-                plugin.setArtifactId( artifactId );
-
-                for ( Iterator packagingIterator = mapping.getPackagingHandlers().iterator();
-                      packagingIterator.hasNext(); )
-                {
-                    String packaging = (String) packagingIterator.next();
-
-                    pluginDefinitionsByPackaging.put( packaging, plugin );
-                }
-            }
-        }
     }
 
     private void calculatePluginDefinitionsByPrefix()

Modified: maven/components/trunk/maven-plugin-mapping/src/main/mdo/plugins.mdo
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-mapping/src/main/mdo/plugins.mdo?rev=225263&r1=225262&r2=225263&view=diff
==============================================================================
--- maven/components/trunk/maven-plugin-mapping/src/main/mdo/plugins.mdo (original)
+++ maven/components/trunk/maven-plugin-mapping/src/main/mdo/plugins.mdo Tue Jul 26 02:04:32 2005
@@ -53,6 +53,7 @@
           <version>1.0.0</version>
           <description>The plugin artifactId</description>
         </field>
+        <!-- TODO: deprecated: remove -->
         <field>
           <name>packagingHandlers</name>
           <version>1.0.0</version>

Modified: maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/metadata/AbstractPluginMappingMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/metadata/AbstractPluginMappingMojo.java?rev=225263&r1=225262&r2=225263&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/metadata/AbstractPluginMappingMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/metadata/AbstractPluginMappingMojo.java Tue Jul 26 02:04:32 2005
@@ -1,9 +1,24 @@
 package org.apache.maven.plugin.plugin.metadata;
 
+/*
+ * Copyright 2001-2005 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.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.metadata.RepositoryMetadata;
 import org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager;
-import org.apache.maven.lifecycle.mapping.LifecycleMapping;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
@@ -12,20 +27,9 @@
 import org.apache.maven.plugin.mapping.io.xpp3.PluginMappingXpp3Reader;
 import org.apache.maven.plugin.mapping.io.xpp3.PluginMappingXpp3Writer;
 import org.apache.maven.project.MavenProject;
-import org.codehaus.classworlds.ClassRealm;
-import org.codehaus.classworlds.ClassWorld;
-import org.codehaus.classworlds.DuplicateRealmException;
-import org.codehaus.plexus.component.discovery.ComponentDiscoverer;
 import org.codehaus.plexus.component.discovery.ComponentDiscovererManager;
 import org.codehaus.plexus.component.discovery.ComponentDiscoveryEvent;
 import org.codehaus.plexus.component.discovery.ComponentDiscoveryListener;
-import org.codehaus.plexus.component.discovery.DefaultComponentDiscoverer;
-import org.codehaus.plexus.component.discovery.PlexusXmlComponentDiscoverer;
-import org.codehaus.plexus.component.repository.ComponentDescriptor;
-import org.codehaus.plexus.component.repository.ComponentSetDescriptor;
-import org.codehaus.plexus.configuration.PlexusConfigurationException;
-import org.codehaus.plexus.context.Context;
-import org.codehaus.plexus.context.DefaultContext;
 import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
@@ -36,8 +40,6 @@
 import java.io.IOException;
 import java.io.Reader;
 import java.io.Writer;
-import java.net.MalformedURLException;
-import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
@@ -166,8 +168,6 @@
 
             mappedPlugin.setPrefix( getGoalPrefix() );
 
-            mappedPlugin.setPackagingHandlers( extractPackagingHandlers() );
-
             pluginMap.addPlugin( mappedPlugin );
 
             Writer writer = null;
@@ -203,80 +203,6 @@
         return shouldUpdate;
     }
 
-    private List extractPackagingHandlers()
-        throws MojoExecutionException
-    {
-        List packagingHandlers = new ArrayList();
-
-        Context ctx = new DefaultContext();
-
-        ClassWorld discoveryWorld = new ClassWorld();
-
-        try
-        {
-            ClassRealm discoveryRealm = discoveryWorld.newRealm( "packageHandler-discovery" );
-
-            File classDir = new File( classesDirectory ).getAbsoluteFile();
-
-            discoveryRealm.addConstituent( classDir.toURL() );
-
-            packagingHandlers
-                .addAll( discoverLifecycleMappings( ctx, discoveryRealm, new DefaultComponentDiscoverer() ) );
-
-            packagingHandlers.addAll( discoverLifecycleMappings( ctx, discoveryRealm,
-                                                                 new PlexusXmlComponentDiscoverer() ) );
-        }
-        catch ( DuplicateRealmException e )
-        {
-            throw new MojoExecutionException( "Error constructing class-realm for lifecycle-mapping detection.", e );
-        }
-        catch ( MalformedURLException e )
-        {
-            throw new MojoExecutionException( "Error constructing class-realm for lifecycle-mapping detection.", e );
-        }
-        catch ( PlexusConfigurationException e )
-        {
-            throw new MojoExecutionException( "Error detecting lifecycle-mappings.", e );
-        }
-
-        return packagingHandlers;
-    }
-
-    private List discoverLifecycleMappings( Context ctx, ClassRealm discoveryRealm, ComponentDiscoverer discoverer )
-        throws PlexusConfigurationException
-    {
-        discoverer.setManager( new DummyComponentDiscovererManager() );
-
-        List packagingHandlers = new ArrayList();
-
-        List componentSetDescriptors = discoverer.findComponents( ctx, discoveryRealm );
-
-        if ( componentSetDescriptors != null )
-        {
-            for ( Iterator it = componentSetDescriptors.iterator(); it.hasNext(); )
-            {
-                ComponentSetDescriptor setDescriptor = (ComponentSetDescriptor) it.next();
-
-                List components = setDescriptor.getComponents();
-
-                if ( components != null )
-                {
-                    for ( Iterator componentIterator = components.iterator(); componentIterator.hasNext(); )
-                    {
-                        ComponentDescriptor descriptor = (ComponentDescriptor) componentIterator.next();
-
-                        if ( LifecycleMapping.ROLE.equals( descriptor.getRole() ) )
-                        {
-                            packagingHandlers.add( descriptor.getRoleHint() );
-                        }
-                    }
-                }
-            }
-        }
-
-        return packagingHandlers;
-    }
-
     private String getGoalPrefix()
     {
         if ( goalPrefix == null )
@@ -285,41 +211,5 @@
         }
 
         return goalPrefix;
-    }
-
-    public static class DummyComponentDiscovererManager
-        implements ComponentDiscovererManager
-    {
-
-        DummyComponentDiscovererManager()
-        {
-        }
-
-        public List getComponentDiscoverers()
-        {
-            return null;
-        }
-
-        public void registerComponentDiscoveryListener( ComponentDiscoveryListener listener )
-        {
-        }
-
-        public void removeComponentDiscoveryListener( ComponentDiscoveryListener listener )
-        {
-        }
-
-        public void fireComponentDiscoveryEvent( ComponentDiscoveryEvent event )
-        {
-        }
-
-        public void initialize()
-        {
-        }
-
-        public List getListenerDescriptors()
-        {
-            return null;
-        }
-
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org