You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ct...@apache.org on 2011/09/07 05:04:14 UTC

svn commit: r1165986 - in /continuum/trunk/continuum-xmlrpc: continuum-xmlrpc-api/src/main/java/org/apache/maven/continuum/xmlrpc/ continuum-xmlrpc-api/src/main/mdo/ continuum-xmlrpc-client/src/main/java/org/apache/maven/continuum/xmlrpc/client/ contin...

Author: ctan
Date: Wed Sep  7 03:04:14 2011
New Revision: 1165986

URL: http://svn.apache.org/viewvc?rev=1165986&view=rev
Log:
[CONTINUUM-2668] additional method in XMLRPC to retrieve enabled agents with their installations

Modified:
    continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-api/src/main/java/org/apache/maven/continuum/xmlrpc/ContinuumService.java
    continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-api/src/main/mdo/continuum-service.xml
    continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-client/src/main/java/org/apache/maven/continuum/xmlrpc/client/ContinuumXmlRpcClient.java
    continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-server/src/main/java/org/apache/maven/continuum/xmlrpc/server/ContinuumServiceImpl.java
    continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-server/src/test/java/org/apache/continuum/xmlrpc/server/ContinuumServiceImplTest.java

Modified: continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-api/src/main/java/org/apache/maven/continuum/xmlrpc/ContinuumService.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-api/src/main/java/org/apache/maven/continuum/xmlrpc/ContinuumService.java?rev=1165986&r1=1165985&r2=1165986&view=diff
==============================================================================
--- continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-api/src/main/java/org/apache/maven/continuum/xmlrpc/ContinuumService.java (original)
+++ continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-api/src/main/java/org/apache/maven/continuum/xmlrpc/ContinuumService.java Wed Sep  7 03:04:14 2011
@@ -1850,6 +1850,23 @@ public interface ContinuumService
      */
     List<Object> getAllBuildAgentsRPC();
 
+    /**
+     * Retrieve all enabled build agents with their available installations
+     * @return
+     * @throws Exception
+     */
+    List<BuildAgentConfiguration> getBuildAgentsWithInstallations()
+        throws Exception;
+
+    /**
+     * Same method but compatible with standard XMLRPC
+     * 
+     * @return
+     * @throws Exception
+     */
+    List<Object> getBuildAgentsWithInstallationsRPC()
+        throws Exception;
+    
     boolean pingBuildAgent( String buildAgentUrl )
         throws Exception;
 

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=1165986&r1=1165985&r2=1165986&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 Wed Sep  7 03:04:14 2011
@@ -1507,6 +1507,14 @@
           <version>1.4.1+</version>
           <type>String</type>
         </field>
+        <field>
+          <name>installations</name>
+          <version>1.4.1+</version>
+          <association>
+            <type>Installation</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
       </fields>
     </class>
     <class>

Modified: continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-client/src/main/java/org/apache/maven/continuum/xmlrpc/client/ContinuumXmlRpcClient.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-client/src/main/java/org/apache/maven/continuum/xmlrpc/client/ContinuumXmlRpcClient.java?rev=1165986&r1=1165985&r2=1165986&view=diff
==============================================================================
--- continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-client/src/main/java/org/apache/maven/continuum/xmlrpc/client/ContinuumXmlRpcClient.java (original)
+++ continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-client/src/main/java/org/apache/maven/continuum/xmlrpc/client/ContinuumXmlRpcClient.java Wed Sep  7 03:04:14 2011
@@ -1454,4 +1454,16 @@ public class ContinuumXmlRpcClient
     {
         return continuum.removeBuildAgentGroup( name );
     }
+
+    public List<BuildAgentConfiguration> getBuildAgentsWithInstallations()
+        throws Exception
+    {
+        return continuum.getBuildAgentsWithInstallations();
+    }
+
+    public List<Object> getBuildAgentsWithInstallationsRPC()
+        throws Exception
+    {
+        return continuum.getBuildAgentsWithInstallationsRPC();
+    }
 }

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=1165986&r1=1165985&r2=1165986&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 Wed Sep  7 03:04:14 2011
@@ -2142,6 +2142,30 @@ public class ContinuumServiceImpl
         return buildAgentConfigurations;
     }
 
+    public List<BuildAgentConfiguration> getBuildAgentsWithInstallations()
+        throws Exception
+    {
+        ConfigurationService configurationService = continuum.getConfiguration();
+
+        List<org.apache.continuum.configuration.BuildAgentConfiguration> buildAgents =
+            configurationService.getBuildAgents();
+        List<BuildAgentConfiguration> buildAgentConfigurations = new ArrayList<BuildAgentConfiguration>();
+
+        if ( buildAgents != null )
+        {
+            for ( org.apache.continuum.configuration.BuildAgentConfiguration buildAgent : buildAgents )
+            {
+                if ( buildAgent.isEnabled() )
+                {
+                    BuildAgentConfiguration agent = populateBuildAgent( buildAgent );
+                    agent.setInstallations( getBuildAgentInstallations( buildAgent.getUrl() ) );
+                    buildAgentConfigurations.add( agent );
+                }
+            }
+        }
+        return buildAgentConfigurations;
+    }
+
     // ----------------------------------------------------------------------
     // Build agent group
     // ----------------------------------------------------------------------
@@ -3766,6 +3790,12 @@ public class ContinuumServiceImpl
         return serializeObject( this.getAllBuildAgents() );
     }
 
