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