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 2008/10/16 03:08:37 UTC
svn commit: r705113 [1/2] - in /continuum/branches/continuum-1.2.x:
continuum-api/src/main/java/org/apache/maven/continuum/
continuum-api/src/main/java/org/apache/maven/continuum/configuration/
continuum-commons/src/main/java/org/apache/maven/continuum...
Author: ctan
Date: Wed Oct 15 18:08:36 2008
New Revision: 705113
URL: http://svn.apache.org/viewvc?rev=705113&view=rev
Log:
[CONTINUUM-1933] added new methods in webservices
Modified:
continuum/branches/continuum-1.2.x/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
continuum/branches/continuum-1.2.x/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationService.java
continuum/branches/continuum-1.2.x/continuum-commons/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java
continuum/branches/continuum-1.2.x/continuum-core/src/main/java/org/apache/continuum/repository/DefaultRepositoryService.java
continuum/branches/continuum-1.2.x/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
continuum/branches/continuum-1.2.x/continuum-test/src/main/java/org/apache/maven/continuum/configuration/ConfigurationServiceMock.java
continuum/branches/continuum-1.2.x/continuum-webapp/src/main/java/org/apache/continuum/web/action/ReleaseResultAction.java
continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-api/pom.xml
continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-api/src/main/java/org/apache/maven/continuum/xmlrpc/ContinuumService.java
continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-api/src/main/mdo/continuum-service.xml
continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-backup/src/main/java/org/apache/maven/continuum/xmlrpc/backup/Backup.java
continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-client/pom.xml
continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-client/src/main/java/org/apache/maven/continuum/xmlrpc/client/ContinuumXmlRpcClient.java
continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-client/src/main/java/org/apache/maven/continuum/xmlrpc/client/SampleClient.java
continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-server/src/main/java/org/apache/maven/continuum/xmlrpc/server/AbstractContinuumSecureService.java
continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-server/src/main/java/org/apache/maven/continuum/xmlrpc/server/ContinuumServiceImpl.java
continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-server/src/main/resources/dozerBeanMapping.xml
Modified: continuum/branches/continuum-1.2.x/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.2.x/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java?rev=705113&r1=705112&r2=705113&view=diff
==============================================================================
--- continuum/branches/continuum-1.2.x/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java (original)
+++ continuum/branches/continuum-1.2.x/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java Wed Oct 15 18:08:36 2008
@@ -26,6 +26,7 @@
import org.apache.continuum.model.release.ContinuumReleaseResult;
import org.apache.continuum.purge.ContinuumPurgeManager;
+import org.apache.continuum.purge.PurgeConfigurationService;
import org.apache.continuum.repository.RepositoryService;
import org.apache.maven.continuum.builddefinition.BuildDefinitionService;
import org.apache.maven.continuum.buildqueue.BuildProjectTask;
@@ -189,6 +190,9 @@
void removeTasksFromCheckoutQueueWithHashCodes( int[] hashCodes )
throws ContinuumException;
+ boolean cancelCurrentBuild()
+ throws ContinuumException;
+
// ----------------------------------------------------------------------
// Building
// ----------------------------------------------------------------------
@@ -638,6 +642,8 @@
// Continuum Purge
// ----------------------------------------------------------------------
ContinuumPurgeManager getPurgeManager();
+
+ PurgeConfigurationService getPurgeConfigurationService();
// ----------------------------------------------------------------------
// Repository Service
@@ -662,4 +668,7 @@
ContinuumReleaseResult getContinuumReleaseResult( int projectId, String releaseGoal, long startTime, long endTime )
throws ContinuumException;
+
+ String getReleaseOutput( int releaseResultId )
+ throws ContinuumException;
}
Modified: continuum/branches/continuum-1.2.x/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationService.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.2.x/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationService.java?rev=705113&r1=705112&r2=705113&view=diff
==============================================================================
--- continuum/branches/continuum-1.2.x/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationService.java (original)
+++ continuum/branches/continuum-1.2.x/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationService.java Wed Oct 15 18:08:36 2008
@@ -81,6 +81,9 @@
File getReleaseOutputFile( int projectGroupId, String releaseName )
throws ConfigurationException;
+ String getReleaseOutput( int projectGroupId, String releaseName )
+ throws ConfigurationException;
+
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
Modified: continuum/branches/continuum-1.2.x/continuum-commons/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.2.x/continuum-commons/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java?rev=705113&r1=705112&r2=705113&view=diff
==============================================================================
--- continuum/branches/continuum-1.2.x/continuum-commons/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java (original)
+++ continuum/branches/continuum-1.2.x/continuum-commons/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java Wed Oct 15 18:08:36 2008
@@ -358,6 +358,29 @@
return new File( dir, name + ".log.txt" );
}
+ public String getReleaseOutput( int projectGroupId, String name )
+ throws ConfigurationException
+ {
+ File file = getReleaseOutputFile( projectGroupId, name );
+
+ try
+ {
+ if ( file.exists() )
+ {
+ return FileUtils.fileRead( file.getAbsolutePath() );
+ }
+ else
+ {
+ return "There are no output for this release.";
+ }
+ }
+ catch ( IOException e )
+ {
+ log.warn( "Error reading release output for release '" + name + "'.", e );
+ return null;
+ }
+ }
+
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
Modified: continuum/branches/continuum-1.2.x/continuum-core/src/main/java/org/apache/continuum/repository/DefaultRepositoryService.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.2.x/continuum-core/src/main/java/org/apache/continuum/repository/DefaultRepositoryService.java?rev=705113&r1=705112&r2=705113&view=diff
==============================================================================
--- continuum/branches/continuum-1.2.x/continuum-core/src/main/java/org/apache/continuum/repository/DefaultRepositoryService.java (original)
+++ continuum/branches/continuum-1.2.x/continuum-core/src/main/java/org/apache/continuum/repository/DefaultRepositoryService.java Wed Oct 15 18:08:36 2008
@@ -72,6 +72,20 @@
try
{
+ List<LocalRepository> repos = getAllLocalRepositories();
+ for ( LocalRepository repo : repos )
+ {
+ if ( repo.getName().equals( localRepository.getName() ) )
+ {
+ throw new RepositoryServiceException( "Local repository name must be unique" );
+ }
+
+ if ( repo.getLocation().equals( localRepository.getLocation() ) )
+ {
+ throw new RepositoryServiceException( "Local repository location must be unique" );
+ }
+ }
+
localRepository.setName( localRepository.getName().trim() );
localRepository.setLocation( localRepository.getLocation().trim() );
Modified: continuum/branches/continuum-1.2.x/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.2.x/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java?rev=705113&r1=705112&r2=705113&view=diff
==============================================================================
--- continuum/branches/continuum-1.2.x/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java (original)
+++ continuum/branches/continuum-1.2.x/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java Wed Oct 15 18:08:36 2008
@@ -45,6 +45,7 @@
import org.apache.continuum.dao.ScheduleDao;
import org.apache.continuum.model.release.ContinuumReleaseResult;
import org.apache.continuum.purge.ContinuumPurgeManager;
+import org.apache.continuum.purge.PurgeConfigurationService;
import org.apache.continuum.repository.RepositoryService;
import org.apache.maven.continuum.build.settings.SchedulesActivationException;
import org.apache.maven.continuum.build.settings.SchedulesActivator;
@@ -245,6 +246,11 @@
*/
private RepositoryService repositoryService;
+ /**
+ * @plexus.requirement
+ */
+ private PurgeConfigurationService purgeConfigurationService;
+
public DefaultContinuum()
{
Runtime.getRuntime().addShutdownHook( new Thread()
@@ -288,6 +294,11 @@
return repositoryService;
}
+ public PurgeConfigurationService getPurgeConfigurationService()
+ {
+ return purgeConfigurationService;
+ }
+
// ----------------------------------------------------------------------
// Project Groups
// ----------------------------------------------------------------------
@@ -789,6 +800,30 @@
}
}
+ public boolean cancelCurrentBuild()
+ throws ContinuumException
+ {
+ Task task = getBuildTaskQueueExecutor().getCurrentTask();
+
+ if ( task != null )
+ {
+ if ( task instanceof BuildProjectTask )
+ {
+ getLogger().info( "Cancelling current build task" );
+ return getBuildTaskQueueExecutor().cancelTask( task );
+ }
+ else
+ {
+ getLogger().warn( "Current task not a BuildProjectTask - not cancelling" );
+ }
+ }
+ else
+ {
+ getLogger().warn( "No task running - not cancelling" );
+ }
+ return false;
+ }
+
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
@@ -3390,4 +3425,21 @@
throw new ContinuumException( "Error while retrieving continuumReleaseResult of projectId " + projectId + " with releaseGoal: " + releaseGoal, e);
}
}
+
+ public String getReleaseOutput( int releaseResultId )
+ throws ContinuumException
+ {
+ ContinuumReleaseResult releaseResult = getContinuumReleaseResult( releaseResultId );
+
+ ProjectGroup projectGroup = releaseResult.getProjectGroup();
+
+ try
+ {
+ return configurationService.getReleaseOutput( projectGroup.getId(), "releases-" + releaseResult.getStartTime() );
+ }
+ catch ( ConfigurationException e )
+ {
+ throw new ContinuumException( "Error while retrieving release output for release: " + releaseResultId );
+ }
+ }
}
Modified: continuum/branches/continuum-1.2.x/continuum-test/src/main/java/org/apache/maven/continuum/configuration/ConfigurationServiceMock.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.2.x/continuum-test/src/main/java/org/apache/maven/continuum/configuration/ConfigurationServiceMock.java?rev=705113&r1=705112&r2=705113&view=diff
==============================================================================
--- continuum/branches/continuum-1.2.x/continuum-test/src/main/java/org/apache/maven/continuum/configuration/ConfigurationServiceMock.java (original)
+++ continuum/branches/continuum-1.2.x/continuum-test/src/main/java/org/apache/maven/continuum/configuration/ConfigurationServiceMock.java Wed Oct 15 18:08:36 2008
@@ -235,5 +235,9 @@
{
}
+ public String getReleaseOutput( int projectGroupId, String name )
+ {
+ return null;
+ }
}
Modified: continuum/branches/continuum-1.2.x/continuum-webapp/src/main/java/org/apache/continuum/web/action/ReleaseResultAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.2.x/continuum-webapp/src/main/java/org/apache/continuum/web/action/ReleaseResultAction.java?rev=705113&r1=705112&r2=705113&view=diff
==============================================================================
--- continuum/branches/continuum-1.2.x/continuum-webapp/src/main/java/org/apache/continuum/web/action/ReleaseResultAction.java (original)
+++ continuum/branches/continuum-1.2.x/continuum-webapp/src/main/java/org/apache/continuum/web/action/ReleaseResultAction.java Wed Oct 15 18:08:36 2008
@@ -19,6 +19,7 @@
* under the License.
*/
+import org.apache.commons.lang.StringEscapeUtils;
import org.apache.continuum.model.release.ContinuumReleaseResult;
import org.apache.maven.continuum.ContinuumException;
import org.apache.maven.continuum.configuration.ConfigurationException;
@@ -26,6 +27,7 @@
import org.apache.maven.continuum.web.action.ContinuumConfirmAction;
import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
import org.apache.maven.shared.release.ReleaseResult;
+import org.codehaus.plexus.util.FileUtils;
import java.io.BufferedReader;
import java.io.File;
@@ -141,20 +143,13 @@
try
{
- File logFile = getContinuum().getConfiguration().getReleaseOutputFile( projectGroupId, "releases-" + releaseResult.getStartTime() );
- StringBuilder output = new StringBuilder();
-
- BufferedReader reader = new BufferedReader( new FileReader( logFile ) );
- char[] buf = new char[1024];
- int numRead=0;
-
- while( ( numRead = reader.read( buf ) ) != -1 )
+ File releaseOutputFile = getContinuum().getConfiguration().getReleaseOutputFile( projectGroupId, "releases-" + releaseResult.getStartTime() );
+
+ if ( releaseOutputFile.exists() )
{
- output.append( buf, 0, numRead );
+ String str = StringEscapeUtils.escapeHtml( FileUtils.fileRead( releaseOutputFile ) );
+ result.appendOutput( str );
}
- reader.close();
-
- result.appendOutput( output.toString() );
}
catch ( ConfigurationException e )
{
Modified: continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-api/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-api/pom.xml?rev=705113&r1=705112&r2=705113&view=diff
==============================================================================
--- continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-api/pom.xml (original)
+++ continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-api/pom.xml Wed Oct 15 18:08:36 2008
@@ -52,7 +52,7 @@
</execution>
</executions>
<configuration>
- <version>1.1.0</version>
+ <version>1.1.1</version>
<packageWithVersion>false</packageWithVersion>
</configuration>
</plugin>
Modified: continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-api/src/main/java/org/apache/maven/continuum/xmlrpc/ContinuumService.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-api/src/main/java/org/apache/maven/continuum/xmlrpc/ContinuumService.java?rev=705113&r1=705112&r2=705113&view=diff
==============================================================================
--- continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-api/src/main/java/org/apache/maven/continuum/xmlrpc/ContinuumService.java (original)
+++ continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-api/src/main/java/org/apache/maven/continuum/xmlrpc/ContinuumService.java Wed Oct 15 18:08:36 2008
@@ -22,6 +22,10 @@
import java.util.List;
import java.util.Map;
+import org.apache.continuum.xmlrpc.repository.DirectoryPurgeConfiguration;
+import org.apache.continuum.xmlrpc.repository.LocalRepository;
+import org.apache.continuum.xmlrpc.repository.RepositoryPurgeConfiguration;
+import org.apache.continuum.xmlrpc.release.ContinuumReleaseResult;
import org.apache.maven.continuum.xmlrpc.project.AddingResult;
import org.apache.maven.continuum.xmlrpc.project.BuildDefinition;
import org.apache.maven.continuum.xmlrpc.project.BuildDefinitionTemplate;
@@ -528,6 +532,7 @@
*/
int buildGroup( int projectGroupId, int buildDefinitionId )
throws Exception;
+
// ----------------------------------------------------------------------
// Build Results
// ----------------------------------------------------------------------
@@ -1041,6 +1046,25 @@
public List<BuildProjectTask> getProjectsInBuildQueue()
throws Exception;
+ /**
+ * Remove projects from build queue
+ *
+ * @param projectsId project id to be removed from the building queue
+ * @return
+ * @throws Exception
+ */
+ int removeProjectsFromBuildingQueue( int[] projectsId )
+ throws Exception;
+
+ /**
+ * Cancel the current project build
+ *
+ * @return
+ * @throws Exception
+ */
+ boolean cancelCurrentBuild()
+ throws Exception;
+
// ----------------------------------------------------------------------
// TODO:Users
// ----------------------------------------------------------------------
@@ -1051,4 +1075,356 @@
boolean ping()
throws Exception;
+
+ // ----------------------------------------------------------------------
+ // Local Repository
+ // ----------------------------------------------------------------------
+
+ /**
+ * Add a local repository
+ *
+ * @param repository the local repository to add
+ * @return
+ * @throws Exception
+ */
+ LocalRepository addLocalRepository( LocalRepository repository )
+ throws Exception;
+
+ /**
+ * Same method but compatible with the standard XMLRPC
+ *
+ * @param repository the local repository to add
+ * @return
+ * @throws Exception
+ */
+ Map<String, Object> addLocalRepositoryRPC( Map<String, Object> repository )
+ throws Exception;
+
+ /**
+ * Update the local repository
+ *
+ * @param repository the local repository to update
+ * @return
+ * @throws Exception
+ */
+ int updateLocalRepository( LocalRepository repository )
+ throws Exception;
+
+ /**
+ * Same method but compatible with the standard XMLRPC
+ *
+ * @param repository the local repository to update
+ * @return
+ * @throws Exception
+ */
+ int updateLocalRepositoryRPC( Map<String, Object> repository )
+ throws Exception;
+
+ /**
+ * Remove the local repository
+ *
+ * @param repositoryId
+ * @return
+ * @throws Exception
+ */
+ int removeLocalRepository( int repositoryId )
+ throws Exception;
+
+ /**
+ * Returns the local repository
+ *
+ * @param repositoryId the local repository id
+ * @return
+ * @throws Exception
+ */
+ LocalRepository getLocalRepository( int repositoryId )
+ throws Exception;
+
+ /**
+ * Same method but compatible with the standard XMLRPC
+ *
+ * @param repositoryId
+ * @return
+ * @throws Exception
+ */
+ Map<String, Object> getLocalRepositoryRPC( int repositoryId )
+ throws Exception;
+
+ /**
+ * Returns all local repositories
+ *
+ * @return
+ * @throws Exception
+ */
+ List<LocalRepository> getAllLocalRepositories()
+ throws Exception;
+
+ /**
+ * Same method but compatible with the standard XMLRPC
+ *
+ * @return
+ * @throws Exception
+ */
+ List<Object> getAllLocalRepositoriesRPC()
+ throws Exception;
+
+ // ----------------------------------------------------------------------
+ // Purging
+ // ----------------------------------------------------------------------
+
+ /**
+ * Add a repository purge configuration
+ *
+ * @param repoPurge the repository purge configuration
+ * @return
+ * @throws Exception
+ */
+ RepositoryPurgeConfiguration addRepositoryPurgeConfiguration( RepositoryPurgeConfiguration repoPurge )
+ throws Exception;
+
+ /**
+ * Same method but compatible with the standard XMLRPC
+ *
+ * @param repoPurge the repository purge configuration
+ * @return
+ * @throws Exception
+ */
+ Map<String, Object> addRepositoryPurgeConfigurationRPC( Map<String, Object> repoPurge )
+ throws Exception;
+
+ /**
+ * Update the repository purge configuration
+ *
+ * @param repoPurge the repository purge configuration
+ * @return
+ * @throws Exception
+ */
+ int updateRepositoryPurgeConfiguration( RepositoryPurgeConfiguration repoPurge )
+ throws Exception;
+
+ /**
+ * Same method but compatible with the standard XMLRPC
+ *
+ * @param repoPurge the repository purge configuration
+ * @return
+ * @throws Exception
+ */
+ int updateRepositoryPurgeConfigurationRPC( Map<String, Object> repoPurge )
+ throws Exception;
+
+ /**
+ * Remove repository purge configuration
+ *
+ * @param repoPurgeId the repository purge configuration id
+ * @return
+ * @throws Exception
+ */
+ int removeRepositoryPurgeConfiguration( int repoPurgeId )
+ throws Exception;
+
+ /**
+ * Returns the repository purge configuration
+ *
+ * @param purgeConfigId the repository purge configuration id
+ * @return the repository purge configuration
+ * @throws Exception
+ */
+ RepositoryPurgeConfiguration getRepositoryPurgeConfiguration( int repoPurgeId )
+ throws Exception;
+
+ /**
+ * Same method but compatible with standard XMLRPC
+ *
+ * @param purgeConfigId the repository purge configuration id
+ * @return the repository purge configuration
+ * @throws Exception
+ */
+ Map<String, Object> getRepositoryPurgeConfigurationRPC( int purgeConfigId )
+ throws Exception;
+
+ /**
+ * Returns repository purge configurations list
+ *
+ * @return list of repository purge configurations
+ * @throws Exception
+ */
+ List<RepositoryPurgeConfiguration> getAllRepositoryPurgeConfigurations()
+ throws Exception;
+
+ /**
+ * Same method but compatible with standard XMLRPC
+ *
+ * @return list of repository purge configurations
+ * @throws Exception
+ */
+ List<Object> getAllRepositoryPurgeConfigurationsRPC()
+ throws Exception;
+
+ /**
+ * Add a directory purge configuration
+ *
+ * @param dirPurge the directory purge configuration
+ * @return
+ * @throws Exception
+ */
+ DirectoryPurgeConfiguration addDirectoryPurgeConfiguration( DirectoryPurgeConfiguration dirPurge )
+ throws Exception;
+
+ /**
+ * Same method but compatible with the standard XMLRPC
+ *
+ * @param dirPurge the directory purge configuration
+ * @return
+ * @throws Exception
+ */
+ Map<String, Object> addDirectoryPurgeConfigurationRPC( Map<String, Object> dirPurge )
+ throws Exception;
+
+ /**
+ * Update the directory purge configuration
+ *
+ * @param dirPurge the directory purge configuration
+ * @return
+ * @throws Exception
+ */
+ int updateDirectoryPurgeConfiguration( DirectoryPurgeConfiguration dirPurge )
+ throws Exception;
+
+ /**
+ * Same method but compatible with the standard XMLRPC
+ *
+ * @param dirPurge the directory purge configuration
+ * @return
+ * @throws Exception
+ */
+ int updateDirectoryPurgeConfigurationRPC( Map<String, Object> dirPurge )
+ throws Exception;
+
+ /**
+ * Removes the directory purge configuration
+ *
+ * @param dirPurgeId the directory purge configuration id
+ * @return
+ * @throws Exception
+ */
+ int removeDirectoryPurgeConfiguration( int dirPurgeId )
+ throws Exception;
+
+ /**
+ * Returns the directory purge configuration
+ *
+ * @param purgeConfigId the directory purge configuration id
+ * @return the directory purge configuration
+ * @throws Exception
+ */
+ DirectoryPurgeConfiguration getDirectoryPurgeConfiguration( int purgeConfigId )
+ throws Exception;
+
+ /**
+ * Same method but compatible with standard XMLRPC
+ *
+ * @param purgeConfigId the directory purge configuration id
+ * @return the directory purge configuration
+ * @throws Exception
+ */
+ Map<String, Object> getDirectoryPurgeConfigurationRPC( int purgeConfigId )
+ throws Exception;
+
+ /**
+ * Returns directory purge configurations list
+ *
+ * @return list of directory purge configurations
+ * @throws Exception
+ */
+ List<DirectoryPurgeConfiguration> getAllDirectoryPurgeConfigurations()
+ throws Exception;
+
+ /**
+ * Same method but compatible with standard XMLRPC
+ *
+ * @return list of directory purge configurations
+ * @throws Exception
+ */
+ List<Object> getAllDirectoryPurgeConfigurationsRPC()
+ throws Exception;
+
+ void purgeLocalRepository( int repoPurgeId )
+ throws Exception;
+
+ void purgeDirectory( int dirPurgeId )
+ throws Exception;
+
+ // ----------------------------------------------------------------------
+ // Release Results
+ // ----------------------------------------------------------------------
+
+ /**
+ * Returns the release result.
+ *
+ * @param releaseId The release id
+ * @return The release result
+ * @throws Exception
+ */
+ ContinuumReleaseResult getReleaseResult( int releaseId )
+ throws Exception;
+
+ /**
+ * Same method but compatible with standard XMLRPC
+ *
+ * @param releaseId The release id
+ * @return The release result as RPC value
+ * @throws Exception
+ */
+ Map<String,Object> getReleaseResultRPC( int releaseId )
+ throws Exception;
+
+ /**
+ * Returns the project group release result list.
+ *
+ * @param projectGroupId The project group id
+ * @return The release result list
+ * @throws Exception
+ */
+ List<ContinuumReleaseResult> getReleaseResultsForProjectGroup( int projectGroupId )
+ throws Exception;
+
+ /**
+ * Same method but compatible with standard XMLRPC
+ *
+ * @param projectGroupId The project group id
+ * @return The release result list as RPC value
+ * @throws Exception
+ */
+ List<Object> getReleaseResultsForProjectGroupRPC( int projectGroupId )
+ throws Exception;
+
+ /**
+ * Remove the project release result.
+ *
+ * @param releaseResult The project release result
+ * @return 0
+ * @throws Exception
+ */
+ int removeReleaseResult( ContinuumReleaseResult releaseResult )
+ throws Exception;
+
+ /**
+ * Same method but compatible with standard XMLRPC
+ *
+ * @param rr The project release result
+ * @return 0
+ * @throws Exception
+ */
+ int removeReleaseResultRPC( Map<String,Object> rr )
+ throws Exception;
+
+ /**
+ * Returns the release output.
+ *
+ * @param releaseId The release id
+ * @return The release output
+ * @throws Exception
+ */
+ String getReleaseOutput( int releaseId )
+ throws Exception;
}
Modified: continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-api/src/main/mdo/continuum-service.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-api/src/main/mdo/continuum-service.xml?rev=705113&r1=705112&r2=705113&view=diff
==============================================================================
--- continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-api/src/main/mdo/continuum-service.xml (original)
+++ continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-api/src/main/mdo/continuum-service.xml Wed Oct 15 18:08:36 2008
@@ -55,6 +55,13 @@
<version>1.1.0+</version>
<type>String</type>
</field>
+ <field>
+ <name>localRepository</name>
+ <version>1.1.1+</version>
+ <association>
+ <type>LocalRepository</type>
+ </association>
+ </field>
</fields>
</class>
@@ -1201,6 +1208,204 @@
</field>
</fields>
</class>
+
+ <class>
+ <name>LocalRepository</name>
+ <version>1.1.1+</version>
+ <packageName>org.apache.continuum.xmlrpc.repository</packageName>
+ <fields>
+ <field>
+ <name>id</name>
+ <version>1.1.1+</version>
+ <type>int</type>
+ <identifier>true</identifier>
+ </field>
+ <field>
+ <name>name</name>
+ <version>1.1.1+</version>
+ <type>String</type>
+ <required>true</required>
+ </field>
+ <field jpox.column="repoLocation">
+ <name>location</name>
+ <version>1.1.1+</version>
+ <type>String</type>
+ <required>true</required>
+ <description>
+ The file system location for this repository
+ </description>
+ </field>
+ <field>
+ <name>layout</name>
+ <version>1.1.1+</version>
+ <type>String</type>
+ <defaultValue>default</defaultValue>
+ <description>
+ The layout of the repository. Valid values are "default" and "legacy"
+ </description>
+ </field>
+ </fields>
+ </class>
+ <class>
+ <name>AbstractPurgeConfiguration</name>
+ <version>1.1.1+</version>
+ <abstract>true</abstract>
+ <packageName>org.apache.continuum.xmlrpc.repository</packageName>
+ <fields>
+ <field>
+ <name>id</name>
+ <version>1.1.1+</version>
+ <identifier>true</identifier>
+ <type>int</type>
+ </field>
+ <field>
+ <name>description</name>
+ <version>1.1.1+</version>
+ <type>String</type>
+ </field>
+ <field>
+ <name>deleteAll</name>
+ <version>1.1.1+</version>
+ <type>boolean</type>
+ <defaultValue>false</defaultValue>
+ </field>
+ <field>
+ <name>retentionCount</name>
+ <version>1.1.1+</version>
+ <type>int</type>
+ <defaultValue>2</defaultValue>
+ <description>
+ The total count of the artifact for each snapshot or the release/build output folder to be retained.
+ </description>
+ </field>
+ <field>
+ <name>daysOlder</name>
+ <version>1.1.1+</version>
+ <type>int</type>
+ <defaultValue>100</defaultValue>
+ <description>
+ The number of days old which will be the basis for removing a snapshot or a folder.
+ </description>
+ </field>
+ <field>
+ <name>enabled</name>
+ <version>1.1.1+</version>
+ <type>boolean</type>
+ <defaultValue>true</defaultValue>
+ </field>
+ <field>
+ <name>schedule</name>
+ <version>1.1.1+</version>
+ <association xml.reference="true" stash.part="true" jpox.dependent="false">
+ <type>Schedule</type>
+ </association>
+ </field>
+ <field>
+ <name>defaultPurge</name>
+ <version>1.1.1+</version>
+ <type>boolean</type>
+ <defaultValue>false</defaultValue>
+ </field>
+ </fields>
+ </class>
+ <class>
+ <name>RepositoryPurgeConfiguration</name>
+ <version>1.1.1+</version>
+ <superClass>AbstractPurgeConfiguration</superClass>
+ <packageName>org.apache.continuum.xmlrpc.repository</packageName>
+ <fields>
+ <field>
+ <name>repository</name>
+ <version>1.1.1+</version>
+ <association xml.reference="true" stash.part="true" jpox.dependent="false">
+ <type>LocalRepository</type>
+ </association>
+ <required>true</required>
+ </field>
+ <field>
+ <name>deleteReleasedSnapshots</name>
+ <version>1.1.1+</version>
+ <type>boolean</type>
+ <defaultValue>false</defaultValue>
+ <description>
+ True if the released snapshots are to be removed from the repo during repository purge.
+ </description>
+ </field>
+ </fields>
+ </class>
+ <class>
+ <name>DirectoryPurgeConfiguration</name>
+ <version>1.1.1+</version>
+ <superClass>AbstractPurgeConfiguration</superClass>
+ <packageName>org.apache.continuum.xmlrpc.repository</packageName>
+ <fields>
+ <field jpox.column="directoryLocation">
+ <name>location</name>
+ <version>1.1.1+</version>
+ <type>String</type>
+ <description>
+ The file system path for this directory
+ </description>
+ <required>true</required>
+ </field>
+ <field>
+ <name>directoryType</name>
+ <version>1.1.1+</version>
+ <type>String</type>
+ <description>
+ The type of directory. Valid values are "releases" and "buildOutput"
+ </description>
+ </field>
+ </fields>
+ </class>
+
+ <class>
+ <name>ContinuumReleaseResult</name>
+ <version>1.1.1+</version>
+ <packageName>org.apache.continuum.xmlrpc.release</packageName>
+ <fields>
+ <field>
+ <name>id</name>
+ <version>1.1.1+</version>
+ <identifier>true</identifier>
+ <type>int</type>
+ </field>
+ <field>
+ <name>startTime</name>
+ <version>1.1.1+</version>
+ <type>long</type>
+ </field>
+ <field>
+ <name>endTime</name>
+ <version>1.1.1+</version>
+ <type>long</type>
+ </field>
+ <field>
+ <name>resultCode</name>
+ <version>1.1.1+</version>
+ <type>int</type>
+ </field>
+ <field>
+ <name>projectGroup</name>
+ <version>1.1.1+</version>
+ <association xml.reference="true" stash.part="true" jpox.dependent="false">
+ <type>ProjectGroup</type>
+ </association>
+ </field>
+ <field>
+ <name>project</name>
+ <version>1.1.1+</version>
+ <association xml.reference="true" stash.part="true" jpox.dependent="false">
+ <type>Project</type>
+ </association>
+ </field>
+ <field>
+ <name>releaseGoal</name>
+ <version>1.1.1+</version>
+ <type>String</type>
+ </field>
+ </fields>
+ </class>
</classes>
</model>
Modified: continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-backup/src/main/java/org/apache/maven/continuum/xmlrpc/backup/Backup.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-backup/src/main/java/org/apache/maven/continuum/xmlrpc/backup/Backup.java?rev=705113&r1=705112&r2=705113&view=diff
==============================================================================
--- continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-backup/src/main/java/org/apache/maven/continuum/xmlrpc/backup/Backup.java (original)
+++ continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-backup/src/main/java/org/apache/maven/continuum/xmlrpc/backup/Backup.java Wed Oct 15 18:08:36 2008
@@ -24,6 +24,10 @@
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
+import org.apache.continuum.xmlrpc.release.ContinuumReleaseResult;
+import org.apache.continuum.xmlrpc.repository.DirectoryPurgeConfiguration;
+import org.apache.continuum.xmlrpc.repository.LocalRepository;
+import org.apache.continuum.xmlrpc.repository.RepositoryPurgeConfiguration;
import org.apache.maven.continuum.xmlrpc.client.ContinuumXmlRpcClient;
import org.apache.maven.continuum.xmlrpc.project.BuildDefinition;
import org.apache.maven.continuum.xmlrpc.project.BuildDefinitionTemplate;
@@ -149,6 +153,9 @@
backupAllProfiles();
backupAllBuildDefinitionTemplates();
backupAllProjectGroup();
+ backupAllLocalRepositories();
+ backupAllRepositoryPurgeConfigurations();
+ backupAllDirectoryPurgeConfigurations();
endTag( "continuumDatabase", true );
writer.close();
LOGGER.info( "Done." );
@@ -339,6 +346,7 @@
endTag( "notifiers", true );
}
+ backupContinuumReleaseResultsForProjectGroup( pg.getId() );
endTag( "projectGroup", true );
}
@@ -667,4 +675,132 @@
return fields;
}
+
+ private static void backupAllLocalRepositories()
+ throws Exception
+ {
+ LOGGER.info( "Backup local repositories" );
+ List<LocalRepository> repos = client.getAllLocalRepositories();
+ if ( repos != null && !repos.isEmpty() )
+ {
+ startTag( "localRepositories", true );
+ for ( LocalRepository repo : repos )
+ {
+ LOGGER.debug( "Backup local repository " + repo.getName() );
+ writeObject( repo, "localRepository", true );
+ }
+ endTag( "localRepositories", true );
+ }
+ }
+
+ private static void backupAllRepositoryPurgeConfigurations()
+ throws Exception
+ {
+ LOGGER.info( "Backup repository purge configurations" );
+ List<RepositoryPurgeConfiguration> purgeConfigs = client.getAllRepositoryPurgeConfigurations();
+ if ( purgeConfigs != null && !purgeConfigs.isEmpty() )
+ {
+ startTag( "repositoryPurgeConfigurations", true );
+ for ( RepositoryPurgeConfiguration purgeConfig : purgeConfigs )
+ {
+ LOGGER.debug( "Backup repository purge configuration" );
+ backupRepositoryPurgeConfiguration( purgeConfig );
+ }
+ endTag( "repositoryPurgeConfigurations", true );
+ }
+ }
+
+ private static void backupRepositoryPurgeConfiguration( RepositoryPurgeConfiguration repoPurge )
+ throws Exception
+ {
+ if ( repoPurge == null )
+ {
+ return;
+ }
+ startTag( "repositoryPurgeConfiguration", true );
+ writeSimpleFields( repoPurge );
+
+ if ( repoPurge.getRepository() != null )
+ {
+ writeTagWithParameter( "repository", "id", String.valueOf( repoPurge.getRepository().getId() ) );
+ }
+
+ if ( repoPurge.getSchedule() != null )
+ {
+ writeTagWithParameter( "schedule", "id", String.valueOf( repoPurge.getSchedule().getId() ) );
+ }
+ endTag( "repositoryPurgeConfiguration", true );
+ }
+
+ private static void backupAllDirectoryPurgeConfigurations()
+ throws Exception
+ {
+ LOGGER.info( "Backup repository purge configurations" );
+ List<DirectoryPurgeConfiguration> purgeConfigs = client.getAllDirectoryPurgeConfigurations();
+ if ( purgeConfigs != null && !purgeConfigs.isEmpty() )
+ {
+ startTag( "directoryPurgeConfigurations", true );
+ for ( DirectoryPurgeConfiguration purgeConfig : purgeConfigs )
+ {
+ LOGGER.debug( "Backup directory purge configuration" );
+ backupDirectoryPurgeConfiguration( purgeConfig );
+ }
+ endTag( "directoryPurgeConfigurations", true );
+ }
+ }
+
+ private static void backupDirectoryPurgeConfiguration( DirectoryPurgeConfiguration dirPurge )
+ throws Exception
+ {
+ if ( dirPurge == null )
+ {
+ return;
+ }
+ startTag( "directoryPurgeConfiguration", true);
+ writeSimpleFields( dirPurge );
+
+ if ( dirPurge.getSchedule() != null )
+ {
+ writeTagWithParameter( "schedule", "id", String.valueOf( dirPurge.getSchedule().getId() ) );
+ }
+ endTag( "directoryPurgeConfiguration", true );
+ }
+
+ private static void backupContinuumReleaseResultsForProjectGroup( int projectGroupId )
+ throws Exception
+ {
+ LOGGER.info( "Backup release results" );
+ List<ContinuumReleaseResult> results = client.getReleaseResultsForProjectGroup( projectGroupId );
+ if ( results != null && !results.isEmpty() )
+ {
+ startTag( "continuumReleaseResults", true );
+ for ( ContinuumReleaseResult result : results )
+ {
+ LOGGER.debug( "Backup release result" );
+ backupContinuumReleaseResult( result );
+ }
+ endTag( "continuumReleaseResults", true );
+ }
+ }
+
+ private static void backupContinuumReleaseResult( ContinuumReleaseResult result )
+ throws Exception
+ {
+ if ( result == null )
+ {
+ return;
+ }
+ startTag( "continuumReleaseResult", true );
+ writeSimpleFields( result );
+
+ if ( result.getProjectGroup() != null )
+ {
+ writeTagWithParameter( "projectGroup", "id", String.valueOf( result.getProjectGroup().getId() ) );
+ }
+ if ( result.getProject() != null )
+ {
+ writeTagWithParameter( "project", "id", String.valueOf( result.getProject().getId() ) );
+ }
+ endTag( "continuumReleaseResult", true );
+ }
}
Modified: continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-client/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-client/pom.xml?rev=705113&r1=705112&r2=705113&view=diff
==============================================================================
--- continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-client/pom.xml (original)
+++ continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-client/pom.xml Wed Oct 15 18:08:36 2008
@@ -52,7 +52,7 @@
<!-- automatically creates the classpath using all project dependencies,
also adding the project build directory -->
<classpath />
- <argument>org.apache.continuum.xmlrpc.client.SampleClient</argument>
+ <argument>org.apache.maven.continuum.xmlrpc.client.SampleClient</argument>
</arguments>
</configuration>
</plugin>
Modified: continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-client/src/main/java/org/apache/maven/continuum/xmlrpc/client/ContinuumXmlRpcClient.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-client/src/main/java/org/apache/maven/continuum/xmlrpc/client/ContinuumXmlRpcClient.java?rev=705113&r1=705112&r2=705113&view=diff
==============================================================================
--- continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-client/src/main/java/org/apache/maven/continuum/xmlrpc/client/ContinuumXmlRpcClient.java (original)
+++ continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-client/src/main/java/org/apache/maven/continuum/xmlrpc/client/ContinuumXmlRpcClient.java Wed Oct 15 18:08:36 2008
@@ -19,6 +19,10 @@
* under the License.
*/
+import org.apache.continuum.xmlrpc.release.ContinuumReleaseResult;
+import org.apache.continuum.xmlrpc.repository.DirectoryPurgeConfiguration;
+import org.apache.continuum.xmlrpc.repository.LocalRepository;
+import org.apache.continuum.xmlrpc.repository.RepositoryPurgeConfiguration;
import org.apache.maven.continuum.xmlrpc.ContinuumService;
import org.apache.maven.continuum.xmlrpc.project.AddingResult;
import org.apache.maven.continuum.xmlrpc.project.BuildDefinition;
@@ -525,6 +529,156 @@
return continuum.isProjectInBuildingQueue( projectId );
}
+ public int removeProjectsFromBuildingQueue( int[] projectsId )
+ throws Exception
+ {
+ return continuum.removeProjectsFromBuildingQueue( projectsId );
+ }
+
+ public boolean cancelCurrentBuild()
+ throws Exception
+ {
+ return continuum.cancelCurrentBuild();
+ }
+
+ // ----------------------------------------------------------------------
+ // Release Result
+ // ----------------------------------------------------------------------
+
+ public ContinuumReleaseResult getReleaseResult( int releaseId )
+ throws Exception
+ {
+ return continuum.getReleaseResult( releaseId );
+ }
+
+ public List<ContinuumReleaseResult> getReleaseResultsForProjectGroup( int projectGroupId )
+ throws Exception
+ {
+ return continuum.getReleaseResultsForProjectGroup( projectGroupId );
+ }
+
+ public int removeReleaseResult( ContinuumReleaseResult releaseResult )
+ throws Exception
+ {
+ return continuum.removeReleaseResult( releaseResult );
+ }
+
+ public String getReleaseOutput( int releaseId )
+ throws Exception
+ {
+ return continuum.getReleaseOutput( releaseId );
+ }
+
+ // ----------------------------------------------------------------------
+ // Purge Configuration
+ // ----------------------------------------------------------------------
+
+ public RepositoryPurgeConfiguration addRepositoryPurgeConfiguration( RepositoryPurgeConfiguration repoPurge )
+ throws Exception
+ {
+ return continuum.addRepositoryPurgeConfiguration( repoPurge );
+ }
+
+ public int updateRepositoryPurgeConfiguration( RepositoryPurgeConfiguration repoPurge )
+ throws Exception
+ {
+ return continuum.updateRepositoryPurgeConfiguration( repoPurge );
+ }
+
+ public int removeRepositoryPurgeConfiguration( int repoPurgeId )
+ throws Exception
+ {
+ return continuum.removeRepositoryPurgeConfiguration( repoPurgeId );
+ }
+
+ public RepositoryPurgeConfiguration getRepositoryPurgeConfiguration( int repoPurgeId )
+ throws Exception
+ {
+ return continuum.getRepositoryPurgeConfiguration( repoPurgeId );
+ }
+
+ public List<RepositoryPurgeConfiguration> getAllRepositoryPurgeConfigurations()
+ throws Exception
+ {
+ return continuum.getAllRepositoryPurgeConfigurations();
+ }
+
+ public DirectoryPurgeConfiguration addDirectoryPurgeConfiguration( DirectoryPurgeConfiguration dirPurge )
+ throws Exception
+ {
+ return continuum.addDirectoryPurgeConfiguration( dirPurge );
+ }
+
+ public int updateDirectoryPurgeConfiguration( DirectoryPurgeConfiguration dirPurge )
+ throws Exception
+ {
+ return continuum.updateDirectoryPurgeConfiguration( dirPurge );
+ }
+
+ public int removeDirectoryPurgeConfiguration( int dirPurgeId )
+ throws Exception
+ {
+ return continuum.removeDirectoryPurgeConfiguration( dirPurgeId );
+ }
+
+ public DirectoryPurgeConfiguration getDirectoryPurgeConfiguration( int dirPurgeId )
+ throws Exception
+ {
+ return continuum.getDirectoryPurgeConfiguration( dirPurgeId );
+ }
+
+ public List<DirectoryPurgeConfiguration> getAllDirectoryPurgeConfigurations()
+ throws Exception
+ {
+ return continuum.getAllDirectoryPurgeConfigurations();
+ }
+
+ public void purgeLocalRepository( int repoPurgeId )
+ throws Exception
+ {
+ continuum.purgeLocalRepository( repoPurgeId );
+ }
+
+ public void purgeDirectory( int dirPurgeId )
+ throws Exception
+ {
+ continuum.purgeDirectory( dirPurgeId );
+ }
+
+ // ----------------------------------------------------------------------
+ // Local Repository
+ // ----------------------------------------------------------------------
+
+ public LocalRepository addLocalRepository( LocalRepository repository )
+ throws Exception
+ {
+ return continuum.addLocalRepository( repository );
+ }
+
+ public int updateLocalRepository( LocalRepository repository )
+ throws Exception
+ {
+ return continuum.updateLocalRepository( repository );
+ }
+
+ public int removeLocalRepository( int repositoryId )
+ throws Exception
+ {
+ return continuum.removeLocalRepository( repositoryId );
+ }
+
+ public LocalRepository getLocalRepository( int repositoryId )
+ throws Exception
+ {
+ return continuum.getLocalRepository( repositoryId );
+ }
+
+ public List<LocalRepository> getAllLocalRepositories()
+ throws Exception
+ {
+ return continuum.getAllLocalRepositories();
+ }
+
public Map<String, Object> addAntProjectRPC( Map<String, Object> project )
throws Exception
{
@@ -916,4 +1070,94 @@
{
return continuum.updateProfileRPC( profile );
}
+
+ public Map<String, Object> getReleaseResultRPC( int releaseId )
+ throws Exception
+ {
+ return continuum.getReleaseResultRPC( releaseId );
+ }
+
+ public List<Object> getReleaseResultsForProjectGroupRPC( int projectGroupId )
+ throws Exception
+ {
+ return continuum.getReleaseResultsForProjectGroupRPC( projectGroupId );
+ }
+
+ public int removeReleaseResultRPC( Map<String, Object> rr )
+ throws Exception
+ {
+ return continuum.removeReleaseResultRPC( rr );
+ }
+
+ public Map<String, Object> addRepositoryPurgeConfigurationRPC( Map<String, Object> repoPurge )
+ throws Exception
+ {
+ return continuum.addRepositoryPurgeConfigurationRPC( repoPurge );
+ }
+
+ public int updateRepositoryPurgeConfigurationRPC( Map<String, Object> repoPurge )
+ throws Exception
+ {
+ return continuum.updateRepositoryPurgeConfigurationRPC( repoPurge );
+ }
+
+ public Map<String, Object> getRepositoryPurgeConfigurationRPC( int repoPurgeId )
+ throws Exception
+ {
+ return continuum.getRepositoryPurgeConfigurationRPC( repoPurgeId );
+ }
+
+ public List<Object> getAllRepositoryPurgeConfigurationsRPC()
+ throws Exception
+ {
+ return continuum.getAllRepositoryPurgeConfigurationsRPC();
+ }
+
+ public Map<String, Object> addDirectoryPurgeConfigurationRPC( Map<String, Object> dirPurge )
+ throws Exception
+ {
+ return continuum.addDirectoryPurgeConfigurationRPC( dirPurge );
+ }
+
+ public int updateDirectoryPurgeConfigurationRPC( Map<String, Object> dirPurge )
+ throws Exception
+ {
+ return continuum.updateDirectoryPurgeConfigurationRPC( dirPurge );
+ }
+
+ public Map<String, Object> getDirectoryPurgeConfigurationRPC( int dirPurgeId )
+ throws Exception
+ {
+ return continuum.getDirectoryPurgeConfigurationRPC( dirPurgeId );
+ }
+
+ public List<Object> getAllDirectoryPurgeConfigurationsRPC()
+ throws Exception
+ {
+ return continuum.getAllDirectoryPurgeConfigurationsRPC();
+ }
+
+ public Map<String, Object> addLocalRepositoryRPC( Map<String, Object> repository )
+ throws Exception
+ {
+ return continuum.addLocalRepositoryRPC( repository );
+ }
+
+ public int updateLocalRepositoryRPC( Map<String, Object> repository )
+ throws Exception
+ {
+ return continuum.updateLocalRepositoryRPC( repository );
+ }
+
+ public Map<String, Object> getLocalRepositoryRPC( int repositoryId )
+ throws Exception
+ {
+ return continuum.getLocalRepositoryRPC( repositoryId );
+ }
+
+ public List<Object> getAllLocalRepositoriesRPC()
+ throws Exception
+ {
+ return continuum.getAllLocalRepositoriesRPC();
+ }
}
Modified: continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-client/src/main/java/org/apache/maven/continuum/xmlrpc/client/SampleClient.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-client/src/main/java/org/apache/maven/continuum/xmlrpc/client/SampleClient.java?rev=705113&r1=705112&r2=705113&view=diff
==============================================================================
--- continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-client/src/main/java/org/apache/maven/continuum/xmlrpc/client/SampleClient.java (original)
+++ continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-client/src/main/java/org/apache/maven/continuum/xmlrpc/client/SampleClient.java Wed Oct 15 18:08:36 2008
@@ -19,6 +19,9 @@
* under the License.
*/
+import org.apache.continuum.xmlrpc.repository.DirectoryPurgeConfiguration;
+import org.apache.continuum.xmlrpc.repository.LocalRepository;
+import org.apache.continuum.xmlrpc.repository.RepositoryPurgeConfiguration;
import org.apache.maven.continuum.xmlrpc.project.AddingResult;
import org.apache.maven.continuum.xmlrpc.project.BuildDefinition;
import org.apache.maven.continuum.xmlrpc.project.BuildResult;
@@ -60,10 +63,7 @@
{
ProjectGroupSummary pg = (ProjectGroupSummary) i.next();
projectGroupId = pg.getId();
- System.out.println( "Id: " + pg.getId() );
- System.out.println( "Group Id" + pg.getGroupId() );
- System.out.println( "Name: " + pg.getName() );
- System.out.println( "Description:" + pg.getDescription() );
+ printProjectGroupSummary( client.getProjectGroupSummary( projectGroupId ) );
}
System.out.println();
@@ -170,6 +170,70 @@
"Removing Project Group '" + pg.getName() + "' - " + pg.getGroupId() + " (" + pg.getId() + ")'..." );
client.removeProjectGroup( pg.getId() );
System.out.println( "Done." );
+ System.out.println();
+
+ LocalRepository repository = new LocalRepository();
+ repository.setLocation( "/home/marica/repository" );
+ repository.setName( "Repository" );
+ repository.setLayout( "default" );
+ System.out.println( "Adding local repository..." );
+ repository = client.addLocalRepository( repository );
+ System.out.println();
+
+ System.out.println( "Repository list" );
+ System.out.println( "=====================" );
+ List<LocalRepository> repositories = client.getAllLocalRepositories();
+ for ( LocalRepository repo : repositories )
+ {
+ printLocalRepository( repo );
+ System.out.println();
+ }
+
+ DirectoryPurgeConfiguration dirPurgeConfig = new DirectoryPurgeConfiguration();
+ dirPurgeConfig.setDirectoryType( "buildOutput" );
+ System.out.println( "Adding Directory Purge Configuration..." );
+ dirPurgeConfig = client.addDirectoryPurgeConfiguration( dirPurgeConfig );
+ System.out.println();
+
+ RepositoryPurgeConfiguration purgeConfig = new RepositoryPurgeConfiguration();
+ purgeConfig.setDeleteAll( true );
+ purgeConfig.setRepository( repository );
+ purgeConfig.setDescription( "Delete all artifacts from repository" );
+ System.out.println( "Adding Repository Purge Configuration..." );
+ purgeConfig = client.addRepositoryPurgeConfiguration( purgeConfig );
+ System.out.println();
+
+ System.out.println( "Repository Purge list" );
+ System.out.println( "=====================" );
+ List<RepositoryPurgeConfiguration> repoPurges = client.getAllRepositoryPurgeConfigurations();
+ for ( RepositoryPurgeConfiguration repoPurge : repoPurges )
+ {
+ printRepositoryPurgeConfiguration( repoPurge );
+ }
+ System.out.println();
+
+ System.out.println( "Remove local repository" );
+ System.out.println( "=====================" );
+ System.out.println( "Removing Local Repository '" + repository.getName() + "' (" +
+ repository.getId() + ")..." );
+ client.removeLocalRepository( repository.getId() );
+ System.out.println( "Done." );
+ }
+
+ public static void printProjectGroupSummary( ProjectGroupSummary pg )
+ {
+ System.out.println( "Id: " + pg.getId() );
+ System.out.println( "Group Id" + pg.getGroupId() );
+ System.out.println( "Name: " + pg.getName() );
+ System.out.println( "Description:" + pg.getDescription() );
+ if ( pg.getLocalRepository() != null )
+ {
+ System.out.println( "Local Repository:" + pg.getLocalRepository().getName() );
+ }
+ else
+ {
+ System.out.println( "Local Repository:" );
+ }
}
public static void printProjectSummary( ProjectSummary project )
@@ -262,4 +326,23 @@
System.out.println( buildDef.isDefaultForProject() );
}
+ public static void printLocalRepository( LocalRepository repo )
+ {
+ System.out.println( "Id: " +repo.getId() );
+ System.out.println( "Layout: " + repo.getLayout() );
+ System.out.println( "Location: " + repo.getLocation() );
+ System.out.println( "Name: " + repo.getName() );
+ }
+
+ public static void printRepositoryPurgeConfiguration( RepositoryPurgeConfiguration repoPurge )
+ {
+ System.out.println( "Id: " + repoPurge.getId() );
+ System.out.println( "Description: " + repoPurge.getDescription() );
+ System.out.println( "Local Repository: " + repoPurge.getRepository().getName() );
+ System.out.println( "Days Older: " + repoPurge.getDaysOlder() );
+ System.out.println( "Retention Count: " + repoPurge.getRetentionCount() );
+ System.out.println( "Delete All: " + repoPurge.isDeleteAll() );
+ System.out.println( "Delete Released Snapshots: " + repoPurge.isDeleteReleasedSnapshots() );
+ System.out.println( "Default Purge: " + repoPurge.isDefaultPurge() );
+ }
}
Modified: continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-server/src/main/java/org/apache/maven/continuum/xmlrpc/server/AbstractContinuumSecureService.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-server/src/main/java/org/apache/maven/continuum/xmlrpc/server/AbstractContinuumSecureService.java?rev=705113&r1=705112&r2=705113&view=diff
==============================================================================
--- continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-server/src/main/java/org/apache/maven/continuum/xmlrpc/server/AbstractContinuumSecureService.java (original)
+++ continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-server/src/main/java/org/apache/maven/continuum/xmlrpc/server/AbstractContinuumSecureService.java Wed Oct 15 18:08:36 2008
@@ -501,4 +501,51 @@
checkAuthorization( ContinuumRoleConstants.CONTINUUM_MANAGE_BUILD_TEMPLATES );
}
+
+ protected void checkManageQueuesAuthorization()
+ throws ContinuumException
+ {
+ if ( !isAuthenticated() )
+ {
+ throw new ContinuumException( "Authentication required." );
+ }
+
+ checkAuthorization( ContinuumRoleConstants.CONTINUUM_MANAGE_QUEUES );
+ }
+
+ protected void checkManagePurgingAuthorization()
+ throws ContinuumException
+ {
+ if ( !isAuthenticated() )
+ {
+ throw new ContinuumException( "Authentication required." );
+ }
+
+ try
+ {
+ checkAuthorization( ContinuumRoleConstants.SYSTEM_ADMINISTRATOR_ROLE );
+ }
+ catch ( ContinuumException e )
+ {
+ checkAuthorization( ContinuumRoleConstants.CONTINUUM_MANAGE_PURGING );
+ }
+ }
+
+ protected void checkManageRepositoriesAuthorization()
+ throws ContinuumException
+ {
+ if ( !isAuthenticated() )
+ {
+ throw new ContinuumException( "Authentication required." );
+ }
+
+ try
+ {
+ checkAuthorization( ContinuumRoleConstants.SYSTEM_ADMINISTRATOR_ROLE );
+ }
+ catch ( ContinuumException e )
+ {
+ checkAuthorization( ContinuumRoleConstants.CONTINUUM_MANAGE_REPOSITORIES );
+ }
+ }
}
Modified: continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-server/src/main/java/org/apache/maven/continuum/xmlrpc/server/ContinuumServiceImpl.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-server/src/main/java/org/apache/maven/continuum/xmlrpc/server/ContinuumServiceImpl.java?rev=705113&r1=705112&r2=705113&view=diff
==============================================================================
--- continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-server/src/main/java/org/apache/maven/continuum/xmlrpc/server/ContinuumServiceImpl.java (original)
+++ continuum/branches/continuum-1.2.x/continuum-xmlrpc/continuum-xmlrpc-server/src/main/java/org/apache/maven/continuum/xmlrpc/server/ContinuumServiceImpl.java Wed Oct 15 18:08:36 2008
@@ -22,6 +22,13 @@
import net.sf.dozer.util.mapping.DozerBeanMapperSingletonWrapper;
import net.sf.dozer.util.mapping.MapperIF;
import org.apache.continuum.dao.SystemConfigurationDao;
+import org.apache.continuum.purge.ContinuumPurgeManagerException;
+import org.apache.continuum.purge.PurgeConfigurationServiceException;
+import org.apache.continuum.repository.RepositoryServiceException;
+import org.apache.continuum.xmlrpc.release.ContinuumReleaseResult;
+import org.apache.continuum.xmlrpc.repository.DirectoryPurgeConfiguration;
+import org.apache.continuum.xmlrpc.repository.LocalRepository;
+import org.apache.continuum.xmlrpc.repository.RepositoryPurgeConfiguration;
import org.apache.maven.continuum.Continuum;
import org.apache.maven.continuum.ContinuumException;
import org.apache.maven.continuum.execution.ContinuumBuildExecutorConstants;
@@ -331,6 +338,10 @@
pg.setDescription( projectGroup.getDescription() );
+ org.apache.continuum.model.repository.LocalRepository repo =
+ new org.apache.continuum.model.repository.LocalRepository();
+ pg.setLocalRepository( populateLocalRepository( projectGroup.getLocalRepository(), repo ) );
+
continuum.updateProjectGroup( pg );
return getProjectGroupSummary( projectGroup.getId() );
}
@@ -1034,6 +1045,378 @@
return populateBuildProjectTaskList( continuum.getProjectsInBuildQueue() );
}
+ public int removeProjectsFromBuildingQueue( int[] projectsId )
+ throws ContinuumException
+ {
+ checkManageQueuesAuthorization();
+ continuum.removeProjectsFromBuildingQueue( projectsId );
+ return 0;
+ }
+
+ public boolean cancelCurrentBuild()
+ throws ContinuumException
+ {
+ checkManageQueuesAuthorization();
+ return continuum.cancelCurrentBuild();
+ }
+
+ // ----------------------------------------------------------------------
+ // Release Results
+ // ----------------------------------------------------------------------
+
+ public ContinuumReleaseResult getReleaseResult( int releaseId )
+ throws ContinuumException
+ {
+ org.apache.continuum.model.release.ContinuumReleaseResult releaseResult = continuum.getContinuumReleaseResult( releaseId );
+ checkViewProjectGroupAuthorization( getProjectGroupName( releaseResult.getProjectGroup().getId() ) );
+ return populateReleaseResult( releaseResult );
+ }
+
+ public List<ContinuumReleaseResult> getReleaseResultsForProjectGroup( int projectGroupId )
+ throws ContinuumException
+ {
+ checkViewProjectGroupAuthorization( getProjectGroupName( projectGroupId ) );
+ Collection releaseResults = continuum.getContinuumReleaseResultsByProjectGroup( projectGroupId );
+
+ List<ContinuumReleaseResult> r = new ArrayList<ContinuumReleaseResult>();
+ for ( Object releaseResult : releaseResults )
+ {
+ r.add( populateReleaseResult( (org.apache.continuum.model.release.ContinuumReleaseResult) releaseResult ) );
+ }
+ return r;
+ }
+
+ public int removeReleaseResult( ContinuumReleaseResult releaseResult )
+ throws ContinuumException
+ {
+ checkModifyProjectGroupAuthorization( getProjectGroupName( releaseResult.getProjectGroup().getId() ) );
+ continuum.removeContinuumReleaseResult( releaseResult.getId() );
+ return 0;
+ }
+
+ public String getReleaseOutput( int releaseId )
+ throws ContinuumException
+ {
+ org.apache.continuum.model.release.ContinuumReleaseResult releaseResult = continuum.getContinuumReleaseResult( releaseId );
+ checkViewProjectGroupAuthorization( getProjectGroupName( releaseResult.getProjectGroup().getId() ) );
+
+ return continuum.getReleaseOutput( releaseId );
+ }
+
+ // ----------------------------------------------------------------------
+ // Purge Configuration
+ // ----------------------------------------------------------------------
+
+ public RepositoryPurgeConfiguration addRepositoryPurgeConfiguration( RepositoryPurgeConfiguration repoPurge )
+ throws ContinuumException
+ {
+ checkManagePurgingAuthorization();
+
+ try
+ {
+ org.apache.continuum.model.repository.RepositoryPurgeConfiguration newPurge =
+ new org.apache.continuum.model.repository.RepositoryPurgeConfiguration();
+ return populateRepositoryPurgeConfiguration( continuum.getPurgeConfigurationService().
+ addRepositoryPurgeConfiguration( populateRepositoryPurgeConfiguration( repoPurge, newPurge ) ) );
+ }
+ catch ( RepositoryServiceException e )
+ {
+ throw new ContinuumException( "Error while converting repository purge configuration", e );
+ }
+ catch ( PurgeConfigurationServiceException e )
+ {
+ throw new ContinuumException( "Can't add repositoryPurgeConfiguration", e );
+ }
+ }
+
+ public int updateRepositoryPurgeConfiguration( RepositoryPurgeConfiguration repoPurge )
+ throws ContinuumException
+ {
+ checkManagePurgingAuthorization();
+
+ try
+ {
+ org.apache.continuum.model.repository.RepositoryPurgeConfiguration purge =
+ new org.apache.continuum.model.repository.RepositoryPurgeConfiguration();
+ continuum.getPurgeConfigurationService().updateRepositoryPurgeConfiguration( populateRepositoryPurgeConfiguration( repoPurge, purge ) );
+ return 0;
+ }
+ catch ( RepositoryServiceException e )
+ {
+ throw new ContinuumException( "Error while converting repository purge configuration", e );
+ }
+ catch ( PurgeConfigurationServiceException e )
+ {
+ throw new ContinuumException( "Cant' update repository PurgeException", e );
+ }
+ }
+
+ public int removeRepositoryPurgeConfiguration( int repoPurgeId )
+ throws ContinuumException
+ {
+ checkManagePurgingAuthorization();
+
+ try
+ {
+ org.apache.continuum.model.repository.RepositoryPurgeConfiguration repoPurge =
+ continuum.getPurgeConfigurationService().getRepositoryPurgeConfiguration( repoPurgeId );
+ continuum.getPurgeConfigurationService().removeRepositoryPurgeConfiguration( repoPurge );
+ return 0;
+ }
+ catch ( PurgeConfigurationServiceException e )
+ {
+ throw new ContinuumException( "Can't delete repository purge configuration", e );
+ }
+ }
+
+ public RepositoryPurgeConfiguration getRepositoryPurgeConfiguration( int repoPurgeId )
+ throws ContinuumException
+ {
+ checkManagePurgingAuthorization();
+
+ try
+ {
+ org.apache.continuum.model.repository.RepositoryPurgeConfiguration repoPurgeConfig =
+ continuum.getPurgeConfigurationService().getRepositoryPurgeConfiguration( repoPurgeId );
+ return populateRepositoryPurgeConfiguration( repoPurgeConfig );
+ }
+ catch ( PurgeConfigurationServiceException e )
+ {
+ throw new ContinuumException( "Error while retrieving repository purge configuration", e );
+ }
+ }
+
+ public List<RepositoryPurgeConfiguration> getAllRepositoryPurgeConfigurations()
+ throws ContinuumException
+ {
+ checkManagePurgingAuthorization();
+ Collection repoPurgeConfigs = continuum.getPurgeConfigurationService().getAllRepositoryPurgeConfigurations();
+
+ List<RepositoryPurgeConfiguration> r = new ArrayList<RepositoryPurgeConfiguration>();
+ for ( Object repoPurgeConfig : repoPurgeConfigs )
+ {
+ r.add( populateRepositoryPurgeConfiguration( ( org.apache.continuum.model.repository.RepositoryPurgeConfiguration ) repoPurgeConfig ) );
+ }
+ return r;
+ }
+
+ public DirectoryPurgeConfiguration addDirectoryPurgeConfiguration( DirectoryPurgeConfiguration dirPurge )
+ throws ContinuumException
+ {
+ checkManagePurgingAuthorization();
+
+ try
+ {
+ org.apache.continuum.model.repository.DirectoryPurgeConfiguration newPurge =
+ new org.apache.continuum.model.repository.DirectoryPurgeConfiguration();
+ return populateDirectoryPurgeConfiguration( continuum.getPurgeConfigurationService().
+ addDirectoryPurgeConfiguration( populateDirectoryPurgeConfiguration( dirPurge, newPurge ) ) );
+ }
+ catch ( RepositoryServiceException e )
+ {
+ throw new ContinuumException( "Error while converting directory purge configuration", e );
+ }
+ catch ( PurgeConfigurationServiceException e )
+ {
+ throw new ContinuumException( "Can't add directory purge configuration", e );
+ }
+ }
+
+ public int updateDirectoryPurgeConfiguration( DirectoryPurgeConfiguration dirPurge )
+ throws ContinuumException
+ {
+ checkManagePurgingAuthorization();
+
+ try
+ {
+ org.apache.continuum.model.repository.DirectoryPurgeConfiguration purge =
+ new org.apache.continuum.model.repository.DirectoryPurgeConfiguration();
+ continuum.getPurgeConfigurationService().updateDirectoryPurgeConfiguration( populateDirectoryPurgeConfiguration( dirPurge, purge ) );
+ return 0;
+ }
+ catch ( RepositoryServiceException e )
+ {
+ throw new ContinuumException( "Error while converting directory purge configuration", e );
+ }
+ catch ( PurgeConfigurationServiceException e )
+ {
+ throw new ContinuumException( "Can't add directory purge configuration", e );
+ }
+ }
+
+ public int removeDirectoryPurgeConfiguration( int dirPurgeId )
+ throws ContinuumException
+ {
+ checkManagePurgingAuthorization();
+
+ try
+ {
+ org.apache.continuum.model.repository.DirectoryPurgeConfiguration dirPurge =
+ continuum.getPurgeConfigurationService().getDirectoryPurgeConfiguration( dirPurgeId );
+ continuum.getPurgeConfigurationService().removeDirectoryPurgeConfiguration( dirPurge );
+ return 0;
+ }
+ catch ( PurgeConfigurationServiceException e )
+ {
+ throw new ContinuumException( "Can't delete directory purge configuration", e );
+ }
+ }
+
+ public DirectoryPurgeConfiguration getDirectoryPurgeConfiguration( int dirPurgeId )
+ throws ContinuumException
+ {
+ checkManagePurgingAuthorization();
+
+ try
+ {
+ org.apache.continuum.model.repository.DirectoryPurgeConfiguration dirPurgeConfig = continuum.getPurgeConfigurationService().getDirectoryPurgeConfiguration( dirPurgeId );
+ return populateDirectoryPurgeConfiguration( dirPurgeConfig );
+ }
+ catch ( PurgeConfigurationServiceException e )
+ {
+ throw new ContinuumException( "Error while retrieving directory purge configuration", e );
+ }
+ }
+
+ public List<DirectoryPurgeConfiguration> getAllDirectoryPurgeConfigurations()
+ throws ContinuumException
+ {
+ checkManagePurgingAuthorization();
+ Collection dirPurgeConfigs = continuum.getPurgeConfigurationService().getAllDirectoryPurgeConfigurations();
+
+ List<DirectoryPurgeConfiguration> d = new ArrayList<DirectoryPurgeConfiguration>();
+ for ( Object dirPurgeConfig : dirPurgeConfigs )
+ {
+ d.add( populateDirectoryPurgeConfiguration( ( org.apache.continuum.model.repository.DirectoryPurgeConfiguration ) dirPurgeConfig ) );
+ }
+ return d;
+ }
+
+ public void purgeLocalRepository( int repoPurgeId )
+ throws ContinuumException
+ {
+ checkManagePurgingAuthorization();
+
+ try
+ {
+ org.apache.continuum.model.repository.RepositoryPurgeConfiguration repoPurgeConfig = continuum.getPurgeConfigurationService().getRepositoryPurgeConfiguration( repoPurgeId );
+ continuum.getPurgeManager().purgeRepository( repoPurgeConfig );
+ }
+ catch ( PurgeConfigurationServiceException e )
+ {
+ throw new ContinuumException( "Error while retrieving repository purge configuration", e );
+ }
+ catch ( ContinuumPurgeManagerException e )
+ {
+ throw new ContinuumException( "Error while purging local repository", e );
+ }
+ }
+
+ public void purgeDirectory( int dirPurgeId )
+ throws ContinuumException
+ {
+ checkManagePurgingAuthorization();
+
+ try
+ {
+ org.apache.continuum.model.repository.DirectoryPurgeConfiguration dirPurgeConfig = continuum.getPurgeConfigurationService().getDirectoryPurgeConfiguration( dirPurgeId );
+ continuum.getPurgeManager().purgeDirectory( dirPurgeConfig );
+ }
+ catch ( PurgeConfigurationServiceException e )
+ {
+ throw new ContinuumException( "Error while retrieving directory purge configuration", e );
+ }
+ catch ( ContinuumPurgeManagerException e )
+ {
+ throw new ContinuumException( "Error while purging directory", e );
+ }
+ }
+
+ // ----------------------------------------------------------------------
+ // Local Repository
+ // ----------------------------------------------------------------------
+
+ public LocalRepository addLocalRepository( LocalRepository repository )
+ throws ContinuumException
+ {
+ checkManageRepositoriesAuthorization();
+
+ try
+ {
+ org.apache.continuum.model.repository.LocalRepository newRepository =
+ new org.apache.continuum.model.repository.LocalRepository();
+ return populateLocalRepository( continuum.getRepositoryService().addLocalRepository(
+ populateLocalRepository( repository, newRepository ) ) );
+ }
+ catch ( RepositoryServiceException e )
+ {
+ throw new ContinuumException( "Unable to add repository", e );
+ }
+ }
+
+ public int updateLocalRepository( LocalRepository repository )
+ throws ContinuumException
+ {
+ checkManageRepositoriesAuthorization();
+
+ try
+ {
+ final org.apache.continuum.model.repository.LocalRepository newRepo =
+ continuum.getRepositoryService().getLocalRepository( repository.getId() );
+ continuum.getRepositoryService().updateLocalRepository( populateLocalRepository( repository, newRepo ) );
+ return 0;
+ }
+ catch ( RepositoryServiceException e )
+ {
+ throw new ContinuumException( "Can't update repository", e );
+ }
+ }
+
+ public int removeLocalRepository( int repositoryId )
+ throws ContinuumException
+ {
+ checkManageRepositoriesAuthorization();
+
+ try
+ {
+ continuum.getRepositoryService().removeLocalRepository( repositoryId );
+ return 0;
+ }
+ catch ( RepositoryServiceException e)
+ {
+ throw new ContinuumException( "Can't delete repository", e );
+ }
+ }
+
+ public LocalRepository getLocalRepository( int repositoryId )
+ throws ContinuumException
+ {
+ checkManageRepositoriesAuthorization();
+
+ try
+ {
+ return populateLocalRepository( continuum.getRepositoryService().getLocalRepository( repositoryId ) );
+ }
+ catch ( RepositoryServiceException e )
+ {
+ throw new ContinuumException( "Error while retrieving repository.", e);
+ }
+ }
+
+ public List<LocalRepository> getAllLocalRepositories()
+ throws ContinuumException
+ {
+ checkManageRepositoriesAuthorization();
+ Collection repos = continuum.getRepositoryService().getAllLocalRepositories();
+
+ List<LocalRepository> r = new ArrayList<LocalRepository>();
+ for ( Object repo : repos )
+ {
+ r.add( populateLocalRepository( (org.apache.continuum.model.repository.LocalRepository) repo ) );
+ }
+ return r;
+ }
+
// ----------------------------------------------------------------------
// Converters
// ----------------------------------------------------------------------
@@ -1119,6 +1502,9 @@
g.setGroupId( group.getGroupId() );
g.setId( group.getId() );
g.setName( group.getName() );
+ org.apache.continuum.model.repository.LocalRepository repo =
+ new org.apache.continuum.model.repository.LocalRepository();
+ g.setLocalRepository( populateLocalRepository( group.getLocalRepository(), repo ) );
return g;
}
@@ -1341,6 +1727,120 @@
return (SystemConfiguration) mapper.map( sysConf, SystemConfiguration.class );
}
+ private ContinuumReleaseResult populateReleaseResult( org.apache.continuum.model.release.ContinuumReleaseResult releaseResult )
+ {
+ return (ContinuumReleaseResult) mapper.map( releaseResult, ContinuumReleaseResult.class );
+ }
+
+ private RepositoryPurgeConfiguration populateRepositoryPurgeConfiguration( org.apache.continuum.model.repository.RepositoryPurgeConfiguration repoPurgeConfig )
+ {
+ return (RepositoryPurgeConfiguration) mapper.map( repoPurgeConfig, RepositoryPurgeConfiguration.class );
+ }
+
+ private org.apache.continuum.model.repository.RepositoryPurgeConfiguration populateRepositoryPurgeConfiguration( RepositoryPurgeConfiguration repoPurgeConfig,
+ org.apache.continuum.model.repository.RepositoryPurgeConfiguration repoPurge )
+ throws RepositoryServiceException, ContinuumException
+ {
+ if ( repoPurgeConfig == null )
+ {
+ return null;
+ }
+
+ repoPurge.setDaysOlder( repoPurgeConfig.getDaysOlder() );
+ repoPurge.setDefaultPurge( repoPurgeConfig.isDefaultPurge() );
+ repoPurge.setDeleteAll( repoPurgeConfig.isDeleteAll() );
+ repoPurge.setDeleteReleasedSnapshots( repoPurgeConfig.isDeleteReleasedSnapshots() );
+ repoPurge.setDescription( repoPurgeConfig.getDescription() );
+ repoPurge.setEnabled( repoPurgeConfig.isEnabled() );
+ repoPurge.setRetentionCount( repoPurgeConfig.getRetentionCount() );
+ if ( repoPurgeConfig.getRepository() != null )
+ {
+ repoPurge.setRepository( populateLocalRepository( repoPurgeConfig.getRepository(), continuum.getRepositoryService().
+ getLocalRepository( repoPurgeConfig.getRepository().getId() ) ) );
+ }
+ else
+ {
+ repoPurge.setRepository( null );
+ }
+ if ( repoPurgeConfig.getSchedule() != null )
+ {
+ repoPurge.setSchedule( populateSchedule( repoPurgeConfig.getSchedule(), continuum.getSchedule( repoPurgeConfig.getSchedule()
+ .getId() ) ) );
+ }
+ else
+ {
+ repoPurge.setSchedule( null );
+ }
+
+ return repoPurge;
+ }
+
+ private DirectoryPurgeConfiguration populateDirectoryPurgeConfiguration( org.apache.continuum.model.repository.DirectoryPurgeConfiguration dirPurgeConfig )
+ {
+ return (DirectoryPurgeConfiguration) mapper.map( dirPurgeConfig, DirectoryPurgeConfiguration.class );
+ }
+
+ private org.apache.continuum.model.repository.DirectoryPurgeConfiguration populateDirectoryPurgeConfiguration( DirectoryPurgeConfiguration dirPurgeConfig,
+ org.apache.continuum.model.repository.DirectoryPurgeConfiguration dirPurge )
+ throws RepositoryServiceException, ContinuumException
+ {
+ if ( dirPurgeConfig == null )
+ {
+ return null;
+ }
+
+ dirPurge.setDaysOlder( dirPurgeConfig.getDaysOlder() );
+ dirPurge.setDefaultPurge( dirPurgeConfig.isDefaultPurge() );
+ dirPurge.setDeleteAll( dirPurgeConfig.isDeleteAll() );
+ dirPurge.setDescription( dirPurgeConfig.getDescription() );
+ dirPurge.setDirectoryType( dirPurgeConfig.getDirectoryType() );
+ dirPurge.setEnabled( dirPurgeConfig.isEnabled() );
+
+ String path = "";
+
+ if ( dirPurge.getDirectoryType().equals( "releases" ) )
+ {
+ path = continuum.getConfiguration().getWorkingDirectory().getAbsolutePath();
+ }
+ else if ( dirPurge.getDirectoryType().equals( "buildOutput" ) )
+ {
+ path = continuum.getConfiguration().getBuildOutputDirectory().getAbsolutePath();
+ }
+
+ dirPurge.setLocation( path );
+ dirPurge.setRetentionCount( dirPurgeConfig.getRetentionCount() );
+ if ( dirPurgeConfig.getSchedule() != null )
+ {
+ dirPurge.setSchedule( populateSchedule( dirPurgeConfig.getSchedule(), continuum.getSchedule( dirPurgeConfig.getSchedule()
+ .getId() ) ) );
+ }
+ else
+ {
+ dirPurge.setSchedule( null );
+ }
+
+ return dirPurge;
+ }
+
+ private LocalRepository populateLocalRepository( org.apache.continuum.model.repository.LocalRepository localRepository )
+ {
+ return (LocalRepository) mapper.map( localRepository, LocalRepository.class );
+ }
+
+ private org.apache.continuum.model.repository.LocalRepository populateLocalRepository( LocalRepository repository,
+ org.apache.continuum.model.repository.LocalRepository repo )
+ {
+ if ( repository == null )
+ {
+ return null;
+ }
+
+ repo.setLayout( repository.getLayout() );
+ repo.setLocation( repository.getLocation() );
+ repo.setName( repository.getName() );
+ return repo;
+ }
+
private Map<String, Object> serializeObject( Object o, final String ... ignore )
{
if ( o != null )
@@ -2039,4 +2539,94 @@
{
return this.updateProfile( (Profile) unserializeObject( profile ) );
}
+
+ public Map<String,Object> getReleaseResultRPC( int releaseId )
+ throws Exception
+ {
+ return serializeObject( this.getReleaseResult( releaseId ) );
+ }
+
+ public List<Object> getReleaseResultsForProjectGroupRPC( int projectGroupId )
+ throws Exception
+ {
+ return serializeObject( this.getReleaseResultsForProjectGroup( projectGroupId ) );
+ }
+
+ public int removeReleaseResultRPC( Map<String, Object> rr )
+ throws Exception
+ {
+ return serializeObject( this.removeReleaseResult( (ContinuumReleaseResult) unserializeObject( rr ) ) );
+ }
+
+ public Map<String, Object> addRepositoryPurgeConfigurationRPC( Map<String, Object> repoPurge )
+ throws Exception
+ {
+ return serializeObject( this.addRepositoryPurgeConfiguration( (RepositoryPurgeConfiguration) unserializeObject( repoPurge ) ) );
+ }
+
+ public int updateRepositoryPurgeConfigurationRPC( Map<String, Object> repoPurge )
+ throws Exception
+ {
+ return serializeObject( this.updateRepositoryPurgeConfiguration( (RepositoryPurgeConfiguration) unserializeObject( repoPurge ) ) );
+ }
+
+ public Map<String, Object> getRepositoryPurgeConfigurationRPC( int repoPurgeId )
+ throws Exception
+ {
+ return serializeObject( this.getRepositoryPurgeConfiguration( repoPurgeId ) );
+ }
+
+ public List<Object> getAllRepositoryPurgeConfigurationsRPC()
+ throws Exception
+ {
+ return serializeObject( this.getAllDirectoryPurgeConfigurations() );
+ }
+
+ public Map<String, Object> addDirectoryPurgeConfigurationRPC( Map<String, Object> dirPurge )
+ throws Exception
+ {
+ return serializeObject( this.addDirectoryPurgeConfiguration( (DirectoryPurgeConfiguration) unserializeObject( dirPurge ) ) );
+ }
+
+ public int updateDirectoryPurgeConfigurationRPC( Map<String, Object> dirPurge )
+ throws Exception
+ {
+ return serializeObject( this.updateDirectoryPurgeConfiguration( (DirectoryPurgeConfiguration) unserializeObject( dirPurge ) ) );
+ }
+
+ public Map<String, Object> getDirectoryPurgeConfigurationRPC( int dirPurgeId )
+ throws Exception
+ {
+ return serializeObject( this.getDirectoryPurgeConfiguration( dirPurgeId ) );
+ }
+
+ public List<Object> getAllDirectoryPurgeConfigurationsRPC()
+ throws Exception
+ {
+ return serializeObject( this.getAllRepositoryPurgeConfigurations() );
+ }
+
+ public Map<String, Object> addLocalRepositoryRPC( Map<String, Object> repository )
+ throws Exception
+ {
+ return serializeObject( this.addLocalRepository( (LocalRepository) unserializeObject( repository ) ) );
+ }
+
+ public int updateLocalRepositoryRPC( Map<String, Object> repository )
+ throws Exception
+ {
+ return serializeObject( this.updateLocalRepository( (LocalRepository) unserializeObject( repository ) ) );
+ }
+
+ public Map<String, Object> getLocalRepositoryRPC( int repositoryId )
+ throws Exception
+ {
+ return serializeObject( this.getLocalRepository( repositoryId ) );
+ }
+
+ public List<Object> getAllLocalRepositoriesRPC()
+ throws Exception
+ {
+ return serializeObject( this.getAllLocalRepositories() );
+ }
}