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

svn commit: r1097782 - 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: carlos
Date: Fri Apr 29 12:02:22 2011
New Revision: 1097782

URL: http://svn.apache.org/viewvc?rev=1097782&view=rev
Log:
[CONTINUUM-2625] Expose ProjectScmRoot methods in the xml-rpc interface

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=1097782&r1=1097781&r2=1097782&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 Fri Apr 29 12:02:22 2011
@@ -39,6 +39,7 @@ import org.apache.maven.continuum.xmlrpc
 import org.apache.maven.continuum.xmlrpc.project.ProjectGroup;
 import org.apache.maven.continuum.xmlrpc.project.ProjectGroupSummary;
 import org.apache.maven.continuum.xmlrpc.project.ProjectNotifier;
+import org.apache.maven.continuum.xmlrpc.project.ProjectScmRoot;
 import org.apache.maven.continuum.xmlrpc.project.ProjectSummary;
 import org.apache.maven.continuum.xmlrpc.project.ReleaseListenerSummary;
 import org.apache.maven.continuum.xmlrpc.project.Schedule;
@@ -586,6 +587,30 @@ public interface ContinuumService
         throws Exception;
 
     // ----------------------------------------------------------------------
+    // SCM roots
+    // ----------------------------------------------------------------------
+
+    /**
+     * Get the SCM roots for all projects in a project group
+     * 
+     * @param projectGroupId the project group id
+     * @return
+     * @throws Exception
+     */
+    List<ProjectScmRoot> getProjectScmRootByProjectGroup( int projectGroupId )
+        throws Exception;
+
+    /**
+     * Get the SCM root for a specific project
+     * 
+     * @param projectId the project id
+     * @return
+     * @throws Exception
+     */
+    ProjectScmRoot getProjectScmRootByProject( int projectId )
+        throws Exception;
+
+    // ----------------------------------------------------------------------
     // Build Results
     // ----------------------------------------------------------------------
 

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=1097782&r1=1097781&r2=1097782&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 Fri Apr 29 12:02:22 2011
@@ -1497,6 +1497,49 @@
           <type>String</type>
         </field>
       </fields>
+    </class>
+
+    <class>
+      <name>ProjectScmRoot</name>
+      <version>1.4.1+</version>
+      <packageName>org.apache.maven.continuum.xmlrpc.project</packageName>
+      <fields>
+        <field>
+          <name>id</name>
+          <version>1.4.1+</version>
+          <identifier>true</identifier>
+          <type>int</type>
+        </field>
+        <field>
+          <name>scmRootAddress</name>
+          <version>1.4.1+</version>
+          <type>String</type>
+          <required>true</required>
+        </field>
+        <field>
+          <name>oldState</name>
+          <version>1.4.1+</version>
+          <type>int</type>
+        </field>
+        <field jpox.column="scmRootState">
+          <name>state</name>
+          <version>1.4.1+</version>
+          <type>int</type>
+        </field>
+        <field stash.maxSize="8192">
+          <name>error</name>
+          <version>1.4.1+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>projectGroup</name>
+          <version>1.4.1+</version>
+          <association xml.reference="true" stash.part="true" jpox.dependent="false">
+            <type>ProjectGroup</type>
+          </association>
+          <required>true</required>
+        </field>
+      </fields>
     </class>    
   </classes>
 </model>

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=1097782&r1=1097781&r2=1097782&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 Fri Apr 29 12:02:22 2011
@@ -43,6 +43,7 @@ import org.apache.maven.continuum.xmlrpc
 import org.apache.maven.continuum.xmlrpc.project.ProjectGroup;
 import org.apache.maven.continuum.xmlrpc.project.ProjectGroupSummary;
 import org.apache.maven.continuum.xmlrpc.project.ProjectNotifier;
+import org.apache.maven.continuum.xmlrpc.project.ProjectScmRoot;
 import org.apache.maven.continuum.xmlrpc.project.ProjectSummary;
 import org.apache.maven.continuum.xmlrpc.project.ReleaseListenerSummary;
 import org.apache.maven.continuum.xmlrpc.project.Schedule;
@@ -352,6 +353,22 @@ public class ContinuumXmlRpcClient
     }
 
     // ----------------------------------------------------------------------
