You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ba...@apache.org on 2015/02/21 06:05:16 UTC

svn commit: r1661283 - in /continuum/trunk: continuum-api/src/main/java/org/apache/continuum/utils/release/ continuum-api/src/main/resources/META-INF/ continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/configura...

Author: batkinson
Date: Sat Feb 21 05:05:15 2015
New Revision: 1661283

URL: http://svn.apache.org/r1661283
Log:
[CONTINUUM-2094] Expanded release metadata support using MavenProject rather than Model.

Added:
    continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/utils/
    continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/utils/DefaultReleaseHelper.java
      - copied, changed from r1661282, continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/release/DefaultReleaseHelper.java
    continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/utils/ReleaseHelper.java
      - copied, changed from r1661282, continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/release/ReleaseHelper.java
    continuum/trunk/continuum-release/src/main/resources/META-INF/spring-context.xml
      - copied, changed from r1661282, continuum/trunk/continuum-api/src/main/resources/META-INF/spring-context.xml
Removed:
    continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/release/DefaultReleaseHelper.java
    continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/release/ReleaseHelper.java
Modified:
    continuum/trunk/continuum-api/src/main/resources/META-INF/spring-context.xml
    continuum/trunk/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationService.java
    continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java
    continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfigurationService.java
    continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/DefaultBuildAgentReleaseManager.java
    continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/execution/BuildProjectTaskExecutor.java
    continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/manager/BuildAgentReleaseManagerTest.java
    continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/taskqueue/execution/BuildProjectTaskExecutorTest.java
    continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/DeployArtifactContinuumAction.java
    continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/DefaultMavenBuilderHelper.java
    continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenBuilderHelper.java
    continuum/trunk/continuum-core/src/test/java/org/apache/continuum/AbstractAddProjectTest.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePrepareAction.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ConfigureAppearanceAction.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/EditPomAction.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/CompanyInfoAction.java
    continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-server/src/main/java/org/apache/maven/continuum/xmlrpc/server/ContinuumServiceImpl.java

Modified: continuum/trunk/continuum-api/src/main/resources/META-INF/spring-context.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/resources/META-INF/spring-context.xml?rev=1661283&r1=1661282&r2=1661283&view=diff
==============================================================================
--- continuum/trunk/continuum-api/src/main/resources/META-INF/spring-context.xml (original)
+++ continuum/trunk/continuum-api/src/main/resources/META-INF/spring-context.xml Sat Feb 21 05:05:15 2015
@@ -31,5 +31,5 @@
   <context:component-scan
       base-package="org.apache.continuum.installation,org.apache.continuum.profile,
                   org.apache.maven.continuum.configuration,org.apache.maven.continuum.utils,
-                  org.apache.continuum.utils.shell,org.apache.continuum.utils.release"/>
+                  org.apache.continuum.utils.m2,org.apache.continuum.utils.shell"/>
 </beans>
