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/03/07 23:37:31 UTC
svn commit: r515816 [1/2] - in
/maven/components/branches/2.1-lifecycle-refactor: ./
maven-build-context/src/main/java/org/apache/maven/context/ maven-core/
maven-core/src/main/java/org/apache/maven/
maven-core/src/main/java/org/apache/maven/execution/...
Author: jdcasey
Date: Wed Mar 7 14:37:29 2007
New Revision: 515816
URL: http://svn.apache.org/viewvc?view=rev&rev=515816
Log:
Almost ready to integrate the new LifecyclePlanner stuff into the LifecycleExecutor...this should give us the ability to view the build process from a plugin, or modify it using special syntax in the POM.
Added:
maven/components/branches/2.1-lifecycle-refactor/maven-build-context/src/main/java/org/apache/maven/context/ScopedBuildContext.java (with props)
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/execution/SessionContext.java (with props)
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/binding/
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java (with props)
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/binding/LifecycleBindingManager.java (with props)
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/parser/
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/parser/LegacyLifecycleMappingParser.java (with props)
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/parser/PrefixedMojoBinding.java (with props)
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultLifecyclePlan.java (with props)
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultLifecyclePlanner.java (with props)
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/LifecyclePlan.java (with props)
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/LifecyclePlanner.java (with props)
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/plugin/loader/
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/plugin/loader/DefaultPluginLoader.java (with props)
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/plugin/loader/PluginLoader.java (with props)
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/plugin/loader/PluginLoaderException.java (with props)
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/pom.xml (with props)
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/ClassLoaderXmlBindingLoader.java (with props)
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleBindingLoader.java (with props)
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleException.java (with props)
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleLoaderException.java (with props)
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleSpecificationException.java (with props)
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleWalker.java (with props)
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/NoSuchLifecycleException.java (with props)
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/NoSuchPhaseException.java (with props)
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/mdo/
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/mdo/maven-lifecycle.mdo (with props)
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/test/
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/test/java/
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/test/java/org/
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/test/java/org/apache/
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/test/java/org/apache/maven/
maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/test/java/org/apache/maven/lifecycle/
maven/components/branches/2.1-lifecycle-refactor/maven-project/src/main/java/org/apache/maven/context/
maven/components/branches/2.1-lifecycle-refactor/maven-project/src/main/java/org/apache/maven/context/ProjectScopedContext.java (with props)
Modified:
maven/components/branches/2.1-lifecycle-refactor/maven-core/pom.xml
maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
maven/components/branches/2.1-lifecycle-refactor/pom.xml
Added: maven/components/branches/2.1-lifecycle-refactor/maven-build-context/src/main/java/org/apache/maven/context/ScopedBuildContext.java
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-build-context/src/main/java/org/apache/maven/context/ScopedBuildContext.java?view=auto&rev=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-build-context/src/main/java/org/apache/maven/context/ScopedBuildContext.java (added)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-build-context/src/main/java/org/apache/maven/context/ScopedBuildContext.java Wed Mar 7 14:37:29 2007
@@ -0,0 +1,109 @@
+package org.apache.maven.context;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class ScopedBuildContext
+ implements BuildContext, ManagedBuildData
+{
+
+ private final BuildContext parentBuildContext;
+ private final String scopeKey;
+
+ private Map localContext;
+
+ public ScopedBuildContext( String scopeKey, BuildContext parentBuildContext )
+ {
+ this.scopeKey = scopeKey;
+ this.parentBuildContext = parentBuildContext;
+
+ this.localContext = (Map) parentBuildContext.get( scopeKey );
+ if ( localContext == null )
+ {
+ this.localContext = new HashMap();
+ parentBuildContext.store( this );
+ }
+ }
+
+ public Object delete( Object key )
+ {
+ return localContext.remove( key );
+ }
+
+ public Object get( Object key )
+ {
+ return localContext.get( key );
+ }
+
+ public void put( Object key, Object value )
+ {
+ localContext.put( key, value );
+ }
+
+ /**
+ * @deprecated Use {@link BuildContext#store(ManagedBuildData)} instead.
+ */
+ public void put( ManagedBuildData managedData )
+ {
+ localContext.put( managedData.getStorageKey(), managedData.getData() );
+ }
+
+ public boolean retrieve( ManagedBuildData managedData )
+ {
+ Map data = (Map) localContext.get( managedData.getStorageKey() );
+
+ if ( data != null )
+ {
+ managedData.setData( data );
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ public void store( ManagedBuildData managedData )
+ {
+ localContext.put( managedData.getStorageKey(), managedData.getData() );
+ }
+
+ public Map getData()
+ {
+ return localContext;
+ }
+
+ public String getStorageKey()
+ {
+ return scopeKey;
+ }
+
+ public void setData( Map data )
+ {
+ this.localContext = data;
+ }
+
+ public void storeContext( BuildContextManager buildContextManager )
+ {
+ if ( parentBuildContext instanceof ScopedBuildContext )
+ {
+ ((ScopedBuildContext) parentBuildContext).storeContext( buildContextManager );
+ }
+ else
+ {
+ buildContextManager.storeBuildContext( parentBuildContext );
+ }
+ }
+
+ public BuildContext getParentBuildContext()
+ {
+ return parentBuildContext;
+ }
+
+ public void delete( BuildContextManager buildContextManager )
+ {
+ parentBuildContext.delete( scopeKey );
+ storeContext( buildContextManager );
+ }
+
+}
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-build-context/src/main/java/org/apache/maven/context/ScopedBuildContext.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-build-context/src/main/java/org/apache/maven/context/ScopedBuildContext.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/components/branches/2.1-lifecycle-refactor/maven-core/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-core/pom.xml?view=diff&rev=515816&r1=515815&r2=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-core/pom.xml (original)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-core/pom.xml Wed Mar 7 14:37:29 2007
@@ -32,6 +32,11 @@
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
+ <artifactId>maven-lifecycle</artifactId>
+ <version>2.1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
<artifactId>maven-build-context</artifactId>
<version>2.1-SNAPSHOT</version>
</dependency>
@@ -147,6 +152,11 @@
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-classworlds</artifactId>
<version>1.2-alpha-5</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-active-collections</artifactId>
+ <version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
Modified: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?view=diff&rev=515816&r1=515815&r2=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/DefaultMaven.java (original)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/DefaultMaven.java Wed Mar 7 14:37:29 2007
@@ -33,6 +33,7 @@
import org.apache.maven.execution.MavenSession;
import org.apache.maven.execution.ReactorManager;
import org.apache.maven.execution.RuntimeInformation;
+import org.apache.maven.execution.SessionContext;
import org.apache.maven.extension.BuildExtensionScanner;
import org.apache.maven.extension.ExtensionScanningException;
import org.apache.maven.lifecycle.LifecycleExecutor;
@@ -542,7 +543,12 @@
ReactorManager rpm,
EventDispatcher dispatcher )
{
- return new MavenSession( container, request, dispatcher, rpm );
+ MavenSession session = new MavenSession( container, request, dispatcher, rpm );
+
+ SessionContext ctx = new SessionContext( session );
+ ctx.store( buildContextManager );
+
+ return session;
}
// ----------------------------------------------------------------------
Added: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/execution/SessionContext.java
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/execution/SessionContext.java?view=auto&rev=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/execution/SessionContext.java (added)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/execution/SessionContext.java Wed Mar 7 14:37:29 2007
@@ -0,0 +1,157 @@
+package org.apache.maven.execution;
+
+/*
+ * 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.repository.ArtifactRepository;
+import org.apache.maven.context.BuildContext;
+import org.apache.maven.context.BuildContextManager;
+import org.apache.maven.context.ManagedBuildData;
+import org.apache.maven.monitor.event.EventDispatcher;
+import org.apache.maven.settings.Settings;
+
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+/**
+ * Build context object that supplies information about how Maven was invoked, including all of the
+ * information available in the MavenExecutionRequest (in read-only form).
+ */
+public class SessionContext
+ implements ManagedBuildData
+{
+
+ public static final String BUILD_CONTEXT_KEY = SessionContext.class.getName();
+
+ private static final String REQUEST_KEY = "request";
+
+ private MavenSession session;
+
+ private SessionContext()
+ {
+ }
+
+ public SessionContext( MavenSession session )
+ {
+ this.session = session;
+ }
+
+ public String getStorageKey()
+ {
+ return BUILD_CONTEXT_KEY;
+ }
+
+ public static SessionContext read( BuildContextManager buildContextManager )
+ {
+ BuildContext buildContext = buildContextManager.readBuildContext( false );
+
+ SessionContext sessionContext = new SessionContext();
+
+ if ( buildContext != null )
+ {
+ if ( !buildContext.retrieve( sessionContext ) )
+ {
+ return null;
+ }
+ }
+
+ return sessionContext;
+ }
+
+ public void store( BuildContextManager buildContextManager )
+ {
+ BuildContext buildContext = buildContextManager.readBuildContext( true );
+
+ buildContext.store( this );
+
+ buildContextManager.storeBuildContext( buildContext );
+ }
+
+ public Map getData()
+ {
+ return Collections.singletonMap( REQUEST_KEY, session );
+ }
+
+ public void setData( Map data )
+ {
+ this.session = (MavenSession) data.get( REQUEST_KEY );
+ }
+
+ //------------------------------------------------------------
+ // DELEGATED METHODS, USING DEFENSIVE COPIES WHERE POSSIBLE.
+ //------------------------------------------------------------
+
+ public EventDispatcher getEventDispatcher()
+ {
+ return session.getEventDispatcher();
+ }
+
+ public Properties getExecutionProperties()
+ {
+ return new Properties( session.getExecutionProperties() );
+ }
+
+ public String getExecutionRootDirectory()
+ {
+ return session.getExecutionRootDirectory();
+ }
+
+ public List getGoals()
+ {
+ return Collections.unmodifiableList( session.getGoals() );
+ }
+
+ public ArtifactRepository getLocalRepository()
+ {
+ return session.getLocalRepository();
+ }
+
+ public MavenExecutionRequest getRequest()
+ {
+ return session.getRequest();
+ }
+
+ public Settings getSettings()
+ {
+ return session.getSettings();
+ }
+
+ public List getSortedProjects()
+ {
+ return Collections.unmodifiableList( session.getSortedProjects() );
+ }
+
+ public Date getStartTime()
+ {
+ return new Date( session.getStartTime().getTime() );
+ }
+
+ public boolean isUsingPOMsFromFilesystem()
+ {
+ return session.isUsingPOMsFromFilesystem();
+ }
+
+ public MavenSession getSession()
+ {
+ return session;
+ }
+}
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/execution/SessionContext.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/execution/SessionContext.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java?view=auto&rev=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java (added)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java Wed Mar 7 14:37:29 2007
@@ -0,0 +1,192 @@
+package org.apache.maven.lifecycle.binding;
+
+import org.apache.maven.lifecycle.LifecycleBindingLoader;
+import org.apache.maven.lifecycle.LifecycleBindings;
+import org.apache.maven.lifecycle.LifecycleLoaderException;
+import org.apache.maven.lifecycle.LifecycleSpecificationException;
+import org.apache.maven.lifecycle.LifecycleWalker;
+import org.apache.maven.lifecycle.MojoBinding;
+import org.apache.maven.lifecycle.parser.LegacyLifecycleMappingParser;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.model.PluginExecution;
+import org.apache.maven.plugin.descriptor.MojoDescriptor;
+import org.apache.maven.plugin.descriptor.PluginDescriptor;
+import org.apache.maven.plugin.loader.PluginLoader;
+import org.apache.maven.plugin.loader.PluginLoaderException;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.collections.ActiveMap;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.codehaus.plexus.logging.LogEnabled;
+import org.codehaus.plexus.logging.Logger;
+
+import java.util.Iterator;
+import java.util.List;
+
+//FIXME: This needs a better name!
+public class DefaultLifecycleBindingManager
+ implements LifecycleBindingManager, LogEnabled
+{
+
+ private ActiveMap bindingsByPackaging;
+
+ private PluginLoader pluginLoader;
+
+ private Logger logger;
+
+ // configured. Moved out of DefaultLifecycleExecutor...
+ private List legacyLifecycles;
+
+ public LifecycleBindings getBindingsForPackaging( MavenProject project )
+ throws LifecycleLoaderException, LifecycleSpecificationException
+ {
+ String packaging = project.getPackaging();
+
+ LifecycleBindings bindings = null;
+
+ LifecycleBindingLoader loader = (LifecycleBindingLoader) bindingsByPackaging.get( packaging );
+ if ( loader != null )
+ {
+ bindings = loader.getBindings();
+ }
+ else
+ {
+ bindings = searchPluginsWithExtensions( project );
+ }
+
+ if ( bindings == null )
+ {
+ bindings = getDefaultBindings();
+ }
+
+ return bindings;
+ }
+
+ private LifecycleBindings searchPluginsWithExtensions( MavenProject project )
+ throws LifecycleLoaderException, LifecycleSpecificationException
+ {
+ List plugins = project.getBuildPlugins();
+ String packaging = project.getPackaging();
+
+ LifecycleBindings bindings = null;
+
+ for ( Iterator it = plugins.iterator(); it.hasNext(); )
+ {
+ Plugin plugin = (Plugin) it.next();
+ if ( plugin.isExtensions() )
+ {
+ LifecycleBindingLoader loader = null;
+
+ try
+ {
+ loader = (LifecycleBindingLoader) pluginLoader.loadPluginComponent( LifecycleBindingLoader.ROLE, packaging,
+ plugin, project );
+ }
+ catch ( ComponentLookupException e )
+ {
+ logger.debug( LifecycleBindingLoader.ROLE + " for packaging: " + packaging
+ + " could not be retrieved from plugin: " + plugin.getKey() + ".\nReason: " + e.getMessage(), e );
+ }
+ catch ( PluginLoaderException e )
+ {
+ throw new LifecycleLoaderException( "Failed to load plugin: " + plugin.getKey() + ". Reason: "
+ + e.getMessage(), e );
+ }
+
+ if ( loader != null )
+ {
+ bindings = loader.getBindings();
+
+ if ( bindings != null )
+ {
+ break;
+ }
+ }
+ }
+ }
+
+ return bindings;
+ }
+
+ public LifecycleBindings getDefaultBindings()
+ throws LifecycleSpecificationException
+ {
+ return LegacyLifecycleMappingParser.parseDefaultMappings( legacyLifecycles );
+ }
+
+ public void enableLogging( Logger logger )
+ {
+ this.logger = logger;
+ }
+
+ public LifecycleBindings getProjectCustomBindings( MavenProject project )
+ throws LifecycleLoaderException, LifecycleSpecificationException
+ {
+ String projectId = project.getId();
+
+ LifecycleBindings bindings = new LifecycleBindings();
+ bindings.setOrigin( projectId );
+ bindings.setPackaging( project.getPackaging() );
+
+ List plugins = project.getBuildPlugins();
+ if ( plugins != null )
+ {
+ for ( Iterator it = plugins.iterator(); it.hasNext(); )
+ {
+ Plugin plugin = (Plugin) it.next();
+ PluginDescriptor pluginDescriptor = null;
+
+ List executions = plugin.getExecutions();
+ if ( executions != null )
+ {
+ for ( Iterator execIt = executions.iterator(); execIt.hasNext(); )
+ {
+ PluginExecution execution = (PluginExecution) execIt.next();
+
+ List goals = execution.getGoals();
+ for ( Iterator goalIterator = goals.iterator(); goalIterator.hasNext(); )
+ {
+ String goal = (String) goalIterator.next();
+
+ MojoBinding mojoBinding = new MojoBinding();
+
+ mojoBinding.setGroupId( plugin.getGroupId() );
+ mojoBinding.setArtifactId( plugin.getArtifactId() );
+ mojoBinding.setVersion( plugin.getVersion() );
+ mojoBinding.setGoal( goal );
+ mojoBinding.setDefaultConfiguration( execution.getConfiguration() );
+
+ String phase = execution.getPhase();
+ if ( phase == null )
+ {
+ if ( pluginDescriptor == null )
+ {
+ try
+ {
+ pluginDescriptor = pluginLoader.loadPlugin( plugin, project );
+ }
+ catch ( PluginLoaderException e )
+ {
+ throw new LifecycleLoaderException( "Failed to load plugin: " + plugin + ". Reason: " + e.getMessage(), e );
+ }
+ }
+
+ MojoDescriptor mojoDescriptor = pluginDescriptor.getMojo( goal );
+ phase = mojoDescriptor.getPhase();
+
+ if ( phase == null )
+ {
+ throw new LifecycleSpecificationException( "No phase specified for goal: " + goal + " in plugin: " + plugin.getKey() + " from POM: " + projectId );
+ }
+ }
+
+ LifecycleWalker.addMojoBinding( phase, mojoBinding, bindings );
+ }
+ }
+ }
+ }
+ }
+
+ return bindings;
+ }
+
+}
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/binding/LifecycleBindingManager.java
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/binding/LifecycleBindingManager.java?view=auto&rev=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/binding/LifecycleBindingManager.java (added)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/binding/LifecycleBindingManager.java Wed Mar 7 14:37:29 2007
@@ -0,0 +1,23 @@
+package org.apache.maven.lifecycle.binding;
+
+import org.apache.maven.lifecycle.LifecycleBindings;
+import org.apache.maven.lifecycle.LifecycleLoaderException;
+import org.apache.maven.lifecycle.LifecycleSpecificationException;
+import org.apache.maven.project.MavenProject;
+
+// FIXME: This needs a better name!
+public interface LifecycleBindingManager
+{
+
+ String ROLE = LifecycleBindingManager.class.getName();
+
+ LifecycleBindings getDefaultBindings()
+ throws LifecycleSpecificationException;
+
+ LifecycleBindings getBindingsForPackaging( MavenProject project )
+ throws LifecycleLoaderException, LifecycleSpecificationException;
+
+ LifecycleBindings getProjectCustomBindings( MavenProject project )
+ throws LifecycleLoaderException, LifecycleSpecificationException;
+
+}
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/binding/LifecycleBindingManager.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/binding/LifecycleBindingManager.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/parser/LegacyLifecycleMappingParser.java
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/parser/LegacyLifecycleMappingParser.java?view=auto&rev=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/parser/LegacyLifecycleMappingParser.java (added)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/parser/LegacyLifecycleMappingParser.java Wed Mar 7 14:37:29 2007
@@ -0,0 +1,202 @@
+package org.apache.maven.lifecycle.parser;
+
+import org.apache.maven.lifecycle.BuildBinding;
+import org.apache.maven.lifecycle.CleanBinding;
+import org.apache.maven.lifecycle.Lifecycle;
+import org.apache.maven.lifecycle.LifecycleBindings;
+import org.apache.maven.lifecycle.LifecycleSpecificationException;
+import org.apache.maven.lifecycle.MojoBinding;
+import org.apache.maven.lifecycle.Phase;
+import org.apache.maven.lifecycle.SiteBinding;
+import org.apache.maven.lifecycle.mapping.LifecycleMapping;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.StringTokenizer;
+
+public final class LegacyLifecycleMappingParser
+{
+
+ public static LifecycleBindings parseDefaultMappings( List lifecycles )
+ throws LifecycleSpecificationException
+ {
+ LifecycleBindings bindings = new LifecycleBindings();
+
+ bindings.setOrigin( "Maven core" );
+ bindings.setPackaging( "unmatched" );
+
+ for ( Iterator it = lifecycles.iterator(); it.hasNext(); )
+ {
+ Lifecycle lifecycle = (Lifecycle) it.next();
+
+ if ( "clean".equals( lifecycle.getId() ) )
+ {
+ bindings.setCleanBinding( parseCleanBindings( lifecycle.getDefaultPhases() ) );
+ }
+ else if ( "site".equals( lifecycle.getId() ) )
+ {
+ bindings.setSiteBinding( parseSiteBindings( lifecycle.getDefaultPhases() ) );
+ }
+ else if ( "default".equals( lifecycle.getId() ) )
+ {
+ bindings.setBuildBinding( parseBuildBindings( lifecycle.getDefaultPhases() ) );
+ }
+ else
+ {
+ throw new LifecycleSpecificationException( "Unrecognized lifecycle: " + lifecycle.getId() );
+ }
+ }
+
+ return bindings;
+ }
+
+ public static LifecycleBindings parseMappings( LifecycleMapping mapping, String packaging )
+ throws LifecycleSpecificationException
+ {
+ LifecycleBindings bindings = new LifecycleBindings();
+ bindings.setOrigin( "Maven core" );
+ bindings.setPackaging( packaging );
+
+ bindings.setCleanBinding( parseCleanBindings( mapping.getPhases( "clean" ) ) );
+ bindings.setBuildBinding( parseBuildBindings( mapping.getPhases( "default" ) ) );
+ bindings.setSiteBinding( parseSiteBindings( mapping.getPhases( "site" ) ) );
+
+ return bindings;
+ }
+
+ public static MojoBinding parseMojoBinding( String bindingSpec, boolean allowPrefixReference )
+ throws LifecycleSpecificationException
+ {
+ StringTokenizer tok = new StringTokenizer( bindingSpec, ":" );
+ int numTokens = tok.countTokens();
+
+ MojoBinding binding = null;
+
+ if ( numTokens == 2 )
+ {
+ if ( !allowPrefixReference )
+ {
+ String msg = "Mapped-prefix lookup of mojos are only supported from direct invocation. "
+ + "Please use specification of the form groupId:artifactId[:version]:goal instead.";
+
+ throw new LifecycleSpecificationException( msg );
+ }
+
+ binding = new PrefixedMojoBinding();
+
+ ( (PrefixedMojoBinding) binding ).setPrefix( tok.nextToken() );
+ binding.setGoal( tok.nextToken() );
+
+ }
+ else if ( numTokens == 3 || numTokens == 4 )
+ {
+ binding = new MojoBinding();
+
+ binding.setGroupId( tok.nextToken() );
+ binding.setArtifactId( tok.nextToken() );
+
+ if ( numTokens == 4 )
+ {
+ binding.setVersion( tok.nextToken() );
+ }
+
+ binding.setGoal( tok.nextToken() );
+ }
+ else
+ {
+ String message = "Invalid task '" + bindingSpec + "': you must specify a valid lifecycle phase, or"
+ + " a goal in the format plugin:goal or pluginGroupId:pluginArtifactId:pluginVersion:goal";
+
+ throw new LifecycleSpecificationException( message );
+ }
+
+ return binding;
+ }
+
+ private static BuildBinding parseBuildBindings( Map phases )
+ throws LifecycleSpecificationException
+ {
+ BuildBinding binding = new BuildBinding();
+
+ binding.setValidate( parsePhaseBindings( (String) phases.get( "validate" ) ) );
+ binding.setInitialize( parsePhaseBindings( (String) phases.get( "initialize" ) ) );
+ binding.setGenerateSources( parsePhaseBindings( (String) phases.get( "generate-sources" ) ) );
+ binding.setProcessSources( parsePhaseBindings( (String) phases.get( "process-sources" ) ) );
+ binding.setGenerateResources( parsePhaseBindings( (String) phases.get( "generate-resources" ) ) );
+ binding.setProcessResources( parsePhaseBindings( (String) phases.get( "process-resources" ) ) );
+ binding.setCompile( parsePhaseBindings( (String) phases.get( "compile" ) ) );
+ binding.setProcessClasses( parsePhaseBindings( (String) phases.get( "process-classes" ) ) );
+ binding.setGenerateTestSources( parsePhaseBindings( (String) phases.get( "generate-test-sources" ) ) );
+ binding.setProcessTestSources( parsePhaseBindings( (String) phases.get( "process-test-sources" ) ) );
+ binding.setGenerateTestResources( parsePhaseBindings( (String) phases.get( "generate-test-resources" ) ) );
+ binding.setProcessTestResources( parsePhaseBindings( (String) phases.get( "process-test-resources" ) ) );
+ binding.setTestCompile( parsePhaseBindings( (String) phases.get( "test-compile" ) ) );
+ binding.setProcessTestClasses( parsePhaseBindings( (String) phases.get( "process-test-classes" ) ) );
+ binding.setTest( parsePhaseBindings( (String) phases.get( "test" ) ) );
+ binding.setPreparePackage( parsePhaseBindings( (String) phases.get( "prepare-package" ) ) );
+ binding.setCreatePackage( parsePhaseBindings( (String) phases.get( "package" ) ) );
+ binding.setPreIntegrationTest( parsePhaseBindings( (String) phases.get( "pre-integration-test" ) ) );
+ binding.setIntegrationTest( parsePhaseBindings( (String) phases.get( "integration-test" ) ) );
+ binding.setPostIntegrationTest( parsePhaseBindings( (String) phases.get( "post-integration-test" ) ) );
+ binding.setVerify( parsePhaseBindings( (String) phases.get( "verify" ) ) );
+ binding.setInstall( parsePhaseBindings( (String) phases.get( "install" ) ) );
+ binding.setDeploy( parsePhaseBindings( (String) phases.get( "deploy" ) ) );
+
+ return binding;
+ }
+
+ private static CleanBinding parseCleanBindings( Map phaseMappings )
+ throws LifecycleSpecificationException
+ {
+ CleanBinding binding = new CleanBinding();
+
+ binding.setPreClean( parsePhaseBindings( (String) phaseMappings.get( "pre-clean" ) ) );
+ binding.setClean( parsePhaseBindings( (String) phaseMappings.get( "clean" ) ) );
+ binding.setPostClean( parsePhaseBindings( (String) phaseMappings.get( "post-clean" ) ) );
+
+ return binding;
+ }
+
+ private static Phase parsePhaseBindings( String bindingList )
+ throws LifecycleSpecificationException
+ {
+ Phase phase = new Phase();
+
+ if ( bindingList != null )
+ {
+ for ( StringTokenizer tok = new StringTokenizer( bindingList, "," ); tok.hasMoreTokens(); )
+ {
+ String rawBinding = tok.nextToken().trim();
+
+ MojoBinding binding = parseMojoBinding( rawBinding, false );
+
+ if ( binding == null )
+ {
+ continue;
+ }
+
+ phase.addBinding( binding );
+ }
+ }
+
+ return phase;
+ }
+
+ private static SiteBinding parseSiteBindings( Map phases )
+ throws LifecycleSpecificationException
+ {
+ SiteBinding binding = new SiteBinding();
+
+ binding.setPreSite( parsePhaseBindings( (String) phases.get( "pre-site" ) ) );
+ binding.setSite( parsePhaseBindings( (String) phases.get( "site" ) ) );
+ binding.setPostSite( parsePhaseBindings( (String) phases.get( "post-site" ) ) );
+
+ return binding;
+ }
+
+ private LegacyLifecycleMappingParser()
+ {
+ }
+
+}
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/parser/LegacyLifecycleMappingParser.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/parser/LegacyLifecycleMappingParser.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/parser/PrefixedMojoBinding.java
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/parser/PrefixedMojoBinding.java?view=auto&rev=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/parser/PrefixedMojoBinding.java (added)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/parser/PrefixedMojoBinding.java Wed Mar 7 14:37:29 2007
@@ -0,0 +1,21 @@
+package org.apache.maven.lifecycle.parser;
+
+import org.apache.maven.lifecycle.MojoBinding;
+
+public class PrefixedMojoBinding
+ extends MojoBinding
+{
+
+ private String prefix;
+
+ public void setPrefix( String prefix )
+ {
+ this.prefix = prefix;
+ }
+
+ public String getPrefix()
+ {
+ return prefix;
+ }
+
+}
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/parser/PrefixedMojoBinding.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/parser/PrefixedMojoBinding.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultLifecyclePlan.java
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultLifecyclePlan.java?view=auto&rev=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultLifecyclePlan.java (added)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultLifecyclePlan.java Wed Mar 7 14:37:29 2007
@@ -0,0 +1,21 @@
+package org.apache.maven.lifecycle.plan;
+
+import org.apache.maven.lifecycle.LifecycleBindings;
+
+public class DefaultLifecyclePlan
+ implements LifecyclePlan
+{
+
+ private final LifecycleBindings defaultBindings;
+ private final LifecycleBindings packagingBindings;
+ private final LifecycleBindings projectBindings;
+
+ public DefaultLifecyclePlan( LifecycleBindings defaultBindings, LifecycleBindings packagingBindings,
+ LifecycleBindings projectBindings )
+ {
+ this.defaultBindings = defaultBindings;
+ this.packagingBindings = packagingBindings;
+ this.projectBindings = projectBindings;
+ }
+
+}
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultLifecyclePlan.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultLifecyclePlan.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultLifecyclePlanner.java
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultLifecyclePlanner.java?view=auto&rev=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultLifecyclePlanner.java (added)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultLifecyclePlanner.java Wed Mar 7 14:37:29 2007
@@ -0,0 +1,41 @@
+package org.apache.maven.lifecycle.plan;
+
+import org.apache.maven.lifecycle.LifecycleBindings;
+import org.apache.maven.lifecycle.LifecycleLoaderException;
+import org.apache.maven.lifecycle.LifecycleSpecificationException;
+import org.apache.maven.lifecycle.binding.LifecycleBindingManager;
+import org.apache.maven.plugin.PluginMappingManager;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.logging.LogEnabled;
+import org.codehaus.plexus.logging.Logger;
+
+import java.util.List;
+
+public class DefaultLifecyclePlanner
+ implements LifecyclePlanner, LogEnabled
+{
+
+ private Logger logger;
+
+ private PluginMappingManager pluginMappingManager;
+
+ private LifecycleBindingManager lifecycleBindingManager;
+
+ public LifecyclePlan constructLifecyclePlan( List tasks, MavenProject project )
+ throws LifecycleLoaderException, LifecycleSpecificationException
+ {
+ LifecycleBindings defaultBindings = lifecycleBindingManager.getDefaultBindings();
+ LifecycleBindings packagingBindings = lifecycleBindingManager.getBindingsForPackaging( project );
+ LifecycleBindings projectBindings = lifecycleBindingManager.getProjectCustomBindings( project );
+
+ LifecyclePlan plan = new DefaultLifecyclePlan( defaultBindings, packagingBindings, projectBindings );
+
+ return plan;
+ }
+
+ public void enableLogging( Logger logger )
+ {
+ this.logger = logger;
+ }
+
+}
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultLifecyclePlanner.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/DefaultLifecyclePlanner.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/LifecyclePlan.java
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/LifecyclePlan.java?view=auto&rev=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/LifecyclePlan.java (added)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/LifecyclePlan.java Wed Mar 7 14:37:29 2007
@@ -0,0 +1,6 @@
+package org.apache.maven.lifecycle.plan;
+
+public interface LifecyclePlan
+{
+
+}
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/LifecyclePlan.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/LifecyclePlan.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/LifecyclePlanner.java
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/LifecyclePlanner.java?view=auto&rev=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/LifecyclePlanner.java (added)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/LifecyclePlanner.java Wed Mar 7 14:37:29 2007
@@ -0,0 +1,6 @@
+package org.apache.maven.lifecycle.plan;
+
+public interface LifecyclePlanner
+{
+
+}
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/LifecyclePlanner.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/lifecycle/plan/LifecyclePlanner.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/plugin/loader/DefaultPluginLoader.java
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/plugin/loader/DefaultPluginLoader.java?view=auto&rev=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/plugin/loader/DefaultPluginLoader.java (added)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/plugin/loader/DefaultPluginLoader.java Wed Mar 7 14:37:29 2007
@@ -0,0 +1,124 @@
+package org.apache.maven.plugin.loader;
+
+import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
+import org.apache.maven.artifact.resolver.ArtifactResolutionException;
+import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
+import org.apache.maven.context.BuildContextManager;
+import org.apache.maven.execution.SessionContext;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.plugin.InvalidPluginException;
+import org.apache.maven.plugin.PluginManager;
+import org.apache.maven.plugin.PluginManagerException;
+import org.apache.maven.plugin.PluginNotFoundException;
+import org.apache.maven.plugin.descriptor.PluginDescriptor;
+import org.apache.maven.plugin.version.PluginVersionNotFoundException;
+import org.apache.maven.plugin.version.PluginVersionResolutionException;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.codehaus.plexus.logging.LogEnabled;
+import org.codehaus.plexus.logging.Logger;
+
+public class DefaultPluginLoader
+ implements PluginLoader, LogEnabled
+{
+
+ private Logger logger;
+
+ // FIXME: Move the functionality used from this into the PluginLoader when PluginManager refactor is complete.
+ PluginManager pluginManager;
+
+ BuildContextManager buildContextManager;
+
+ public Object loadPluginComponent( String role, String roleHint, Plugin plugin, MavenProject project )
+ throws ComponentLookupException, PluginLoaderException
+ {
+ loadPlugin( plugin, project );
+
+ try
+ {
+ return pluginManager.getPluginComponent( plugin, role, roleHint );
+ }
+ catch ( PluginManagerException e )
+ {
+ Throwable cause = e.getCause();
+
+ if ( cause != null && ( cause instanceof ComponentLookupException ) )
+ {
+ StringBuffer message = new StringBuffer();
+ message.append( "ComponentLookupException in PluginManager while looking up a component in the realm of: " );
+ message.append( plugin.getKey() );
+ message.append( ".\nReason: " );
+ message.append( cause.getMessage() );
+ message.append( "\n\nStack-Trace inside of PluginManager was:\n\n" );
+
+ StackTraceElement[] elements = e.getStackTrace();
+ for ( int i = 0; i < elements.length; i++ )
+ {
+ if ( elements[i].getClassName().indexOf( "PluginManager" ) < 0 )
+ {
+ break;
+ }
+
+ message.append( elements[i] );
+ }
+
+ logger.debug( message.toString() + "\n" );
+
+ throw (ComponentLookupException) cause;
+ }
+ else
+ {
+ throw new PluginLoaderException( plugin, "Failed to lookup plugin component. Reason: " + e.getMessage(), e );
+ }
+ }
+ }
+
+ public PluginDescriptor loadPlugin( Plugin plugin, MavenProject project )
+ throws PluginLoaderException
+ {
+ SessionContext ctx = SessionContext.read( buildContextManager );
+
+ try
+ {
+ return pluginManager.verifyPlugin( plugin, project, ctx.getSession() );
+ }
+ catch ( ArtifactResolutionException e )
+ {
+ throw new PluginLoaderException( plugin, "Failed to load plugin. Reason: " + e.getMessage(), e );
+ }
+ catch ( ArtifactNotFoundException e )
+ {
+ throw new PluginLoaderException( plugin, "Failed to load plugin. Reason: " + e.getMessage(), e );
+ }
+ catch ( PluginNotFoundException e )
+ {
+ throw new PluginLoaderException( plugin, "Failed to load plugin. Reason: " + e.getMessage(), e );
+ }
+ catch ( PluginVersionResolutionException e )
+ {
+ throw new PluginLoaderException( plugin, "Failed to load plugin. Reason: " + e.getMessage(), e );
+ }
+ catch ( InvalidVersionSpecificationException e )
+ {
+ throw new PluginLoaderException( plugin, "Failed to load plugin. Reason: " + e.getMessage(), e );
+ }
+ catch ( InvalidPluginException e )
+ {
+ throw new PluginLoaderException( plugin, "Failed to load plugin. Reason: " + e.getMessage(), e );
+ }
+ catch ( PluginManagerException e )
+ {
+ throw new PluginLoaderException( plugin, "Failed to load plugin. Reason: " + e.getMessage(), e );
+ }
+ catch ( PluginVersionNotFoundException e )
+ {
+ throw new PluginLoaderException( plugin, "Failed to load plugin. Reason: " + e.getMessage(), e );
+ }
+ }
+
+ public void enableLogging( Logger logger )
+ {
+ this.logger = logger;
+ }
+
+}
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/plugin/loader/DefaultPluginLoader.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/plugin/loader/DefaultPluginLoader.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/plugin/loader/PluginLoader.java
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/plugin/loader/PluginLoader.java?view=auto&rev=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/plugin/loader/PluginLoader.java (added)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/plugin/loader/PluginLoader.java Wed Mar 7 14:37:29 2007
@@ -0,0 +1,17 @@
+package org.apache.maven.plugin.loader;
+
+import org.apache.maven.model.Plugin;
+import org.apache.maven.plugin.descriptor.PluginDescriptor;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+
+public interface PluginLoader
+{
+
+ Object loadPluginComponent( String role, String roleHint, Plugin plugin, MavenProject project )
+ throws ComponentLookupException, PluginLoaderException;
+
+ PluginDescriptor loadPlugin( Plugin plugin, MavenProject project )
+ throws PluginLoaderException;
+
+}
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/plugin/loader/PluginLoader.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/plugin/loader/PluginLoader.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/plugin/loader/PluginLoaderException.java
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/plugin/loader/PluginLoaderException.java?view=auto&rev=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/plugin/loader/PluginLoaderException.java (added)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/plugin/loader/PluginLoaderException.java Wed Mar 7 14:37:29 2007
@@ -0,0 +1,28 @@
+package org.apache.maven.plugin.loader;
+
+import org.apache.maven.model.Plugin;
+
+public class PluginLoaderException
+ extends Exception
+{
+
+ private final Plugin plugin;
+
+ public PluginLoaderException( Plugin plugin, String message, Throwable cause )
+ {
+ super( message, cause );
+ this.plugin = plugin;
+ }
+
+ public PluginLoaderException( Plugin plugin, String message )
+ {
+ super( message );
+ this.plugin = plugin;
+ }
+
+ public Plugin getPlugin()
+ {
+ return plugin;
+ }
+
+}
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/plugin/loader/PluginLoaderException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-core/src/main/java/org/apache/maven/plugin/loader/PluginLoaderException.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/pom.xml?view=auto&rev=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/pom.xml (added)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/pom.xml Wed Mar 7 14:37:29 2007
@@ -0,0 +1,31 @@
+<?xml version="1.0"?><project>
+ <parent>
+ <artifactId>maven</artifactId>
+ <groupId>org.apache.maven</groupId>
+ <version>2.1-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>maven-lifecycle</artifactId>
+ <name>Maven Lifecycle Model</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.modello</groupId>
+ <artifactId>modello-maven-plugin</artifactId>
+ <configuration>
+ <version>1.0.0</version>
+ <model>src/main/mdo/maven-lifecycle.mdo</model>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/ClassLoaderXmlBindingLoader.java
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/ClassLoaderXmlBindingLoader.java?view=auto&rev=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/ClassLoaderXmlBindingLoader.java (added)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/ClassLoaderXmlBindingLoader.java Wed Mar 7 14:37:29 2007
@@ -0,0 +1,73 @@
+package org.apache.maven.lifecycle;
+
+import org.apache.maven.lifecycle.io.xpp3.LifecycleBindingsXpp3Reader;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.URL;
+
+/**
+ * @author jdcasey
+ */
+public class ClassLoaderXmlBindingLoader
+ implements LifecycleBindingLoader
+{
+
+ // configuration.
+ private String path;
+
+ public LifecycleBindings getBindings()
+ throws LifecycleLoaderException, LifecycleSpecificationException
+ {
+ ClassLoader loader = Thread.currentThread().getContextClassLoader();
+ URL url = loader.getResource( getPath() );
+
+ if ( url == null )
+ {
+ throw new LifecycleLoaderException( "Classpath resource: " + getPath() + " could not be found." );
+ }
+
+ InputStreamReader reader;
+ try
+ {
+ reader = new InputStreamReader( url.openStream() );
+ }
+ catch ( IOException e )
+ {
+ throw new LifecycleLoaderException( "Failed to open stream for classpath resource: " + getPath() + ". Reason: "
+ + e.getMessage(), e );
+ }
+
+ LifecycleBindings bindings;
+ try
+ {
+ bindings = new LifecycleBindingsXpp3Reader().read( reader );
+ }
+ catch ( IOException e )
+ {
+ throw new LifecycleLoaderException( "Classpath resource: " + getPath() + " could not be read. Reason: "
+ + e.getMessage(), e );
+ }
+ catch ( XmlPullParserException e )
+ {
+ throw new LifecycleLoaderException( "Classpath resource: " + getPath() + " could not be parsed. Reason: "
+ + e.getMessage(), e );
+ }
+
+ bindings.setOrigin( url.toExternalForm() );
+
+ return bindings;
+ }
+
+ public String getPath()
+ {
+ return path;
+ }
+
+ public void setPath( String path )
+ {
+ this.path = path;
+ }
+
+}
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/ClassLoaderXmlBindingLoader.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/ClassLoaderXmlBindingLoader.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleBindingLoader.java
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleBindingLoader.java?view=auto&rev=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleBindingLoader.java (added)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleBindingLoader.java Wed Mar 7 14:37:29 2007
@@ -0,0 +1,11 @@
+package org.apache.maven.lifecycle;
+
+public interface LifecycleBindingLoader
+{
+
+ String ROLE = LifecycleBindingLoader.class.getName();
+
+ LifecycleBindings getBindings()
+ throws LifecycleLoaderException, LifecycleSpecificationException;
+
+}
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleBindingLoader.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleBindingLoader.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleException.java
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleException.java?view=auto&rev=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleException.java (added)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleException.java Wed Mar 7 14:37:29 2007
@@ -0,0 +1,17 @@
+package org.apache.maven.lifecycle;
+
+public class LifecycleException
+ extends Exception
+{
+
+ public LifecycleException( String message, Throwable cause )
+ {
+ super( message, cause );
+ }
+
+ public LifecycleException( String message )
+ {
+ super( message );
+ }
+
+}
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleException.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleLoaderException.java
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleLoaderException.java?view=auto&rev=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleLoaderException.java (added)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleLoaderException.java Wed Mar 7 14:37:29 2007
@@ -0,0 +1,17 @@
+package org.apache.maven.lifecycle;
+
+public class LifecycleLoaderException
+ extends LifecycleException
+{
+
+ public LifecycleLoaderException( String message, Throwable cause )
+ {
+ super( message, cause );
+ }
+
+ public LifecycleLoaderException( String message )
+ {
+ super( message );
+ }
+
+}
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleLoaderException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleLoaderException.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleSpecificationException.java
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleSpecificationException.java?view=auto&rev=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleSpecificationException.java (added)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleSpecificationException.java Wed Mar 7 14:37:29 2007
@@ -0,0 +1,17 @@
+package org.apache.maven.lifecycle;
+
+public class LifecycleSpecificationException
+ extends LifecycleException
+{
+
+ public LifecycleSpecificationException( String message, Throwable cause )
+ {
+ super( message, cause );
+ }
+
+ public LifecycleSpecificationException( String message )
+ {
+ super( message );
+ }
+
+}
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleSpecificationException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleSpecificationException.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleWalker.java
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleWalker.java?view=auto&rev=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleWalker.java (added)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleWalker.java Wed Mar 7 14:37:29 2007
@@ -0,0 +1,81 @@
+package org.apache.maven.lifecycle;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+public class LifecycleWalker
+{
+
+ private LifecycleWalker()
+ {
+ }
+
+ public static List getMojoBindings( String phaseName, LifecycleBinding lifecycle )
+ throws NoSuchPhaseException
+ {
+ List phaseNames = lifecycle.getPhaseBindingNamesInOrder();
+
+ int idx = phaseNames.indexOf( phaseName );
+
+ if ( idx < 0 )
+ {
+ throw new NoSuchPhaseException( phaseName, "Phase not found in lifecycle: " + lifecycle.getId() );
+ }
+
+ List phases = lifecycle.getPhaseBindingsInOrder();
+
+ List bindings = new ArrayList();
+ for ( int i = 0; i <= idx; i++ )
+ {
+ Phase phase = (Phase) phases.get( i );
+ List phaseBindings = phase.getBindings();
+
+ if ( phaseBindings != null && !phaseBindings.isEmpty() )
+ {
+ bindings.addAll( phaseBindings );
+ }
+ }
+
+ return bindings;
+ }
+
+ public static LifecycleBinding findLifecycleBindingsForPhase( String phaseName, LifecycleBindings lifecycles )
+ throws NoSuchLifecycleException
+ {
+ List lifecyclesAvailable = lifecycles.getMappingList();
+
+ for ( Iterator it = lifecyclesAvailable.iterator(); it.hasNext(); )
+ {
+ LifecycleBinding lifecycle = (LifecycleBinding) it.next();
+
+ if ( lifecycle.getPhaseBindingNamesInOrder().indexOf( phaseName ) > -1 )
+ {
+ return lifecycle;
+ }
+ }
+
+ throw new NoSuchLifecycleException( lifecycles.getPackaging(), "Phase not found in any lifecycle: " + phaseName );
+ }
+
+ public static void addMojoBinding( String phaseName, MojoBinding mojo, LifecycleBindings bindings )
+ throws LifecycleSpecificationException
+ {
+ LifecycleBinding binding = findLifecycleBindingsForPhase( phaseName, bindings );
+
+ List phaseNames = binding.getPhaseBindingNamesInOrder();
+
+ int idx = phaseNames.indexOf( phaseName );
+
+ if ( idx < 0 )
+ {
+ throw new NoSuchPhaseException( phaseName, "Phase not found in lifecycle: " + binding.getId() );
+ }
+
+ List phases = binding.getPhaseBindingsInOrder();
+
+ Phase phase = (Phase) phases.get( idx );
+ phase.addBinding( mojo );
+ }
+
+}
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleWalker.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/LifecycleWalker.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/NoSuchLifecycleException.java
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/NoSuchLifecycleException.java?view=auto&rev=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/NoSuchLifecycleException.java (added)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/NoSuchLifecycleException.java Wed Mar 7 14:37:29 2007
@@ -0,0 +1,26 @@
+package org.apache.maven.lifecycle;
+
+public class NoSuchLifecycleException
+ extends LifecycleSpecificationException
+{
+
+ private final String packaging;
+
+ public NoSuchLifecycleException( String packaging, String message, Throwable cause )
+ {
+ super( message, cause );
+ this.packaging = packaging;
+ }
+
+ public NoSuchLifecycleException( String phase, String message )
+ {
+ super( message );
+ this.packaging = phase;
+ }
+
+ public String getPackaging()
+ {
+ return packaging;
+ }
+
+}
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/NoSuchLifecycleException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/NoSuchLifecycleException.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/NoSuchPhaseException.java
URL: http://svn.apache.org/viewvc/maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/NoSuchPhaseException.java?view=auto&rev=515816
==============================================================================
--- maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/NoSuchPhaseException.java (added)
+++ maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/NoSuchPhaseException.java Wed Mar 7 14:37:29 2007
@@ -0,0 +1,26 @@
+package org.apache.maven.lifecycle;
+
+public class NoSuchPhaseException
+ extends LifecycleSpecificationException
+{
+
+ private final String phase;
+
+ public NoSuchPhaseException( String phase, String message, Throwable cause )
+ {
+ super( message, cause );
+ this.phase = phase;
+ }
+
+ public NoSuchPhaseException( String phase, String message )
+ {
+ super( message );
+ this.phase = phase;
+ }
+
+ public String getPhase()
+ {
+ return phase;
+ }
+
+}
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/NoSuchPhaseException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/branches/2.1-lifecycle-refactor/maven-lifecycle/src/main/java/org/apache/maven/lifecycle/NoSuchPhaseException.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"