Author: jdcasey Date: Wed Aug 24 19:57:39 2011 New Revision: 1161257 URL: http://svn.apache.org/viewvc?rev=1161257&view=rev Log: renaming *SessionInjector to *SessionInitializer, and consolidating all the methods within into one coordinated initializeSessionComponents method...then, adjusting that method implementation until it works.
Added: maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/DefaultSessionInitializer.java (with props) maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/SessionInitializer.java (with props) Removed: maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/DefaultSessionInjector.java maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/SessionInjector.java Modified: maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/services/DefaultMAEServiceManager.java maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/DefaultModelLoader.java maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/DefaultProjectLoader.java maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/ProjectToolsSession.java maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/SimpleProjectToolsSession.java maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/test/java/org/apache/maven/mae/project/testutil/TestFixture.java Modified: maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/services/DefaultMAEServiceManager.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/services/DefaultMAEServiceManager.java?rev=1161257&r1=1161256&r2=1161257&view=diff ============================================================================== --- maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/services/DefaultMAEServiceManager.java (original) +++ maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/services/DefaultMAEServiceManager.java Wed Aug 24 19:57:39 2011 @@ -133,13 +133,13 @@ public class DefaultMAEServiceManager * {@inheritDoc} */ @Override - public DefaultProjectBuildingRequest createProjectBuildingRequest( final ProjectBuildingRequest templateProjectBuildingRequest ) + public DefaultProjectBuildingRequest createProjectBuildingRequest( final ProjectBuildingRequest template ) throws MAEEmbeddingException { final DefaultProjectBuildingRequest req; - if ( templateProjectBuildingRequest != null ) + if ( template != null ) { - req = new DefaultProjectBuildingRequest( templateProjectBuildingRequest ); + req = new DefaultProjectBuildingRequest( template ); } else { Modified: maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/DefaultModelLoader.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/DefaultModelLoader.java?rev=1161257&r1=1161256&r2=1161257&view=diff ============================================================================== --- maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/DefaultModelLoader.java (original) +++ maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/DefaultModelLoader.java Wed Aug 24 19:57:39 2011 @@ -39,7 +39,7 @@ import org.apache.maven.mae.project.even import org.apache.maven.mae.project.internal.SimpleModelResolver; import org.apache.maven.mae.project.key.FullProjectKey; import org.apache.maven.mae.project.session.ProjectToolsSession; -import org.apache.maven.mae.project.session.SessionInjector; +import org.apache.maven.mae.project.session.SessionInitializer; import org.apache.maven.model.Model; import org.apache.maven.model.building.FileModelSource; import org.apache.maven.model.building.ModelSource; @@ -70,7 +70,7 @@ public class DefaultModelLoader private ModelReader modelReader; @Requirement - private SessionInjector sessionInjector; + private SessionInitializer sessionInitializer; @Override public List<Model> loadRawModels( final ProjectToolsSession session, final boolean processModules, @@ -158,10 +158,12 @@ public class DefaultModelLoader final ProjectToolsSession session ) throws ProjectToolsException { + sessionInitializer.initializeSessionComponents( session ); + try { - RepositorySystemSession rss = sessionInjector.getRepositorySystemSession( session ); - List<RemoteRepository> repos = sessionInjector.getRemoteRepositories( session ); + RepositorySystemSession rss = session.getRepositorySystemSession(); + List<RemoteRepository> repos = session.getRemoteRepositoriesForResolution(); SimpleModelResolver resolver = new SimpleModelResolver( rss, repos, new DefaultRequestTrace( key ), artifactResolver, Modified: maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/DefaultProjectLoader.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/DefaultProjectLoader.java?rev=1161257&r1=1161256&r2=1161257&view=diff ============================================================================== --- maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/DefaultProjectLoader.java (original) +++ maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/DefaultProjectLoader.java Wed Aug 24 19:57:39 2011 @@ -39,7 +39,7 @@ import org.apache.maven.RepositoryUtils; import org.apache.maven.artifact.ArtifactUtils; import org.apache.maven.mae.project.key.FullProjectKey; import org.apache.maven.mae.project.session.ProjectToolsSession; -import org.apache.maven.mae.project.session.SessionInjector; +import org.apache.maven.mae.project.session.SessionInitializer; import org.apache.maven.model.Model; import org.apache.maven.model.Parent; import org.apache.maven.model.building.ModelProblem; @@ -78,15 +78,15 @@ public class DefaultProjectLoader private ProjectBuilder projectBuilder; @Requirement - private SessionInjector sessionInjector; + private SessionInitializer sessionInitializer; @Override public List<MavenProject> buildReactorProjectInstances( final ProjectToolsSession session, final boolean recursive, final File... rootPoms ) throws ProjectToolsException { - sessionInjector.getRemoteRepositories( session ); - final ProjectBuildingRequest pbr = sessionInjector.getProjectBuildingRequest( session ); + sessionInitializer.initializeSessionComponents( session ); + final ProjectBuildingRequest pbr = session.getProjectBuildingRequest(); try { @@ -97,7 +97,7 @@ public class DefaultProjectLoader for ( final ProjectBuildingResult result : results ) { final MavenProject project = result.getProject(); - project.setRemoteArtifactRepositories( session.getRemoteArtifactRepositories() ); + project.setRemoteArtifactRepositories( session.getArtifactRepositoriesForResolution() ); projects.add( project ); } @@ -218,15 +218,15 @@ public class DefaultProjectLoader public MavenProject buildProjectInstance( final File pomFile, final ProjectToolsSession session ) throws ProjectToolsException { - sessionInjector.getRemoteRepositories( session ); - final ProjectBuildingRequest pbr = sessionInjector.getProjectBuildingRequest( session ); + sessionInitializer.initializeSessionComponents( session ); + final ProjectBuildingRequest pbr = session.getProjectBuildingRequest(); try { final ProjectBuildingResult result = projectBuilder.build( pomFile, pbr ); final MavenProject project = result.getProject(); - project.setRemoteArtifactRepositories( session.getRemoteArtifactRepositories() ); + project.setRemoteArtifactRepositories( session.getArtifactRepositoriesForResolution() ); addProjects( session, project ); @@ -291,7 +291,8 @@ public class DefaultProjectLoader final ProjectToolsSession session ) throws ProjectToolsException { - final ProjectBuildingRequest req = sessionInjector.getProjectBuildingRequest( session ); + sessionInitializer.initializeSessionComponents( session ); + final ProjectBuildingRequest pbr = session.getProjectBuildingRequest(); try { @@ -301,16 +302,16 @@ public class DefaultProjectLoader final Artifact aetherPomArtifact = RepositoryUtils.toArtifact( pomArtifact ); final ArtifactRequest artifactRequest = - new ArtifactRequest( aetherPomArtifact, sessionInjector.getRemoteRepositories( session ), "project" ); + new ArtifactRequest( aetherPomArtifact, session.getRemoteRepositoriesForResolution(), "project" ); final ArtifactResult artifactResult = - aetherRepositorySystem.resolveArtifact( req.getRepositorySession(), artifactRequest ); + aetherRepositorySystem.resolveArtifact( pbr.getRepositorySession(), artifactRequest ); final File pomFile = artifactResult.getArtifact().getFile(); - final ProjectBuildingResult result = projectBuilder.build( pomFile, req ); + final ProjectBuildingResult result = projectBuilder.build( pomFile, pbr ); final MavenProject project = result.getProject(); - project.setRemoteArtifactRepositories( session.getRemoteArtifactRepositories() ); + project.setRemoteArtifactRepositories( session.getArtifactRepositoriesForResolution() ); project.setFile( pomFile ); Added: maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/DefaultSessionInitializer.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/DefaultSessionInitializer.java?rev=1161257&view=auto ============================================================================== --- maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/DefaultSessionInitializer.java (added) +++ maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/DefaultSessionInitializer.java Wed Aug 24 19:57:39 2011 @@ -0,0 +1,266 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.maven.mae.project.session; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import org.apache.log4j.Logger; +import org.apache.maven.artifact.InvalidRepositoryException; +import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.artifact.repository.MavenArtifactRepository; +import org.apache.maven.execution.MavenSession; +import org.apache.maven.mae.MAEException; +import org.apache.maven.mae.boot.embed.MAEEmbeddingException; +import org.apache.maven.mae.boot.services.MAEServiceManager; +import org.apache.maven.mae.project.ProjectToolsException; +import org.apache.maven.model.Repository; +import org.apache.maven.plugin.LegacySupport; +import org.apache.maven.project.DefaultProjectBuildingRequest; +import org.apache.maven.project.ProjectBuildingRequest; +import org.apache.maven.repository.RepositorySystem; +import org.codehaus.plexus.PlexusContainer; +import org.codehaus.plexus.component.annotations.Component; +import org.codehaus.plexus.component.annotations.Requirement; +import org.sonatype.aether.RepositorySystemSession; +import org.sonatype.aether.impl.internal.EnhancedLocalRepositoryManager; +import org.sonatype.aether.repository.AuthenticationSelector; +import org.sonatype.aether.repository.ProxySelector; +import org.sonatype.aether.repository.RemoteRepository; +import org.sonatype.aether.util.DefaultRepositorySystemSession; + +@Component( role = SessionInitializer.class ) +public class DefaultSessionInitializer + implements SessionInitializer +{ + + private static final Logger LOGGER = Logger.getLogger( DefaultSessionInitializer.class ); + + @Requirement + private MAEServiceManager serviceManager; + + @Requirement + private RepositorySystem mavenRepositorySystem; + + @Requirement + private LegacySupport legacySupport; + + @Requirement + private PlexusContainer container; + + @Override + public synchronized void initializeSessionComponents( final ProjectToolsSession session ) + throws ProjectToolsException + { + if ( session.isInitialized() ) + { + return; + } + + RepositorySystemSession rss = getRepositorySystemSession( session ); + + MavenSession mavenSession = + new MavenSession( container, rss, session.getExecutionRequest(), session.getExecutionResult() ); + + legacySupport.setSession( mavenSession ); + + List<ArtifactRepository> artifactRepos = + getArtifactRepositories( session.getRepositoryDefinitionsForResolution(), rss ); + + List<RemoteRepository> remoteRepositories = getRemoteRepositories( rss, artifactRepos ); + + ProjectBuildingRequest pbr = getProjectBuildingRequest( session, rss, artifactRepos ); + pbr = pbr.setRemoteRepositories( artifactRepos ); + pbr.setRepositorySession( rss ); + + session.initialize( rss, pbr, artifactRepos, remoteRepositories ); + } + + private RepositorySystemSession getRepositorySystemSession( final ProjectToolsSession session ) + throws ProjectToolsException + { + final File localRepo = session.getLocalRepositoryDirectory(); + + RepositorySystemSession sess = session.getRepositorySystemSession(); + if ( sess == null ) + { + DefaultRepositorySystemSession rss; + try + { + rss = + new DefaultRepositorySystemSession( + serviceManager.createAetherRepositorySystemSession( session.getExecutionRequest() ) ); + } + catch ( MAEEmbeddingException e ) + { + throw new ProjectToolsException( "Failed to create RepositorySystemSession instance: %s", e, + e.getMessage() ); + } + + if ( localRepo != null ) + { + localRepo.mkdirs(); + rss.setLocalRepositoryManager( new EnhancedLocalRepositoryManager( localRepo ) ); + } + + rss.setWorkspaceReader( new SessionWorkspaceReader( session ) ); + + sess = rss; + } + + sess.getData().set( ProjectToolsSession.SESSION_KEY, session ); + + return sess; + } + + private ProjectBuildingRequest getProjectBuildingRequest( final ProjectToolsSession session, + final RepositorySystemSession rss, + final List<ArtifactRepository> artifactRepos ) + throws ProjectToolsException + { + ProjectBuildingRequest pbr = session.getProjectBuildingRequest(); + try + { + if ( pbr == null ) + { + pbr = serviceManager.createProjectBuildingRequest( session.getTemplateProjectBuildingRequest() ); + + pbr.setValidationLevel( session.getPomValidationLevel() ); + pbr.setProcessPlugins( session.isProcessPomPlugins() ); + pbr.setResolveDependencies( false ); + pbr.setSystemProperties( System.getProperties() ); + pbr.setInactiveProfileIds( new ArrayList<String>() ); + pbr.setRepositoryMerging( ProjectBuildingRequest.RepositoryMerging.REQUEST_DOMINANT ); + + pbr.setRepositorySession( rss ); + pbr.setLocalRepository( mavenRepositorySystem.createLocalRepository( rss.getLocalRepository().getBasedir() ) ); + pbr.setRemoteRepositories( artifactRepos ); + } + else + { + pbr = new DefaultProjectBuildingRequest( pbr ); + pbr.setRepositorySession( getRepositorySystemSession( session ) ); + } + } + catch ( final MAEException e ) + { + throw new ProjectToolsException( "Failed to create project-building request: %s", e, e.getMessage() ); + } + catch ( final InvalidRepositoryException e ) + { + throw new ProjectToolsException( "Failed to create local-repository instance. Reason: %s", e, + e.getMessage() ); + } + + return pbr; + } + + private List<RemoteRepository> getRemoteRepositories( final RepositorySystemSession rss, + final List<ArtifactRepository> artifactRepos ) + throws ProjectToolsException + { + List<RemoteRepository> result = new ArrayList<RemoteRepository>(); + + for ( final ArtifactRepository repo : artifactRepos ) + { + RemoteRepository r = null; + if ( repo instanceof RemoteRepository ) + { + r = (RemoteRepository) repo; + } + else if ( repo instanceof MavenArtifactRepository ) + { + r = new RemoteRepository( repo.getId(), "default", repo.getUrl() ); + } + + if ( r != null ) + { + result.add( r ); + } + } + + boolean selectorsEnabled = false; + AuthenticationSelector authSelector = null; + ProxySelector proxySelector = null; + if ( rss != null ) + { + selectorsEnabled = true; + authSelector = rss.getAuthenticationSelector(); + proxySelector = rss.getProxySelector(); + } + else + { + LOGGER.warn( "Cannot set proxy or authentication information on new RemoteRepositories; " + + "RepositorySystemSession is not available in ProjectToolsSession instance." ); + } + + if ( selectorsEnabled ) + { + for ( RemoteRepository r : result ) + { + r.setAuthentication( authSelector.getAuthentication( r ) ); + r.setProxy( proxySelector.getProxy( r ) ); + } + } + + return result; + } + + private List<ArtifactRepository> getArtifactRepositories( final Repository[] repoDefinitions, + final RepositorySystemSession rss ) + throws ProjectToolsException + { + List<ArtifactRepository> repos = + new ArrayList<ArtifactRepository>( repoDefinitions == null ? 0 : repoDefinitions.length ); + + if ( repoDefinitions != null ) + { + for ( final Repository repo : repoDefinitions ) + { + try + { + repos.add( mavenRepositorySystem.buildArtifactRepository( repo ) ); + } + catch ( final InvalidRepositoryException e ) + { + throw new ProjectToolsException( + "Failed to create remote artifact repository instance from: %s\nReason: %s", + e, repo, e.getMessage() ); + } + } + } + + try + { + repos.add( mavenRepositorySystem.createDefaultRemoteRepository() ); + } + catch ( final InvalidRepositoryException e ) + { + throw new ProjectToolsException( "Failed to create default (central) repository instance: %s", e, + e.getMessage() ); + } + + mavenRepositorySystem.injectAuthentication( rss, repos ); + + return repos; + } + +} Propchange: maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/DefaultSessionInitializer.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/ProjectToolsSession.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/ProjectToolsSession.java?rev=1161257&r1=1161256&r2=1161257&view=diff ============================================================================== --- maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/ProjectToolsSession.java (original) +++ maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/ProjectToolsSession.java Wed Aug 24 19:57:39 2011 @@ -25,6 +25,7 @@ import java.util.List; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.execution.MavenExecutionRequest; +import org.apache.maven.execution.MavenExecutionResult; import org.apache.maven.mae.project.event.EventDispatcher; import org.apache.maven.model.Repository; import org.apache.maven.project.MavenProject; @@ -40,26 +41,24 @@ public interface ProjectToolsSession public static final String SESSION_KEY = "dependency-resolver-session"; - List<ArtifactRepository> getRemoteArtifactRepositories(); + List<ArtifactRepository> getArtifactRepositoriesForResolution(); - ProjectToolsSession setRemoteArtifactRepositories( final List<ArtifactRepository> remoteArtifactRepositories ); + ProjectToolsSession setArtifactRepositoriesForResolution( final List<ArtifactRepository> remoteArtifactRepositories ); - Repository[] getResolveRepositories(); + Repository[] getRepositoryDefinitionsForResolution(); File getLocalRepositoryDirectory(); - List<RemoteRepository> getRemoteRepositories(); + List<RemoteRepository> getRemoteRepositoriesForResolution(); - ProjectToolsSession setRemoteRepositories( final List<RemoteRepository> remoteRepositories ); + ProjectToolsSession setRemoteRepositoriesForResolution( final List<RemoteRepository> remoteRepositories ); ProjectBuildingRequest getProjectBuildingRequest(); - ProjectToolsSession setProjectBuildingRequest( final ProjectBuildingRequest projectBuildingRequest ); + ProjectToolsSession setProjectBuildingRequest( final ProjectBuildingRequest pbr ); RepositorySystemSession getRepositorySystemSession(); - ProjectToolsSession setRepositorySystemSession( final RepositorySystemSession repositorySystemSession ); - ProjectToolsSession addReactorProject( final MavenProject project ); ProjectToolsSession setReactorProjects( final MavenProject... projects ); @@ -80,6 +79,10 @@ public interface ProjectToolsSession MavenExecutionRequest getExecutionRequest(); + ProjectToolsSession setExecutionResult( MavenExecutionResult result ); + + MavenExecutionResult getExecutionResult(); + ProjectToolsSession setResolveThreads( int threads ); int getResolveThreads(); @@ -117,4 +120,8 @@ public interface ProjectToolsSession <E> ProjectToolsSession setEventDispatcher( Class<E> eventType, EventDispatcher<E> dispatcher ); + void initialize( RepositorySystemSession rss, ProjectBuildingRequest pbr, List<ArtifactRepository> artifactRepos, + List<RemoteRepository> remoteRepos ); + + boolean isInitialized(); } Added: maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/SessionInitializer.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/SessionInitializer.java?rev=1161257&view=auto ============================================================================== --- maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/SessionInitializer.java (added) +++ maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/SessionInitializer.java Wed Aug 24 19:57:39 2011 @@ -0,0 +1,30 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.maven.mae.project.session; + +import org.apache.maven.mae.project.ProjectToolsException; + +public interface SessionInitializer +{ + + void initializeSessionComponents( final ProjectToolsSession session ) + throws ProjectToolsException; + +} Propchange: maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/SessionInitializer.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/SimpleProjectToolsSession.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/SimpleProjectToolsSession.java?rev=1161257&r1=1161256&r2=1161257&view=diff ============================================================================== --- maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/SimpleProjectToolsSession.java (original) +++ maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/main/java/org/apache/maven/mae/project/session/SimpleProjectToolsSession.java Wed Aug 24 19:57:39 2011 @@ -30,7 +30,10 @@ import java.util.List; import java.util.Map; import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.execution.DefaultMavenExecutionRequest; +import org.apache.maven.execution.DefaultMavenExecutionResult; import org.apache.maven.execution.MavenExecutionRequest; +import org.apache.maven.execution.MavenExecutionResult; import org.apache.maven.mae.project.event.EventDispatcher; import org.apache.maven.model.Repository; import org.apache.maven.model.building.ModelBuildingRequest; @@ -78,6 +81,8 @@ public class SimpleProjectToolsSession private transient Map<Class<?>, Object> states = new HashMap<Class<?>, Object>(); + private MavenExecutionResult executionResult; + public SimpleProjectToolsSession() { } @@ -85,10 +90,10 @@ public class SimpleProjectToolsSession /** * {@inheritDoc} * - * @see org.apache.maven.mae.project.session.ProjectToolsSession#getRemoteArtifactRepositories() + * @see org.apache.maven.mae.project.session.ProjectToolsSession#getArtifactRepositoriesForResolution() */ @Override - public List<ArtifactRepository> getRemoteArtifactRepositories() + public List<ArtifactRepository> getArtifactRepositoriesForResolution() { return remoteArtifactRepositories; } @@ -96,10 +101,10 @@ public class SimpleProjectToolsSession /** * {@inheritDoc} * - * @see org.apache.maven.mae.project.session.ProjectToolsSession#setRemoteArtifactRepositories(java.util.List) + * @see org.apache.maven.mae.project.session.ProjectToolsSession#setArtifactRepositoriesForResolution(java.util.List) */ @Override - public ProjectToolsSession setRemoteArtifactRepositories( final List<ArtifactRepository> remoteArtifactRepositories ) + public ProjectToolsSession setArtifactRepositoriesForResolution( final List<ArtifactRepository> remoteArtifactRepositories ) { this.remoteArtifactRepositories = remoteArtifactRepositories; return this; @@ -108,10 +113,10 @@ public class SimpleProjectToolsSession /** * {@inheritDoc} * - * @see org.apache.maven.mae.project.session.ProjectToolsSession#getResolveRepositories() + * @see org.apache.maven.mae.project.session.ProjectToolsSession#getRepositoryDefinitionsForResolution() */ @Override - public Repository[] getResolveRepositories() + public Repository[] getRepositoryDefinitionsForResolution() { return resolveRepositories; } @@ -119,10 +124,10 @@ public class SimpleProjectToolsSession /** * {@inheritDoc} * - * @see org.apache.maven.mae.project.session.ProjectToolsSession#getRemoteRepositories() + * @see org.apache.maven.mae.project.session.ProjectToolsSession#getRemoteRepositoriesForResolution() */ @Override - public List<RemoteRepository> getRemoteRepositories() + public List<RemoteRepository> getRemoteRepositoriesForResolution() { return remoteRepositories; } @@ -142,10 +147,10 @@ public class SimpleProjectToolsSession /** * {@inheritDoc} * - * @see org.apache.maven.mae.project.session.ProjectToolsSession#setRemoteRepositories(java.util.List) + * @see org.apache.maven.mae.project.session.ProjectToolsSession#setRemoteRepositoriesForResolution(java.util.List) */ @Override - public ProjectToolsSession setRemoteRepositories( final List<RemoteRepository> remoteRepositories ) + public ProjectToolsSession setRemoteRepositoriesForResolution( final List<RemoteRepository> remoteRepositories ) { this.remoteRepositories = remoteRepositories; return this; @@ -162,15 +167,10 @@ public class SimpleProjectToolsSession return projectBuildingRequest; } - /** - * {@inheritDoc} - * - * @see org.apache.maven.mae.project.session.ProjectToolsSession#setProjectBuildingRequest(org.apache.maven.project.ProjectBuildingRequest) - */ @Override - public ProjectToolsSession setProjectBuildingRequest( final ProjectBuildingRequest projectBuildingRequest ) + public ProjectToolsSession setProjectBuildingRequest( final ProjectBuildingRequest pbr ) { - this.projectBuildingRequest = projectBuildingRequest; + this.projectBuildingRequest = pbr; return this; } @@ -188,18 +188,6 @@ public class SimpleProjectToolsSession /** * {@inheritDoc} * - * @see org.apache.maven.mae.project.session.ProjectToolsSession#setRepositorySystemSession(org.sonatype.aether.RepositorySystemSession) - */ - @Override - public ProjectToolsSession setRepositorySystemSession( final RepositorySystemSession repositorySystemSession ) - { - this.repositorySystemSession = repositorySystemSession; - return this; - } - - /** - * {@inheritDoc} - * * @see org.apache.maven.mae.project.session.ProjectToolsSession#addReactorProject(org.apache.maven.project.MavenProject) */ @Override @@ -330,9 +318,9 @@ public class SimpleProjectToolsSession * @see org.apache.maven.mae.project.session.ProjectToolsSession#setExecutionRequest(org.apache.maven.execution.MavenExecutionRequest) */ @Override - public ProjectToolsSession setExecutionRequest( final MavenExecutionRequest request ) + public ProjectToolsSession setExecutionRequest( final MavenExecutionRequest executionRequest ) { - executionRequest = request; + this.executionRequest = executionRequest; return this; } @@ -342,11 +330,34 @@ public class SimpleProjectToolsSession * @see org.apache.maven.mae.project.session.ProjectToolsSession#getExecutionRequest() */ @Override - public MavenExecutionRequest getExecutionRequest() + public synchronized MavenExecutionRequest getExecutionRequest() { + if ( executionRequest == null ) + { + executionRequest = new DefaultMavenExecutionRequest(); + } + return executionRequest; } + @Override + public ProjectToolsSession setExecutionResult( final MavenExecutionResult executionResult ) + { + this.executionResult = executionResult; + return this; + } + + @Override + public synchronized MavenExecutionResult getExecutionResult() + { + if ( executionResult == null ) + { + this.executionResult = new DefaultMavenExecutionResult(); + } + + return executionResult; + } + /** * {@inheritDoc} * @@ -522,6 +533,8 @@ public class SimpleProjectToolsSession private final Map<Class<?>, EventDispatcher<?>> eventDispatchers = new HashMap<Class<?>, EventDispatcher<?>>(); + private boolean initialized; + @SuppressWarnings( "unchecked" ) @Override public <E> EventDispatcher<E> getEventDispatcher( final Class<E> eventType ) @@ -536,4 +549,23 @@ public class SimpleProjectToolsSession return this; } + @Override + public void initialize( final RepositorySystemSession rss, final ProjectBuildingRequest pbr, + final List<ArtifactRepository> artifactRepos, final List<RemoteRepository> remoteRepos ) + { + this.repositorySystemSession = rss; + this.projectBuildingRequest = pbr; + + setArtifactRepositoriesForResolution( artifactRepos ); + setRemoteRepositoriesForResolution( remoteRepos ); + + this.initialized = true; + } + + @Override + public boolean isInitialized() + { + return initialized; + } + } Modified: maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/test/java/org/apache/maven/mae/project/testutil/TestFixture.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/test/java/org/apache/maven/mae/project/testutil/TestFixture.java?rev=1161257&r1=1161256&r2=1161257&view=diff ============================================================================== --- maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/test/java/org/apache/maven/mae/project/testutil/TestFixture.java (original) +++ maven/sandbox/trunk/mae/mae-components/mae-project-tools/src/test/java/org/apache/maven/mae/project/testutil/TestFixture.java Wed Aug 24 19:57:39 2011 @@ -250,7 +250,7 @@ public final class TestFixture session.setLocalRepositoryDirectory( localRepoDir ); session.setResolveRepositories( rawRemoteRepo ); - session.setRemoteArtifactRepositories( Collections.singletonList( remoteRepository ) ); + session.setArtifactRepositoriesForResolution( Collections.singletonList( remoteRepository ) ); if ( projects != null && projects.length > 0 ) {