\ No newline at end of file

Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationService.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationService.java?rev=1661283&r1=1661282&r2=1661283&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationService.java (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationService.java Sat Feb 21 05:05:15 2015
@@ -47,7 +47,8 @@ public interface BuildAgentConfiguration
 
     List<Installation> getAvailableInstallations();
 
-    List<LocalRepository> getLocalRepositories();
+    LocalRepository getLocalRepositoryByName( String name )
+        throws BuildAgentConfigurationException;
 
     String getSharedSecretPassword();
 

Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java?rev=1661283&r1=1661282&r2=1661283&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java Sat Feb 21 05:05:15 2015
@@ -24,11 +24,13 @@ import org.apache.commons.lang.ArrayUtil
 import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.continuum.buildagent.buildcontext.BuildContext;
 import org.apache.continuum.buildagent.buildcontext.manager.BuildContextManager;
+import org.apache.continuum.buildagent.configuration.BuildAgentConfigurationException;
 import org.apache.continuum.buildagent.configuration.BuildAgentConfigurationService;
 import org.apache.continuum.buildagent.manager.BuildAgentManager;
 import org.apache.continuum.buildagent.manager.BuildAgentPurgeManager;
 import org.apache.continuum.buildagent.manager.BuildAgentReleaseManager;
 import org.apache.continuum.buildagent.model.Installation;
+import org.apache.continuum.buildagent.model.LocalRepository;
 import org.apache.continuum.buildagent.taskqueue.PrepareBuildProjectsTask;
 import org.apache.continuum.buildagent.taskqueue.manager.BuildAgentTaskQueueManager;
 import org.apache.continuum.buildagent.utils.ContinuumBuildAgentUtil;
@@ -36,8 +38,11 @@ import org.apache.continuum.buildagent.u
 import org.apache.continuum.taskqueue.BuildProjectTask;
 import org.apache.continuum.taskqueue.manager.TaskQueueManagerException;
 import org.apache.continuum.utils.build.BuildTrigger;
-import org.apache.continuum.utils.release.ReleaseHelper;
+import org.apache.continuum.release.utils.ReleaseHelper;
+import org.apache.continuum.utils.m2.LocalRepositoryHelper;
+import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.continuum.ContinuumException;
+import org.apache.maven.continuum.execution.SettingsConfigurationException;
 import org.apache.maven.continuum.model.project.BuildResult;
 import org.apache.maven.continuum.model.scm.ChangeFile;
 import org.apache.maven.continuum.model.scm.ChangeSet;
@@ -96,6 +101,9 @@ public class ContinuumBuildAgentServiceI
     @Requirement
     private ReleaseHelper releaseHelper;
 
+    @Requirement
+    LocalRepositoryHelper localRepositoryHelper;
+
     public void buildProjects( List<Map<String, Object>> projectsBuildContext )
         throws ContinuumBuildAgentException
     {
@@ -358,6 +366,26 @@ public class ContinuumBuildAgentServiceI
         return projectFile;
     }
 
+    private ArtifactRepository getArtifactRepository( int projectId )
+        throws SettingsConfigurationException
+    {
+        BuildContext buildContext = buildContextManager.getBuildContext( projectId );
+
+        org.apache.continuum.model.repository.LocalRepository localRepo = null;
+        try
+        {
+            LocalRepository agentRepo = null;
+            buildAgentConfigurationService.getLocalRepositoryByName( buildContext.getLocalRepository() );
+            localRepo = localRepositoryHelper.convertAgentRepo( agentRepo );
+        }
+        catch ( BuildAgentConfigurationException e )
+        {
+            log.warn( "failed to find local repo for project {}: {}", projectId, e.getMessage() );
+        }
+
+        return localRepositoryHelper.getLocalRepository( localRepo );
+    }
+
     public Map<String, Object> getReleasePluginParameters( int projectId, String pomFilename )
         throws ContinuumBuildAgentException
     {
@@ -366,7 +394,8 @@ public class ContinuumBuildAgentServiceI
         try
         {
             log.debug( "Getting release plugin parameters of project {}", projectId );
-            return releaseHelper.extractPluginParameters( workingDirectory, pomFilename );
+            ArtifactRepository repo = getArtifactRepository( projectId );
+            return releaseHelper.extractPluginParameters( repo, workingDirectory, pomFilename );
         }
         catch ( Exception e )
         {
@@ -383,7 +412,8 @@ public class ContinuumBuildAgentServiceI
 
         try
         {
-            releaseHelper.buildVersionParams( workingDirectory, pomFilename, autoVersionSubmodules, projects );
+            ArtifactRepository repo = getArtifactRepository( projectId );
+            releaseHelper.buildVersionParams( repo, workingDirectory, pomFilename, autoVersionSubmodules, projects );
         }
         catch ( Exception e )
         {

Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfigurationService.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfigurationService.java?rev=1661283&r1=1661282&r2=1661283&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfigurationService.java (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfigurationService.java Sat Feb 21 05:05:15 2015
@@ -149,6 +149,19 @@ public class DefaultBuildAgentConfigurat
         return generalBuildAgentConfiguration.getLocalRepositories();
     }
 
+    public LocalRepository getLocalRepositoryByName( String name )
+        throws BuildAgentConfigurationException
+    {
+        for ( LocalRepository repo : generalBuildAgentConfiguration.getLocalRepositories() )
+        {
+            if ( name.equalsIgnoreCase( repo.getName() ) )
+            {
+                return repo;
+            }
+        }
+        throw new BuildAgentConfigurationException( String.format( "local repository matching '%s' not found", name ) );
+    }
+
     public String getSharedSecretPassword()
     {
         return generalBuildAgentConfiguration.getSharedSecretPassword();

Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/DefaultBuildAgentReleaseManager.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/DefaultBuildAgentReleaseManager.java?rev=1661283&r1=1661282&r2=1661283&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/DefaultBuildAgentReleaseManager.java (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/DefaultBuildAgentReleaseManager.java Sat Feb 21 05:05:15 2015
@@ -19,12 +19,14 @@ package org.apache.continuum.buildagent.
  * under the License.
  */
 
+import org.apache.continuum.buildagent.configuration.BuildAgentConfigurationException;
 import org.apache.continuum.buildagent.configuration.BuildAgentConfigurationService;
 import org.apache.continuum.buildagent.installation.BuildAgentInstallationService;
 import org.apache.continuum.buildagent.model.Installation;
 import org.apache.continuum.buildagent.utils.ContinuumBuildAgentUtil;
 import org.apache.continuum.model.repository.LocalRepository;
 import org.apache.continuum.release.config.ContinuumReleaseDescriptor;
+import org.apache.continuum.utils.m2.LocalRepositoryHelper;
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.model.project.ProjectGroup;
 import org.apache.maven.continuum.release.ContinuumReleaseException;
@@ -60,6 +62,9 @@ public class DefaultBuildAgentReleaseMan
     @Requirement
     BuildAgentInstallationService buildAgentInstallationService;
 
+    @Requirement
+    LocalRepositoryHelper localRepositoryHelper;
+
     public String releasePrepare( Map<String, Object> projectMap, Properties releaseProperties,
                                   Map<String, String> releaseVersion, Map<String, String> developmentVersion,
                                   Map<String, String> environments, String username )
@@ -185,20 +190,16 @@ public class DefaultBuildAgentReleaseMan
 
         if ( !repository.isEmpty() )
         {
-            List<org.apache.continuum.buildagent.model.LocalRepository> localRepos =
-                buildAgentConfigurationService.getLocalRepositories();
-            for ( org.apache.continuum.buildagent.model.LocalRepository localRepo : localRepos )
-            {
-                if ( localRepo.getName().equalsIgnoreCase( ContinuumBuildAgentUtil.getLocalRepositoryName(
-                    repository ) ) )
-                {
-                    repo = new LocalRepository();
-                    repo.setLayout( localRepo.getLayout() );
-                    repo.setName( localRepo.getName() );
-                    repo.setLocation( localRepo.getLocation() );
-
-                    break;
-                }
+            String repoName = ContinuumBuildAgentUtil.getLocalRepositoryName( repository );
+            try
+            {
+                org.apache.continuum.buildagent.model.LocalRepository agentRepo =
+                    buildAgentConfigurationService.getLocalRepositoryByName( repoName );
+                repo = localRepositoryHelper.convertAgentRepo( agentRepo );
+            }
+            catch ( BuildAgentConfigurationException e )
+            {
+                log.warn( "failed to configure local repo during perform", e.getMessage() );
             }
         }
 
@@ -294,25 +295,24 @@ public class DefaultBuildAgentReleaseMan
 
         ProjectGroup group = new ProjectGroup();
 
-        String localRepo = ContinuumBuildAgentUtil.getLocalRepositoryName( context );
+        String localRepoName = ContinuumBuildAgentUtil.getLocalRepositoryName( context );
 
-        if ( StringUtils.isBlank( localRepo ) )
+        if ( StringUtils.isBlank( localRepoName ) )
         {
             group.setLocalRepository( null );
         }
         else
         {
-            LocalRepository localRepository = new LocalRepository();
-            List<org.apache.continuum.buildagent.model.LocalRepository> localRepos =
-                buildAgentConfigurationService.getLocalRepositories();
-            for ( org.apache.continuum.buildagent.model.LocalRepository localRepoBA : localRepos )
-            {
-                if ( localRepoBA.getName().equalsIgnoreCase( localRepo ) )
-                {
-                    localRepository.setLocation( localRepoBA.getLocation() );
-                    group.setLocalRepository( localRepository );
-                    break;
-                }
+            try
+            {
+                org.apache.continuum.buildagent.model.LocalRepository agentRepo =
+                    buildAgentConfigurationService.getLocalRepositoryByName( localRepoName );
+                LocalRepository convertedRepo = localRepositoryHelper.convertAgentRepo( agentRepo );
+                group.setLocalRepository( convertedRepo );
+            }
+            catch ( BuildAgentConfigurationException e )
+            {
+                log.warn( "failed to configure local repo", e );
             }
         }
 

Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/execution/BuildProjectTaskExecutor.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/execution/BuildProjectTaskExecutor.java?rev=1661283&r1=1661282&r2=1661283&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/execution/BuildProjectTaskExecutor.java (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/execution/BuildProjectTaskExecutor.java Sat Feb 21 05:05:15 2015
@@ -25,6 +25,7 @@ import org.apache.continuum.buildagent.b
 import org.apache.continuum.buildagent.build.execution.manager.BuildAgentBuildExecutorManager;
 import org.apache.continuum.buildagent.buildcontext.BuildContext;
 import org.apache.continuum.buildagent.buildcontext.manager.BuildContextManager;
+import org.apache.continuum.buildagent.configuration.BuildAgentConfigurationException;
 import org.apache.continuum.buildagent.configuration.BuildAgentConfigurationService;
 import org.apache.continuum.buildagent.installation.BuildAgentInstallationService;
 import org.apache.continuum.buildagent.manager.BuildAgentManager;
@@ -168,16 +169,17 @@ public class BuildProjectTaskExecutor
             buildContext.getBuildDefinitionId(), getInstallationType( buildContext ) ) );
 
         // CONTINUUM-2391
-        if ( buildContext.getLocalRepository() != null )
+        String localRepoName = buildContext.getLocalRepository();
+        if ( localRepoName != null )
         {
-            List<LocalRepository> localRepos = buildAgentConfigurationService.getLocalRepositories();
-            for ( LocalRepository local : localRepos )
+            try
             {
-                if ( local.getName().equalsIgnoreCase( buildContext.getLocalRepository() ) )
-                {
-                    actionContext.put( ContinuumBuildAgentUtil.KEY_LOCAL_REPOSITORY, local.getLocation() );
-                    break;
-                }
+                LocalRepository localRepo = buildAgentConfigurationService.getLocalRepositoryByName( localRepoName );
+                actionContext.put( ContinuumBuildAgentUtil.KEY_LOCAL_REPOSITORY, localRepo.getLocation() );
+            }
+            catch ( BuildAgentConfigurationException e )
+            {
+                log.warn( "failed to initialize local repo", e );
             }
         }
 

Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/manager/BuildAgentReleaseManagerTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/manager/BuildAgentReleaseManagerTest.java?rev=1661283&r1=1661282&r2=1661283&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/manager/BuildAgentReleaseManagerTest.java (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/manager/BuildAgentReleaseManagerTest.java Sat Feb 21 05:05:15 2015
@@ -19,6 +19,7 @@ package org.apache.continuum.buildagent.
  * under the License.
  */
 
+import org.apache.continuum.buildagent.configuration.BuildAgentConfigurationException;
 import org.apache.continuum.buildagent.configuration.BuildAgentConfigurationService;
 import org.apache.continuum.buildagent.model.LocalRepository;
 import org.apache.continuum.buildagent.utils.ContinuumBuildAgentUtil;
@@ -41,6 +42,11 @@ import static org.mockito.Mockito.*;
 public class BuildAgentReleaseManagerTest
     extends PlexusInSpringTestCase
 {
+
+    public static final String DEFAULT_NAME = "DEFAULT";
+
+    public static final String UNKNOWN_NAME = "NON-EXISTENT";
+
     private BuildAgentConfigurationService buildAgentConfigurationService;
 
     private DefaultBuildAgentReleaseManager releaseManager;
@@ -59,7 +65,16 @@ public class BuildAgentReleaseManagerTes
         final List<LocalRepository> localRepos = createLocalRepositories();
         final File workingDir = new File( getBasedir(), "target/test-classes/working-dir" );
 
-        when( buildAgentConfigurationService.getLocalRepositories() ).thenReturn( localRepos );
+        for ( LocalRepository localRepo : localRepos )
+        {
+            String repoName = localRepo.getName();
+            when( buildAgentConfigurationService.getLocalRepositoryByName( repoName ) ).thenReturn( localRepo );
+            when( buildAgentConfigurationService.getLocalRepositoryByName( repoName.toUpperCase() ) ).thenReturn(
+                localRepo );
+        }
+        when( buildAgentConfigurationService.getLocalRepositoryByName( UNKNOWN_NAME ) ).thenThrow(
+            new BuildAgentConfigurationException( "could not locate the repo" ) );
+
         when( buildAgentConfigurationService.getWorkingDirectory( 1 ) ).thenReturn( workingDir );
     }
 
@@ -93,6 +108,24 @@ public class BuildAgentReleaseManagerTes
     {
         when( buildAgentConfigurationService.getAvailableInstallations() ).thenReturn( null );
         Map<String, Object> map = createProjectMap();
+        map.put( ContinuumBuildAgentUtil.KEY_LOCAL_REPOSITORY_NAME, DEFAULT_NAME );
+        try
+        {
+            releaseManager.releasePrepare( map, createProperties(), createReleaseVersionMap(), createDevVersionMap(),
+                                           createEnvironmentsMap(), "user" );
+        }
+        catch ( ContinuumReleaseException e )
+        {
+            fail( "An exception should not have been thrown!" );
+        }
+    }
+
+    public void testUnknownRepositoryNameInReleasePrepare()
+        throws Exception
+    {
+        when( buildAgentConfigurationService.getAvailableInstallations() ).thenReturn( null );
+        Map<String, Object> map = createProjectMap();
+        map.put( ContinuumBuildAgentUtil.KEY_LOCAL_REPOSITORY_NAME, DEFAULT_NAME );
         try
         {
             releaseManager.releasePrepare( map, createProperties(), createReleaseVersionMap(), createDevVersionMap(),
@@ -109,11 +142,9 @@ public class BuildAgentReleaseManagerTes
     public void testLocalRepositoryInReleasePerform()
         throws Exception
     {
-        Map repository = createRepositoryMap();
-        repository.put( ContinuumBuildAgentUtil.KEY_LOCAL_REPOSITORY_NAME, "DEFAULT" );
         try
         {
-            releaseManager.releasePerform( "1", "clean deploy", "", true, repository, "user" );
+            releaseManager.releasePerform( "1", "clean deploy", "", true, createRepositoryMap(), "user" );
         }
         catch ( ContinuumReleaseException e )
         {
@@ -125,9 +156,26 @@ public class BuildAgentReleaseManagerTes
     public void testLocalRepositoryNameMismatchedCaseInReleasePerform()
         throws Exception
     {
+        Map repoMap = createRepositoryMap();
+        repoMap.put( ContinuumBuildAgentUtil.KEY_LOCAL_REPOSITORY_NAME, DEFAULT_NAME );
         try
         {
-            releaseManager.releasePerform( "1", "clean deploy", "", true, createRepositoryMap(), "user" );
+            releaseManager.releasePerform( "1", "clean deploy", "", true, repoMap, "user" );
+        }
+        catch ( ContinuumReleaseException e )
+        {
+            fail( "An exception should not have been thrown!" );
+        }
+    }
+
+    public void testUnknownRepositoryNameInReleasePerform()
+        throws Exception
+    {
+        Map repoMap = createRepositoryMap();
+        repoMap.put( ContinuumBuildAgentUtil.KEY_LOCAL_REPOSITORY_NAME, DEFAULT_NAME );
+        try
+        {
+            releaseManager.releasePerform( "1", "clean deploy", "", true, repoMap, "user" );
         }
         catch ( ContinuumReleaseException e )
         {

Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/taskqueue/execution/BuildProjectTaskExecutorTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/taskqueue/execution/BuildProjectTaskExecutorTest.java?rev=1661283&r1=1661282&r2=1661283&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/taskqueue/execution/BuildProjectTaskExecutorTest.java (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/taskqueue/execution/BuildProjectTaskExecutorTest.java Sat Feb 21 05:05:15 2015
@@ -96,10 +96,13 @@ public class BuildProjectTaskExecutorTes
         buildContext = createBuildContext();
 
         localRepos = new ArrayList<LocalRepository>();
-        LocalRepository localRepo = createLocalRepository( "temp", "/tmp/.m2/repository", "default" );
-        localRepos.add( localRepo );
-        localRepo = createLocalRepository( "default", "/home/user/.m2/repository", "default" );
-        localRepos.add( localRepo );
+        localRepos.add( createLocalRepository( "temp", "/tmp/.m2/repository", "default" ) );
+        localRepos.add( createLocalRepository( "default", "/home/user/.m2/repository", "default" ) );
+        for ( LocalRepository localRepo : localRepos )
+        {
+            when( buildAgentConfigurationService.getLocalRepositoryByName( localRepo.getName() ) ).thenReturn(
+                localRepo );
+        }
 
         masterBuildEnvironments = new HashMap<String, String>();
         masterBuildEnvironments.put( "M2_HOME", "/tmp/apache-maven-2.2.1" );
@@ -113,7 +116,7 @@ public class BuildProjectTaskExecutorTes
         when( buildContextManager.getBuildContext( 1 ) ).thenReturn( buildContext );
         when( buildAgentManager.getEnvironments( 1, "maven2" ) ).thenReturn( masterBuildEnvironments );
         when( buildAgentConfigurationService.getAvailableInstallations() ).thenReturn( slaveBuildEnvironments );
-        when( buildAgentConfigurationService.getLocalRepositories() ).thenReturn( localRepos );
+
         when( buildAgentManager.shouldBuild( anyMap() ) ).thenReturn( true );
         when( buildAgentBuildExecutorManager.getBuildExecutor(
             ContinuumBuildExecutorConstants.MAVEN_TWO_BUILD_EXECUTOR ) ).thenReturn( executor );

Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/DeployArtifactContinuumAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/DeployArtifactContinuumAction.java?rev=1661283&r1=1661282&r2=1661283&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/DeployArtifactContinuumAction.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/DeployArtifactContinuumAction.java Sat Feb 21 05:05:15 2015
@@ -20,6 +20,7 @@ package org.apache.maven.continuum.core.
  */
 
 import org.apache.continuum.model.repository.LocalRepository;
+import org.apache.continuum.utils.m2.LocalRepositoryHelper;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.deployer.ArtifactDeployer;
 import org.apache.maven.artifact.repository.ArtifactRepository;
@@ -29,7 +30,6 @@ import org.apache.maven.artifact.reposit
 import org.apache.maven.continuum.configuration.ConfigurationService;
 import org.apache.maven.continuum.execution.ContinuumBuildExecutor;
 import org.apache.maven.continuum.execution.manager.BuildExecutorManager;
-import org.apache.maven.continuum.execution.maven.m2.MavenBuilderHelper;
 import org.apache.maven.continuum.model.project.BuildDefinition;
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.project.ContinuumProjectState;
@@ -62,7 +62,7 @@ public class DeployArtifactContinuumActi
     private ArtifactDeployer artifactDeployer;
 
     @Requirement
-    private MavenBuilderHelper builderHelper;
+    private LocalRepositoryHelper localRepositoryHelper;
 
     @Requirement
     private ArtifactRepositoryFactory artifactRepositoryFactory;
@@ -102,7 +102,7 @@ public class DeployArtifactContinuumActi
                                                                                  buildDefinition );
 
                 LocalRepository repository = project.getProjectGroup().getLocalRepository();
-                ArtifactRepository localRepository = builderHelper.getLocalRepository( repository );
+                ArtifactRepository localRepository = localRepositoryHelper.getLocalRepository( repository );
 
                 for ( Artifact artifact : artifacts )
                 {

Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/DefaultMavenBuilderHelper.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/DefaultMavenBuilderHelper.java?rev=1661283&r1=1661282&r2=1661283&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/DefaultMavenBuilderHelper.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/DefaultMavenBuilderHelper.java Sat Feb 21 05:05:15 2015
@@ -19,11 +19,9 @@ package org.apache.maven.continuum.execu
  * under the License.
  */
 
-import org.apache.continuum.model.repository.LocalRepository;
+import org.apache.continuum.utils.m2.LocalRepositoryHelper;
+import org.apache.continuum.utils.m2.SettingsHelper;
 import org.apache.maven.artifact.manager.WagonManager;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
-import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
 import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
 import org.apache.maven.continuum.execution.SettingsConfigurationException;
 import org.apache.maven.continuum.model.project.Project;
@@ -48,7 +46,6 @@ import org.apache.maven.project.MavenPro
 import org.apache.maven.project.MavenProjectBuilder;
 import org.apache.maven.project.ProjectBuildingException;
 import org.apache.maven.project.validation.ModelValidationResult;
-import org.apache.maven.settings.MavenSettingsBuilder;
 import org.apache.maven.settings.Mirror;
 import org.apache.maven.settings.Proxy;
 import org.apache.maven.settings.Server;
@@ -57,7 +54,6 @@ import org.apache.maven.settings.io.xpp3
 import org.codehaus.plexus.PlexusConstants;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Configuration;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException;
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
@@ -68,7 +64,6 @@ import org.codehaus.plexus.personality.p
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
-import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -92,16 +87,10 @@ public class DefaultMavenBuilderHelper
     private MavenProjectBuilder projectBuilder;
 
     @Requirement
-    private ArtifactRepositoryFactory artifactRepositoryFactory;
+    private SettingsHelper settingsHelper;
 
     @Requirement
-    private ArtifactRepositoryLayout repositoryLayout;
-
-    @Requirement
-    private MavenSettingsBuilder mavenSettingsBuilder;
-
-    @Configuration( "${plexus.home}/local-repository" )
-    private String localRepository;
+    private LocalRepositoryHelper localRepoHelper;
 
     private PlexusContainer container;
 
@@ -373,7 +362,7 @@ public class DefaultMavenBuilderHelper
             //   TODO: This seems like code that is shared with DefaultMaven, so it should be moved to the project
             //   builder perhaps
 
-            Settings settings = getSettings();
+            Settings settings = settingsHelper.getSettings();
 
             if ( log.isDebugEnabled() )
             {
@@ -382,7 +371,7 @@ public class DefaultMavenBuilderHelper
 
             ProfileManager profileManager = new DefaultProfileManager( container, settings );
 
-            project = projectBuilder.build( file, getLocalRepository(), profileManager, true );
+            project = projectBuilder.build( file, localRepoHelper.getLocalRepository(), profileManager, true );
 
             if ( log.isDebugEnabled() )
             {
@@ -479,18 +468,6 @@ public class DefaultMavenBuilderHelper
         return project;
     }
 
-    public ArtifactRepository getLocalRepository()
-        throws SettingsConfigurationException
-    {
-        return getRepository( null, getSettings() );
-    }
-
-    public ArtifactRepository getLocalRepository( LocalRepository localRepo )
-        throws SettingsConfigurationException
-    {
-        return getRepository( localRepo, getSettings() );
-    }
-
     // ----------------------------------------------------------------------
     //
     // ----------------------------------------------------------------------
@@ -566,48 +543,6 @@ public class DefaultMavenBuilderHelper
     //
     // ----------------------------------------------------------------------
 
-    private Settings getSettings()
-        throws SettingsConfigurationException
-    {
-        try
-        {
-            return mavenSettingsBuilder.buildSettings( false );
-        }
-        catch ( IOException e )
-        {
-            throw new SettingsConfigurationException( "Error reading settings file", e );
-        }
-        catch ( XmlPullParserException e )
-        {
-            throw new SettingsConfigurationException( e.getMessage(), e.getDetail(), e.getLineNumber(),
-                                                      e.getColumnNumber() );
-        }
-    }
-
-    private ArtifactRepository getRepository( LocalRepository repository, Settings settings )
-    {
-        // ----------------------------------------------------------------------
-        // Set our configured location as the default but try to use the defaults
-        // as returned by the MavenSettings component.
-        // ----------------------------------------------------------------------
-
-        String localRepo = localRepository;
-
-        if ( repository != null )
-        {
-            return artifactRepositoryFactory.createArtifactRepository( repository.getName(),
-                                                                       "file://" + repository.getLocation(),
-                                                                       repositoryLayout, null, null );
-        }
-        else if ( !( StringUtils.isEmpty( settings.getLocalRepository() ) ) )
-        {
-            localRepo = settings.getLocalRepository();
-        }
-
-        return artifactRepositoryFactory.createArtifactRepository( "local", "file://" + localRepo, repositoryLayout,
-                                                                   null, null );
-    }
-
     private void writeSettings( Settings settings )
     {
         StringWriter sWriter = new StringWriter();
@@ -767,7 +702,7 @@ public class DefaultMavenBuilderHelper
     {
         try
         {
-            Settings settings = getSettings();
+            Settings settings = settingsHelper.getSettings();
 
             resolveParameters( settings );
         }

Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenBuilderHelper.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenBuilderHelper.java?rev=1661283&r1=1661282&r2=1661283&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenBuilderHelper.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenBuilderHelper.java Sat Feb 21 05:05:15 2015
@@ -19,8 +19,6 @@ package org.apache.maven.continuum.execu
  * under the License.
  */
 
-import org.apache.continuum.model.repository.LocalRepository;
-import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.project.builder.ContinuumProjectBuildingResult;
 import org.apache.maven.project.MavenProject;
@@ -47,10 +45,4 @@ public interface MavenBuilderHelper
      */
     void mapMavenProjectToContinuumProject( ContinuumProjectBuildingResult result, MavenProject mavenProject,
                                             Project continuumProject, boolean updateDefinition );
-
-    ArtifactRepository getLocalRepository()
-        throws SettingsConfigurationException;
-
-    ArtifactRepository getLocalRepository( LocalRepository localRepo )
-        throws SettingsConfigurationException;
 }

Modified: continuum/trunk/continuum-core/src/test/java/org/apache/continuum/AbstractAddProjectTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/test/java/org/apache/continuum/AbstractAddProjectTest.java?rev=1661283&r1=1661282&r2=1661283&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/test/java/org/apache/continuum/AbstractAddProjectTest.java (original)
+++ continuum/trunk/continuum-core/src/test/java/org/apache/continuum/AbstractAddProjectTest.java Sat Feb 21 05:05:15 2015
@@ -19,9 +19,9 @@ package org.apache.continuum;
  * under the License.
  */
 
+import org.apache.continuum.utils.m2.LocalRepositoryHelper;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.continuum.AbstractContinuumTest;
-import org.apache.maven.continuum.execution.maven.m2.MavenBuilderHelper;
 import org.apache.maven.continuum.execution.SettingsConfigurationException;
 import org.codehaus.plexus.util.FileUtils;
 
@@ -43,7 +43,7 @@ public abstract class AbstractAddProject
     protected void createLocalRepository()
         throws IOException, SettingsConfigurationException
     {
-        MavenBuilderHelper helper = (MavenBuilderHelper) lookup( MavenBuilderHelper.class );
+        LocalRepositoryHelper helper = (LocalRepositoryHelper) lookup( LocalRepositoryHelper.class );
         ArtifactRepository repo = helper.getLocalRepository();
 
         File localRepo = new File( repo.getBasedir() );

Copied: continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/utils/DefaultReleaseHelper.java (from r1661282, continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/release/DefaultReleaseHelper.java)
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/utils/DefaultReleaseHelper.java?p2=continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/utils/DefaultReleaseHelper.java&p1=continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/release/DefaultReleaseHelper.java&r1=1661282&r2=1661283&rev=1661283&view=diff
==============================================================================
--- continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/release/DefaultReleaseHelper.java (original)
+++ continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/utils/DefaultReleaseHelper.java Sat Feb 21 05:05:15 2015
@@ -1,4 +1,4 @@
-package org.apache.continuum.utils.release;
+package org.apache.continuum.release.utils;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -19,16 +19,18 @@ package org.apache.continuum.utils.relea
  * under the License.
  */
 
-import org.apache.maven.model.Model;
+import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.model.Plugin;
-import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuildingException;
 import org.apache.maven.shared.release.versions.DefaultVersionInfo;
 import org.apache.maven.shared.release.versions.VersionInfo;
-import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.io.File;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -39,21 +41,17 @@ import java.util.Map;
 public class DefaultReleaseHelper
     implements ReleaseHelper
 {
-    /**
-     * Extracts parameters specified for the maven-release-plugin from the given project's metadata.
-     *
-     * @param workingDirectory working directory of project containing pom file
-     * @param pomFilename      the name of the pom file in working directory
-     * @return a map consisting of the release plugin parameters from project metadata
-     * @throws Exception
-     */
-    public Map<String, Object> extractPluginParameters( String workingDirectory, String pomFilename )
+    @Resource
+    MavenProjectBuilder mavenProjectBuilder;
+
+    public Map<String, Object> extractPluginParameters( ArtifactRepository localRepo, String workingDirectory,
+                                                        String pomFilename )
         throws Exception
     {
         Map<String, Object> params = new HashMap<String, Object>();
 
         // TODO: Use the model reader so we'll can get the plugin configuration from parent too
-        Model model = getMavenModel( workingDirectory, pomFilename );
+        MavenProject model = getMavenProject( localRepo, workingDirectory, pomFilename );
 
         if ( model.getBuild() != null && model.getBuild().getPlugins() != null )
         {
@@ -140,27 +138,11 @@ public class DefaultReleaseHelper
         return params;
     }
 
-    /**
-     * Constructs a list of release preparation parameters for the given project and its modules. The parameter map for
-     * each project consists of:
-     * <ul>
-     * <li>key - groupId:artifactId</li>
-     * <li>name - name or artifactId if none</li>
-     * <li>dev - the version the project will assume after preparation</li>
-     * <li>release - the version the project will ultimately released as when performing</li>
-     * </ul>
-     *
-     * @param workingDirectory      working directory of project
-     * @param pomFilename           the filename of the pom inside the working directory
-     * @param autoVersionSubmodules true sets all modules to the root project's version, false uses module versions
-     * @param projects              the resulting list of parameter maps for the project and its modules
-     * @throws Exception
-     */
-    public void buildVersionParams( String workingDirectory, String pomFilename, boolean autoVersionSubmodules,
-                                    List<Map<String, String>> projects )
+    public void buildVersionParams( ArtifactRepository localRepo, String workingDirectory, String pomFilename,
+                                    boolean autoVersionSubmodules, List<Map<String, String>> projects )
         throws Exception
     {
-        Model model = getMavenModel( workingDirectory, pomFilename );
+        MavenProject model = getMavenProject( localRepo, workingDirectory, pomFilename );
 
         if ( model.getGroupId() == null )
         {
@@ -178,11 +160,13 @@ public class DefaultReleaseHelper
         {
             String module = StringUtils.replace( modules.next().toString(), '\\', '/' );
 
-            buildVersionParams( workingDirectory + "/" + module, "pom.xml", autoVersionSubmodules, projects );
+            buildVersionParams( localRepo, workingDirectory + "/" + module, "pom.xml", autoVersionSubmodules,
+                                projects );
         }
     }
 
-    private static void setProperties( Model model, boolean autoVersionSubmodules, List<Map<String, String>> projects )
+    private void setProperties( MavenProject model, boolean autoVersionSubmodules,
+                                List<Map<String, String>> projects )
         throws Exception
     {
         Map<String, String> params = new HashMap<String, String>();
@@ -211,10 +195,10 @@ public class DefaultReleaseHelper
         projects.add( params );
     }
 
-    private static Model getMavenModel( String workingDirectory, String pomFilename )
-        throws Exception
+    private MavenProject getMavenProject( ArtifactRepository localRepo, String workingDirectory,
+                                          String pomFilename )
+        throws ProjectBuildingException
     {
-        MavenXpp3Reader pomReader = new MavenXpp3Reader();
-        return pomReader.read( ReaderFactory.newXmlReader( new File( workingDirectory, pomFilename ) ) );
+        return mavenProjectBuilder.build( new File( workingDirectory, pomFilename ), localRepo, null );
     }
 }

Copied: continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/utils/ReleaseHelper.java (from r1661282, continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/release/ReleaseHelper.java)
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/utils/ReleaseHelper.java?p2=continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/utils/ReleaseHelper.java&p1=continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/release/ReleaseHelper.java&r1=1661282&r2=1661283&rev=1661283&view=diff
==============================================================================
--- continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/release/ReleaseHelper.java (original)
+++ continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/utils/ReleaseHelper.java Sat Feb 21 05:05:15 2015
@@ -1,4 +1,4 @@
-package org.apache.continuum.utils.release;
+package org.apache.continuum.release.utils;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -19,6 +19,8 @@ package org.apache.continuum.utils.relea
  * under the License.
  */
 
+import org.apache.maven.artifact.repository.ArtifactRepository;
+
 import java.util.List;
 import java.util.Map;
 
@@ -28,12 +30,14 @@ public interface ReleaseHelper
     /**
      * Extracts parameters specified for the maven-release-plugin from the given project's metadata.
      *
+     * @param localRepo        the local artifact repo to use for resolving project metadata
      * @param workingDirectory working directory of project containing pom file
      * @param pomFilename      the name of the pom file in working directory
      * @return a map consisting of the release plugin parameters from project metadata
      * @throws Exception
      */
-    Map<String, Object> extractPluginParameters( String workingDirectory, String pomFilename )
+    Map<String, Object> extractPluginParameters( ArtifactRepository localRepo, String workingDirectory,
+                                                 String pomFilename )
         throws Exception;
 
     /**
@@ -46,13 +50,15 @@ public interface ReleaseHelper
      * <li>release - the version the project will ultimately released as when performing</li>
      * </ul>
      *
+     * @param localRepo             the local artifact repo to use for resolving project metadata
      * @param workingDirectory      working directory of project
      * @param pomFilename           the filename of the pom inside the working directory
      * @param autoVersionSubmodules true sets all modules to the root project's version, false uses module versions
      * @param projects              the resulting list of parameter maps for the project and its modules
      * @throws Exception
      */
-    public void buildVersionParams( String workingDirectory, String pomFilename, boolean autoVersionSubmodules,
-                                    List<Map<String, String>> projects )
+    public void buildVersionParams( ArtifactRepository localRepo, String workingDirectory, String pomFilename,
+                                    boolean autoVersionSubmodules, List<Map<String, String>> projects )
         throws Exception;
+
 }

Copied: continuum/trunk/continuum-release/src/main/resources/META-INF/spring-context.xml (from r1661282, continuum/trunk/continuum-api/src/main/resources/META-INF/spring-context.xml)
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-release/src/main/resources/META-INF/spring-context.xml?p2=continuum/trunk/continuum-release/src/main/resources/META-INF/spring-context.xml&p1=continuum/trunk/continuum-api/src/main/resources/META-INF/spring-context.xml&r1=1661282&r2=1661283&rev=1661283&view=diff
==============================================================================
--- continuum/trunk/continuum-api/src/main/resources/META-INF/spring-context.xml (original)
+++ continuum/trunk/continuum-release/src/main/resources/META-INF/spring-context.xml Sat Feb 21 05:05:15 2015
@@ -24,12 +24,10 @@
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-           http://www.springframework.org/schema/context 
+           http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context-2.5.xsd">
 
   <context:annotation-config/>
-  <context:component-scan
-      base-package="org.apache.continuum.installation,org.apache.continuum.profile,
-                  org.apache.maven.continuum.configuration,org.apache.maven.continuum.utils,
-                  org.apache.continuum.utils.shell,org.apache.continuum.utils.release"/>
+  <context:component-scan base-package="org.apache.continuum.release.utils"/>
+
 </beans>
\ No newline at end of file

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java?rev=1661283&r1=1661282&r2=1661283&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java Sat Feb 21 05:05:15 2015
@@ -24,10 +24,12 @@ import org.apache.continuum.model.reposi
 import org.apache.continuum.release.config.ContinuumReleaseDescriptor;
 import org.apache.continuum.release.distributed.DistributedReleaseUtil;
 import org.apache.continuum.release.distributed.manager.DistributedReleaseManager;
-import org.apache.continuum.utils.release.ReleaseHelper;
+import org.apache.continuum.release.utils.ReleaseHelper;
+import org.apache.continuum.utils.m2.LocalRepositoryHelper;
 import org.apache.continuum.web.action.AbstractReleaseAction;
 import org.apache.continuum.web.util.AuditLog;
 import org.apache.continuum.web.util.AuditLogConstants;
+import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.model.system.Profile;
@@ -86,6 +88,9 @@ public class ReleasePerformAction
     @Requirement
     private ReleaseHelper releaseHelper;
 
+    @Requirement
+    private LocalRepositoryHelper localRepositoryHelper;
+
     private void init()
         throws Exception
     {
@@ -101,7 +106,9 @@ public class ReleasePerformAction
 
             String workingDirectory = getContinuum().getWorkingDirectory( project.getId() ).getPath();
 
-            getReleasePluginParameters( workingDirectory, "pom.xml" );
+            ArtifactRepository localRepo =
+                localRepositoryHelper.getLocalRepository( project.getProjectGroup().getLocalRepository() );
+            getReleasePluginParameters( localRepo, workingDirectory, "pom.xml" );
         }
     }
 
@@ -171,10 +178,10 @@ public class ReleasePerformAction
      * FIXME olamy is it really the good place to do that ? should be moved to continuum-release
      * TODO handle remoteTagging
      */
-    private void getReleasePluginParameters( String workingDirectory, String pomFilename )
+    private void getReleasePluginParameters( ArtifactRepository localRepo, String workingDirectory, String pomFilename )
         throws Exception
     {
-        Map<String, Object> params = releaseHelper.extractPluginParameters( workingDirectory, pomFilename );
+        Map<String, Object> params = releaseHelper.extractPluginParameters( localRepo, workingDirectory, pomFilename );
 
         if ( params.get( "use-release-profile" ) != null )
         {

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePrepareAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePrepareAction.java?rev=1661283&r1=1661282&r2=1661283&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePrepareAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePrepareAction.java Sat Feb 21 05:05:15 2015
@@ -23,10 +23,12 @@ import org.apache.continuum.configuratio
 import org.apache.continuum.model.release.ReleaseListenerSummary;
 import org.apache.continuum.release.distributed.DistributedReleaseUtil;
 import org.apache.continuum.release.distributed.manager.DistributedReleaseManager;
-import org.apache.continuum.utils.release.ReleaseHelper;
+import org.apache.continuum.release.utils.ReleaseHelper;
+import org.apache.continuum.utils.m2.LocalRepositoryHelper;
 import org.apache.continuum.web.action.AbstractReleaseAction;
 import org.apache.continuum.web.util.AuditLog;
 import org.apache.continuum.web.util.AuditLogConstants;
+import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.installation.InstallationService;
 import org.apache.maven.continuum.model.project.Project;
@@ -108,6 +110,9 @@ public class ReleasePrepareAction
     @Requirement
     private ReleaseHelper releaseHelper;
 
+    @Requirement
+    private LocalRepositoryHelper localRepositoryHelper;
+
     public String input()
         throws Exception
     {
@@ -160,6 +165,8 @@ public class ReleasePrepareAction
 
         prepareGoals = "clean integration-test";
 
+        String defaultPomName = "pom.xml";
+
         if ( getContinuum().getConfiguration().isDistributedBuildEnabled() )
         {
             DistributedReleaseManager distributedReleaseManager = getContinuum().getDistributedReleaseManager();
@@ -167,9 +174,9 @@ public class ReleasePrepareAction
             try
             {
                 getReleasePluginParameters( distributedReleaseManager.getReleasePluginParameters( projectId,
-                                                                                                  "pom.xml" ) );
+                                                                                                  defaultPomName ) );
 
-                projects = distributedReleaseManager.processProject( projectId, "pom.xml", autoVersionSubmodules );
+                projects = distributedReleaseManager.processProject( projectId, defaultPomName, autoVersionSubmodules );
             }
             catch ( BuildAgentConfigurationException e )
             {
@@ -186,9 +193,13 @@ public class ReleasePrepareAction
             {
                 String workingDirectory = getContinuum().getWorkingDirectory( project.getId() ).getPath();
 
-                getReleasePluginParameters( workingDirectory, "pom.xml" );
+                ArtifactRepository localRepo =
+                    localRepositoryHelper.getLocalRepository( project.getProjectGroup().getLocalRepository() );
+
+                getReleasePluginParameters( localRepo, workingDirectory, defaultPomName );
 
-                releaseHelper.buildVersionParams( workingDirectory, "pom.xml", autoVersionSubmodules, projects );
+                releaseHelper.buildVersionParams( localRepo, workingDirectory, defaultPomName, autoVersionSubmodules,
+                                                  projects );
             }
             catch ( Exception e )
             {
@@ -205,10 +216,10 @@ public class ReleasePrepareAction
         return SUCCESS;
     }
 
-    private void getReleasePluginParameters( String workingDirectory, String pomFilename )
+    private void getReleasePluginParameters( ArtifactRepository localRepo, String workingDirectory, String pomFilename )
         throws Exception
     {
-        Map<String, Object> params = releaseHelper.extractPluginParameters( workingDirectory, pomFilename );
+        Map<String, Object> params = releaseHelper.extractPluginParameters( localRepo, workingDirectory, pomFilename );
 
         // TODO: use constants for this
         if ( params.get( "scm-tag" ) != null )

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ConfigureAppearanceAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ConfigureAppearanceAction.java?rev=1661283&r1=1661282&r2=1661283&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ConfigureAppearanceAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ConfigureAppearanceAction.java Sat Feb 21 05:05:15 2015
@@ -20,11 +20,11 @@ package org.apache.maven.continuum.web.a
  */
 
 import com.opensymphony.xwork2.ModelDriven;
+import org.apache.continuum.utils.m2.LocalRepositoryHelper;
 import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
-import org.apache.maven.continuum.execution.maven.m2.MavenBuilderHelper;
 import org.apache.maven.continuum.execution.SettingsConfigurationException;
 import org.apache.maven.continuum.security.ContinuumRoleConstants;
 import org.apache.maven.continuum.web.action.component.AbstractFooterAction;
@@ -75,7 +75,7 @@ public class ConfigureAppearanceAction
     private CompanyPomHandler companyPomHandler;
 
     @Requirement
-    private MavenBuilderHelper helper;
+    private LocalRepositoryHelper helper;
 
     @Requirement
     private MavenSettingsBuilder mavenSettingsBuilder;

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/EditPomAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/EditPomAction.java?rev=1661283&r1=1661282&r2=1661283&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/EditPomAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/EditPomAction.java Sat Feb 21 05:05:15 2015
@@ -20,9 +20,9 @@ package org.apache.maven.continuum.web.a
  */
 
 import com.opensymphony.xwork2.ModelDriven;
+import org.apache.continuum.utils.m2.LocalRepositoryHelper;
 import org.apache.maven.artifact.installer.ArtifactInstallationException;
 import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
-import org.apache.maven.continuum.execution.maven.m2.MavenBuilderHelper;
 import org.apache.maven.continuum.execution.SettingsConfigurationException;
 import org.apache.maven.continuum.security.ContinuumRoleConstants;
 import org.apache.maven.continuum.web.action.ContinuumActionSupport;
@@ -61,7 +61,7 @@ public class EditPomAction
     private String organizationLogo;
 
     @Requirement
-    private MavenBuilderHelper helper;
+    private LocalRepositoryHelper helper;
 
     public String execute()
         throws IOException, ArtifactInstallationException, SettingsConfigurationException

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/CompanyInfoAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/CompanyInfoAction.java?rev=1661283&r1=1661282&r2=1661283&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/CompanyInfoAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/CompanyInfoAction.java Sat Feb 21 05:05:15 2015
@@ -20,7 +20,7 @@ package org.apache.maven.continuum.web.a
  */
 
 import com.opensymphony.xwork2.ActionSupport;
-import org.apache.maven.continuum.execution.maven.m2.MavenBuilderHelper;
+import org.apache.continuum.utils.m2.LocalRepositoryHelper;
 import org.apache.maven.model.Model;
 import org.apache.maven.shared.app.company.CompanyPomHandler;
 import org.apache.maven.shared.app.configuration.MavenAppConfiguration;
@@ -47,7 +47,7 @@ public class CompanyInfoAction
     private MavenAppConfiguration appConfiguration;
 
     @Requirement
-    private MavenBuilderHelper helper;
+    private LocalRepositoryHelper helper;
 
     public String execute()
         throws Exception

Modified: continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-server/src/main/java/org/apache/maven/continuum/xmlrpc/server/ContinuumServiceImpl.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-server/src/main/java/org/apache/maven/continuum/xmlrpc/server/ContinuumServiceImpl.java?rev=1661283&r1=1661282&r2=1661283&view=diff
==============================================================================
--- continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-server/src/main/java/org/apache/maven/continuum/xmlrpc/server/ContinuumServiceImpl.java (original)
+++ continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-server/src/main/java/org/apache/maven/continuum/xmlrpc/server/ContinuumServiceImpl.java Sat Feb 21 05:05:15 2015
@@ -34,12 +34,14 @@ import org.apache.continuum.dao.SystemCo
 import org.apache.continuum.purge.ContinuumPurgeManagerException;
 import org.apache.continuum.purge.PurgeConfigurationServiceException;
 import org.apache.continuum.repository.RepositoryServiceException;
-import org.apache.continuum.utils.release.ReleaseHelper;
+import org.apache.continuum.release.utils.ReleaseHelper;
+import org.apache.continuum.utils.m2.LocalRepositoryHelper;
 import org.apache.continuum.xmlrpc.release.ContinuumReleaseResult;
 import org.apache.continuum.xmlrpc.repository.DirectoryPurgeConfiguration;
 import org.apache.continuum.xmlrpc.repository.LocalRepository;
 import org.apache.continuum.xmlrpc.repository.RepositoryPurgeConfiguration;
 import org.apache.continuum.xmlrpc.utils.BuildTrigger;
+import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.continuum.Continuum;
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.builddefinition.BuildDefinitionServiceException;
@@ -161,6 +163,9 @@ public class ContinuumServiceImpl
     @Requirement
     private ReleaseHelper releaseHelper;
 
+    @Requirement
+    private LocalRepositoryHelper localRepositoryHelper;
+
     public boolean ping()
         throws ContinuumException
     {
@@ -4004,7 +4009,10 @@ public class ContinuumServiceImpl
             }
             else
             {
-                params = releaseHelper.extractPluginParameters( continuum.getWorkingDirectory( projectId ).getPath(),
+                ArtifactRepository localRepo = localRepositoryHelper.getLocalRepository(
+                    project.getProjectGroup().getLocalRepository() );
+                params = releaseHelper.extractPluginParameters( localRepo,
+                                                                continuum.getWorkingDirectory( projectId ).getPath(),
                                                                 "pom.xml" );
             }
 
@@ -4079,9 +4087,10 @@ public class ContinuumServiceImpl
             }
             else
             {
-                releaseHelper.buildVersionParams( continuum.getWorkingDirectory( projectId ).getPath(),
-                                                  pomFilename,
-                                                  autoVersionSubmodules, projects );
+                ArtifactRepository localRepo =
+                    localRepositoryHelper.getLocalRepository( project.getProjectGroup().getLocalRepository() );
+                releaseHelper.buildVersionParams( localRepo, continuum.getWorkingDirectory( projectId ).getPath(),
+                                                  pomFilename, autoVersionSubmodules, projects );
             }
 
             return projects;