Author: brett
Date: Sat Oct  1 00:10:39 2005
New Revision: 292935

URL: http://svn.apache.org/viewcvs?rev=292935&view=rev
Log:
PR: MNG-1057
look for command line goals in the project declared plugins

Modified:
    
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-core/src/main/java/org/apache/maven/plugin/PluginManager.java

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=292935&r1=292934&r2=292935&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
 Sat Oct  1 00:10:39 2005
@@ -1144,14 +1144,14 @@
         StringTokenizer tok = new StringTokenizer( task, ":" );
         int numTokens = tok.countTokens();
 
-        // TODO: Add "&& canUsePrefix" to this boolean expression, and remove 
deprecation warning in next release.
         if ( numTokens == 2 )
         {
             if ( !canUsePrefix )
             {
-                getLogger().warn(
-                    "DEPRECATED: Mapped-prefix lookup of mojos are only 
supported from direct invocation. Please use specification of the form 
groupId:artifactId[:version]:goal instead. (Offending mojo: \'" +
-                        task + "\', invoked via: \'" + invokedVia + "\')" );
+                String msg = "DEPRECATED: Mapped-prefix lookup of mojos are 
only supported from direct invocation. " +
+                    "Please use specification of the form 
groupId:artifactId[:version]:goal instead. " +
+                    "(Offending mojo: \'" + task + "\', invoked via: \'" + 
invokedVia + "\')";
+                throw new LifecycleExecutionException( msg );
             }
 
             String prefix = tok.nextToken();
@@ -1159,16 +1159,9 @@
 
             // Steps for retrieving the plugin model instance:
             // 1. request directly from the plugin collector by prefix
-            try
-            {
-                pluginDescriptor = pluginManager.getPluginDescriptorForPrefix( 
prefix );
-            }
-            catch ( PluginManagerException e )
-            {
-                throw new LifecycleExecutionException(
-                    "Cannot resolve plugin-prefix: \'" + prefix + "\' from 
plugin collector.", e );
-            }
+            pluginDescriptor = pluginManager.getPluginDescriptorForPrefix( 
prefix );
 
+            // 2. look in the repository via search groups
             if ( pluginDescriptor == null )
             {
                 try
@@ -1181,8 +1174,7 @@
                         "Cannot resolve plugin-prefix: \'" + prefix + "\' from 
plugin mappings metadata.", e );
                 }
             }
-
-            if ( pluginDescriptor != null )
+            else
             {
                 plugin = new Plugin();
 
@@ -1191,7 +1183,34 @@
                 plugin.setVersion( pluginDescriptor.getVersion() );
             }
 
-            // 2. default to o.a.m.plugins and maven-<prefix>-plugin
+            // 3. search plugins in the current POM
+            if ( plugin == null )
+            {
+                for ( Iterator i = project.getBuildPlugins().iterator(); 
i.hasNext(); )
+                {
+                    Plugin buildPlugin = (Plugin) i.next();
+
+                    try
+                    {
+                        PluginDescriptor desc = pluginManager.verifyPlugin( 
buildPlugin, project, session.getSettings(),
+                                                                            
session.getLocalRepository() );
+                        if ( prefix.equals( desc.getGoalPrefix() ) )
+                        {
+                            plugin = buildPlugin;
+                        }
+                    }
+                    catch ( PluginManagerException e )
+                    {
+                        throw new LifecycleExecutionException( "Internal error 
in the plugin manager", e );
+                    }
+                    catch ( PluginVersionResolutionException e )
+                    {
+                        throw new LifecycleExecutionException( "Error 
resolving plugin version", e );
+                    }
+                }
+            }
+
+            // 4. default to o.a.m.plugins and maven-<prefix>-plugin
             if ( plugin == null )
             {
                 plugin = new Plugin();

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=292935&r1=292934&r2=292935&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
 Sat Oct  1 00:10:39 2005
@@ -131,7 +131,6 @@
     // ----------------------------------------------------------------------
 
     public PluginDescriptor getPluginDescriptorForPrefix( String prefix )
-        throws PluginManagerException
     {
         return pluginCollector.getPluginDescriptorForPrefix( prefix );
     }
@@ -310,18 +309,20 @@
         throws ArtifactResolutionException, PluginManagerException, 
MojoExecutionException
     {
         MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
-        
+
         // NOTE: I'm putting these checks in here, since this is the central 
point of access for 
         // anything that wants to execute a mojo.
-        if( mojoDescriptor.isProjectRequired() && 
!session.isUsingPOMsFromFilesystem() )
+        if ( mojoDescriptor.isProjectRequired() && 
!session.isUsingPOMsFromFilesystem() )
         {
-            throw new MojoExecutionException( "Cannot execute mojo: " + 
mojoDescriptor.getGoal() + ". It requires a project, but the build is not using 
one." ); 
+            throw new MojoExecutionException( "Cannot execute mojo: " + 
mojoDescriptor.getGoal() +
+                ". It requires a project, but the build is not using one." );
         }
-        
+
         if ( mojoDescriptor.isOnlineRequired() && 
session.getSettings().isOffline() )
         {
             // TODO: Should we error out, or simply warn and skip??
-            throw new MojoExecutionException( "Mojo: " + 
mojoDescriptor.getGoal() + " requires online mode for execution. Maven is 
currently offline." );
+            throw new MojoExecutionException( "Mojo: " + 
mojoDescriptor.getGoal() +
+                " requires online mode for execution. Maven is currently 
offline." );
         }
 
         if ( mojoDescriptor.isDependencyResolutionRequired() != null )
@@ -503,7 +504,7 @@
         PluginDescriptor pluginDescriptor = 
mojoDescriptor.getPluginDescriptor();
 
         PlexusContainer pluginContainer = getPluginContainer( pluginDescriptor 
);
-        
+
         // if this is the first time this plugin has been used, the plugin's 
container will only
         // contain the plugin's artifact in isolation; we need to finish 
resolving the plugin's
         // dependencies, and add them to the container.
@@ -519,10 +520,10 @@
         if ( plugin instanceof ContextEnabled )
         {
             Map pluginContext = session.getPluginContext( pluginDescriptor, 
project );
-            
+
             ( (ContextEnabled) plugin ).setPluginContext( pluginContext );
         }
-        
+
         plugin.setLog( mojoLogger );
 
         XmlPlexusConfiguration pomConfiguration;

Modified: 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java?rev=292935&r1=292934&r2=292935&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java
 (original)
+++ 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java
 Sat Oct  1 00:10:39 2005
@@ -44,8 +44,7 @@
     MavenReport getReport( MavenProject project, MojoExecution mojoExecution, 
MavenSession session )
         throws PluginManagerException;
 
-    PluginDescriptor getPluginDescriptorForPrefix( String prefix )
-        throws PluginManagerException;
+    PluginDescriptor getPluginDescriptorForPrefix( String prefix );
 
     Plugin getPluginDefinitionForPrefix( String prefix, MavenSession session, 
MavenProject project )
         throws PluginManagerException;



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to