+    public List<Object> getBuildAgentsWithInstallationsRPC()
+        throws Exception
+    {
+        return serializeObject( this.getBuildAgentsWithInstallations() );
+    }
+
     public Map<String, Object> addBuildAgentGroupRPC( Map<String, Object> buildAgentGroup ) 
         throws ConfigurationException, ConfigurationStoringException, ContinuumConfigurationException
     {

Modified: continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-server/src/test/java/org/apache/continuum/xmlrpc/server/ContinuumServiceImplTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-server/src/test/java/org/apache/continuum/xmlrpc/server/ContinuumServiceImplTest.java?rev=1165986&r1=1165985&r2=1165986&view=diff
==============================================================================
--- continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-server/src/test/java/org/apache/continuum/xmlrpc/server/ContinuumServiceImplTest.java (original)
+++ continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-server/src/test/java/org/apache/continuum/xmlrpc/server/ContinuumServiceImplTest.java Wed Sep  7 03:04:14 2011
@@ -7,6 +7,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.continuum.builder.distributed.manager.DistributedBuildManager;
+import org.apache.continuum.configuration.BuildAgentGroupConfiguration;
 import org.apache.continuum.model.project.ProjectScmRoot;
 import org.apache.continuum.release.distributed.manager.DistributedReleaseManager;
 import org.apache.continuum.xmlrpc.utils.BuildTrigger;
@@ -16,6 +17,7 @@ import org.apache.maven.continuum.config
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.model.project.ProjectGroup;
 import org.apache.maven.continuum.release.ContinuumReleaseManager;
+import org.apache.maven.continuum.xmlrpc.project.BuildAgentConfiguration;
 import org.apache.maven.continuum.xmlrpc.project.BuildDefinition;
 import org.apache.maven.continuum.xmlrpc.project.ContinuumProjectState;
 import org.apache.maven.continuum.xmlrpc.project.ReleaseListenerSummary;
@@ -333,6 +335,82 @@ public class ContinuumServiceImplTest
         context.assertIsSatisfied();
     }
 
+    public void testRemoveNonExistingBuildAgentGroup()
+        throws Exception
+    {
+        context.checking( new Expectations() 
+        {
+            {
+                one( continuum ).getConfiguration();
+                will( returnValue( configurationService ) );
+                
+                one( configurationService ).getBuildAgentGroup( "Agent Group Name" );
+                will( returnValue ( null ) );
+                
+                never( configurationService ).removeBuildAgentGroup( with( any( BuildAgentGroupConfiguration.class ) ) );
+            }
+        });
+
+        continuumService.removeBuildAgentGroup( "Agent Group Name" );
+        context.assertIsSatisfied();
+    }
+
+    public void testGetBuildAgentsWithInstallations()
+        throws Exception
+    {
+        final List<org.apache.continuum.configuration.BuildAgentConfiguration> buildAgents = 
+            new ArrayList<org.apache.continuum.configuration.BuildAgentConfiguration>();
+
+        org.apache.continuum.configuration.BuildAgentConfiguration buildAgent = 
+            new org.apache.continuum.configuration.BuildAgentConfiguration();
+        buildAgent.setUrl( "http://localhost:8080/xmlrpc" );
+        buildAgent.setEnabled( true );
+        buildAgents.add( buildAgent );
+
+        org.apache.continuum.configuration.BuildAgentConfiguration buildAgent2 = 
+            new org.apache.continuum.configuration.BuildAgentConfiguration();
+        buildAgent2.setUrl( "http://localhost:8181/xmlrpc" );
+        buildAgent2.setEnabled( false );
+        buildAgents.add( buildAgent2 );
+
+        final List<org.apache.maven.continuum.model.system.Installation> buildAgentInstallations = 
+            new ArrayList<org.apache.maven.continuum.model.system.Installation>();
+
+        org.apache.maven.continuum.model.system.Installation buildAgentInstallation = 
+            new org.apache.maven.continuum.model.system.Installation();
+        buildAgentInstallation.setInstallationId( 1 );
+        buildAgentInstallation.setName( "JDK 6" );
+        buildAgentInstallation.setType( "jdk" );
+        buildAgentInstallation.setVarName( "JAVA_HOME" );
+        buildAgentInstallation.setVarValue( "/opt/java" );
+        buildAgentInstallations.add( buildAgentInstallation );
+
+        context.checking( new Expectations()
+        {
+            {
+                one( continuum ).getConfiguration();
+                will( returnValue( configurationService ) );
+
+                one( configurationService ).getBuildAgents();
+                will( returnValue( buildAgents ) );
+
+                one( distributedBuildManager ).getBuildAgentPlatform( "http://localhost:8080/xmlrpc" );
+                will( returnValue( "Linux" ) );
+
+                one( distributedBuildManager ).getAvailableInstallations( "http://localhost:8080/xmlrpc" );
+                will( returnValue( buildAgentInstallations ) );
+            }
+        });
+        List<BuildAgentConfiguration> agents = continuumService.getBuildAgentsWithInstallations();
+        assertEquals( 1, agents.size() );
+        BuildAgentConfiguration agent = agents.get( 0 );
+        assertEquals( "http://localhost:8080/xmlrpc", agent.getUrl() );
+        assertEquals( "Linux", agent.getPlatform() );
+        assertEquals( 1, agent.getInstallations().size() );
+
+        context.assertIsSatisfied();
+    }
+
     private BuildDefinition createBuildDefinition()
     {
         BuildDefinition buildDef = new BuildDefinition();