You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by Carlos Sanchez <ca...@apache.org> on 2007/10/26 00:36:35 UTC
Re: svn commit: r588144 - in /maven/components/trunk: maven-core/src/main/java/org/apache/maven/ maven-core/src/main/java/org/apache/maven/execution/ maven-core/src/main/java/org/apache/maven/extension/ maven-embedder/src/main/java/org/apache/maven/e
could you please keep the old methods and deprecate them with a
comment, if not keeping up with the changes becomes a nightmare
On 10/24/07, jdcasey@apache.org <jd...@apache.org> wrote:
> Author: jdcasey
> Date: Wed Oct 24 22:13:22 2007
> New Revision: 588144
>
> URL: http://svn.apache.org/viewvc?rev=588144&view=rev
> Log:
> Improving the use of project sessions in the embedder, and exporting control over the project session map to the embedder instead of Maven.execute().
>
> Modified:
> maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
> maven/components/trunk/maven-core/src/main/java/org/apache/maven/Maven.java
> maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
> maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java
> maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
>
> Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
> URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?rev=588144&r1=588143&r2=588144&view=diff
> ==============================================================================
> --- maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java (original)
> +++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java Wed Oct 24 22:13:22 2007
> @@ -63,7 +63,6 @@
> import java.util.ArrayList;
> import java.util.Collections;
> import java.util.Date;
> -import java.util.HashMap;
> import java.util.Iterator;
> import java.util.List;
> import java.util.Map;
> @@ -160,14 +159,12 @@
> return reactorManager;
> }
>
> - public MavenExecutionResult execute( MavenExecutionRequest request )
> + public MavenExecutionResult execute( MavenExecutionRequest request, Map projectSessions )
> {
> request.setStartTime( new Date() );
>
> MavenExecutionResult result = new DefaultMavenExecutionResult();
>
> - Map projectSessions = new HashMap();
> -
> ReactorManager reactorManager = createReactorManager(
> request,
> result,
> @@ -192,66 +189,59 @@
> dispatcher,
> projectSessions );
>
> - try
> + for ( Iterator i = request.getGoals().iterator(); i.hasNext(); )
> {
> - for ( Iterator i = request.getGoals().iterator(); i.hasNext(); )
> - {
> - String goal = (String) i.next();
> -
> - TaskValidationResult tvr = lifecycleExecutor.isTaskValid( goal, session, reactorManager.getTopLevelProject() );
> + String goal = (String) i.next();
>
> - if ( !tvr.isTaskValid() )
> - {
> - result.addBuildFailureException( new InvalidTaskException( tvr ) );
> + TaskValidationResult tvr = lifecycleExecutor.isTaskValid( goal, session, reactorManager.getTopLevelProject() );
>
> - return result;
> - }
> - }
> -
> - getLogger().info( "Scanning for projects..." );
> -
> - if ( reactorManager.hasMultipleProjects() )
> + if ( !tvr.isTaskValid() )
> {
> - getLogger().info( "Reactor build order: " );
> -
> - for ( Iterator i = reactorManager.getSortedProjects().iterator(); i.hasNext(); )
> - {
> - MavenProject project = (MavenProject) i.next();
> + result.addBuildFailureException( new InvalidTaskException( tvr ) );
>
> - getLogger().info( " " + project.getName() );
> - }
> + return result;
> }
> + }
>
> - initializeBuildContext( request );
> + getLogger().info( "Scanning for projects..." );
>
> - try
> - {
> - lifecycleExecutor.execute(
> - session,
> - reactorManager,
> - dispatcher );
> - }
> - catch ( LifecycleExecutionException e )
> - {
> - result.addLifecycleExecutionException( e );
> - return result;
> - }
> - catch ( BuildFailureException e )
> + if ( reactorManager.hasMultipleProjects() )
> + {
> + getLogger().info( "Reactor build order: " );
> +
> + for ( Iterator i = reactorManager.getSortedProjects().iterator(); i.hasNext(); )
> {
> - result.addBuildFailureException( e );
> - return result;
> - }
> + MavenProject project = (MavenProject) i.next();
>
> - result.setTopologicallySortedProjects( reactorManager.getSortedProjects() );
> + getLogger().info( " " + project.getName() );
> + }
> + }
>
> - result.setProject( reactorManager.getTopLevelProject() );
> + initializeBuildContext( request );
>
> + try
> + {
> + lifecycleExecutor.execute(
> + session,
> + reactorManager,
> + dispatcher );
> + }
> + catch ( LifecycleExecutionException e )
> + {
> + result.addLifecycleExecutionException( e );
> return result;
> }
> - finally
> + catch ( BuildFailureException e )
> {
> - session.dispose();
> + result.addBuildFailureException( e );
> + return result;
> }
> +
> + result.setTopologicallySortedProjects( reactorManager.getSortedProjects() );
> +
> + result.setProject( reactorManager.getTopLevelProject() );
> +
> + return result;
> }
>
> /**
>
> Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/Maven.java
> URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/Maven.java?rev=588144&r1=588143&r2=588144&view=diff
> ==============================================================================
> --- maven/components/trunk/maven-core/src/main/java/org/apache/maven/Maven.java (original)
> +++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/Maven.java Wed Oct 24 22:13:22 2007
> @@ -53,7 +53,7 @@
>
> static final int LOGGING_LEVEL_DISABLE = 5;
>
> - MavenExecutionResult execute( MavenExecutionRequest request );
> + MavenExecutionResult execute( MavenExecutionRequest request, Map projectSessions );
>
> ReactorManager createReactorManager( MavenExecutionRequest request, MavenExecutionResult result, Map projectSessions );
> }
>
> Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
> URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java?rev=588144&r1=588143&r2=588144&view=diff
> ==============================================================================
> --- maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java (original)
> +++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java Wed Oct 24 22:13:22 2007
> @@ -30,7 +30,6 @@
>
> import java.util.Date;
> import java.util.HashMap;
> -import java.util.Iterator;
> import java.util.LinkedHashMap;
> import java.util.List;
> import java.util.Map;
> @@ -71,15 +70,6 @@
> this.reactorManager = reactorManager;
>
> this.projectSessions = projectSessions == null ? new HashMap() : projectSessions;
> - }
> -
> - public void dispose()
> - {
> - for ( Iterator it = projectSessions.values().iterator(); it.hasNext(); )
> - {
> - MavenProjectSession session = (MavenProjectSession) it.next();
> - session.dispose();
> - }
> }
>
> // TODO: Figure out how/when we can shut down all the realms for extensions/plugins connected to each project session...
>
> Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java
> URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java?rev=588144&r1=588143&r2=588144&view=diff
> ==============================================================================
> --- maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java (original)
> +++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java Wed Oct 24 22:13:22 2007
> @@ -26,6 +26,7 @@
> import org.apache.maven.model.Extension;
> import org.apache.maven.model.Model;
> import org.apache.maven.model.Parent;
> +import org.apache.maven.plugin.loader.PluginLoader;
> import org.apache.maven.profiles.ProfileManager;
> import org.apache.maven.profiles.activation.CustomActivatorAdvice;
> import org.apache.maven.project.MavenProject;
> @@ -65,6 +66,8 @@
> private ModelLineageBuilder modelLineageBuilder;
>
> private ModelInterpolator modelInterpolator;
> +
> + private PluginLoader pluginLoader;
>
> public void scanForBuildExtensions( List files,
> ArtifactRepository localRepository,
>
> Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
> URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java?rev=588144&r1=588143&r2=588144&view=diff
> ==============================================================================
> --- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java (original)
> +++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java Wed Oct 24 22:13:22 2007
> @@ -35,6 +35,7 @@
> import org.apache.maven.execution.DefaultMavenExecutionResult;
> import org.apache.maven.execution.MavenExecutionRequest;
> import org.apache.maven.execution.MavenExecutionResult;
> +import org.apache.maven.execution.MavenProjectSession;
> import org.apache.maven.execution.MavenSession;
> import org.apache.maven.execution.ReactorManager;
> import org.apache.maven.extension.BuildExtensionScanner;
> @@ -319,16 +320,9 @@
> {
> PluginManager pluginManager = (PluginManager) container.lookup( PluginManager.ROLE );
>
> - MavenSession session = new MavenSession( container, request, null, null, new HashMap() );
> + MavenSession session = new MavenSession( container, request, null, null, projectSessions );
>
> - try
> - {
> pluginManager.verifyPlugin( plugin, project, session );
> - }
> - finally
> - {
> - session.dispose();
> - }
> }
>
> /** protected for tests only.. */
> @@ -440,7 +434,7 @@
> {
> getLogger().info( "Scanning for extensions: " + mavenProject );
>
> - extensionScanner.scanForBuildExtensions( mavenProject, request.getLocalRepository(), request.getProfileManager(), new HashMap() );
> + extensionScanner.scanForBuildExtensions( mavenProject, request.getLocalRepository(), request.getProfileManager(), projectSessions );
>
> getLogger().info( "Building MavenProject instance: " + mavenProject );
>
> @@ -478,7 +472,7 @@
>
> Map handlers = findArtifactTypeHandlers( project );
>
> - //TODO: ok this is crappy, now there are active collections so when new artifact handlers
> + //TODO: ok this is crappy, now there are active collections so when new artifact handlers
> // enter the system they should be available.
>
> artifactHandlerManager.addHandlers( handlers );
> @@ -496,7 +490,7 @@
> return result.addExtensionScanningException( e );
> }
>
> - ReactorManager reactorManager = maven.createReactorManager( request, result, new HashMap() );
> + ReactorManager reactorManager = maven.createReactorManager( request, result, projectSessions );
>
> if ( result.hasExceptions() )
> {
> @@ -624,6 +618,22 @@
>
> private MavenExecutionRequest request;
>
> + private Map projectSessions;
> +
> + public void clearProjectSessions()
> + {
> + if ( ( projectSessions != null ) && !projectSessions.isEmpty() )
> + {
> + for ( Iterator it = projectSessions.values().iterator(); it.hasNext(); )
> + {
> + MavenProjectSession session = (MavenProjectSession) it.next();
> + session.dispose();
> + }
> +
> + projectSessions.clear();
> + }
> + }
> +
> private void start( Configuration configuration )
> throws MavenEmbedderException
> {
> @@ -631,6 +641,8 @@
>
> logger = configuration.getMavenEmbedderLogger();
>
> + projectSessions = new HashMap();
> +
> // ----------------------------------------------------------------------------
> // Don't override any existing SecurityManager if one has been installed. Our
> // SecurityManager just checks to make sure
> @@ -652,8 +664,8 @@
>
> try
> {
> - ContainerConfiguration cc = new DefaultContainerConfiguration()
> - .addComponentDiscoverer( new MavenPluginDiscoverer() )
> + ContainerConfiguration cc = new DefaultContainerConfiguration()
> + .addComponentDiscoverer( new MavenPluginDiscoverer() )
> .addComponentDiscoveryListener( new MavenPluginCollector() )
> .setClassWorld( classWorld ).setParentContainer( configuration.getParentContainer() ).setName( "embedder" );
>
> @@ -889,7 +901,7 @@
> return result;
> }
>
> - return maven.execute( request );
> + return maven.execute( request, projectSessions );
> }
> finally
> {
>
>
>
--
I could give you my word as a Spaniard.
No good. I've known too many Spaniards.
-- The Princess Bride
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: svn commit: r588144 - in /maven/components/trunk: maven-core/src/main/java/org/apache/maven/ maven-core/src/main/java/org/apache/maven/execution/ maven-core/src/main/java/org/apache/maven/extension/ maven-embedder/src/main/java/org/apache/maven/e
Posted by John Casey <jd...@commonjava.org>.
done
On Oct 25, 2007, at 7:30 PM, Jason van Zyl wrote:
>
> On 25 Oct 07, at 3:36 PM 25 Oct 07, Carlos Sanchez wrote:
>
>> could you please keep the old methods and deprecate them with a
>> comment, if not keeping up with the changes becomes a nightmare
>>
>
> John, put the any additional things you need in the request. I made
> the request so that the signature wouldn't need to change in order
> to accommodate new things we needed.
>
>>
>> On 10/24/07, jdcasey@apache.org <jd...@apache.org> wrote:
>>> Author: jdcasey
>>> Date: Wed Oct 24 22:13:22 2007
>>> New Revision: 588144
>>>
>>> URL: http://svn.apache.org/viewvc?rev=588144&view=rev
>>> Log:
>>> Improving the use of project sessions in the embedder, and
>>> exporting control over the project session map to the embedder
>>> instead of Maven.execute().
>>>
>>> Modified:
>>> maven/components/trunk/maven-core/src/main/java/org/apache/
>>> maven/DefaultMaven.java
>>> maven/components/trunk/maven-core/src/main/java/org/apache/
>>> maven/Maven.java
>>> maven/components/trunk/maven-core/src/main/java/org/apache/
>>> maven/execution/MavenSession.java
>>> maven/components/trunk/maven-core/src/main/java/org/apache/
>>> maven/extension/DefaultBuildExtensionScanner.java
>>> maven/components/trunk/maven-embedder/src/main/java/org/
>>> apache/maven/embedder/MavenEmbedder.java
>>>
>>> Modified: maven/components/trunk/maven-core/src/main/java/org/
>>> apache/maven/DefaultMaven.java
>>> URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-
>>> core/src/main/java/org/apache/maven/DefaultMaven.java?
>>> rev=588144&r1=588143&r2=588144&view=diff
>>> ====================================================================
>>> ==========
>>> --- maven/components/trunk/maven-core/src/main/java/org/apache/
>>> maven/DefaultMaven.java (original)
>>> +++ maven/components/trunk/maven-core/src/main/java/org/apache/
>>> maven/DefaultMaven.java Wed Oct 24 22:13:22 2007
>>> @@ -63,7 +63,6 @@
>>> import java.util.ArrayList;
>>> import java.util.Collections;
>>> import java.util.Date;
>>> -import java.util.HashMap;
>>> import java.util.Iterator;
>>> import java.util.List;
>>> import java.util.Map;
>>> @@ -160,14 +159,12 @@
>>> return reactorManager;
>>> }
>>>
>>> - public MavenExecutionResult execute( MavenExecutionRequest
>>> request )
>>> + public MavenExecutionResult execute( MavenExecutionRequest
>>> request, Map projectSessions )
>>> {
>>> request.setStartTime( new Date() );
>>>
>>> MavenExecutionResult result = new
>>> DefaultMavenExecutionResult();
>>>
>>> - Map projectSessions = new HashMap();
>>> -
>>> ReactorManager reactorManager = createReactorManager(
>>> request,
>>> result,
>>> @@ -192,66 +189,59 @@
>>> dispatcher,
>>> projectSessions );
>>>
>>> - try
>>> + for ( Iterator i = request.getGoals().iterator();
>>> i.hasNext(); )
>>> {
>>> - for ( Iterator i = request.getGoals().iterator();
>>> i.hasNext(); )
>>> - {
>>> - String goal = (String) i.next();
>>> -
>>> - TaskValidationResult tvr =
>>> lifecycleExecutor.isTaskValid( goal, session,
>>> reactorManager.getTopLevelProject() );
>>> + String goal = (String) i.next();
>>>
>>> - if ( !tvr.isTaskValid() )
>>> - {
>>> - result.addBuildFailureException( new
>>> InvalidTaskException( tvr ) );
>>> + TaskValidationResult tvr =
>>> lifecycleExecutor.isTaskValid( goal, session,
>>> reactorManager.getTopLevelProject() );
>>>
>>> - return result;
>>> - }
>>> - }
>>> -
>>> - getLogger().info( "Scanning for projects..." );
>>> -
>>> - if ( reactorManager.hasMultipleProjects() )
>>> + if ( !tvr.isTaskValid() )
>>> {
>>> - getLogger().info( "Reactor build order: " );
>>> -
>>> - for ( Iterator i =
>>> reactorManager.getSortedProjects().iterator(); i.hasNext(); )
>>> - {
>>> - MavenProject project = (MavenProject) i.next();
>>> + result.addBuildFailureException( new
>>> InvalidTaskException( tvr ) );
>>>
>>> - getLogger().info( " " + project.getName() );
>>> - }
>>> + return result;
>>> }
>>> + }
>>>
>>> - initializeBuildContext( request );
>>> + getLogger().info( "Scanning for projects..." );
>>>
>>> - try
>>> - {
>>> - lifecycleExecutor.execute(
>>> - session,
>>> - reactorManager,
>>> - dispatcher );
>>> - }
>>> - catch ( LifecycleExecutionException e )
>>> - {
>>> - result.addLifecycleExecutionException( e );
>>> - return result;
>>> - }
>>> - catch ( BuildFailureException e )
>>> + if ( reactorManager.hasMultipleProjects() )
>>> + {
>>> + getLogger().info( "Reactor build order: " );
>>> +
>>> + for ( Iterator i = reactorManager.getSortedProjects
>>> ().iterator(); i.hasNext(); )
>>> {
>>> - result.addBuildFailureException( e );
>>> - return result;
>>> - }
>>> + MavenProject project = (MavenProject) i.next();
>>>
>>> - result.setTopologicallySortedProjects
>>> ( reactorManager.getSortedProjects() );
>>> + getLogger().info( " " + project.getName() );
>>> + }
>>> + }
>>>
>>> - result.setProject( reactorManager.getTopLevelProject
>>> () );
>>> + initializeBuildContext( request );
>>>
>>> + try
>>> + {
>>> + lifecycleExecutor.execute(
>>> + session,
>>> + reactorManager,
>>> + dispatcher );
>>> + }
>>> + catch ( LifecycleExecutionException e )
>>> + {
>>> + result.addLifecycleExecutionException( e );
>>> return result;
>>> }
>>> - finally
>>> + catch ( BuildFailureException e )
>>> {
>>> - session.dispose();
>>> + result.addBuildFailureException( e );
>>> + return result;
>>> }
>>> +
>>> + result.setTopologicallySortedProjects
>>> ( reactorManager.getSortedProjects() );
>>> +
>>> + result.setProject( reactorManager.getTopLevelProject() );
>>> +
>>> + return result;
>>> }
>>>
>>> /**
>>>
>>> Modified: maven/components/trunk/maven-core/src/main/java/org/
>>> apache/maven/Maven.java
>>> URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-
>>> core/src/main/java/org/apache/maven/Maven.java?
>>> rev=588144&r1=588143&r2=588144&view=diff
>>> ====================================================================
>>> ==========
>>> --- maven/components/trunk/maven-core/src/main/java/org/apache/
>>> maven/Maven.java (original)
>>> +++ maven/components/trunk/maven-core/src/main/java/org/apache/
>>> maven/Maven.java Wed Oct 24 22:13:22 2007
>>> @@ -53,7 +53,7 @@
>>>
>>> static final int LOGGING_LEVEL_DISABLE = 5;
>>>
>>> - MavenExecutionResult execute( MavenExecutionRequest request );
>>> + MavenExecutionResult execute( MavenExecutionRequest request,
>>> Map projectSessions );
>>>
>>> ReactorManager createReactorManager( MavenExecutionRequest
>>> request, MavenExecutionResult result, Map projectSessions );
>>> }
>>>
>>> Modified: maven/components/trunk/maven-core/src/main/java/org/
>>> apache/maven/execution/MavenSession.java
>>> URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-
>>> core/src/main/java/org/apache/maven/execution/MavenSession.java?
>>> rev=588144&r1=588143&r2=588144&view=diff
>>> ====================================================================
>>> ==========
>>> --- maven/components/trunk/maven-core/src/main/java/org/apache/
>>> maven/execution/MavenSession.java (original)
>>> +++ maven/components/trunk/maven-core/src/main/java/org/apache/
>>> maven/execution/MavenSession.java Wed Oct 24 22:13:22 2007
>>> @@ -30,7 +30,6 @@
>>>
>>> import java.util.Date;
>>> import java.util.HashMap;
>>> -import java.util.Iterator;
>>> import java.util.LinkedHashMap;
>>> import java.util.List;
>>> import java.util.Map;
>>> @@ -71,15 +70,6 @@
>>> this.reactorManager = reactorManager;
>>>
>>> this.projectSessions = projectSessions == null ? new
>>> HashMap() : projectSessions;
>>> - }
>>> -
>>> - public void dispose()
>>> - {
>>> - for ( Iterator it = projectSessions.values().iterator();
>>> it.hasNext(); )
>>> - {
>>> - MavenProjectSession session = (MavenProjectSession)
>>> it.next();
>>> - session.dispose();
>>> - }
>>> }
>>>
>>> // TODO: Figure out how/when we can shut down all the realms
>>> for extensions/plugins connected to each project session...
>>>
>>> Modified: maven/components/trunk/maven-core/src/main/java/org/
>>> apache/maven/extension/DefaultBuildExtensionScanner.java
>>> URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-
>>> core/src/main/java/org/apache/maven/extension/
>>> DefaultBuildExtensionScanner.java?
>>> rev=588144&r1=588143&r2=588144&view=diff
>>> ====================================================================
>>> ==========
>>> --- maven/components/trunk/maven-core/src/main/java/org/apache/
>>> maven/extension/DefaultBuildExtensionScanner.java (original)
>>> +++ maven/components/trunk/maven-core/src/main/java/org/apache/
>>> maven/extension/DefaultBuildExtensionScanner.java Wed Oct 24
>>> 22:13:22 2007
>>> @@ -26,6 +26,7 @@
>>> import org.apache.maven.model.Extension;
>>> import org.apache.maven.model.Model;
>>> import org.apache.maven.model.Parent;
>>> +import org.apache.maven.plugin.loader.PluginLoader;
>>> import org.apache.maven.profiles.ProfileManager;
>>> import org.apache.maven.profiles.activation.CustomActivatorAdvice;
>>> import org.apache.maven.project.MavenProject;
>>> @@ -65,6 +66,8 @@
>>> private ModelLineageBuilder modelLineageBuilder;
>>>
>>> private ModelInterpolator modelInterpolator;
>>> +
>>> + private PluginLoader pluginLoader;
>>>
>>> public void scanForBuildExtensions( List files,
>>> ArtifactRepository
>>> localRepository,
>>>
>>> Modified: maven/components/trunk/maven-embedder/src/main/java/org/
>>> apache/maven/embedder/MavenEmbedder.java
>>> URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-
>>> embedder/src/main/java/org/apache/maven/embedder/
>>> MavenEmbedder.java?rev=588144&r1=588143&r2=588144&view=diff
>>> ====================================================================
>>> ==========
>>> --- maven/components/trunk/maven-embedder/src/main/java/org/
>>> apache/maven/embedder/MavenEmbedder.java (original)
>>> +++ maven/components/trunk/maven-embedder/src/main/java/org/
>>> apache/maven/embedder/MavenEmbedder.java Wed Oct 24 22:13:22 2007
>>> @@ -35,6 +35,7 @@
>>> import org.apache.maven.execution.DefaultMavenExecutionResult;
>>> import org.apache.maven.execution.MavenExecutionRequest;
>>> import org.apache.maven.execution.MavenExecutionResult;
>>> +import org.apache.maven.execution.MavenProjectSession;
>>> import org.apache.maven.execution.MavenSession;
>>> import org.apache.maven.execution.ReactorManager;
>>> import org.apache.maven.extension.BuildExtensionScanner;
>>> @@ -319,16 +320,9 @@
>>> {
>>> PluginManager pluginManager = (PluginManager)
>>> container.lookup( PluginManager.ROLE );
>>>
>>> - MavenSession session = new MavenSession( container,
>>> request, null, null, new HashMap() );
>>> + MavenSession session = new MavenSession( container,
>>> request, null, null, projectSessions );
>>>
>>> - try
>>> - {
>>> pluginManager.verifyPlugin( plugin, project, session );
>>> - }
>>> - finally
>>> - {
>>> - session.dispose();
>>> - }
>>> }
>>>
>>> /** protected for tests only.. */
>>> @@ -440,7 +434,7 @@
>>> {
>>> getLogger().info( "Scanning for extensions: " +
>>> mavenProject );
>>>
>>> - extensionScanner.scanForBuildExtensions( mavenProject,
>>> request.getLocalRepository(), request.getProfileManager(), new
>>> HashMap() );
>>> + extensionScanner.scanForBuildExtensions( mavenProject,
>>> request.getLocalRepository(), request.getProfileManager(),
>>> projectSessions );
>>>
>>> getLogger().info( "Building MavenProject instance: " +
>>> mavenProject );
>>>
>>> @@ -478,7 +472,7 @@
>>>
>>> Map handlers = findArtifactTypeHandlers( project );
>>>
>>> - //TODO: ok this is crappy, now there are active
>>> collections so when new artifact handlers
>>> + //TODO: ok this is crappy, now there are active
>>> collections so when new artifact handlers
>>> // enter the system they should be available.
>>>
>>> artifactHandlerManager.addHandlers( handlers );
>>> @@ -496,7 +490,7 @@
>>> return result.addExtensionScanningException( e );
>>> }
>>>
>>> - ReactorManager reactorManager =
>>> maven.createReactorManager( request, result, new HashMap() );
>>> + ReactorManager reactorManager =
>>> maven.createReactorManager( request, result, projectSessions );
>>>
>>> if ( result.hasExceptions() )
>>> {
>>> @@ -624,6 +618,22 @@
>>>
>>> private MavenExecutionRequest request;
>>>
>>> + private Map projectSessions;
>>> +
>>> + public void clearProjectSessions()
>>> + {
>>> + if ( ( projectSessions != null ) && !
>>> projectSessions.isEmpty() )
>>> + {
>>> + for ( Iterator it = projectSessions.values().iterator
>>> (); it.hasNext(); )
>>> + {
>>> + MavenProjectSession session =
>>> (MavenProjectSession) it.next();
>>> + session.dispose();
>>> + }
>>> +
>>> + projectSessions.clear();
>>> + }
>>> + }
>>> +
>>> private void start( Configuration configuration )
>>> throws MavenEmbedderException
>>> {
>>> @@ -631,6 +641,8 @@
>>>
>>> logger = configuration.getMavenEmbedderLogger();
>>>
>>> + projectSessions = new HashMap();
>>> +
>>> //
>>> --------------------------------------------------------------------
>>> --------
>>> // Don't override any existing SecurityManager if one
>>> has been installed. Our
>>> // SecurityManager just checks to make sure
>>> @@ -652,8 +664,8 @@
>>>
>>> try
>>> {
>>> - ContainerConfiguration cc = new
>>> DefaultContainerConfiguration()
>>> - .addComponentDiscoverer( new
>>> MavenPluginDiscoverer() )
>>> + ContainerConfiguration cc = new
>>> DefaultContainerConfiguration()
>>> + .addComponentDiscoverer( new
>>> MavenPluginDiscoverer() )
>>> .addComponentDiscoveryListener( new
>>> MavenPluginCollector() )
>>> .setClassWorld( classWorld ).setParentContainer
>>> ( configuration.getParentContainer() ).setName( "embedder" );
>>>
>>> @@ -889,7 +901,7 @@
>>> return result;
>>> }
>>>
>>> - return maven.execute( request );
>>> + return maven.execute( request, projectSessions );
>>> }
>>> finally
>>> {
>>>
>>>
>>>
>>
>>
>> --
>> I could give you my word as a Spaniard.
>> No good. I've known too many Spaniards.
>> -- The Princess Bride
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>>
>
> Thanks,
>
> Jason
>
> ----------------------------------------------------------
> Jason van Zyl
> Founder, Apache Maven
> jason at sonatype dot com
> ----------------------------------------------------------
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
---
John Casey
Committer and PMC Member, Apache Maven
mail: jdcasey at commonjava dot org
blog: http://www.ejlife.net/blogs/john
rss: http://feeds.feedburner.com/ejlife/john
Re: svn commit: r588144 - in /maven/components/trunk: maven-core/src/main/java/org/apache/maven/ maven-core/src/main/java/org/apache/maven/execution/ maven-core/src/main/java/org/apache/maven/extension/ maven-embedder/src/main/java/org/apache/maven/e
Posted by Jason van Zyl <ja...@maven.org>.
On 25 Oct 07, at 3:36 PM 25 Oct 07, Carlos Sanchez wrote:
> could you please keep the old methods and deprecate them with a
> comment, if not keeping up with the changes becomes a nightmare
>
John, put the any additional things you need in the request. I made
the request so that the signature wouldn't need to change in order to
accommodate new things we needed.
>
> On 10/24/07, jdcasey@apache.org <jd...@apache.org> wrote:
>> Author: jdcasey
>> Date: Wed Oct 24 22:13:22 2007
>> New Revision: 588144
>>
>> URL: http://svn.apache.org/viewvc?rev=588144&view=rev
>> Log:
>> Improving the use of project sessions in the embedder, and
>> exporting control over the project session map to the embedder
>> instead of Maven.execute().
>>
>> Modified:
>> maven/components/trunk/maven-core/src/main/java/org/apache/
>> maven/DefaultMaven.java
>> maven/components/trunk/maven-core/src/main/java/org/apache/
>> maven/Maven.java
>> maven/components/trunk/maven-core/src/main/java/org/apache/
>> maven/execution/MavenSession.java
>> maven/components/trunk/maven-core/src/main/java/org/apache/
>> maven/extension/DefaultBuildExtensionScanner.java
>> maven/components/trunk/maven-embedder/src/main/java/org/apache/
>> maven/embedder/MavenEmbedder.java
>>
>> Modified: maven/components/trunk/maven-core/src/main/java/org/
>> apache/maven/DefaultMaven.java
>> URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-
>> core/src/main/java/org/apache/maven/DefaultMaven.java?
>> rev=588144&r1=588143&r2=588144&view=diff
>> =====================================================================
>> =========
>> --- maven/components/trunk/maven-core/src/main/java/org/apache/
>> maven/DefaultMaven.java (original)
>> +++ maven/components/trunk/maven-core/src/main/java/org/apache/
>> maven/DefaultMaven.java Wed Oct 24 22:13:22 2007
>> @@ -63,7 +63,6 @@
>> import java.util.ArrayList;
>> import java.util.Collections;
>> import java.util.Date;
>> -import java.util.HashMap;
>> import java.util.Iterator;
>> import java.util.List;
>> import java.util.Map;
>> @@ -160,14 +159,12 @@
>> return reactorManager;
>> }
>>
>> - public MavenExecutionResult execute( MavenExecutionRequest
>> request )
>> + public MavenExecutionResult execute( MavenExecutionRequest
>> request, Map projectSessions )
>> {
>> request.setStartTime( new Date() );
>>
>> MavenExecutionResult result = new
>> DefaultMavenExecutionResult();
>>
>> - Map projectSessions = new HashMap();
>> -
>> ReactorManager reactorManager = createReactorManager(
>> request,
>> result,
>> @@ -192,66 +189,59 @@
>> dispatcher,
>> projectSessions );
>>
>> - try
>> + for ( Iterator i = request.getGoals().iterator();
>> i.hasNext(); )
>> {
>> - for ( Iterator i = request.getGoals().iterator();
>> i.hasNext(); )
>> - {
>> - String goal = (String) i.next();
>> -
>> - TaskValidationResult tvr =
>> lifecycleExecutor.isTaskValid( goal, session,
>> reactorManager.getTopLevelProject() );
>> + String goal = (String) i.next();
>>
>> - if ( !tvr.isTaskValid() )
>> - {
>> - result.addBuildFailureException( new
>> InvalidTaskException( tvr ) );
>> + TaskValidationResult tvr =
>> lifecycleExecutor.isTaskValid( goal, session,
>> reactorManager.getTopLevelProject() );
>>
>> - return result;
>> - }
>> - }
>> -
>> - getLogger().info( "Scanning for projects..." );
>> -
>> - if ( reactorManager.hasMultipleProjects() )
>> + if ( !tvr.isTaskValid() )
>> {
>> - getLogger().info( "Reactor build order: " );
>> -
>> - for ( Iterator i =
>> reactorManager.getSortedProjects().iterator(); i.hasNext(); )
>> - {
>> - MavenProject project = (MavenProject) i.next();
>> + result.addBuildFailureException( new
>> InvalidTaskException( tvr ) );
>>
>> - getLogger().info( " " + project.getName() );
>> - }
>> + return result;
>> }
>> + }
>>
>> - initializeBuildContext( request );
>> + getLogger().info( "Scanning for projects..." );
>>
>> - try
>> - {
>> - lifecycleExecutor.execute(
>> - session,
>> - reactorManager,
>> - dispatcher );
>> - }
>> - catch ( LifecycleExecutionException e )
>> - {
>> - result.addLifecycleExecutionException( e );
>> - return result;
>> - }
>> - catch ( BuildFailureException e )
>> + if ( reactorManager.hasMultipleProjects() )
>> + {
>> + getLogger().info( "Reactor build order: " );
>> +
>> + for ( Iterator i = reactorManager.getSortedProjects
>> ().iterator(); i.hasNext(); )
>> {
>> - result.addBuildFailureException( e );
>> - return result;
>> - }
>> + MavenProject project = (MavenProject) i.next();
>>
>> - result.setTopologicallySortedProjects
>> ( reactorManager.getSortedProjects() );
>> + getLogger().info( " " + project.getName() );
>> + }
>> + }
>>
>> - result.setProject( reactorManager.getTopLevelProject
>> () );
>> + initializeBuildContext( request );
>>
>> + try
>> + {
>> + lifecycleExecutor.execute(
>> + session,
>> + reactorManager,
>> + dispatcher );
>> + }
>> + catch ( LifecycleExecutionException e )
>> + {
>> + result.addLifecycleExecutionException( e );
>> return result;
>> }
>> - finally
>> + catch ( BuildFailureException e )
>> {
>> - session.dispose();
>> + result.addBuildFailureException( e );
>> + return result;
>> }
>> +
>> + result.setTopologicallySortedProjects
>> ( reactorManager.getSortedProjects() );
>> +
>> + result.setProject( reactorManager.getTopLevelProject() );
>> +
>> + return result;
>> }
>>
>> /**
>>
>> Modified: maven/components/trunk/maven-core/src/main/java/org/
>> apache/maven/Maven.java
>> URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-
>> core/src/main/java/org/apache/maven/Maven.java?
>> rev=588144&r1=588143&r2=588144&view=diff
>> =====================================================================
>> =========
>> --- maven/components/trunk/maven-core/src/main/java/org/apache/
>> maven/Maven.java (original)
>> +++ maven/components/trunk/maven-core/src/main/java/org/apache/
>> maven/Maven.java Wed Oct 24 22:13:22 2007
>> @@ -53,7 +53,7 @@
>>
>> static final int LOGGING_LEVEL_DISABLE = 5;
>>
>> - MavenExecutionResult execute( MavenExecutionRequest request );
>> + MavenExecutionResult execute( MavenExecutionRequest request,
>> Map projectSessions );
>>
>> ReactorManager createReactorManager( MavenExecutionRequest
>> request, MavenExecutionResult result, Map projectSessions );
>> }
>>
>> Modified: maven/components/trunk/maven-core/src/main/java/org/
>> apache/maven/execution/MavenSession.java
>> URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-
>> core/src/main/java/org/apache/maven/execution/MavenSession.java?
>> rev=588144&r1=588143&r2=588144&view=diff
>> =====================================================================
>> =========
>> --- maven/components/trunk/maven-core/src/main/java/org/apache/
>> maven/execution/MavenSession.java (original)
>> +++ maven/components/trunk/maven-core/src/main/java/org/apache/
>> maven/execution/MavenSession.java Wed Oct 24 22:13:22 2007
>> @@ -30,7 +30,6 @@
>>
>> import java.util.Date;
>> import java.util.HashMap;
>> -import java.util.Iterator;
>> import java.util.LinkedHashMap;
>> import java.util.List;
>> import java.util.Map;
>> @@ -71,15 +70,6 @@
>> this.reactorManager = reactorManager;
>>
>> this.projectSessions = projectSessions == null ? new
>> HashMap() : projectSessions;
>> - }
>> -
>> - public void dispose()
>> - {
>> - for ( Iterator it = projectSessions.values().iterator();
>> it.hasNext(); )
>> - {
>> - MavenProjectSession session = (MavenProjectSession)
>> it.next();
>> - session.dispose();
>> - }
>> }
>>
>> // TODO: Figure out how/when we can shut down all the realms
>> for extensions/plugins connected to each project session...
>>
>> Modified: maven/components/trunk/maven-core/src/main/java/org/
>> apache/maven/extension/DefaultBuildExtensionScanner.java
>> URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-
>> core/src/main/java/org/apache/maven/extension/
>> DefaultBuildExtensionScanner.java?
>> rev=588144&r1=588143&r2=588144&view=diff
>> =====================================================================
>> =========
>> --- maven/components/trunk/maven-core/src/main/java/org/apache/
>> maven/extension/DefaultBuildExtensionScanner.java (original)
>> +++ maven/components/trunk/maven-core/src/main/java/org/apache/
>> maven/extension/DefaultBuildExtensionScanner.java Wed Oct 24
>> 22:13:22 2007
>> @@ -26,6 +26,7 @@
>> import org.apache.maven.model.Extension;
>> import org.apache.maven.model.Model;
>> import org.apache.maven.model.Parent;
>> +import org.apache.maven.plugin.loader.PluginLoader;
>> import org.apache.maven.profiles.ProfileManager;
>> import org.apache.maven.profiles.activation.CustomActivatorAdvice;
>> import org.apache.maven.project.MavenProject;
>> @@ -65,6 +66,8 @@
>> private ModelLineageBuilder modelLineageBuilder;
>>
>> private ModelInterpolator modelInterpolator;
>> +
>> + private PluginLoader pluginLoader;
>>
>> public void scanForBuildExtensions( List files,
>> ArtifactRepository
>> localRepository,
>>
>> Modified: maven/components/trunk/maven-embedder/src/main/java/org/
>> apache/maven/embedder/MavenEmbedder.java
>> URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-
>> embedder/src/main/java/org/apache/maven/embedder/
>> MavenEmbedder.java?rev=588144&r1=588143&r2=588144&view=diff
>> =====================================================================
>> =========
>> --- maven/components/trunk/maven-embedder/src/main/java/org/apache/
>> maven/embedder/MavenEmbedder.java (original)
>> +++ maven/components/trunk/maven-embedder/src/main/java/org/apache/
>> maven/embedder/MavenEmbedder.java Wed Oct 24 22:13:22 2007
>> @@ -35,6 +35,7 @@
>> import org.apache.maven.execution.DefaultMavenExecutionResult;
>> import org.apache.maven.execution.MavenExecutionRequest;
>> import org.apache.maven.execution.MavenExecutionResult;
>> +import org.apache.maven.execution.MavenProjectSession;
>> import org.apache.maven.execution.MavenSession;
>> import org.apache.maven.execution.ReactorManager;
>> import org.apache.maven.extension.BuildExtensionScanner;
>> @@ -319,16 +320,9 @@
>> {
>> PluginManager pluginManager = (PluginManager)
>> container.lookup( PluginManager.ROLE );
>>
>> - MavenSession session = new MavenSession( container,
>> request, null, null, new HashMap() );
>> + MavenSession session = new MavenSession( container,
>> request, null, null, projectSessions );
>>
>> - try
>> - {
>> pluginManager.verifyPlugin( plugin, project, session );
>> - }
>> - finally
>> - {
>> - session.dispose();
>> - }
>> }
>>
>> /** protected for tests only.. */
>> @@ -440,7 +434,7 @@
>> {
>> getLogger().info( "Scanning for extensions: " +
>> mavenProject );
>>
>> - extensionScanner.scanForBuildExtensions( mavenProject,
>> request.getLocalRepository(), request.getProfileManager(), new
>> HashMap() );
>> + extensionScanner.scanForBuildExtensions( mavenProject,
>> request.getLocalRepository(), request.getProfileManager(),
>> projectSessions );
>>
>> getLogger().info( "Building MavenProject instance: " +
>> mavenProject );
>>
>> @@ -478,7 +472,7 @@
>>
>> Map handlers = findArtifactTypeHandlers( project );
>>
>> - //TODO: ok this is crappy, now there are active
>> collections so when new artifact handlers
>> + //TODO: ok this is crappy, now there are active
>> collections so when new artifact handlers
>> // enter the system they should be available.
>>
>> artifactHandlerManager.addHandlers( handlers );
>> @@ -496,7 +490,7 @@
>> return result.addExtensionScanningException( e );
>> }
>>
>> - ReactorManager reactorManager = maven.createReactorManager
>> ( request, result, new HashMap() );
>> + ReactorManager reactorManager = maven.createReactorManager
>> ( request, result, projectSessions );
>>
>> if ( result.hasExceptions() )
>> {
>> @@ -624,6 +618,22 @@
>>
>> private MavenExecutionRequest request;
>>
>> + private Map projectSessions;
>> +
>> + public void clearProjectSessions()
>> + {
>> + if ( ( projectSessions != null ) && !
>> projectSessions.isEmpty() )
>> + {
>> + for ( Iterator it = projectSessions.values().iterator
>> (); it.hasNext(); )
>> + {
>> + MavenProjectSession session =
>> (MavenProjectSession) it.next();
>> + session.dispose();
>> + }
>> +
>> + projectSessions.clear();
>> + }
>> + }
>> +
>> private void start( Configuration configuration )
>> throws MavenEmbedderException
>> {
>> @@ -631,6 +641,8 @@
>>
>> logger = configuration.getMavenEmbedderLogger();
>>
>> + projectSessions = new HashMap();
>> +
>> //
>> ---------------------------------------------------------------------
>> -------
>> // Don't override any existing SecurityManager if one has
>> been installed. Our
>> // SecurityManager just checks to make sure
>> @@ -652,8 +664,8 @@
>>
>> try
>> {
>> - ContainerConfiguration cc = new
>> DefaultContainerConfiguration()
>> - .addComponentDiscoverer( new MavenPluginDiscoverer
>> () )
>> + ContainerConfiguration cc = new
>> DefaultContainerConfiguration()
>> + .addComponentDiscoverer( new MavenPluginDiscoverer
>> () )
>> .addComponentDiscoveryListener( new
>> MavenPluginCollector() )
>> .setClassWorld( classWorld ).setParentContainer
>> ( configuration.getParentContainer() ).setName( "embedder" );
>>
>> @@ -889,7 +901,7 @@
>> return result;
>> }
>>
>> - return maven.execute( request );
>> + return maven.execute( request, projectSessions );
>> }
>> finally
>> {
>>
>>
>>
>
>
> --
> I could give you my word as a Spaniard.
> No good. I've known too many Spaniards.
> -- The Princess Bride
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
Thanks,
Jason
----------------------------------------------------------
Jason van Zyl
Founder, Apache Maven
jason at sonatype dot com
----------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org