You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2007/06/08 18:46:21 UTC

svn commit: r545558 - in /maven/components/trunk: maven-core/src/main/java/org/apache/maven/lifecycle/binding/ maven-core/src/main/java/org/apache/maven/lifecycle/plan/ maven-lifecycle/src/main/mdo/

Author: jdcasey
Date: Fri Jun  8 09:46:20 2007
New Revision: 545558

URL: http://svn.apache.org/viewvc?view=rev&rev=545558
Log:
Try to assume that a plugin bound in the POM but not resolved during build-plan-building will be resolvable later.

Modified:
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/plan/BuildPlan.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultBuildPlanner.java
    maven/components/trunk/maven-lifecycle/src/main/mdo/maven-lifecycle.mdo

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java?view=diff&rev=545558&r1=545557&r2=545558
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java Fri Jun  8 09:46:20 2007
@@ -275,20 +275,38 @@
                                         }
                                         catch ( PluginLoaderException e )
                                         {
-                                            throw new LifecycleLoaderException( "Failed to load plugin: " + plugin
-                                                            + ". Reason: " + e.getMessage(), e );
+                                            mojoBinding.setLateBound( true );
+
+                                            String message = "Failed to load plugin descriptor for: "
+                                                             + plugin
+                                                             + ". Assigning this plugin to be resolved again just prior to its execution. "
+                                                             + "NOTE, This may affect assignment of the mojo: "
+                                                             + mojoBinding.getGoal()
+                                                             + " if its default phase (given in the plugin descriptor) is used.";
+
+                                            if ( logger.isDebugEnabled() )
+                                            {
+                                                logger.debug( message, e );
+                                            }
+                                            else
+                                            {
+                                                logger.warn( message + " Check debug output (-X) for more information." );
+                                            }
                                         }
                                     }
 
-                                    if ( pluginDescriptor.getMojos() == null )
+                                    if ( pluginDescriptor != null )
                                     {
-                                        logger.error( "Somehow, the PluginDescriptor for plugin: " + plugin.getKey()
-                                                        + " contains no mojos. This is highly irregular. Ignoring..." );
-                                        continue;
-                                    }
+                                        if ( pluginDescriptor.getMojos() == null )
+                                        {
+                                            logger.error( "Somehow, the PluginDescriptor for plugin: " + plugin.getKey()
+                                                            + " contains no mojos. This is highly irregular. Ignoring..." );
+                                            continue;
+                                        }
 
-                                    MojoDescriptor mojoDescriptor = pluginDescriptor.getMojo( goal );
-                                    phase = mojoDescriptor.getPhase();
+                                        MojoDescriptor mojoDescriptor = pluginDescriptor.getMojo( goal );
+                                        phase = mojoDescriptor.getPhase();
+                                    }
 
                                     if ( phase == null )
                                     {

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/plan/BuildPlan.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/plan/BuildPlan.java?view=diff&rev=545558&r1=545557&r2=545558
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/plan/BuildPlan.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/plan/BuildPlan.java Fri Jun  8 09:46:20 2007
@@ -27,8 +27,6 @@
 
     private final Map forkedPhases;
 
-    private final List lateBoundMojos;
-
     private List renderedLifecycleMojos = new ArrayList();
 
     private final Map directInvocationBindings;
@@ -47,17 +45,15 @@
         this.tasks = tasks;
         forkedDirectInvocations = new HashMap();
         forkedPhases = new HashMap();
-        lateBoundMojos = new ArrayList();
         directInvocationBindings = new HashMap();
     }
 
-    private BuildPlan( final LifecycleBindings bindings, final Map forkedDirectInvocations, final Map forkedPhases, final List lateBoundMojos,
+    private BuildPlan( final LifecycleBindings bindings, final Map forkedDirectInvocations, final Map forkedPhases,
                        final Map directInvocationBindings, final List tasks )
     {
         this.bindings = LifecycleUtils.cloneBindings( bindings );
         this.forkedDirectInvocations = new HashMap( forkedDirectInvocations );
         this.forkedPhases = new HashMap( forkedPhases );
-        this.lateBoundMojos = new ArrayList( lateBoundMojos );
         this.tasks = tasks;
         this.directInvocationBindings = new HashMap( directInvocationBindings );
     }
@@ -94,11 +90,6 @@
         directInvocationBindings.put( key, binding );
     }
 
-    public List getLateBoundMojos()
-    {
-        return lateBoundMojos;
-    }
-
     public Map getDirectInvocationBindings()
     {
         return directInvocationBindings;
@@ -136,14 +127,9 @@
         invoke.addAll( forkedInvocations );
     }
 
-    public void addLateBoundMojo( final MojoBinding mojoBinding )
-    {
-        lateBoundMojos.add( MojoBindingUtils.createMojoBindingKey( mojoBinding, false ) );
-    }
-
     public BuildPlan copy( final List newTasks )
     {
-        return new BuildPlan( bindings, forkedDirectInvocations, forkedPhases, lateBoundMojos, directInvocationBindings, newTasks );
+        return new BuildPlan( bindings, forkedDirectInvocations, forkedPhases, directInvocationBindings, newTasks );
     }
 
     public void resetExecutionProgress()
@@ -214,8 +200,7 @@
 
     private void addResolverIfLateBound( final MojoBinding mojoBinding, final List plan )
     {
-        String key = MojoBindingUtils.createMojoBindingKey( mojoBinding, false );
-        if ( lateBoundMojos.contains( key ) )
+        if ( mojoBinding.isLateBound() )
         {
             MojoBinding resolveBinding = StateManagementUtils.createResolveLateBoundMojoBinding( mojoBinding );
             plan.add( resolveBinding );

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultBuildPlanner.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultBuildPlanner.java?view=diff&rev=545558&r1=545557&r2=545558
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultBuildPlanner.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultBuildPlanner.java Fri Jun  8 09:46:20 2007
@@ -209,7 +209,7 @@
                 logger.warn( message );
             }
 
-            plan.addLateBoundMojo( mojoBinding );
+            mojoBinding.setLateBound( true );
         }
 
         return pluginDescriptor;

Modified: maven/components/trunk/maven-lifecycle/src/main/mdo/maven-lifecycle.mdo
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-lifecycle/src/main/mdo/maven-lifecycle.mdo?view=diff&rev=545558&r1=545557&r2=545558
==============================================================================
--- maven/components/trunk/maven-lifecycle/src/main/mdo/maven-lifecycle.mdo (original)
+++ maven/components/trunk/maven-lifecycle/src/main/mdo/maven-lifecycle.mdo Fri Jun  8 09:46:20 2007
@@ -619,20 +619,24 @@
           <type>boolean</type>
         </field>
       </fields>
-<!-- 
       <codeSegments>
         <codeSegment>
           <version>1.0.0</version>
           <code><![CDATA[
-
-    public String toString()
+    private boolean lateBound = false;
+          
+    public boolean isLateBound()
     {
-        return getGroupId() + ":" + getArtifactId() + ":" + getVersion() + ":" + getGoal() + ":" + getExecutionId();
+        return lateBound;
+    }
+          
+    public void setLateBound( boolean lateBound )
+    {
+        this.lateBound = lateBound;
     }
           ]]></code>
         </codeSegment>
       </codeSegments>
- -->
     </class>
   </classes>
 </model>