You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@continuum.apache.org by Deng Ching <oc...@apache.org> on 2010/04/06 07:58:33 UTC

Re: svn commit: r924833 - in /continuum/trunk: continuum-buildagent/continuum-buildagent-api/ continuum-buildagent/continuum-buildagent-api/src/main/mdo/ continuum-buildagent/continuum-buildagent-core/ continuum-buildagent/continuum-buildagent-core/s

Although it is just a change in the build agent config file, I guess it does
need to be noted down in the upgrade docs too :)

Thanks,
Deng

On Tue, Apr 6, 2010 at 1:25 PM, Brett Porter <br...@apache.org> wrote:

> Does this need upgrade instructions for 1.3.x users?
>
> On 19/03/2010, at 1:36 AM, oching@apache.org wrote:
>
> > Author: oching
> > Date: Thu Mar 18 14:36:07 2010
> > New Revision: 924833
> >
> > URL: http://svn.apache.org/viewvc?rev=924833&view=rev
> > Log:
> > [CONTINUUM-2391] Master should not pass full path to local repository to
> the agent
> > o pass repo name to build agent instead of full path
> > o added support for local repos in build agent config file + tests
> >
> > Added:
> >
>  continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/
> >
>  continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/configuration/
> >
>  continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationTest.java
> >
>  continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/
> >
>  continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/buildagent-config/
> >
>  continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/buildagent-config/continuum-buildagent-edit.xml
> >
>  continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/buildagent-config/continuum-buildagent.xml
> > Modified:
> >    continuum/trunk/continuum-buildagent/continuum-buildagent-api/pom.xml
> >
>  continuum/trunk/continuum-buildagent/continuum-buildagent-api/src/main/mdo/continuum-buildagent.xml
> >    continuum/trunk/continuum-buildagent/continuum-buildagent-core/pom.xml
> >
>  continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationService.java
> >
>  continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfiguration.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/configuration/GeneralBuildAgentConfiguration.java
> >
>  continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/execution/BuildProjectTaskExecutor.java
> >
>  continuum/trunk/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java
> >
> > Modified:
> continuum/trunk/continuum-buildagent/continuum-buildagent-api/pom.xml
> > URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-api/pom.xml?rev=924833&r1=924832&r2=924833&view=diff
> >
> ==============================================================================
> > --- continuum/trunk/continuum-buildagent/continuum-buildagent-api/pom.xml
> (original)
> > +++ continuum/trunk/continuum-buildagent/continuum-buildagent-api/pom.xml
> Thu Mar 18 14:36:07 2010
> > @@ -38,7 +38,7 @@ under the License.
> >             <model>src/main/mdo/continuum-buildagent.xml</model>
> >           </models>
> >           <useJava5>true</useJava5>
> > -          <version>1.0.0</version>
> > +          <version>1.1.0</version>
> >         </configuration>
> >         <executions>
> >           <execution>
> >
> > Modified:
> continuum/trunk/continuum-buildagent/continuum-buildagent-api/src/main/mdo/continuum-buildagent.xml
> > URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-api/src/main/mdo/continuum-buildagent.xml?rev=924833&r1=924832&r2=924833&view=diff
> >
> ==============================================================================
> > ---
> continuum/trunk/continuum-buildagent/continuum-buildagent-api/src/main/mdo/continuum-buildagent.xml
> (original)
> > +++
> continuum/trunk/continuum-buildagent/continuum-buildagent-api/src/main/mdo/continuum-buildagent.xml
> Thu Mar 18 14:36:07 2010
> > @@ -55,6 +55,14 @@
> >             <multiplicity>*</multiplicity>
> >           </association>
> >         </field>
> > +        <field>
> > +          <name>localRepositories</name>
> > +          <version>1.1.0+</version>
> > +          <association>
> > +            <type>LocalRepository</type>
> > +            <multiplicity>*</multiplicity>
> > +          </association>
> > +        </field>
> >       </fields>
> >     </class>
> >     <class xml.tagName="buildagent-installation">
> > @@ -83,5 +91,35 @@
> >         </field>
> >       </fields>
> >     </class>
> > +    <class>
> > +      <name>LocalRepository</name>
> > +      <version>1.1.0+</version>
> > +      <fields>
> > +        <field>
> > +          <name>name</name>
> > +          <version>1.1.0+</version>
> > +          <type>String</type>
> > +          <required>true</required>
> > +        </field>
> > +        <field>
> > +          <name>location</name>
> > +          <version>1.1.0+</version>
> > +          <type>String</type>
> > +          <required>true</required>
> > +          <description>
> > +          The file system location for this repository
> > +          </description>
> > +        </field>
> > +        <field>
> > +          <name>layout</name>
> > +          <version>1.1.0+</version>
> > +          <type>String</type>
> > +          <defaultValue>default</defaultValue>
> > +          <description>
> > +          The layout of the repository. Valid values are "default" and
> "legacy"
> > +          </description>
> > +        </field>
> > +      </fields>
> > +    </class>
> >   </classes>
> > </model>
> > \ No newline at end of file
> >
> > Modified:
> continuum/trunk/continuum-buildagent/continuum-buildagent-core/pom.xml
> > URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/pom.xml?rev=924833&r1=924832&r2=924833&view=diff
> >
> ==============================================================================
> > ---
> continuum/trunk/continuum-buildagent/continuum-buildagent-core/pom.xml
> (original)
> > +++
> continuum/trunk/continuum-buildagent/continuum-buildagent-core/pom.xml Thu
> Mar 18 14:36:07 2010
> > @@ -125,7 +125,12 @@ under the License.
> >     <dependency>
> >       <groupId>javax.annotation</groupId>
> >       <artifactId>jsr250-api</artifactId>
> > -    </dependency>
> > +    </dependency>
> > +    <dependency>
> > +      <groupId>org.slf4j</groupId>
> > +      <artifactId>slf4j-simple</artifactId>
> > +      <scope>test</scope>
> > +    </dependency>
> >   </dependencies>
> >   <build>
> >     <plugins>
> >
> > Modified:
> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationService.java
> > URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationService.java?rev=924833&r1=924832&r2=924833&view=diff
> >
> ==============================================================================
> > ---
> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationService.java
> (original)
> > +++
> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationService.java
> Thu Mar 18 14:36:07 2010
> > @@ -23,6 +23,7 @@ import java.io.File;
> > import java.util.List;
> >
> > import org.apache.continuum.buildagent.model.Installation;
> > +import org.apache.continuum.buildagent.model.LocalRepository;
> >
> > public interface BuildAgentConfigurationService
> > {
> > @@ -45,4 +46,6 @@ public interface BuildAgentConfiguration
> >         throws BuildAgentConfigurationException;
> >
> >     List<Installation> getAvailableInstallations();
> > +
> > +    List<LocalRepository> getLocalRepositories();
> > }
> >
> > Modified:
> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfiguration.java
> > URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfiguration.java?rev=924833&r1=924832&r2=924833&view=diff
> >
> ==============================================================================
> > ---
> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfiguration.java
> (original)
> > +++
> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfiguration.java
> Thu Mar 18 14:36:07 2010
> > @@ -105,6 +105,7 @@ public class DefaultBuildAgentConfigurat
> >             }
> >             this.generalBuildAgentConfiguration.setContinuumServerUrl(
> configuration.getContinuumServerUrl() );
> >             this.generalBuildAgentConfiguration.setInstallations(
> configuration.getInstallations() );
> > +            this.generalBuildAgentConfiguration.setLocalRepositories(
> configuration.getLocalRepositories() );
> >         }
> >         catch ( IOException e )
> >         {
> > @@ -153,6 +154,7 @@ public class DefaultBuildAgentConfigurat
> >             }
> >             configurationModel.setContinuumServerUrl(
> this.generalBuildAgentConfiguration.getContinuumServerUrl() );
> >             configurationModel.setInstallations(
> this.generalBuildAgentConfiguration.getInstallations() );
> > +            configurationModel.setLocalRepositories(
> this.generalBuildAgentConfiguration.getLocalRepositories() );
> >
> >             ContinuumBuildAgentConfigurationModelXpp3Writer writer =
> >                 new ContinuumBuildAgentConfigurationModelXpp3Writer();
> >
> > 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=924833&r1=924832&r2=924833&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
> Thu Mar 18 14:36:07 2010
> > @@ -26,6 +26,7 @@ import java.util.List;
> > import javax.annotation.Resource;
> >
> > import org.apache.continuum.buildagent.model.Installation;
> > +import org.apache.continuum.buildagent.model.LocalRepository;
> > import org.codehaus.plexus.util.FileUtils;
> > import org.slf4j.Logger;
> > import org.slf4j.LoggerFactory;
> > @@ -144,6 +145,11 @@ public class DefaultBuildAgentConfigurat
> >         return generalBuildAgentConfiguration.getInstallations();
> >     }
> >
> > +    public List<LocalRepository> getLocalRepositories()
> > +    {
> > +        return generalBuildAgentConfiguration.getLocalRepositories();
> > +    }
> > +
> >     private void loadData()
> >         throws BuildAgentConfigurationException
> >     {
> >
> > Modified:
> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/GeneralBuildAgentConfiguration.java
> > URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/GeneralBuildAgentConfiguration.java?rev=924833&r1=924832&r2=924833&view=diff
> >
> ==============================================================================
> > ---
> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/GeneralBuildAgentConfiguration.java
> (original)
> > +++
> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/GeneralBuildAgentConfiguration.java
> Thu Mar 18 14:36:07 2010
> > @@ -23,6 +23,7 @@ import java.io.File;
> > import java.util.List;
> >
> > import org.apache.continuum.buildagent.model.Installation;
> > +import org.apache.continuum.buildagent.model.LocalRepository;
> >
> > public class GeneralBuildAgentConfiguration
> > {
> > @@ -33,6 +34,8 @@ public class GeneralBuildAgentConfigurat
> >     private String continuumServerUrl;
> >
> >     private List<Installation> installations;
> > +
> > +    private List<LocalRepository> localRepositories;
> >
> >     public File getWorkingDirectory()
> >     {
> > @@ -73,4 +76,14 @@ public class GeneralBuildAgentConfigurat
> >     {
> >         this.installations = installations;
> >     }
> > +
> > +    public List<LocalRepository> getLocalRepositories()
> > +    {
> > +        return localRepositories;
> > +    }
> > +
> > +    public void setLocalRepositories( List<LocalRepository>
> localRepositories )
> > +    {
> > +        this.localRepositories = localRepositories;
> > +    }
> > }
> >
> > 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=924833&r1=924832&r2=924833&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
> Thu Mar 18 14:36:07 2010
> > @@ -35,6 +35,7 @@ import org.apache.continuum.buildagent.b
> > import
> org.apache.continuum.buildagent.configuration.BuildAgentConfigurationService;
> > import
> org.apache.continuum.buildagent.installation.BuildAgentInstallationService;
> > import org.apache.continuum.buildagent.manager.BuildAgentManager;
> > +import org.apache.continuum.buildagent.model.LocalRepository;
> > import
> org.apache.continuum.buildagent.utils.BuildContextToBuildDefinition;
> > import org.apache.continuum.buildagent.utils.BuildContextToProject;
> > import org.apache.continuum.buildagent.utils.ContinuumBuildAgentUtil;
> > @@ -168,7 +169,20 @@ public class BuildProjectTaskExecutor
> >         actionContext.put( ContinuumBuildAgentUtil.KEY_ENVIRONMENTS,
> >                            getEnvironments(
> buildContext.getBuildDefinitionId(),
> >                                             getInstallationType(
> buildContext ) ) );
> > -        actionContext.put( ContinuumBuildAgentUtil.KEY_LOCAL_REPOSITORY,
> buildContext.getLocalRepository() );
> > +        // CONTINUUM-2391
> > +        if( buildContext.getLocalRepository() != null )
> > +        {
> > +            List<LocalRepository> localRepos =
> buildAgentConfigurationService.getLocalRepositories();
> > +            for( LocalRepository local : localRepos )
> > +            {
> > +                if( local.getName().equalsIgnoreCase(
> buildContext.getLocalRepository() ) )
> > +                {
> > +                    actionContext.put(
> ContinuumBuildAgentUtil.KEY_LOCAL_REPOSITORY, local.getLocation() );
> > +                    break;
> > +                }
> > +            }
> > +        }
> > +
> >         actionContext.put( ContinuumBuildAgentUtil.KEY_SCM_RESULT,
> buildContext.getScmResult() );
> >         buildContext.setActionContext( actionContext );
> >
> >
> > Added:
> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationTest.java
> > URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationTest.java?rev=924833&view=auto
> >
> ==============================================================================
> > ---
> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationTest.java
> (added)
> > +++
> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationTest.java
> Thu Mar 18 14:36:07 2010
> > @@ -0,0 +1,187 @@
> > +package org.apache.continuum.buildagent.configuration;
> > +
> > +/*
> > + * 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.
> > + */
> > +
> > +import java.io.File;
> > +import java.util.ArrayList;
> > +import java.util.List;
> > +
> > +import org.apache.continuum.buildagent.model.Installation;
> > +import org.apache.continuum.buildagent.model.LocalRepository;
> > +import org.codehaus.plexus.spring.PlexusInSpringTestCase;
> > +
> > +public class BuildAgentConfigurationTest
> > +    extends PlexusInSpringTestCase
> > +{
> > +    public void testInitialize()
> > +        throws Exception
> > +    {
> > +        DefaultBuildAgentConfiguration config =
> (DefaultBuildAgentConfiguration) lookup( BuildAgentConfiguration.class );
> > +
> > +        config.setConfigurationFile( new File( getBasedir(),
> "target/test-classes/buildagent-config/continuum-buildagent.xml" ) );
> > +
> > +        config.initialize();
> > +
> > +        GeneralBuildAgentConfiguration generalConfig =
> config.getContinuumBuildAgentConfiguration();
> > +        assertEquals( "http://localhost:9595/continuum/master-xmlrpc",
> generalConfig.getContinuumServerUrl() );
> > +        assertEquals( "/tmp/data/build-output-directory",
> generalConfig.getBuildOutputDirectory().getPath() );
> > +        assertEquals( "/tmp/data/working-directory",
> generalConfig.getWorkingDirectory().getPath() );
> > +        assertEquals( 1, generalConfig.getInstallations().size() );
> > +
> > +        Installation installation =
> generalConfig.getInstallations().get( 0 );
> > +        assertEquals( "Tool", installation.getType() );
> > +        assertEquals( "Maven 2.2.1 Installation", installation.getName()
> );
> > +        assertEquals( "M2_HOME", installation.getVarName() );
> > +        assertEquals( "/tmp/apache-maven-2.2.1",
> installation.getVarValue() );
> > +
> > +        LocalRepository localRepo =
> generalConfig.getLocalRepositories().get( 0 );
> > +        assertLocalRepository( getExpectedLocalRepo(), localRepo );
> > +    }
> > +
> > +    public void testSaveExistingConfiguration()
> > +        throws Exception
> > +    {
> > +        DefaultBuildAgentConfiguration config =
> (DefaultBuildAgentConfiguration) lookup( BuildAgentConfiguration.class );
> > +
> > +        config.setConfigurationFile( new File( getBasedir(),
> "target/test-classes/buildagent-config/continuum-buildagent-edit.xml" ) );
> > +
> > +        config.initialize();
> > +
> > +        String expected = "
> http://192.165.240.12:8080/continuum/master-xmlrpc";
> > +
> > +        GeneralBuildAgentConfiguration generalConfig =
> config.getContinuumBuildAgentConfiguration();
> > +
> > +        assertEquals( "http://localhost:9595/continuum/master-xmlrpc",
> generalConfig.getContinuumServerUrl() );
> > +        assertEquals( 1, generalConfig.getInstallations().size() );
> > +
> > +        generalConfig.setContinuumServerUrl( expected );
> > +
> > +        Installation expectedInstallation = getExpectedInstallation();
> > +        generalConfig.getInstallations().add( expectedInstallation );
> > +
> > +        LocalRepository expectedLocalRepo = getExpectedLocalRepo();
> > +
> > +        List<LocalRepository> localRepos = new
> ArrayList<LocalRepository>();
> > +        localRepos.add( expectedLocalRepo );
> > +
> > +        generalConfig.setLocalRepositories( localRepos );
> > +
> > +        config.save();
> > +
> > +        config.reload();
> > +
> > +        assertEquals( expected,
> config.getContinuumBuildAgentConfiguration().getContinuumServerUrl() );
> > +        assertEquals( 2,
> config.getContinuumBuildAgentConfiguration().getInstallations().size() );
> > +
> > +        Installation installation =
> generalConfig.getInstallations().get( 1 );
> > +        assertInstallation( expectedInstallation, installation );
> > +
> > +        LocalRepository localRepo =
> generalConfig.getLocalRepositories().get( 0 );
> > +        assertLocalRepository( expectedLocalRepo, localRepo );
> > +    }
> > +
> > +    public void testSaveNewConfiguration()
> > +        throws Exception
> > +    {
> > +        File configFile = new File( getBasedir(),
> "target/test-classes/buildagent-config/continuum-buildagent-new.xml" );
> > +        DefaultBuildAgentConfiguration config =
> (DefaultBuildAgentConfiguration) lookup( BuildAgentConfiguration.class );
> > +
> > +        config.setConfigurationFile( configFile );
> > +
> > +        config.initialize();
> > +
> > +        String expectedUrl = "
> http://localhost:8080/continuum/master-xmlrpc";
> > +        String expectedBuildOutputDir =
> "/tmp/data/build-output-directory";
> > +        String expectedWorkingDir = "/tmp/data/working-directory";
> > +
> > +        GeneralBuildAgentConfiguration generalConfig =
> config.getContinuumBuildAgentConfiguration();
> > +
> > +        assertNull( generalConfig.getContinuumServerUrl() );
> > +        assertNull( generalConfig.getBuildOutputDirectory() );
> > +        assertNull( generalConfig.getWorkingDirectory() );
> > +        assertNull( generalConfig.getInstallations() );
> > +
> > +        Installation expectedInstallation = getExpectedInstallation();
> > +
> > +        List<Installation> installations = new
> ArrayList<Installation>();
> > +        installations.add( expectedInstallation );
> > +
> > +        LocalRepository expectedLocalRepo = getExpectedLocalRepo();
> > +
> > +        List<LocalRepository> localRepos = new
> ArrayList<LocalRepository>();
> > +        localRepos.add( expectedLocalRepo );
> > +
> > +        generalConfig.setContinuumServerUrl( expectedUrl );
> > +        generalConfig.setBuildOutputDirectory( new File(
> expectedBuildOutputDir ) );
> > +        generalConfig.setWorkingDirectory( new File( expectedWorkingDir
> ) );
> > +        generalConfig.setInstallations( installations );
> > +        generalConfig.setLocalRepositories( localRepos );
> > +
> > +        config.save();
> > +
> > +        config.reload();
> > +
> > +        assertTrue( configFile.exists() );
> > +        assertEquals( expectedUrl,
> config.getContinuumBuildAgentConfiguration().getContinuumServerUrl() );
> > +        assertEquals( expectedBuildOutputDir,
> config.getContinuumBuildAgentConfiguration().getBuildOutputDirectory().getPath()
> );
> > +        assertEquals( expectedWorkingDir,
> config.getContinuumBuildAgentConfiguration().getWorkingDirectory().getPath()
> );
> > +        assertEquals( 1,
> config.getContinuumBuildAgentConfiguration().getInstallations().size() );
> > +
> > +        Installation installation =
> generalConfig.getInstallations().get( 0 );
> > +        assertInstallation( expectedInstallation, installation );
> > +
> > +        LocalRepository localRepo =
> generalConfig.getLocalRepositories().get( 0 );
> > +        assertLocalRepository( expectedLocalRepo, localRepo );
> > +    }
> > +
> > +    private Installation getExpectedInstallation()
> > +    {
> > +        Installation expectedInstallation = new Installation();
> > +        expectedInstallation.setName( "Maven 2.0.10 Installation" );
> > +        expectedInstallation.setType( "Tool" );
> > +        expectedInstallation.setVarName( "M2_HOME" );
> > +        expectedInstallation.setVarValue( "/tmp/apache-maven-2.1.10" );
> > +        return expectedInstallation;
> > +    }
> > +
> > +    private LocalRepository getExpectedLocalRepo()
> > +    {
> > +        LocalRepository expectedLocalRepo = new LocalRepository();
> > +        expectedLocalRepo.setName( "default" );
> > +        expectedLocalRepo.setLayout( "default" );
> > +        expectedLocalRepo.setLocation( "/tmp/.m2/repository" );
> > +        return expectedLocalRepo;
> > +    }
> > +
> > +    private void assertLocalRepository( LocalRepository
> expectedLocalRepo, LocalRepository localRepo )
> > +    {
> > +        assertEquals( expectedLocalRepo.getName(), localRepo.getName()
> );
> > +        assertEquals( expectedLocalRepo.getLayout(),
> localRepo.getLayout() );
> > +        assertEquals( expectedLocalRepo.getLocation(),
> localRepo.getLocation() );
> > +    }
> > +
> > +    private void assertInstallation( Installation expectedInstallation,
> Installation installation )
> > +    {
> > +        assertEquals( expectedInstallation.getType(),
> installation.getType() );
> > +        assertEquals( expectedInstallation.getName(),
> installation.getName() );
> > +        assertEquals( expectedInstallation.getVarName(),
> installation.getVarName() );
> > +        assertEquals( expectedInstallation.getVarValue(),
> installation.getVarValue() );
> > +    }
> > +}
> >
> > Added:
> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/buildagent-config/continuum-buildagent-edit.xml
> > URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/buildagent-config/continuum-buildagent-edit.xml?rev=924833&view=auto
> >
> ==============================================================================
> > ---
> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/buildagent-config/continuum-buildagent-edit.xml
> (added)
> > +++
> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/buildagent-config/continuum-buildagent-edit.xml
> Thu Mar 18 14:36:07 2010
> > @@ -0,0 +1,33 @@
> > +<?xml version='1.0' encoding='UTF-8'?>
> > +<!--
> > +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.
> > +-->
> > +
> > +<continuum-buildagent-configuration>
> > +  <continuumServerUrl>http://localhost:9595/continuum/master-xmlrpc
> </continuumServerUrl>
> > +
>  <buildOutputDirectory>/tmp/data/build-output-directory</buildOutputDirectory>
> > +  <workingDirectory>/tmp/data/working-directory</workingDirectory>
> > +  <installations>
> > +    <installation>
> > +      <name>Maven 2.2.1 Installation</name>
> > +      <type>Tool</type>
> > +      <varName>M2_HOME</varName>
> > +      <varValue>/tmp/apache-maven-2.2.1</varValue>
> > +    </installation>
> > +  </installations>
> > +</continuum-buildagent-configuration>
> > \ No newline at end of file
> >
> > Added:
> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/buildagent-config/continuum-buildagent.xml
> > URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/buildagent-config/continuum-buildagent.xml?rev=924833&view=auto
> >
> ==============================================================================
> > ---
> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/buildagent-config/continuum-buildagent.xml
> (added)
> > +++
> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/buildagent-config/continuum-buildagent.xml
> Thu Mar 18 14:36:07 2010
> > @@ -0,0 +1,40 @@
> > +<?xml version='1.0' encoding='UTF-8'?>
> > +<!--
> > +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.
> > +-->
> > +
> > +<continuum-buildagent-configuration>
> > +  <continuumServerUrl>http://localhost:9595/continuum/master-xmlrpc
> </continuumServerUrl>
> > +
>  <buildOutputDirectory>/tmp/data/build-output-directory</buildOutputDirectory>
> > +  <workingDirectory>/tmp/data/working-directory</workingDirectory>
> > +  <installations>
> > +    <installation>
> > +      <name>Maven 2.2.1 Installation</name>
> > +      <type>Tool</type>
> > +      <varName>M2_HOME</varName>
> > +      <varValue>/tmp/apache-maven-2.2.1</varValue>
> > +    </installation>
> > +  </installations>
> > +  <localRepositories>
> > +    <localRepository>
> > +      <name>default</name>
> > +      <location>/tmp/.m2/repository</location>
> > +      <layout>default</layout>
> > +    </localRepository>
> > +  </localRepositories>
> > +</continuum-buildagent-configuration>
> >
> > Modified:
> continuum/trunk/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java
> > URL:
> http://svn.apache.org/viewvc/continuum/trunk/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java?rev=924833&r1=924832&r2=924833&view=diff
> >
> ==============================================================================
> > ---
> continuum/trunk/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java
> (original)
> > +++
> continuum/trunk/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java
> Thu Mar 18 14:36:07 2010
> > @@ -170,11 +170,12 @@ public class DistributedBuildProjectTask
> >                                  new Date( buildResult.getStartTime() )
> );
> >                 }
> >
> > -                LocalRepository localRepo =
> project.getProjectGroup().getLocalRepository();
> > +                LocalRepository localRepo =
> project.getProjectGroup().getLocalRepository();
> >
> >                 if ( localRepo != null )
> >                 {
> > -                    context.put(
> ContinuumBuildConstant.KEY_LOCAL_REPOSITORY, localRepo.getLocation() );
> > +                    // CONTINUUM-2391
> > +                     context.put(
> ContinuumBuildConstant.KEY_LOCAL_REPOSITORY, localRepo.getName() );
> >                 }
> >                 else
> >                 {
> >
> >
>
> --
> Brett Porter
> brett@apache.org
> http://brettporter.wordpress.com/
>
>
>
>
>

Re: svn commit: r924833 - in /continuum/trunk: continuum-buildagent/continuum-buildagent-api/ continuum-buildagent/continuum-buildagent-api/src/main/mdo/ continuum-buildagent/continuum-buildagent-core/ continuum-buildagent/continuum-buildagent-core/s

Posted by Deng Ching <oc...@apache.org>.
Upgrade docs updated in -r931464.

On Tue, Apr 6, 2010 at 1:58 PM, Deng Ching <oc...@apache.org> wrote:

> Although it is just a change in the build agent config file, I guess it
> does need to be noted down in the upgrade docs too :)
>
> Thanks,
> Deng
>
> On Tue, Apr 6, 2010 at 1:25 PM, Brett Porter <br...@apache.org> wrote:
>
>> Does this need upgrade instructions for 1.3.x users?
>>
>> On 19/03/2010, at 1:36 AM, oching@apache.org wrote:
>>
>> > Author: oching
>> > Date: Thu Mar 18 14:36:07 2010
>> > New Revision: 924833
>> >
>> > URL: http://svn.apache.org/viewvc?rev=924833&view=rev
>> > Log:
>> > [CONTINUUM-2391] Master should not pass full path to local repository to
>> the agent
>> > o pass repo name to build agent instead of full path
>> > o added support for local repos in build agent config file + tests
>> >
>> > Added:
>> >
>>  continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/
>> >
>>  continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/configuration/
>> >
>>  continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationTest.java
>> >
>>  continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/
>> >
>>  continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/buildagent-config/
>> >
>>  continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/buildagent-config/continuum-buildagent-edit.xml
>> >
>>  continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/buildagent-config/continuum-buildagent.xml
>> > Modified:
>> >    continuum/trunk/continuum-buildagent/continuum-buildagent-api/pom.xml
>> >
>>  continuum/trunk/continuum-buildagent/continuum-buildagent-api/src/main/mdo/continuum-buildagent.xml
>> >
>>  continuum/trunk/continuum-buildagent/continuum-buildagent-core/pom.xml
>> >
>>  continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationService.java
>> >
>>  continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfiguration.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/configuration/GeneralBuildAgentConfiguration.java
>> >
>>  continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/execution/BuildProjectTaskExecutor.java
>> >
>>  continuum/trunk/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java
>> >
>> > Modified:
>> continuum/trunk/continuum-buildagent/continuum-buildagent-api/pom.xml
>> > URL:
>> http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-api/pom.xml?rev=924833&r1=924832&r2=924833&view=diff
>> >
>> ==============================================================================
>> > ---
>> continuum/trunk/continuum-buildagent/continuum-buildagent-api/pom.xml
>> (original)
>> > +++
>> continuum/trunk/continuum-buildagent/continuum-buildagent-api/pom.xml Thu
>> Mar 18 14:36:07 2010
>> > @@ -38,7 +38,7 @@ under the License.
>> >             <model>src/main/mdo/continuum-buildagent.xml</model>
>> >           </models>
>> >           <useJava5>true</useJava5>
>> > -          <version>1.0.0</version>
>> > +          <version>1.1.0</version>
>> >         </configuration>
>> >         <executions>
>> >           <execution>
>> >
>> > Modified:
>> continuum/trunk/continuum-buildagent/continuum-buildagent-api/src/main/mdo/continuum-buildagent.xml
>> > URL:
>> http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-api/src/main/mdo/continuum-buildagent.xml?rev=924833&r1=924832&r2=924833&view=diff
>> >
>> ==============================================================================
>> > ---
>> continuum/trunk/continuum-buildagent/continuum-buildagent-api/src/main/mdo/continuum-buildagent.xml
>> (original)
>> > +++
>> continuum/trunk/continuum-buildagent/continuum-buildagent-api/src/main/mdo/continuum-buildagent.xml
>> Thu Mar 18 14:36:07 2010
>> > @@ -55,6 +55,14 @@
>> >             <multiplicity>*</multiplicity>
>> >           </association>
>> >         </field>
>> > +        <field>
>> > +          <name>localRepositories</name>
>> > +          <version>1.1.0+</version>
>> > +          <association>
>> > +            <type>LocalRepository</type>
>> > +            <multiplicity>*</multiplicity>
>> > +          </association>
>> > +        </field>
>> >       </fields>
>> >     </class>
>> >     <class xml.tagName="buildagent-installation">
>> > @@ -83,5 +91,35 @@
>> >         </field>
>> >       </fields>
>> >     </class>
>> > +    <class>
>> > +      <name>LocalRepository</name>
>> > +      <version>1.1.0+</version>
>> > +      <fields>
>> > +        <field>
>> > +          <name>name</name>
>> > +          <version>1.1.0+</version>
>> > +          <type>String</type>
>> > +          <required>true</required>
>> > +        </field>
>> > +        <field>
>> > +          <name>location</name>
>> > +          <version>1.1.0+</version>
>> > +          <type>String</type>
>> > +          <required>true</required>
>> > +          <description>
>> > +          The file system location for this repository
>> > +          </description>
>> > +        </field>
>> > +        <field>
>> > +          <name>layout</name>
>> > +          <version>1.1.0+</version>
>> > +          <type>String</type>
>> > +          <defaultValue>default</defaultValue>
>> > +          <description>
>> > +          The layout of the repository. Valid values are "default" and
>> "legacy"
>> > +          </description>
>> > +        </field>
>> > +      </fields>
>> > +    </class>
>> >   </classes>
>> > </model>
>> > \ No newline at end of file
>> >
>> > Modified:
>> continuum/trunk/continuum-buildagent/continuum-buildagent-core/pom.xml
>> > URL:
>> http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/pom.xml?rev=924833&r1=924832&r2=924833&view=diff
>> >
>> ==============================================================================
>> > ---
>> continuum/trunk/continuum-buildagent/continuum-buildagent-core/pom.xml
>> (original)
>> > +++
>> continuum/trunk/continuum-buildagent/continuum-buildagent-core/pom.xml Thu
>> Mar 18 14:36:07 2010
>> > @@ -125,7 +125,12 @@ under the License.
>> >     <dependency>
>> >       <groupId>javax.annotation</groupId>
>> >       <artifactId>jsr250-api</artifactId>
>> > -    </dependency>
>> > +    </dependency>
>> > +    <dependency>
>> > +      <groupId>org.slf4j</groupId>
>> > +      <artifactId>slf4j-simple</artifactId>
>> > +      <scope>test</scope>
>> > +    </dependency>
>> >   </dependencies>
>> >   <build>
>> >     <plugins>
>> >
>> > Modified:
>> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationService.java
>> > URL:
>> http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationService.java?rev=924833&r1=924832&r2=924833&view=diff
>> >
>> ==============================================================================
>> > ---
>> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationService.java
>> (original)
>> > +++
>> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationService.java
>> Thu Mar 18 14:36:07 2010
>> > @@ -23,6 +23,7 @@ import java.io.File;
>> > import java.util.List;
>> >
>> > import org.apache.continuum.buildagent.model.Installation;
>> > +import org.apache.continuum.buildagent.model.LocalRepository;
>> >
>> > public interface BuildAgentConfigurationService
>> > {
>> > @@ -45,4 +46,6 @@ public interface BuildAgentConfiguration
>> >         throws BuildAgentConfigurationException;
>> >
>> >     List<Installation> getAvailableInstallations();
>> > +
>> > +    List<LocalRepository> getLocalRepositories();
>> > }
>> >
>> > Modified:
>> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfiguration.java
>> > URL:
>> http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfiguration.java?rev=924833&r1=924832&r2=924833&view=diff
>> >
>> ==============================================================================
>> > ---
>> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfiguration.java
>> (original)
>> > +++
>> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfiguration.java
>> Thu Mar 18 14:36:07 2010
>> > @@ -105,6 +105,7 @@ public class DefaultBuildAgentConfigurat
>> >             }
>> >             this.generalBuildAgentConfiguration.setContinuumServerUrl(
>> configuration.getContinuumServerUrl() );
>> >             this.generalBuildAgentConfiguration.setInstallations(
>> configuration.getInstallations() );
>> > +            this.generalBuildAgentConfiguration.setLocalRepositories(
>> configuration.getLocalRepositories() );
>> >         }
>> >         catch ( IOException e )
>> >         {
>> > @@ -153,6 +154,7 @@ public class DefaultBuildAgentConfigurat
>> >             }
>> >             configurationModel.setContinuumServerUrl(
>> this.generalBuildAgentConfiguration.getContinuumServerUrl() );
>> >             configurationModel.setInstallations(
>> this.generalBuildAgentConfiguration.getInstallations() );
>> > +            configurationModel.setLocalRepositories(
>> this.generalBuildAgentConfiguration.getLocalRepositories() );
>> >
>> >             ContinuumBuildAgentConfigurationModelXpp3Writer writer =
>> >                 new ContinuumBuildAgentConfigurationModelXpp3Writer();
>> >
>> > 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=924833&r1=924832&r2=924833&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
>> Thu Mar 18 14:36:07 2010
>> > @@ -26,6 +26,7 @@ import java.util.List;
>> > import javax.annotation.Resource;
>> >
>> > import org.apache.continuum.buildagent.model.Installation;
>> > +import org.apache.continuum.buildagent.model.LocalRepository;
>> > import org.codehaus.plexus.util.FileUtils;
>> > import org.slf4j.Logger;
>> > import org.slf4j.LoggerFactory;
>> > @@ -144,6 +145,11 @@ public class DefaultBuildAgentConfigurat
>> >         return generalBuildAgentConfiguration.getInstallations();
>> >     }
>> >
>> > +    public List<LocalRepository> getLocalRepositories()
>> > +    {
>> > +        return generalBuildAgentConfiguration.getLocalRepositories();
>> > +    }
>> > +
>> >     private void loadData()
>> >         throws BuildAgentConfigurationException
>> >     {
>> >
>> > Modified:
>> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/GeneralBuildAgentConfiguration.java
>> > URL:
>> http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/GeneralBuildAgentConfiguration.java?rev=924833&r1=924832&r2=924833&view=diff
>> >
>> ==============================================================================
>> > ---
>> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/GeneralBuildAgentConfiguration.java
>> (original)
>> > +++
>> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/GeneralBuildAgentConfiguration.java
>> Thu Mar 18 14:36:07 2010
>> > @@ -23,6 +23,7 @@ import java.io.File;
>> > import java.util.List;
>> >
>> > import org.apache.continuum.buildagent.model.Installation;
>> > +import org.apache.continuum.buildagent.model.LocalRepository;
>> >
>> > public class GeneralBuildAgentConfiguration
>> > {
>> > @@ -33,6 +34,8 @@ public class GeneralBuildAgentConfigurat
>> >     private String continuumServerUrl;
>> >
>> >     private List<Installation> installations;
>> > +
>> > +    private List<LocalRepository> localRepositories;
>> >
>> >     public File getWorkingDirectory()
>> >     {
>> > @@ -73,4 +76,14 @@ public class GeneralBuildAgentConfigurat
>> >     {
>> >         this.installations = installations;
>> >     }
>> > +
>> > +    public List<LocalRepository> getLocalRepositories()
>> > +    {
>> > +        return localRepositories;
>> > +    }
>> > +
>> > +    public void setLocalRepositories( List<LocalRepository>
>> localRepositories )
>> > +    {
>> > +        this.localRepositories = localRepositories;
>> > +    }
>> > }
>> >
>> > 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=924833&r1=924832&r2=924833&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
>> Thu Mar 18 14:36:07 2010
>> > @@ -35,6 +35,7 @@ import org.apache.continuum.buildagent.b
>> > import
>> org.apache.continuum.buildagent.configuration.BuildAgentConfigurationService;
>> > import
>> org.apache.continuum.buildagent.installation.BuildAgentInstallationService;
>> > import org.apache.continuum.buildagent.manager.BuildAgentManager;
>> > +import org.apache.continuum.buildagent.model.LocalRepository;
>> > import
>> org.apache.continuum.buildagent.utils.BuildContextToBuildDefinition;
>> > import org.apache.continuum.buildagent.utils.BuildContextToProject;
>> > import org.apache.continuum.buildagent.utils.ContinuumBuildAgentUtil;
>> > @@ -168,7 +169,20 @@ public class BuildProjectTaskExecutor
>> >         actionContext.put( ContinuumBuildAgentUtil.KEY_ENVIRONMENTS,
>> >                            getEnvironments(
>> buildContext.getBuildDefinitionId(),
>> >                                             getInstallationType(
>> buildContext ) ) );
>> > -        actionContext.put(
>> ContinuumBuildAgentUtil.KEY_LOCAL_REPOSITORY,
>> buildContext.getLocalRepository() );
>> > +        // CONTINUUM-2391
>> > +        if( buildContext.getLocalRepository() != null )
>> > +        {
>> > +            List<LocalRepository> localRepos =
>> buildAgentConfigurationService.getLocalRepositories();
>> > +            for( LocalRepository local : localRepos )
>> > +            {
>> > +                if( local.getName().equalsIgnoreCase(
>> buildContext.getLocalRepository() ) )
>> > +                {
>> > +                    actionContext.put(
>> ContinuumBuildAgentUtil.KEY_LOCAL_REPOSITORY, local.getLocation() );
>> > +                    break;
>> > +                }
>> > +            }
>> > +        }
>> > +
>> >         actionContext.put( ContinuumBuildAgentUtil.KEY_SCM_RESULT,
>> buildContext.getScmResult() );
>> >         buildContext.setActionContext( actionContext );
>> >
>> >
>> > Added:
>> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationTest.java
>> > URL:
>> http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationTest.java?rev=924833&view=auto
>> >
>> ==============================================================================
>> > ---
>> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationTest.java
>> (added)
>> > +++
>> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationTest.java
>> Thu Mar 18 14:36:07 2010
>> > @@ -0,0 +1,187 @@
>> > +package org.apache.continuum.buildagent.configuration;
>> > +
>> > +/*
>> > + * 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.
>> > + */
>> > +
>> > +import java.io.File;
>> > +import java.util.ArrayList;
>> > +import java.util.List;
>> > +
>> > +import org.apache.continuum.buildagent.model.Installation;
>> > +import org.apache.continuum.buildagent.model.LocalRepository;
>> > +import org.codehaus.plexus.spring.PlexusInSpringTestCase;
>> > +
>> > +public class BuildAgentConfigurationTest
>> > +    extends PlexusInSpringTestCase
>> > +{
>> > +    public void testInitialize()
>> > +        throws Exception
>> > +    {
>> > +        DefaultBuildAgentConfiguration config =
>> (DefaultBuildAgentConfiguration) lookup( BuildAgentConfiguration.class );
>> > +
>> > +        config.setConfigurationFile( new File( getBasedir(),
>> "target/test-classes/buildagent-config/continuum-buildagent.xml" ) );
>> > +
>> > +        config.initialize();
>> > +
>> > +        GeneralBuildAgentConfiguration generalConfig =
>> config.getContinuumBuildAgentConfiguration();
>> > +        assertEquals( "http://localhost:9595/continuum/master-xmlrpc",
>> generalConfig.getContinuumServerUrl() );
>> > +        assertEquals( "/tmp/data/build-output-directory",
>> generalConfig.getBuildOutputDirectory().getPath() );
>> > +        assertEquals( "/tmp/data/working-directory",
>> generalConfig.getWorkingDirectory().getPath() );
>> > +        assertEquals( 1, generalConfig.getInstallations().size() );
>> > +
>> > +        Installation installation =
>> generalConfig.getInstallations().get( 0 );
>> > +        assertEquals( "Tool", installation.getType() );
>> > +        assertEquals( "Maven 2.2.1 Installation",
>> installation.getName() );
>> > +        assertEquals( "M2_HOME", installation.getVarName() );
>> > +        assertEquals( "/tmp/apache-maven-2.2.1",
>> installation.getVarValue() );
>> > +
>> > +        LocalRepository localRepo =
>> generalConfig.getLocalRepositories().get( 0 );
>> > +        assertLocalRepository( getExpectedLocalRepo(), localRepo );
>> > +    }
>> > +
>> > +    public void testSaveExistingConfiguration()
>> > +        throws Exception
>> > +    {
>> > +        DefaultBuildAgentConfiguration config =
>> (DefaultBuildAgentConfiguration) lookup( BuildAgentConfiguration.class );
>> > +
>> > +        config.setConfigurationFile( new File( getBasedir(),
>> "target/test-classes/buildagent-config/continuum-buildagent-edit.xml" ) );
>> > +
>> > +        config.initialize();
>> > +
>> > +        String expected = "
>> http://192.165.240.12:8080/continuum/master-xmlrpc";
>> > +
>> > +        GeneralBuildAgentConfiguration generalConfig =
>> config.getContinuumBuildAgentConfiguration();
>> > +
>> > +        assertEquals( "http://localhost:9595/continuum/master-xmlrpc",
>> generalConfig.getContinuumServerUrl() );
>> > +        assertEquals( 1, generalConfig.getInstallations().size() );
>> > +
>> > +        generalConfig.setContinuumServerUrl( expected );
>> > +
>> > +        Installation expectedInstallation = getExpectedInstallation();
>> > +        generalConfig.getInstallations().add( expectedInstallation );
>> > +
>> > +        LocalRepository expectedLocalRepo = getExpectedLocalRepo();
>> > +
>> > +        List<LocalRepository> localRepos = new
>> ArrayList<LocalRepository>();
>> > +        localRepos.add( expectedLocalRepo );
>> > +
>> > +        generalConfig.setLocalRepositories( localRepos );
>> > +
>> > +        config.save();
>> > +
>> > +        config.reload();
>> > +
>> > +        assertEquals( expected,
>> config.getContinuumBuildAgentConfiguration().getContinuumServerUrl() );
>> > +        assertEquals( 2,
>> config.getContinuumBuildAgentConfiguration().getInstallations().size() );
>> > +
>> > +        Installation installation =
>> generalConfig.getInstallations().get( 1 );
>> > +        assertInstallation( expectedInstallation, installation );
>> > +
>> > +        LocalRepository localRepo =
>> generalConfig.getLocalRepositories().get( 0 );
>> > +        assertLocalRepository( expectedLocalRepo, localRepo );
>> > +    }
>> > +
>> > +    public void testSaveNewConfiguration()
>> > +        throws Exception
>> > +    {
>> > +        File configFile = new File( getBasedir(),
>> "target/test-classes/buildagent-config/continuum-buildagent-new.xml" );
>> > +        DefaultBuildAgentConfiguration config =
>> (DefaultBuildAgentConfiguration) lookup( BuildAgentConfiguration.class );
>> > +
>> > +        config.setConfigurationFile( configFile );
>> > +
>> > +        config.initialize();
>> > +
>> > +        String expectedUrl = "
>> http://localhost:8080/continuum/master-xmlrpc";
>> > +        String expectedBuildOutputDir =
>> "/tmp/data/build-output-directory";
>> > +        String expectedWorkingDir = "/tmp/data/working-directory";
>> > +
>> > +        GeneralBuildAgentConfiguration generalConfig =
>> config.getContinuumBuildAgentConfiguration();
>> > +
>> > +        assertNull( generalConfig.getContinuumServerUrl() );
>> > +        assertNull( generalConfig.getBuildOutputDirectory() );
>> > +        assertNull( generalConfig.getWorkingDirectory() );
>> > +        assertNull( generalConfig.getInstallations() );
>> > +
>> > +        Installation expectedInstallation = getExpectedInstallation();
>> > +
>> > +        List<Installation> installations = new
>> ArrayList<Installation>();
>> > +        installations.add( expectedInstallation );
>> > +
>> > +        LocalRepository expectedLocalRepo = getExpectedLocalRepo();
>> > +
>> > +        List<LocalRepository> localRepos = new
>> ArrayList<LocalRepository>();
>> > +        localRepos.add( expectedLocalRepo );
>> > +
>> > +        generalConfig.setContinuumServerUrl( expectedUrl );
>> > +        generalConfig.setBuildOutputDirectory( new File(
>> expectedBuildOutputDir ) );
>> > +        generalConfig.setWorkingDirectory( new File( expectedWorkingDir
>> ) );
>> > +        generalConfig.setInstallations( installations );
>> > +        generalConfig.setLocalRepositories( localRepos );
>> > +
>> > +        config.save();
>> > +
>> > +        config.reload();
>> > +
>> > +        assertTrue( configFile.exists() );
>> > +        assertEquals( expectedUrl,
>> config.getContinuumBuildAgentConfiguration().getContinuumServerUrl() );
>> > +        assertEquals( expectedBuildOutputDir,
>> config.getContinuumBuildAgentConfiguration().getBuildOutputDirectory().getPath()
>> );
>> > +        assertEquals( expectedWorkingDir,
>> config.getContinuumBuildAgentConfiguration().getWorkingDirectory().getPath()
>> );
>> > +        assertEquals( 1,
>> config.getContinuumBuildAgentConfiguration().getInstallations().size() );
>> > +
>> > +        Installation installation =
>> generalConfig.getInstallations().get( 0 );
>> > +        assertInstallation( expectedInstallation, installation );
>> > +
>> > +        LocalRepository localRepo =
>> generalConfig.getLocalRepositories().get( 0 );
>> > +        assertLocalRepository( expectedLocalRepo, localRepo );
>> > +    }
>> > +
>> > +    private Installation getExpectedInstallation()
>> > +    {
>> > +        Installation expectedInstallation = new Installation();
>> > +        expectedInstallation.setName( "Maven 2.0.10 Installation" );
>> > +        expectedInstallation.setType( "Tool" );
>> > +        expectedInstallation.setVarName( "M2_HOME" );
>> > +        expectedInstallation.setVarValue( "/tmp/apache-maven-2.1.10" );
>> > +        return expectedInstallation;
>> > +    }
>> > +
>> > +    private LocalRepository getExpectedLocalRepo()
>> > +    {
>> > +        LocalRepository expectedLocalRepo = new LocalRepository();
>> > +        expectedLocalRepo.setName( "default" );
>> > +        expectedLocalRepo.setLayout( "default" );
>> > +        expectedLocalRepo.setLocation( "/tmp/.m2/repository" );
>> > +        return expectedLocalRepo;
>> > +    }
>> > +
>> > +    private void assertLocalRepository( LocalRepository
>> expectedLocalRepo, LocalRepository localRepo )
>> > +    {
>> > +        assertEquals( expectedLocalRepo.getName(), localRepo.getName()
>> );
>> > +        assertEquals( expectedLocalRepo.getLayout(),
>> localRepo.getLayout() );
>> > +        assertEquals( expectedLocalRepo.getLocation(),
>> localRepo.getLocation() );
>> > +    }
>> > +
>> > +    private void assertInstallation( Installation expectedInstallation,
>> Installation installation )
>> > +    {
>> > +        assertEquals( expectedInstallation.getType(),
>> installation.getType() );
>> > +        assertEquals( expectedInstallation.getName(),
>> installation.getName() );
>> > +        assertEquals( expectedInstallation.getVarName(),
>> installation.getVarName() );
>> > +        assertEquals( expectedInstallation.getVarValue(),
>> installation.getVarValue() );
>> > +    }
>> > +}
>> >
>> > Added:
>> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/buildagent-config/continuum-buildagent-edit.xml
>> > URL:
>> http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/buildagent-config/continuum-buildagent-edit.xml?rev=924833&view=auto
>> >
>> ==============================================================================
>> > ---
>> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/buildagent-config/continuum-buildagent-edit.xml
>> (added)
>> > +++
>> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/buildagent-config/continuum-buildagent-edit.xml
>> Thu Mar 18 14:36:07 2010
>> > @@ -0,0 +1,33 @@
>> > +<?xml version='1.0' encoding='UTF-8'?>
>> > +<!--
>> > +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.
>> > +-->
>> > +
>> > +<continuum-buildagent-configuration>
>> > +  <continuumServerUrl>http://localhost:9595/continuum/master-xmlrpc
>> </continuumServerUrl>
>> > +
>>  <buildOutputDirectory>/tmp/data/build-output-directory</buildOutputDirectory>
>> > +  <workingDirectory>/tmp/data/working-directory</workingDirectory>
>> > +  <installations>
>> > +    <installation>
>> > +      <name>Maven 2.2.1 Installation</name>
>> > +      <type>Tool</type>
>> > +      <varName>M2_HOME</varName>
>> > +      <varValue>/tmp/apache-maven-2.2.1</varValue>
>> > +    </installation>
>> > +  </installations>
>> > +</continuum-buildagent-configuration>
>> > \ No newline at end of file
>> >
>> > Added:
>> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/buildagent-config/continuum-buildagent.xml
>> > URL:
>> http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/buildagent-config/continuum-buildagent.xml?rev=924833&view=auto
>> >
>> ==============================================================================
>> > ---
>> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/buildagent-config/continuum-buildagent.xml
>> (added)
>> > +++
>> continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/test/resources/buildagent-config/continuum-buildagent.xml
>> Thu Mar 18 14:36:07 2010
>> > @@ -0,0 +1,40 @@
>> > +<?xml version='1.0' encoding='UTF-8'?>
>> > +<!--
>> > +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.
>> > +-->
>> > +
>> > +<continuum-buildagent-configuration>
>> > +  <continuumServerUrl>http://localhost:9595/continuum/master-xmlrpc
>> </continuumServerUrl>
>> > +
>>  <buildOutputDirectory>/tmp/data/build-output-directory</buildOutputDirectory>
>> > +  <workingDirectory>/tmp/data/working-directory</workingDirectory>
>> > +  <installations>
>> > +    <installation>
>> > +      <name>Maven 2.2.1 Installation</name>
>> > +      <type>Tool</type>
>> > +      <varName>M2_HOME</varName>
>> > +      <varValue>/tmp/apache-maven-2.2.1</varValue>
>> > +    </installation>
>> > +  </installations>
>> > +  <localRepositories>
>> > +    <localRepository>
>> > +      <name>default</name>
>> > +      <location>/tmp/.m2/repository</location>
>> > +      <layout>default</layout>
>> > +    </localRepository>
>> > +  </localRepositories>
>> > +</continuum-buildagent-configuration>
>> >
>> > Modified:
>> continuum/trunk/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java
>> > URL:
>> http://svn.apache.org/viewvc/continuum/trunk/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java?rev=924833&r1=924832&r2=924833&view=diff
>> >
>> ==============================================================================
>> > ---
>> continuum/trunk/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java
>> (original)
>> > +++
>> continuum/trunk/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java
>> Thu Mar 18 14:36:07 2010
>> > @@ -170,11 +170,12 @@ public class DistributedBuildProjectTask
>> >                                  new Date( buildResult.getStartTime() )
>> );
>> >                 }
>> >
>> > -                LocalRepository localRepo =
>> project.getProjectGroup().getLocalRepository();
>> > +                LocalRepository localRepo =
>> project.getProjectGroup().getLocalRepository();
>> >
>> >                 if ( localRepo != null )
>> >                 {
>> > -                    context.put(
>> ContinuumBuildConstant.KEY_LOCAL_REPOSITORY, localRepo.getLocation() );
>> > +                    // CONTINUUM-2391
>> > +                     context.put(
>> ContinuumBuildConstant.KEY_LOCAL_REPOSITORY, localRepo.getName() );
>> >                 }
>> >                 else
>> >                 {
>> >
>> >
>>
>> --
>> Brett Porter
>> brett@apache.org
>> http://brettporter.wordpress.com/
>>
>>
>>
>>
>>
>