+    // SCM roots
+    // ----------------------------------------------------------------------
+
+    public List<ProjectScmRoot> getProjectScmRootByProjectGroup( int projectGroupId )
+        throws Exception
+    {
+        return continuum.getProjectScmRootByProjectGroup( projectGroupId );
+    }
+
+    public ProjectScmRoot getProjectScmRootByProject( int projectId )
+        throws Exception
+    {
+        return getProjectScmRootByProject( projectId );
+    }
+
+    // ----------------------------------------------------------------------
     // Build Results
     // ----------------------------------------------------------------------
 

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=1097782&r1=1097781&r2=1097782&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 Fri Apr 29 12:02:22 2011
@@ -40,7 +40,6 @@ import org.apache.continuum.configuratio
 import org.apache.continuum.configuration.BuildAgentGroupConfiguration;
 import org.apache.continuum.configuration.ContinuumConfigurationException;
 import org.apache.continuum.dao.SystemConfigurationDao;
-import org.apache.continuum.model.project.ProjectScmRoot;
 import org.apache.continuum.purge.ContinuumPurgeManagerException;
 import org.apache.continuum.purge.PurgeConfigurationServiceException;
 import org.apache.continuum.repository.RepositoryServiceException;
@@ -75,6 +74,7 @@ import org.apache.maven.continuum.xmlrpc
 import org.apache.maven.continuum.xmlrpc.project.ProjectGroup;
 import org.apache.maven.continuum.xmlrpc.project.ProjectGroupSummary;
 import org.apache.maven.continuum.xmlrpc.project.ProjectNotifier;
+import org.apache.maven.continuum.xmlrpc.project.ProjectScmRoot;
 import org.apache.maven.continuum.xmlrpc.project.ProjectSummary;
 import org.apache.maven.continuum.xmlrpc.project.ReleaseListenerSummary;
 import org.apache.maven.continuum.xmlrpc.project.Schedule;
@@ -719,6 +719,41 @@ public class ContinuumServiceImpl
     }
 
     // ----------------------------------------------------------------------
+    // SCM roots
+    // ----------------------------------------------------------------------
+
+    public List<ProjectScmRoot> getProjectScmRootByProjectGroup( int projectGroupId )
+        throws ContinuumException
+    {
+        checkViewProjectGroupAuthorization( getProjectGroupName( projectGroupId ) );
+
+        List<org.apache.continuum.model.project.ProjectScmRoot> projectScmRoots =
+            continuum.getProjectScmRootByProjectGroup( projectGroupId );
+
+        List<ProjectScmRoot> result = new ArrayList<ProjectScmRoot>( projectScmRoots.size() );
+        if ( projectScmRoots != null )
+        {
+            for ( org.apache.continuum.model.project.ProjectScmRoot projectScmRoot : projectScmRoots )
+            {
+                result.add( populateProjectScmRoot( projectScmRoot ) );
+            }
+        }
+
+        return result;
+    }
+
+    public ProjectScmRoot getProjectScmRootByProject( int projectId )
+        throws ContinuumException
+    {
+        org.apache.continuum.model.project.ProjectScmRoot projectScmRoot =
+            continuum.getProjectScmRootByProject( projectId );
+
+        checkViewProjectGroupAuthorization( projectScmRoot.getProjectGroup().getName() );
+
+        return populateProjectScmRoot( projectScmRoot );
+    }
+
+    // ----------------------------------------------------------------------
     // Build Results
     // ----------------------------------------------------------------------
 
@@ -1357,7 +1392,8 @@ public class ContinuumServiceImpl
                 {
                     if ( buildAgentUrl != null )
                     {
-                        ProjectScmRoot scmRoot = continuum.getProjectScmRootByProject( projectId );
+                        org.apache.continuum.model.project.ProjectScmRoot scmRoot =
+                            continuum.getProjectScmRootByProject( projectId );
                         dbm.removeFromPrepareBuildQueue( buildAgentUrl, scmRoot.getProjectGroup().getId(),
                                                          scmRoot.getId() );
                     }
@@ -1398,7 +1434,8 @@ public class ContinuumServiceImpl
 
                 if ( parallelBuildsManager.isInPrepareBuildQueue( projectId ) )
                 {
-                    ProjectScmRoot scmRoot = continuum.getProjectScmRootByProject( projectId );
+                    org.apache.continuum.model.project.ProjectScmRoot scmRoot =
+                        continuum.getProjectScmRootByProject( projectId );
                     parallelBuildsManager.removeProjectFromPrepareBuildQueue( scmRoot.getProjectGroup().getId(),
                                                                               scmRoot.getId() );
                 }
@@ -1938,6 +1975,11 @@ public class ContinuumServiceImpl
         return (Project) mapper.map( project, Project.class );
     }
 
