Return-Path: Delivered-To: apmail-continuum-commits-archive@www.apache.org Received: (qmail 98780 invoked from network); 6 Jan 2011 10:01:32 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 6 Jan 2011 10:01:32 -0000 Received: (qmail 21326 invoked by uid 500); 6 Jan 2011 10:01:32 -0000 Delivered-To: apmail-continuum-commits-archive@continuum.apache.org Received: (qmail 21262 invoked by uid 500); 6 Jan 2011 10:01:30 -0000 Mailing-List: contact commits-help@continuum.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@continuum.apache.org Delivered-To: mailing list commits@continuum.apache.org Received: (qmail 21253 invoked by uid 99); 6 Jan 2011 10:01:29 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Jan 2011 10:01:29 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Jan 2011 10:01:28 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 5BB1D23889E0; Thu, 6 Jan 2011 10:01:05 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1055810 - in /continuum/trunk: continuum-api/src/main/java/org/apache/continuum/builder/distributed/manager/ continuum-core/src/main/java/org/apache/continuum/builder/distributed/manager/ continuum-core/src/test/java/org/apache/continuum/b... Date: Thu, 06 Jan 2011 10:01:05 -0000 To: commits@continuum.apache.org From: oching@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110106100105.5BB1D23889E0@eris.apache.org> Author: oching Date: Thu Jan 6 10:01:04 2011 New Revision: 1055810 URL: http://svn.apache.org/viewvc?rev=1055810&view=rev Log: [CONTINUUM-2600] submitted by Mark John Kennedy Magallanes o set build agent's platform when retrieving build agent from continuum web service + unit test o added xmlrpc method for getting the build agent's platform Modified: continuum/trunk/continuum-api/src/main/java/org/apache/continuum/builder/distributed/manager/DistributedBuildManager.java continuum/trunk/continuum-core/src/main/java/org/apache/continuum/builder/distributed/manager/DefaultDistributedBuildManager.java continuum/trunk/continuum-core/src/test/java/org/apache/continuum/builder/distributed/manager/DefaultDistributedBuildManagerTest.java continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-api/src/main/mdo/continuum-service.xml 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/java/org/apache/continuum/builder/distributed/manager/DistributedBuildManager.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/continuum/builder/distributed/manager/DistributedBuildManager.java?rev=1055810&r1=1055809&r2=1055810&view=diff ============================================================================== --- continuum/trunk/continuum-api/src/main/java/org/apache/continuum/builder/distributed/manager/DistributedBuildManager.java (original) +++ continuum/trunk/continuum-api/src/main/java/org/apache/continuum/builder/distributed/manager/DistributedBuildManager.java Thu Jan 6 10:01:04 2011 @@ -48,6 +48,9 @@ public interface DistributedBuildManager List getAvailableInstallations( String buildAgentUrl ) throws ContinuumException; + + String getBuildAgentPlatform( String buildAgentUrl ) + throws ContinuumException; Map> getProjectsInPrepareBuildQueue() throws ContinuumException; @@ -100,4 +103,4 @@ public interface DistributedBuildManager boolean isProjectCurrentlyBuilding( int projectId, int buildDefinitionId ) throws ContinuumException; -} \ No newline at end of file +} Modified: continuum/trunk/continuum-core/src/main/java/org/apache/continuum/builder/distributed/manager/DefaultDistributedBuildManager.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/continuum/builder/distributed/manager/DefaultDistributedBuildManager.java?rev=1055810&r1=1055809&r2=1055810&view=diff ============================================================================== --- continuum/trunk/continuum-core/src/main/java/org/apache/continuum/builder/distributed/manager/DefaultDistributedBuildManager.java (original) +++ continuum/trunk/continuum-core/src/main/java/org/apache/continuum/builder/distributed/manager/DefaultDistributedBuildManager.java Thu Jan 6 10:01:04 2011 @@ -595,6 +595,28 @@ public class DefaultDistributedBuildMana return map; } + public String getBuildAgentPlatform( String buildAgentUrl ) + throws ContinuumException + { + try + { + String platform = ""; + if ( isAgentAvailable( buildAgentUrl ) ) + { + SlaveBuildAgentTransportService client = createSlaveBuildAgentTransportClientConnection( buildAgentUrl ); + platform = client.getBuildAgentPlatform(); + } + // call reload in case we disable the build agent + reload(); + return platform; + } + catch ( Exception e ) + { + throw new ContinuumException( "Unable to get platform of build agent", e ); + } + } + + public List getAvailableInstallations( String buildAgentUrl ) throws ContinuumException { Modified: continuum/trunk/continuum-core/src/test/java/org/apache/continuum/builder/distributed/manager/DefaultDistributedBuildManagerTest.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/test/java/org/apache/continuum/builder/distributed/manager/DefaultDistributedBuildManagerTest.java?rev=1055810&r1=1055809&r2=1055810&view=diff ============================================================================== --- continuum/trunk/continuum-core/src/test/java/org/apache/continuum/builder/distributed/manager/DefaultDistributedBuildManagerTest.java (original) +++ continuum/trunk/continuum-core/src/test/java/org/apache/continuum/builder/distributed/manager/DefaultDistributedBuildManagerTest.java Thu Jan 6 10:01:04 2011 @@ -318,6 +318,40 @@ public class DefaultDistributedBuildMana distributedBuildManagerStub.prepareBuildProjects( projectsBuildDefinitionsMap, buildTrigger, 1, "sample", "scmRootAddress", 1, scmRoots ); } + public void testGetBuildAgentPlatform() + throws Exception + { + distributedBuildManager.setOverallDistributedBuildQueues( getMockOverallDistributedBuildQueues( 1 ) ); + context.checking( new Expectations() + { + { + exactly( 2 ).of( configurationService ).getBuildAgents(); + will( returnValue( buildAgents ) ); + + one( configurationService ).updateBuildAgent( buildAgent1 ); + one( configurationService ).store(); + + exactly( 2 ).of( overallDistributedBuildQueue1 ).getDistributedBuildTaskQueueExecutor(); + will( returnValue( distributedBuildTaskQueueExecutor ) ); + + one( distributedBuildTaskQueueExecutor ).getCurrentTask(); + will( returnValue( null ) ); + + one( overallDistributedBuildQueue1 ).getProjectsInQueue(); + will( returnValue( new ArrayList() ) ); + + one( overallDistributedBuildQueue1 ).getDistributedBuildQueue(); + will( returnValue( distributedBuildQueue ) ); + + one( distributedBuildQueue ).removeAll( new ArrayList() ); + + one( distributedBuildTaskQueueExecutor ).stop(); + } + } ); + assertEquals( distributedBuildManager.getBuildAgentPlatform( TEST_BUILD_AGENT1 ), "" ); + context.assertIsSatisfied(); + } + private Map getMockOverallDistributedBuildQueues( int size ) { Map overallDistributedBuildQueues = Modified: continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-api/src/main/mdo/continuum-service.xml URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-api/src/main/mdo/continuum-service.xml?rev=1055810&r1=1055809&r2=1055810&view=diff ============================================================================== --- continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-api/src/main/mdo/continuum-service.xml (original) +++ continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-api/src/main/mdo/continuum-service.xml Thu Jan 6 10:01:04 2011 @@ -1491,6 +1491,11 @@ 1.4.1+ boolean + + platform + 1.4.1+ + String + 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=1055810&r1=1055809&r2=1055810&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 Thu Jan 6 10:01:04 2011 @@ -84,6 +84,8 @@ import org.codehaus.plexus.redback.autho import org.codehaus.plexus.redback.role.RoleManager; import org.codehaus.plexus.redback.role.RoleManagerException; import org.codehaus.plexus.util.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import net.sf.dozer.util.mapping.DozerBeanMapperSingletonWrapper; import net.sf.dozer.util.mapping.MapperIF; @@ -98,6 +100,8 @@ public class ContinuumServiceImpl { private static final MapperIF mapper = DozerBeanMapperSingletonWrapper.getInstance(); + private final Logger logger = LoggerFactory.getLogger( ContinuumServiceImpl.class ); + /** * @plexus.requirement */ @@ -2221,7 +2225,19 @@ public class ContinuumServiceImpl private BuildAgentConfiguration populateBuildAgent( org.apache.continuum.configuration.BuildAgentConfiguration buildAgent ) { - return (BuildAgentConfiguration) mapper.map( buildAgent, BuildAgentConfiguration.class ); + BuildAgentConfiguration buildAgentConfiguration = + (BuildAgentConfiguration) mapper.map( buildAgent, BuildAgentConfiguration.class ); + try + { + buildAgentConfiguration.setPlatform( distributedBuildManager.getBuildAgentPlatform( buildAgentConfiguration.getUrl() ) ); + return buildAgentConfiguration; + } + catch ( ContinuumException e ) + { + logger.warn( "Unable to connect to build agent " + buildAgentConfiguration.getUrl() + "." , e ); + buildAgentConfiguration.setPlatform( "" ); + return buildAgentConfiguration; + } } private Map serializeObject( Object o, final String... ignore )