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, [EMAIL PROTECTED] <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to