+    private ProjectScmRoot populateProjectScmRoot( org.apache.continuum.model.project.ProjectScmRoot projectScmRoot )
+    {
+        return (ProjectScmRoot) mapper.map( projectScmRoot, ProjectScmRoot.class );
+    }
+
     private org.apache.maven.continuum.model.project.Project populateProject( ProjectSummary projectSummary,
                                                                               org.apache.maven.continuum.model.project.Project project )
         throws ContinuumException
@@ -3544,5 +3586,4 @@ public class ContinuumServiceImpl
     {
         this.continuum = continuum;
     }
-
 }

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=1097782&r1=1097781&r2=1097782&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 Fri Apr 29 12:02:22 2011
@@ -1,9 +1,12 @@
 package org.apache.continuum.xmlrpc.server;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
+import org.apache.continuum.model.project.ProjectScmRoot;
 import org.apache.continuum.release.distributed.manager.DistributedReleaseManager;
 import org.apache.continuum.xmlrpc.utils.BuildTrigger;
 import org.apache.maven.continuum.Continuum;
@@ -187,7 +190,81 @@ public class ContinuumServiceImplTest
         assertEquals( 0, result );
     
     }
-    
+
+    public void testGetProjectScmRootByProjectGroup()
+        throws Exception
+    {
+        final ProjectGroup projectGroup = new ProjectGroup();
+        projectGroup.setName( "test-group" );
+        projectGroup.setId( 1 );
+
+        final List<ProjectScmRoot> scmRoots = new ArrayList<ProjectScmRoot>();
+
+        ProjectScmRoot scmRoot = new ProjectScmRoot();
+        scmRoot.setState( 1 );
+        scmRoot.setOldState( 3 );
+        scmRoot.setScmRootAddress( "address1" );
+        scmRoot.setProjectGroup( projectGroup );
+        scmRoots.add( scmRoot );
+
+        scmRoot = new ProjectScmRoot();
+        scmRoot.setState( 2 );
+        scmRoot.setOldState( 4 );
+        scmRoot.setScmRootAddress( "address2" );
+        scmRoot.setProjectGroup( projectGroup );
+        scmRoots.add( scmRoot );
+
+        context.checking( new Expectations()
+        {
+            {
+                atLeast( 1 ).of( continuum ).getProjectScmRootByProjectGroup( projectGroup.getId() );
+                will( returnValue( scmRoots ) );
+
+                atLeast( 1 ).of( continuum ).getProjectGroup( projectGroup.getId() );
+                will( returnValue( projectGroup ) );
+            }
+        } );
+
+        List<org.apache.maven.continuum.xmlrpc.project.ProjectScmRoot> projectScmRoots =
+            continuumService.getProjectScmRootByProjectGroup( projectGroup.getId() );
+        assertEquals( 2, projectScmRoots.size() );
+        assertEquals( 1, projectScmRoots.get( 0 ).getState() );
+        assertEquals( 2, projectScmRoots.get( 1 ).getState() );
+    }
+
+    public void testGetProjectScmRootByProject()
+        throws Exception
+    {
+        final ProjectGroup projectGroup = new ProjectGroup();
+        projectGroup.setName( "test-group" );
+        projectGroup.setId( 1 );
+
+        final int projectId = 1;
+
+        final ProjectScmRoot scmRoot = new ProjectScmRoot();
+        scmRoot.setState( 1 );
+        scmRoot.setOldState( 3 );
+        scmRoot.setScmRootAddress( "address1" );
+        scmRoot.setProjectGroup( projectGroup );
+
+        context.checking( new Expectations()
+        {
+            {
+                atLeast( 1 ).of( continuum ).getProjectScmRootByProject( projectId );
+                will( returnValue( scmRoot ) );
+            }
+        } );
+
+        org.apache.maven.continuum.xmlrpc.project.ProjectScmRoot projectScmRoot =
+            continuumService.getProjectScmRootByProject( projectId );
+        assertNotNull( projectScmRoot );
+        assertEquals( 1, projectScmRoot.getState() );
+        assertEquals( 3, projectScmRoot.getOldState() );
+        assertEquals( "address1", projectScmRoot.getScmRootAddress() );
+        assertEquals( projectGroup.getName(), projectScmRoot.getProjectGroup().getName() );
+        assertEquals( projectGroup.getId(), projectScmRoot.getProjectGroup().getId() );
+    }
+
     private BuildDefinition createBuildDefinition()
     {
         BuildDefinition buildDef = new BuildDefinition();