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 2009/03/08 15:41:35 UTC
svn commit: r751433 [1/4] - in /continuum/trunk: continuum-api/
continuum-api/src/main/java/org/apache/continuum/release/
continuum-api/src/main/java/org/apache/continuum/release/distributed/
continuum-api/src/main/java/org/apache/continuum/release/dis...
Author: ctan
Date: Sun Mar 8 14:41:33 2009
New Revision: 751433
URL: http://svn.apache.org/viewvc?rev=751433&view=rev
Log:
[CONTINUUM-2043] release prepare and release perform on build agent
TODO:
- UI
- Release Rollback
Added:
continuum/trunk/continuum-api/src/main/java/org/apache/continuum/release/
continuum/trunk/continuum-api/src/main/java/org/apache/continuum/release/distributed/
continuum/trunk/continuum-api/src/main/java/org/apache/continuum/release/distributed/manager/
continuum/trunk/continuum-api/src/main/java/org/apache/continuum/release/distributed/manager/DistributedReleaseManager.java (with props)
continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/
continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/shell/
continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/shell/DefaultShellCommandHelper.java (with props)
continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/shell/ExecutionResult.java (with props)
continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/shell/ShellCommandHelper.java (with props)
continuum/trunk/continuum-api/src/main/resources/
continuum/trunk/continuum-api/src/main/resources/META-INF/
continuum/trunk/continuum-api/src/main/resources/META-INF/spring-context.xml (with props)
continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/action/CreateBuildProjectTaskAction.java (with props)
continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/BuildAgentReleaseManager.java (with props)
continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/DefaultBuildAgentReleaseManager.java (with props)
continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/PrepareBuildProjectsTask.java (with props)
continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/execution/PrepareBuildProjectsTaskExecutor.java (with props)
continuum/trunk/continuum-core/src/main/java/org/apache/continuum/release/
continuum/trunk/continuum-core/src/main/java/org/apache/continuum/release/distributed/
continuum/trunk/continuum-core/src/main/java/org/apache/continuum/release/distributed/DistributedReleaseUtil.java (with props)
continuum/trunk/continuum-core/src/main/java/org/apache/continuum/release/distributed/manager/
continuum/trunk/continuum-core/src/main/java/org/apache/continuum/release/distributed/manager/DefaultDistributedReleaseManager.java (with props)
continuum/trunk/continuum-release/src/main/mdo/
continuum/trunk/continuum-release/src/main/mdo/prepared-releases.mdo
continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/action/AbstractReleaseAction.java (with props)
Removed:
continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/utils/shell/
continuum/trunk/continuum-commons/src/main/java/org/apache/continuum/utils/shell/
Modified:
continuum/trunk/continuum-api/pom.xml
continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java
continuum/trunk/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentService.java
continuum/trunk/continuum-buildagent/continuum-buildagent-core/pom.xml
continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java
continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/action/UpdateWorkingDirectoryAction.java
continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/AbstractBuildExecutor.java
continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/maven/m1/DefaultBuildAgentMavenOneMetadataHelper.java
continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/BuildContext.java
continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/manager/BuildContextManager.java
continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/manager/DefaultBuildContextManager.java
continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/installation/DefaultBuildAgentInstallationService.java
continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/BuildAgentManager.java
continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/DefaultBuildAgentManager.java
continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/execution/BuildProjectTaskExecutor.java
continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/manager/BuildAgentTaskQueueManager.java
continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/manager/DefaultBuildAgentTaskQueueManager.java
continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/utils/ContinuumBuildAgentUtil.java
continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/resources/META-INF/plexus/components.xml
continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/resources/META-INF/spring-context.xml
continuum/trunk/continuum-buildagent/continuum-buildagent-webapp/src/main/java/org/apache/continuum/web/startup/BuildAgentStartup.java
continuum/trunk/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java
continuum/trunk/continuum-builder/src/main/java/org/apache/continuum/builder/utils/ContinuumBuildConstant.java
continuum/trunk/continuum-core/src/main/java/org/apache/continuum/builder/distributed/manager/DefaultDistributedBuildManager.java
continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTaskExecutor.java
continuum/trunk/continuum-distributed/continuum-distributed-slave/continuum-distributed-slave-api/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportService.java
continuum/trunk/continuum-distributed/continuum-distributed-slave/continuum-distributed-slave-client/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportClient.java
continuum/trunk/continuum-distributed/continuum-distributed-slave/continuum-distributed-slave-server/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportServer.java
continuum/trunk/continuum-release/pom.xml
continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/config/ContinuumReleaseDescriptor.java
continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/phase/AbstractContinuumRunGoalsPhase.java
continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultContinuumReleaseManager.java
continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/AbstractReleaseProjectTask.java
continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PerformReleaseProjectTask.java
continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PrepareReleaseProjectTask.java
continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/RollbackReleaseProjectTask.java
continuum/trunk/continuum-release/src/main/resources/META-INF/plexus/components.xml
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseCleanupAction.java
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseInProgressAction.java
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePrepareAction.java
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseProjectAction.java
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseProjectGoalAction.java
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseRollbackAction.java
continuum/trunk/continuum-webapp/src/main/mdo/view-models.mdo
continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties
continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/releaseFinished.jsp
continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/releaseInProgress.jsp
Modified: continuum/trunk/continuum-api/pom.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/pom.xml?rev=751433&r1=751432&r2=751433&view=diff
==============================================================================
--- continuum/trunk/continuum-api/pom.xml (original)
+++ continuum/trunk/continuum-api/pom.xml Sun Mar 8 14:41:33 2009
@@ -64,6 +64,17 @@
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-repository-layer</artifactId>
<version>${archiva.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.release</groupId>
+ <artifactId>maven-release-manager</artifactId>
+ <version>1.0-alpha-3</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
</dependencies>
</project>
Added: continuum/trunk/continuum-api/src/main/java/org/apache/continuum/release/distributed/manager/DistributedReleaseManager.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/continuum/release/distributed/manager/DistributedReleaseManager.java?rev=751433&view=auto
==============================================================================
--- continuum/trunk/continuum-api/src/main/java/org/apache/continuum/release/distributed/manager/DistributedReleaseManager.java (added)
+++ continuum/trunk/continuum-api/src/main/java/org/apache/continuum/release/distributed/manager/DistributedReleaseManager.java Sun Mar 8 14:41:33 2009
@@ -0,0 +1,67 @@
+package org.apache.continuum.release.distributed.manager;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import org.apache.continuum.model.repository.LocalRepository;
+import org.apache.maven.continuum.model.project.Project;
+import org.apache.maven.continuum.release.ContinuumReleaseException;
+import org.apache.maven.shared.release.ReleaseResult;
+
+public interface DistributedReleaseManager
+{
+ Map getReleasePluginParameters( int projectId, String pomFilename )
+ throws ContinuumReleaseException;
+
+ List<Map<String, String>> processProject( int projectId, String pomFilename, boolean autoVersionSubmodules )
+ throws ContinuumReleaseException;
+
+ String releasePrepare( Project project, Properties releaseProperties, Map<String, String> releaseVersion,
+ Map<String, String> developmentVersion, Map<String, String> environments )
+ throws ContinuumReleaseException;
+
+ ReleaseResult getReleaseResult( String releaseId )
+ throws ContinuumReleaseException;
+
+ Map getListener( String releaseId )
+ throws ContinuumReleaseException;
+
+ void removeListener( String releaseId )
+ throws ContinuumReleaseException;
+
+ String getPreparedReleaseName( String releaseId )
+ throws ContinuumReleaseException;
+
+ void releasePerform( String releaseId, String goals, String arguments, boolean useReleaseProfile, LocalRepository repository )
+ throws ContinuumReleaseException;
+
+ void releasePerformFromScm( int projectId, String goals, String arguments, boolean useReleaseProfile, LocalRepository repository,
+ String scmUrl, String scmUsername, String scmPassword, String scmTag, String scmTagBase, Map environments )
+ throws ContinuumReleaseException;
+
+ void releaseRollback( String releaseId, int projectId )
+ throws ContinuumReleaseException;
+
+ String releaseCleanup( String releaseId )
+ throws ContinuumReleaseException;
+}
\ No newline at end of file
Propchange: continuum/trunk/continuum-api/src/main/java/org/apache/continuum/release/distributed/manager/DistributedReleaseManager.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: continuum/trunk/continuum-api/src/main/java/org/apache/continuum/release/distributed/manager/DistributedReleaseManager.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/shell/DefaultShellCommandHelper.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/shell/DefaultShellCommandHelper.java?rev=751433&view=auto
==============================================================================
--- continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/shell/DefaultShellCommandHelper.java (added)
+++ continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/shell/DefaultShellCommandHelper.java Sun Mar 8 14:41:33 2009
@@ -0,0 +1,232 @@
+package org.apache.continuum.utils.shell;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.Writer;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.apache.maven.shared.release.ReleaseResult;
+import org.apache.maven.shared.release.exec.MavenExecutorException;
+import org.apache.maven.shared.release.exec.TeeConsumer;
+import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.cli.CommandLineException;
+import org.codehaus.plexus.util.cli.CommandLineUtils;
+import org.codehaus.plexus.util.cli.Commandline;
+import org.codehaus.plexus.util.cli.StreamConsumer;
+import org.codehaus.plexus.util.cli.WriterStreamConsumer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
+ * @version $Id$
+ */
+@Service("shellCommandHelper")
+public class DefaultShellCommandHelper
+ implements ShellCommandHelper
+{
+ private Logger log = LoggerFactory.getLogger( DefaultShellCommandHelper.class );
+
+ // ----------------------------------------------------------------------
+ // ShellCommandHelper Implementation
+ // ----------------------------------------------------------------------
+
+ public ExecutionResult executeShellCommand( File workingDirectory, String executable, String arguments, File output,
+ long idCommand, Map<String, String> environments )
+ throws Exception
+ {
+ Commandline cl = new Commandline();
+
+ Commandline.Argument argument = cl.createArgument();
+
+ argument.setLine( arguments );
+
+ return executeShellCommand( workingDirectory, executable, argument.getParts(), output, idCommand,
+ environments );
+ }
+
+ /**
+ * Make the command line
+ *
+ * @param workingDirectory
+ * @param executable
+ * @param arguments
+ * @param idCommand
+ * @param environments
+ * @return
+ * @throws Exception
+ */
+ protected Commandline createCommandline( File workingDirectory, String executable, String[] arguments,
+ long idCommand, Map<String, String> environments )
+ throws Exception
+ {
+ Commandline cl = new Commandline();
+
+ cl.setPid( idCommand );
+
+ cl.addEnvironment( "MAVEN_TERMINATE_CMD", "on" );
+
+ if ( environments != null && !environments.isEmpty() )
+ {
+ for ( Iterator<String> iterator = environments.keySet().iterator(); iterator.hasNext(); )
+ {
+ String key = iterator.next();
+ String value = environments.get( key );
+ cl.addEnvironment( key, value );
+ }
+ }
+
+ cl.addSystemEnvironment();
+
+ cl.setExecutable( executable );
+
+ cl.setWorkingDirectory( workingDirectory.getAbsolutePath() );
+
+ if ( arguments != null )
+ {
+ for ( int i = 0; i < arguments.length; i++ )
+ {
+ String argument = arguments[i];
+
+ cl.createArgument().setValue( argument );
+ }
+ }
+
+ return cl;
+ }
+
+ public ExecutionResult executeShellCommand( File workingDirectory, String executable, String[] arguments,
+ File output, long idCommand, Map<String, String> environments )
+ throws Exception
+ {
+
+ Commandline cl = createCommandline( workingDirectory, executable, arguments, idCommand, environments );
+
+ log.info( "Executing: " + cl );
+ log.info( "Working directory: " + cl.getWorkingDirectory().getAbsolutePath() );
+ log.debug( "EnvironmentVariables " + Arrays.asList( cl.getEnvironmentVariables() ) );
+
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
+ //CommandLineUtils.StringStreamConsumer consumer = new CommandLineUtils.StringStreamConsumer();
+
+ Writer writer = new FileWriter( output );
+
+ StreamConsumer consumer = new WriterStreamConsumer( writer );
+
+ int exitCode = CommandLineUtils.executeCommandLine( cl, consumer, consumer );
+
+ writer.flush();
+
+ writer.close();
+
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
+ return new ExecutionResult( exitCode );
+ }
+
+ public boolean isRunning( long idCommand )
+ {
+ return CommandLineUtils.isAlive( idCommand );
+ }
+
+ public void killProcess( long idCommand )
+ {
+ CommandLineUtils.killProcess( idCommand );
+ }
+
+ public void executeGoals( File workingDirectory, String executable, String goals, boolean interactive, String arguments,
+ ReleaseResult relResult, Map<String, String> environments )
+ throws Exception
+ {
+ Commandline cl = new Commandline();
+
+ Commandline.Argument argument = cl.createArgument();
+
+ argument.setLine( arguments );
+
+ executeGoals( workingDirectory, executable, goals, interactive, argument.getParts(), relResult, environments );
+ }
+
+ public void executeGoals( File workingDirectory, String executable, String goals, boolean interactive, String[] arguments,
+ ReleaseResult relResult, Map<String, String> environments )
+ throws Exception
+ {
+ if ( executable == null )
+ {
+ executable = "mvn";
+ }
+
+ Commandline cl = createCommandline( workingDirectory, executable, arguments, -1, environments );
+
+ if ( goals != null )
+ {
+ // accept both space and comma, so the old way still work
+ String[] tokens = StringUtils.split( goals, ", " );
+
+ for ( int i = 0; i < tokens.length; ++i )
+ {
+ cl.createArgument().setValue( tokens[i] );
+ }
+ }
+
+ cl.createArgument().setValue( "--no-plugin-updates" );
+
+ if ( !interactive )
+ {
+ cl.createArgument().setValue( "--batch-mode" );
+ }
+
+ StreamConsumer stdOut = new TeeConsumer( System.out );
+
+ StreamConsumer stdErr = new TeeConsumer( System.err );
+
+ try
+ {
+ relResult.appendInfo( "Executing: " + cl.toString() );
+ log.info( "Executing: " + cl.toString() );
+
+ int result = CommandLineUtils.executeCommandLine( cl, stdOut, stdErr );
+
+ if ( result != 0 )
+ {
+ throw new MavenExecutorException( "Maven execution failed, exit code: \'" + result + "\'", result,
+ stdOut.toString(), stdErr.toString() );
+ }
+ }
+ catch ( CommandLineException e )
+ {
+ throw new MavenExecutorException( "Can't run goal " + goals, stdOut.toString(), stdErr.toString(), e );
+ }
+ finally
+ {
+ relResult.appendOutput( stdOut.toString() );
+ }
+ }
+}
Propchange: continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/shell/DefaultShellCommandHelper.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/shell/DefaultShellCommandHelper.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/shell/ExecutionResult.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/shell/ExecutionResult.java?rev=751433&view=auto
==============================================================================
--- continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/shell/ExecutionResult.java (added)
+++ continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/shell/ExecutionResult.java Sun Mar 8 14:41:33 2009
@@ -0,0 +1,39 @@
+package org.apache.continuum.utils.shell;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
+ * @version $Id$
+ */
+public class ExecutionResult
+{
+ private int exitCode;
+
+ public ExecutionResult( int exitCode )
+ {
+ this.exitCode = exitCode;
+ }
+
+ public int getExitCode()
+ {
+ return exitCode;
+ }
+}
Propchange: continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/shell/ExecutionResult.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/shell/ExecutionResult.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/shell/ShellCommandHelper.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/shell/ShellCommandHelper.java?rev=751433&view=auto
==============================================================================
--- continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/shell/ShellCommandHelper.java (added)
+++ continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/shell/ShellCommandHelper.java Sun Mar 8 14:41:33 2009
@@ -0,0 +1,55 @@
+package org.apache.continuum.utils.shell;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.File;
+import java.util.Map;
+
+import org.apache.continuum.utils.shell.ExecutionResult;
+import org.apache.maven.shared.release.ReleaseResult;
+
+/**
+ * @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
+ * @version $Id$
+ */
+public interface ShellCommandHelper
+{
+ String ROLE = ShellCommandHelper.class.getName();
+
+ ExecutionResult executeShellCommand( File workingDirectory, String executable, String arguments, File output,
+ long idCommand, Map<String, String> environments )
+ throws Exception;
+
+ ExecutionResult executeShellCommand( File workingDirectory, String executable, String[] arguments, File output,
+ long idCommand, Map<String, String> environments )
+ throws Exception;
+
+ boolean isRunning( long idCommand );
+
+ void killProcess( long idCommand );
+
+ void executeGoals( File workingDirectory, String executable, String goals, boolean interactive, String arguments,
+ ReleaseResult relResult, Map<String, String> environments )
+ throws Exception;
+
+ void executeGoals( File workingDirectory, String executable, String goals, boolean interactive, String[] arguments,
+ ReleaseResult relResult, Map<String, String> environments )
+ throws Exception;
+}
Propchange: continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/shell/ShellCommandHelper.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/shell/ShellCommandHelper.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java?rev=751433&r1=751432&r2=751433&view=diff
==============================================================================
--- continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java (original)
+++ continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java Sun Mar 8 14:41:33 2009
@@ -30,6 +30,7 @@
import org.apache.continuum.model.project.ProjectScmRoot;
import org.apache.continuum.purge.ContinuumPurgeManager;
import org.apache.continuum.purge.PurgeConfigurationService;
+import org.apache.continuum.release.distributed.manager.DistributedReleaseManager;
import org.apache.continuum.repository.RepositoryService;
import org.apache.continuum.taskqueue.manager.TaskQueueManager;
import org.apache.maven.continuum.builddefinition.BuildDefinitionService;
@@ -680,4 +681,6 @@
throws ContinuumException;
DistributedBuildManager getDistributedBuildManager();
+
+ DistributedReleaseManager getDistributedReleaseManager();
}
Modified: continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java?rev=751433&r1=751432&r2=751433&view=diff
==============================================================================
--- continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java (original)
+++ continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java Sun Mar 8 14:41:33 2009
@@ -46,11 +46,13 @@
* @param releaseVersions
* @param developmentVersions
* @param listener
+ * @param workingDirectory
* @return
* @throws ContinuumReleaseException
*/
String prepare( Project project, Properties releaseProperties, Map<String, String> releaseVersions,
- Map<String, String> developmentVersions, ContinuumReleaseManagerListener listener )
+ Map<String, String> developmentVersions, ContinuumReleaseManagerListener listener,
+ String workingDirectory )
throws ContinuumReleaseException;
/**
@@ -61,12 +63,15 @@
* @param releaseVersions
* @param developmentVersions
* @param listener
- * @param profile
+ * @param workingDirectory
+ * @param environments
+ * @param executable
* @return
* @throws ContinuumReleaseException
*/
String prepare( Project project, Properties releaseProperties, Map<String, String> releaseVersions,
- Map<String, String> developmentVersions, ContinuumReleaseManagerListener listener, Profile profile )
+ Map<String, String> developmentVersions, ContinuumReleaseManagerListener listener,
+ String workingDirectory, Map<String, String> environments, String executable )
throws ContinuumReleaseException;
/**
@@ -118,8 +123,6 @@
ContinuumReleaseManagerListener listener, LocalRepository repository )
throws ContinuumReleaseException;
- Map<String, String> getEnvironments( Profile profile );
-
/**
* Clean up the tagname to respect the scm provider policy.
*
Added: continuum/trunk/continuum-api/src/main/resources/META-INF/spring-context.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/resources/META-INF/spring-context.xml?rev=751433&view=auto
==============================================================================
--- continuum/trunk/continuum-api/src/main/resources/META-INF/spring-context.xml (added)
+++ continuum/trunk/continuum-api/src/main/resources/META-INF/spring-context.xml Sun Mar 8 14:41:33 2009
@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:context="http://www.springframework.org/schema/context"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+ http://www.springframework.org/schema/context
+ http://www.springframework.org/schema/context/spring-context-2.5.xsd">
+
+ <context:annotation-config />
+ <context:component-scan
+ base-package="org.apache.continuum.installation,org.apache.continuum.profile,
+ org.apache.maven.continuum.configuration,org.apache.maven.continuum.utils,
+ org.apache.continuum.utils.shell"/>
+
+ <bean id="shellCommandHelper" class="org.apache.continuum.utils.shell.DefaultShellCommandHelper"/>
+</beans>
\ No newline at end of file
Propchange: continuum/trunk/continuum-api/src/main/resources/META-INF/spring-context.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: continuum/trunk/continuum-api/src/main/resources/META-INF/spring-context.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentService.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentService.java?rev=751433&r1=751432&r2=751433&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentService.java (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentService.java Sun Mar 8 14:41:33 2009
@@ -44,4 +44,35 @@
String getProjectFileContent( int projectId, String directory, String filename )
throws ContinuumBuildAgentException;
+
+ Map getReleasePluginParameters( int projectId, String pomFilename )
+ throws ContinuumBuildAgentException;
+
+ List<Map<String, String>> processProject( int projectId, String pomFilename, boolean autoVersionSubmodules )
+ throws ContinuumBuildAgentException;
+
+ String releasePrepare( Map project, Map properties, Map releaseVersion, Map developmentVersion, Map<String, String> environments )
+ throws ContinuumBuildAgentException;
+
+ Map getReleaseResult( String releaseId )
+ throws ContinuumBuildAgentException;
+
+ Map getListener( String releaseId )
+ throws ContinuumBuildAgentException;
+
+ void removeListener( String releaseId )
+ throws ContinuumBuildAgentException;
+
+ String getPreparedReleaseName( String releaseId )
+ throws ContinuumBuildAgentException;
+
+ void releasePerform( String releaseId, String goals, String arguments, boolean useReleaseProfile, Map repository )
+ throws ContinuumBuildAgentException;
+
+ void releasePerformFromScm( String goals, String arguments, boolean useReleaseProfile, Map repository, String scmUrl, String scmUsername,
+ String scmPassword, String scmTag, String scmTagBase, Map<String, String> environments )
+ throws ContinuumBuildAgentException;
+
+ String releaseCleanup( String releaseId )
+ throws ContinuumBuildAgentException;
}
Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-core/pom.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/pom.xml?rev=751433&r1=751432&r2=751433&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-core/pom.xml (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-core/pom.xml Sun Mar 8 14:41:33 2009
@@ -36,7 +36,11 @@
</dependency>
<dependency>
<groupId>org.apache.continuum</groupId>
- <artifactId>continuum-api</artifactId>
+ <artifactId>continuum-scm</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.continuum</groupId>
+ <artifactId>continuum-release</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.archiva</groupId>
@@ -50,10 +54,6 @@
</dependency>
<dependency>
<groupId>org.apache.continuum</groupId>
- <artifactId>continuum-scm</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.continuum</groupId>
<artifactId>continuum-distributed-master-client</artifactId>
</dependency>
<dependency>
Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java?rev=751433&r1=751432&r2=751433&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java Sun Mar 8 14:41:33 2009
@@ -20,9 +20,11 @@
*/
import java.io.File;
+import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
@@ -32,8 +34,9 @@
import org.apache.continuum.buildagent.buildcontext.BuildContext;
import org.apache.continuum.buildagent.buildcontext.manager.BuildContextManager;
import org.apache.continuum.buildagent.configuration.BuildAgentConfigurationService;
-import org.apache.continuum.buildagent.manager.BuildAgentManager;
+import org.apache.continuum.buildagent.manager.BuildAgentReleaseManager;
import org.apache.continuum.buildagent.model.Installation;
+import org.apache.continuum.buildagent.taskqueue.PrepareBuildProjectsTask;
import org.apache.continuum.buildagent.taskqueue.manager.BuildAgentTaskQueueManager;
import org.apache.continuum.buildagent.utils.ContinuumBuildAgentUtil;
import org.apache.continuum.buildagent.utils.WorkingCopyContentGenerator;
@@ -44,8 +47,17 @@
import org.apache.maven.continuum.model.scm.ChangeSet;
import org.apache.maven.continuum.model.scm.ScmResult;
import org.apache.maven.continuum.project.ContinuumProjectState;
+import org.apache.maven.continuum.release.ContinuumReleaseException;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+import org.apache.maven.shared.release.ReleaseResult;
+import org.apache.maven.shared.release.versions.DefaultVersionInfo;
+import org.apache.maven.shared.release.versions.VersionInfo;
+import org.codehaus.plexus.taskqueue.TaskQueueException;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -65,36 +77,44 @@
/**
* @plexus.requirement
*/
- private BuildAgentManager buildAgentManager;
+ private BuildAgentTaskQueueManager buildAgentTaskQueueManager;
/**
* @plexus.requirement
*/
- private BuildAgentTaskQueueManager buildAgentTaskQueueManager;
+ private BuildContextManager buildContextManager;
/**
* @plexus.requirement
*/
- private BuildContextManager buildContextManager;
+ private WorkingCopyContentGenerator generator;
/**
* @plexus.requirement
*/
- private WorkingCopyContentGenerator generator;
+ private BuildAgentReleaseManager buildAgentReleaseManager;
public void buildProjects( List<Map> projectsBuildContext )
throws ContinuumBuildAgentException
{
List<BuildContext> buildContextList = initializeBuildContext( projectsBuildContext );
+ PrepareBuildProjectsTask task = createPrepareBuildProjectsTask( buildContextList );
+
+ if ( task == null )
+ {
+ return;
+ }
+
try
{
- buildAgentManager.prepareBuildProjects( buildContextList );
+ buildAgentTaskQueueManager.getPrepareBuildQueue().put( task );
}
- catch ( ContinuumException e )
+ catch ( TaskQueueException e )
{
- throw new ContinuumBuildAgentException( e.getMessage(), e );
+ throw new ContinuumBuildAgentException( "Error while enqueuing projects", e );
}
+
}
public List<Map> getAvailableInstallations()
@@ -169,11 +189,11 @@
{
if ( buildResult.getStartTime() <= 0 )
{
- result.put( ContinuumBuildAgentUtil.KEY_BUILD_START, new Long( buildContext.getBuildStartTime() ).toString() );
+ result.put( ContinuumBuildAgentUtil.KEY_START_TIME, new Long( buildContext.getBuildStartTime() ).toString() );
}
else
{
- result.put( ContinuumBuildAgentUtil.KEY_BUILD_START, new Long( buildResult.getStartTime() ).toString() );
+ result.put( ContinuumBuildAgentUtil.KEY_START_TIME, new Long( buildResult.getStartTime() ).toString() );
}
if ( buildResult.getError() == null )
@@ -186,13 +206,13 @@
}
result.put( ContinuumBuildAgentUtil.KEY_BUILD_STATE, new Integer( buildResult.getState() ) );
- result.put( ContinuumBuildAgentUtil.KEY_BUILD_END, new Long( buildResult.getEndTime() ).toString() );
+ result.put( ContinuumBuildAgentUtil.KEY_END_TIME, new Long( buildResult.getEndTime() ).toString() );
result.put( ContinuumBuildAgentUtil.KEY_BUILD_EXIT_CODE, buildResult.getExitCode() );
}
else
{
- result.put( ContinuumBuildAgentUtil.KEY_BUILD_START, new Long( buildContext.getBuildStartTime() ).toString() );
- result.put( ContinuumBuildAgentUtil.KEY_BUILD_END, new Long( 0 ).toString() );
+ result.put( ContinuumBuildAgentUtil.KEY_START_TIME, new Long( buildContext.getBuildStartTime() ).toString() );
+ result.put( ContinuumBuildAgentUtil.KEY_END_TIME, new Long( 0 ).toString() );
result.put( ContinuumBuildAgentUtil.KEY_BUILD_STATE, new Integer( ContinuumProjectState.BUILDING ) );
result.put( ContinuumBuildAgentUtil.KEY_BUILD_ERROR, "" );
result.put( ContinuumBuildAgentUtil.KEY_BUILD_EXIT_CODE, new Integer( 0 ) );
@@ -284,6 +304,294 @@
}
}
+ public Map getReleasePluginParameters( int projectId, String pomFilename )
+ throws ContinuumBuildAgentException
+ {
+ Map releaseParameters = new HashMap();
+
+ String workingDirectory = buildAgentConfigurationService.getWorkingDirectory( projectId ).getPath();
+
+ MavenXpp3Reader pomReader = new MavenXpp3Reader();
+ try
+ {
+ Model model = pomReader.read( new FileReader( new File( workingDirectory, pomFilename ) ) );
+
+ if ( model.getBuild() != null && model.getBuild().getPlugins() != null )
+ {
+ for ( Plugin plugin : (List<Plugin>) model.getBuild().getPlugins() )
+ {
+ if ( plugin.getGroupId() != null && plugin.getGroupId().equals( "org.apache.maven.plugins" ) &&
+ plugin.getArtifactId() != null && plugin.getArtifactId().equals( "maven-release-plugin" ) )
+ {
+ Xpp3Dom dom = (Xpp3Dom) plugin.getConfiguration();
+
+ if ( dom != null )
+ {
+ Xpp3Dom configuration = dom.getChild( "releaseLabel" );
+ if ( configuration != null )
+ {
+ releaseParameters.put( ContinuumBuildAgentUtil.KEY_SCM_TAG, configuration.getValue() );
+ }
+ else
+ {
+ releaseParameters.put( ContinuumBuildAgentUtil.KEY_SCM_TAG, "" );
+ }
+
+ configuration = dom.getChild( "tag" );
+ if ( configuration != null )
+ {
+ releaseParameters.put( ContinuumBuildAgentUtil.KEY_SCM_TAG, configuration.getValue() );
+ }
+ else
+ {
+ releaseParameters.put( ContinuumBuildAgentUtil.KEY_SCM_TAG, "" );
+ }
+
+
+ configuration = dom.getChild( "tagBase" );
+ if ( configuration != null )
+ {
+ releaseParameters.put( ContinuumBuildAgentUtil.KEY_SCM_TAGBASE, configuration.getValue() );
+ }
+ else
+ {
+ releaseParameters.put( ContinuumBuildAgentUtil.KEY_SCM_TAGBASE, "" );
+ }
+
+ configuration = dom.getChild( "preparationGoals" );
+ if ( configuration != null )
+ {
+ releaseParameters.put( ContinuumBuildAgentUtil.KEY_PREPARE_GOALS, configuration.getValue() );
+ }
+ else
+ {
+ releaseParameters.put( ContinuumBuildAgentUtil.KEY_PREPARE_GOALS, "" );
+ }
+
+ configuration = dom.getChild( "arguments" );
+ if ( configuration != null )
+ {
+ releaseParameters.put( ContinuumBuildAgentUtil.KEY_ARGUMENTS, configuration.getValue() );
+ }
+ else
+ {
+ releaseParameters.put( ContinuumBuildAgentUtil.KEY_ARGUMENTS, "" );
+ }
+
+ configuration = dom.getChild( "scmCommentPrefix" );
+ if ( configuration != null )
+ {
+ releaseParameters.put( ContinuumBuildAgentUtil.KEY_SCM_COMMENT_PREFIX, configuration.getValue() );
+ }
+ else
+ {
+ releaseParameters.put( ContinuumBuildAgentUtil.KEY_SCM_COMMENT_PREFIX, "" );
+ }
+
+ configuration = dom.getChild( "autoVersionSubmodules" );
+ if ( configuration != null )
+ {
+ releaseParameters.put( ContinuumBuildAgentUtil.KEY_AUTO_VERSION_SUBMODULES, Boolean.valueOf( configuration.getValue() ) );
+ }
+ else
+ {
+ releaseParameters.put( ContinuumBuildAgentUtil.KEY_AUTO_VERSION_SUBMODULES, new Boolean( false ) );
+ }
+
+ configuration = dom.getChild( "addSchema" );
+ if ( configuration != null )
+ {
+ releaseParameters.put( ContinuumBuildAgentUtil.KEY_ADD_SCHEMA, Boolean.valueOf( configuration.getValue() ) );
+ }
+ else
+ {
+ releaseParameters.put( ContinuumBuildAgentUtil.KEY_ADD_SCHEMA, new Boolean( false ) );
+ }
+
+ configuration = dom.getChild( "useReleaseProfile" );
+ if ( configuration != null )
+ {
+ releaseParameters.put( ContinuumBuildAgentUtil.KEY_USE_RELEASE_PROFILE, Boolean.valueOf( configuration.getValue() ) );
+ }
+ else
+ {
+ releaseParameters.put( ContinuumBuildAgentUtil.KEY_USE_RELEASE_PROFILE, new Boolean( false ) );
+ }
+
+ configuration = dom.getChild( "goals" );
+ if ( configuration != null )
+ {
+ String goals = configuration.getValue();
+ if ( model.getDistributionManagement() != null &&
+ model.getDistributionManagement().getSite() != null )
+ {
+ goals += "site-deploy";
+ }
+
+ releaseParameters.put( ContinuumBuildAgentUtil.KEY_GOALS, goals );
+ }
+ else
+ {
+ releaseParameters.put( ContinuumBuildAgentUtil.KEY_GOALS, "" );
+ }
+ }
+ }
+ }
+ }
+ }
+ catch ( Exception e )
+ {
+ throw new ContinuumBuildAgentException( "Error getting release plugin parameters from pom file", e );
+ }
+
+ return releaseParameters;
+ }
+
+ public List<Map<String, String>>processProject( int projectId, String pomFilename, boolean autoVersionSubmodules )
+ throws ContinuumBuildAgentException
+ {
+ List<Map<String, String>> projects = new ArrayList<Map<String, String>>();
+
+ String workingDirectory = buildAgentConfigurationService.getWorkingDirectory( projectId ).getPath();
+
+ try
+ {
+ processProject( workingDirectory, pomFilename, autoVersionSubmodules, projects );
+ }
+ catch ( Exception e )
+ {
+ throw new ContinuumBuildAgentException( "Unable to process project " + projectId, e );
+ }
+
+ return projects;
+ }
+
+ public String releasePrepare( Map project, Map properties, Map releaseVersion, Map developmentVersion, Map<String, String> environments )
+ throws ContinuumBuildAgentException
+ {
+ try
+ {
+ return buildAgentReleaseManager.releasePrepare( project, properties, releaseVersion, developmentVersion, environments );
+ }
+ catch ( ContinuumReleaseException e )
+ {
+ throw new ContinuumBuildAgentException( "Unable to prepare release", e );
+ }
+ }
+
+ public Map getReleaseResult( String releaseId )
+ throws ContinuumBuildAgentException
+ {
+ ReleaseResult result = buildAgentReleaseManager.getReleaseResult( releaseId );
+
+ Map map = new HashMap();
+ map.put( ContinuumBuildAgentUtil.KEY_START_TIME, new Long( result.getStartTime() ).toString() );
+ map.put( ContinuumBuildAgentUtil.KEY_END_TIME, new Long( result.getEndTime() ).toString() );
+ map.put( ContinuumBuildAgentUtil.KEY_RELEASE_RESULT_CODE, new Integer( result.getResultCode() ) );
+ map.put( ContinuumBuildAgentUtil.KEY_RELEASE_OUTPUT, result.getOutput() );
+
+ return map;
+ }
+
+ public Map getListener( String releaseId )
+ throws ContinuumBuildAgentException
+ {
+ return buildAgentReleaseManager.getListener( releaseId );
+ }
+
+ public void removeListener( String releaseId )
+ {
+ buildAgentReleaseManager.removeListener( releaseId );
+ }
+
+ public String getPreparedReleaseName( String releaseId )
+ {
+ return buildAgentReleaseManager.getPreparedReleaseName( releaseId );
+ }
+
+ public void releasePerform( String releaseId, String goals, String arguments, boolean useReleaseProfile, Map repository )
+ throws ContinuumBuildAgentException
+ {
+ try
+ {
+ buildAgentReleaseManager.releasePerform( releaseId, goals, arguments, useReleaseProfile, repository );
+ }
+ catch ( ContinuumReleaseException e )
+ {
+ throw new ContinuumBuildAgentException( "Unable to perform release " + releaseId, e );
+ }
+ }
+
+ public void releasePerformFromScm( String goals, String arguments, boolean useReleaseProfile, Map repository, String scmUrl,
+ String scmUsername, String scmPassword, String scmTag, String scmTagBase,
+ Map<String, String> environments )
+ throws ContinuumBuildAgentException
+ {
+ try
+ {
+ buildAgentReleaseManager.releasePerformFromScm( goals, arguments, useReleaseProfile, repository, scmUrl, scmUsername,
+ scmPassword, scmTag, scmTagBase, environments );
+ }
+ catch ( ContinuumReleaseException e )
+ {
+ throw new ContinuumBuildAgentException( "Unable to perform release from scm", e );
+ }
+ }
+
+ public String releaseCleanup( String releaseId )
+ throws ContinuumBuildAgentException
+ {
+ return buildAgentReleaseManager.releaseCleanup( releaseId );
+ }
+
+ private void processProject( String workingDirectory, String pomFilename, boolean autoVersionSubmodules, List<Map<String, String>> projects )
+ throws Exception
+ {
+ MavenXpp3Reader pomReader = new MavenXpp3Reader();
+ Model model = pomReader.read( new FileReader( new File( workingDirectory, pomFilename ) ) );
+
+ if ( model.getGroupId() == null )
+ {
+ model.setGroupId( model.getParent().getGroupId() );
+ }
+
+ if ( model.getVersion() == null )
+ {
+ model.setVersion( model.getParent().getVersion() );
+ }
+
+ setProperties( model, projects );
+
+ if ( !autoVersionSubmodules )
+ {
+ for ( Iterator modules = model.getModules().iterator(); modules.hasNext(); )
+ {
+ processProject( workingDirectory + "/" + modules.next().toString(), "pom.xml", autoVersionSubmodules, projects );
+ }
+ }
+ }
+
+ private void setProperties( Model model, List<Map<String, String>> projects )
+ throws Exception
+ {
+ Map<String, String> params = new HashMap<String, String>();
+
+ params.put( "key", model.getGroupId() + ":" + model.getArtifactId() );
+
+ if ( model.getName() == null )
+ {
+ model.setName( model.getArtifactId() );
+ }
+ params.put( "name", model.getName() );
+
+ VersionInfo version = new DefaultVersionInfo( model.getVersion() );
+
+ params.put( "release", version.getReleaseVersionString() );
+ params.put( "dev", version.getNextVersion().getSnapshotVersionString() );
+
+ projects.add( params );
+ }
+
private List<BuildContext> initializeBuildContext( List<Map> projectsBuildContext )
{
List<BuildContext> buildContext = new ArrayList<BuildContext>();
@@ -313,6 +621,7 @@
context.setOldScmResult( getScmResult( ContinuumBuildAgentUtil.getOldScmChanges( map ) ) );
context.setLatestUpdateDate( ContinuumBuildAgentUtil.getLatestUpdateDate( map ) );
context.setBuildAgentUrl( ContinuumBuildAgentUtil.getBuildAgentUrl( map ) );
+ context.setMaxExecutionTime( ContinuumBuildAgentUtil.getMaxExecutionTime( map ) );
buildContext.add( context );
}
@@ -381,4 +690,23 @@
}
}
}
+
+ private PrepareBuildProjectsTask createPrepareBuildProjectsTask( List<BuildContext> buildContexts )
+ throws ContinuumBuildAgentException
+ {
+ if ( buildContexts != null && buildContexts.size() > 0 )
+ {
+ BuildContext context = (BuildContext) buildContexts.get( 0 );
+ PrepareBuildProjectsTask task = new PrepareBuildProjectsTask( buildContexts,
+ context.getTrigger(),
+ context.getProjectGroupId(),
+ context.getScmRootAddress() );
+ return task;
+ }
+ else
+ {
+ log.info( "Nothing to build" );
+ return null;
+ }
+ }
}
Added: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/action/CreateBuildProjectTaskAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/action/CreateBuildProjectTaskAction.java?rev=751433&view=auto
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/action/CreateBuildProjectTaskAction.java (added)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/action/CreateBuildProjectTaskAction.java Sun Mar 8 14:41:33 2009
@@ -0,0 +1,101 @@
+package org.apache.continuum.buildagent.action;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.continuum.buildagent.buildcontext.BuildContext;
+import org.apache.continuum.buildagent.taskqueue.manager.BuildAgentTaskQueueManager;
+import org.apache.continuum.buildagent.utils.ContinuumBuildAgentUtil;
+import org.apache.continuum.taskqueue.BuildProjectTask;
+import org.apache.continuum.taskqueue.manager.TaskQueueManagerException;
+import org.apache.maven.continuum.ContinuumException;
+import org.codehaus.plexus.action.AbstractAction;
+import org.codehaus.plexus.taskqueue.TaskQueueException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @plexus.component role="org.codehaus.plexus.action.Action" role-hint="create-agent-build-project-task"
+ */
+public class CreateBuildProjectTaskAction
+ extends AbstractAction
+{
+ private Logger log = LoggerFactory.getLogger( this.getClass() );
+
+ /**
+ * @plexus.requirement
+ */
+ private BuildAgentTaskQueueManager buildAgentTaskQueueManager;
+
+ public void execute( Map context )
+ throws Exception
+ {
+ List<BuildContext> buildContexts = ContinuumBuildAgentUtil.getBuildContexts( context );
+
+ for ( BuildContext buildContext : buildContexts )
+ {
+ BuildProjectTask buildProjectTask = new BuildProjectTask( buildContext.getProjectId(),
+ buildContext.getBuildDefinitionId(),
+ buildContext.getTrigger(),
+ buildContext.getProjectName(),
+ "",
+ buildContext.getScmResult() );
+ buildProjectTask.setMaxExecutionTime( buildContext.getMaxExecutionTime() * 1000 );
+
+ try
+ {
+ if ( !buildAgentTaskQueueManager.isProjectInBuildQueue( buildProjectTask.getProjectId() ) )
+ {
+ buildAgentTaskQueueManager.getBuildQueue().put( buildProjectTask );
+ }
+ }
+ catch ( TaskQueueException e )
+ {
+ log.error( "Error while enqueing build task for project " + buildContext.getProjectId(), e );
+ throw new ContinuumException( "Error while enqueuing build task for project " + buildContext.getProjectId(), e );
+ }
+ catch ( TaskQueueManagerException e )
+ {
+ log.error( "Error while checking if project " + buildContext.getProjectId() + " is in build queue", e );
+ throw new ContinuumException( "Error while checking if project " + buildContext.getProjectId() + " is in build queue", e );
+ }
+ }
+
+ try
+ {
+ boolean stop = false;
+ while ( !stop )
+ {
+ if ( buildAgentTaskQueueManager.getCurrentProjectInBuilding() <= 0 &&
+ !buildAgentTaskQueueManager.hasBuildTaskInQueue() )
+ {
+ stop = true;
+ }
+ }
+ }
+ catch ( TaskQueueManagerException e )
+ {
+ throw new ContinuumException( e.getMessage(), e );
+ }
+ }
+
+}
Propchange: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/action/CreateBuildProjectTaskAction.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/action/CreateBuildProjectTaskAction.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/action/UpdateWorkingDirectoryAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/action/UpdateWorkingDirectoryAction.java?rev=751433&r1=751432&r2=751433&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/action/UpdateWorkingDirectoryAction.java (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/action/UpdateWorkingDirectoryAction.java Sun Mar 8 14:41:33 2009
@@ -29,7 +29,6 @@
import org.apache.continuum.buildagent.utils.ContinuumBuildAgentUtil;
import org.apache.continuum.scm.ContinuumScm;
import org.apache.continuum.scm.ContinuumScmConfiguration;
-import org.apache.maven.continuum.model.project.BuildDefinition;
import org.apache.maven.continuum.model.project.Project;
import org.apache.maven.continuum.model.scm.ChangeFile;
import org.apache.maven.continuum.model.scm.ChangeSet;
Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/AbstractBuildExecutor.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/AbstractBuildExecutor.java?rev=751433&r1=751432&r2=751433&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/AbstractBuildExecutor.java (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/AbstractBuildExecutor.java Sun Mar 8 14:41:33 2009
@@ -31,8 +31,8 @@
import org.apache.continuum.buildagent.installation.BuildAgentInstallationService;
import org.apache.continuum.buildagent.manager.BuildAgentManager;
import org.apache.continuum.buildagent.utils.ContinuumBuildAgentUtil;
-import org.apache.continuum.buildagent.utils.shell.ExecutionResult;
-import org.apache.continuum.buildagent.utils.shell.BuildAgentShellCommandHelper;
+import org.apache.continuum.utils.shell.ExecutionResult;
+import org.apache.continuum.utils.shell.ShellCommandHelper;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.continuum.model.project.BuildDefinition;
import org.apache.maven.continuum.model.project.Project;
@@ -57,7 +57,7 @@
/**
* @plexus.requirement
*/
- private BuildAgentShellCommandHelper buildAgentShellCommandHelper;
+ private ShellCommandHelper shellCommandHelper;
/**
* @plexus.requirement
@@ -103,14 +103,14 @@
this.resolveExecutable = resolveExecutable;
}
- public void setBuildAgentShellCommandHelper( BuildAgentShellCommandHelper buildAgentShellCommandHelper )
+ public void setShellCommandHelper( ShellCommandHelper shellCommandHelper )
{
- this.buildAgentShellCommandHelper = buildAgentShellCommandHelper;
+ this.shellCommandHelper = shellCommandHelper;
}
- public BuildAgentShellCommandHelper getBuildAgentShellCommandHelper()
+ public ShellCommandHelper getShellCommandHelper()
{
- return buildAgentShellCommandHelper;
+ return shellCommandHelper;
}
public void setDefaultExecutable( String defaultExecutable )
@@ -267,7 +267,7 @@
try
{
- ExecutionResult result = getBuildAgentShellCommandHelper().executeShellCommand( workingDirectory, actualExecutable,
+ ExecutionResult result = getShellCommandHelper().executeShellCommand( workingDirectory, actualExecutable,
arguments, output, project.getId(),
environments );
@@ -479,12 +479,12 @@
public boolean isBuilding( Project project )
{
return project.getState() == ContinuumProjectState.BUILDING ||
- getBuildAgentShellCommandHelper().isRunning( project.getId() );
+ getShellCommandHelper().isRunning( project.getId() );
}
public void killProcess( Project project )
{
- getBuildAgentShellCommandHelper().killProcess( project.getId() );
+ getShellCommandHelper().killProcess( project.getId() );
}
public List<Artifact> getDeployableArtifacts( Project project, File workingDirectory, BuildDefinition buildDefinition )
Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/maven/m1/DefaultBuildAgentMavenOneMetadataHelper.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/maven/m1/DefaultBuildAgentMavenOneMetadataHelper.java?rev=751433&r1=751432&r2=751433&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/maven/m1/DefaultBuildAgentMavenOneMetadataHelper.java (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/maven/m1/DefaultBuildAgentMavenOneMetadataHelper.java Sun Mar 8 14:41:33 2009
@@ -19,9 +19,10 @@
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Service;
-@Service("buildAgentMavenOneMetadataHelper")
+/**
+ * @plexus.component role="org.apache.continuum.buildagent.build.execution.maven.m1.BuildAgentMavenOneMetadataHelper" role-hint="default"
+ */
public class DefaultBuildAgentMavenOneMetadataHelper
implements BuildAgentMavenOneMetadataHelper
{
Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/BuildContext.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/BuildContext.java?rev=751433&r1=751432&r2=751433&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/BuildContext.java (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/BuildContext.java Sun Mar 8 14:41:33 2009
@@ -79,6 +79,8 @@
private String buildAgentUrl;
+ private int maxExecutionTime;
+
public int getProjectGroupId()
{
return projectGroupId;
@@ -338,4 +340,14 @@
{
return buildAgentUrl;
}
+
+ public void setMaxExecutionTime( int maxExecutionTime )
+ {
+ this.maxExecutionTime = maxExecutionTime;
+ }
+
+ public int getMaxExecutionTime()
+ {
+ return maxExecutionTime;
+ }
}
Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/manager/BuildContextManager.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/manager/BuildContextManager.java?rev=751433&r1=751432&r2=751433&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/manager/BuildContextManager.java (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/manager/BuildContextManager.java Sun Mar 8 14:41:33 2009
@@ -29,10 +29,10 @@
public interface BuildContextManager
{
String ROLE = BuildContextManager.class.getName();
-
- public void setBuildContextList(List<BuildContext> buildContext);
-
+
+ public void setBuildContextList( List<BuildContext> buildContext );
+
public List<BuildContext> getBuildContextList();
-
- public BuildContext getBuildContext(int projectId);
+
+ public BuildContext getBuildContext( int projectId );
}
\ No newline at end of file
Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/manager/DefaultBuildContextManager.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/manager/DefaultBuildContextManager.java?rev=751433&r1=751432&r2=751433&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/manager/DefaultBuildContextManager.java (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/manager/DefaultBuildContextManager.java Sun Mar 8 14:41:33 2009
@@ -22,12 +22,11 @@
import java.util.List;
import org.apache.continuum.buildagent.buildcontext.BuildContext;
-import org.springframework.stereotype.Service;
/**
* @author Jan Steven Ancajas
+ * @plexus.component role="org.apache.continuum.buildagent.buildcontext.manager.BuildContextManager" role-hint="default"
*/
-@Service("buildContextManager")
public class DefaultBuildContextManager
implements BuildContextManager
{
@@ -37,7 +36,7 @@
{
BuildContext context = null;
- if (buildContexts!= null)
+ if ( buildContexts != null )
{
for ( BuildContext item : buildContexts )
{
Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/installation/DefaultBuildAgentInstallationService.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/installation/DefaultBuildAgentInstallationService.java?rev=751433&r1=751432&r2=751433&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/installation/DefaultBuildAgentInstallationService.java (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/installation/DefaultBuildAgentInstallationService.java Sun Mar 8 14:41:33 2009
@@ -25,9 +25,10 @@
import org.apache.maven.continuum.execution.ExecutorConfigurator;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
-import org.springframework.stereotype.Service;
-@Service("buildAgentInstallationService")
+/**
+ * @plexus.component role="org.apache.continuum.buildagent.installation.BuildAgentInstallationService" role-hint="default"
+ */
public class DefaultBuildAgentInstallationService
implements BuildAgentInstallationService, Initializable
{
Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/BuildAgentManager.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/BuildAgentManager.java?rev=751433&r1=751432&r2=751433&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/BuildAgentManager.java (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/BuildAgentManager.java Sun Mar 8 14:41:33 2009
@@ -19,19 +19,14 @@
* under the License.
*/
-import java.util.List;
import java.util.Map;
-import org.apache.continuum.buildagent.buildcontext.BuildContext;
import org.apache.maven.continuum.ContinuumException;
public interface BuildAgentManager
{
String ROLE = BuildAgentManager.class.getName();
- void prepareBuildProjects( List<BuildContext> buildContextList )
- throws ContinuumException;
-
void returnBuildResult( Map result )
throws ContinuumException;
@@ -46,4 +41,10 @@
boolean shouldBuild( Map context )
throws ContinuumException;
+
+ void startPrepareBuild( Map context )
+ throws ContinuumException;
+
+ void endPrepareBuild( Map context )
+ throws ContinuumException;
}
Added: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/BuildAgentReleaseManager.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/BuildAgentReleaseManager.java?rev=751433&view=auto
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/BuildAgentReleaseManager.java (added)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/BuildAgentReleaseManager.java Sun Mar 8 14:41:33 2009
@@ -0,0 +1,50 @@
+package org.apache.continuum.buildagent.manager;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.Map;
+
+import org.apache.maven.continuum.release.ContinuumReleaseException;
+import org.apache.maven.shared.release.ReleaseResult;
+
+public interface BuildAgentReleaseManager
+{
+ String ROLE = BuildAgentReleaseManager.class.getName();
+
+ String releasePrepare( Map project, Map properties, Map releaseVersion, Map developmentVersion, Map<String, String> environments )
+ throws ContinuumReleaseException;
+
+ ReleaseResult getReleaseResult( String releaseId );
+
+ Map getListener( String releaseId );
+
+ void removeListener( String releaseId );
+
+ String getPreparedReleaseName( String releaseId );
+
+ void releasePerform( String releaseId, String goals, String arguments, boolean useReleaseProfile, Map repository )
+ throws ContinuumReleaseException;
+
+ void releasePerformFromScm( String goals, String arguments, boolean useReleaseProfile, Map repository, String scmUrl, String scmUsername,
+ String scmPassword, String scmTag, String scmTagBase, Map<String, String> environments )
+ throws ContinuumReleaseException;
+
+ String releaseCleanup( String releaseId );
+}
Propchange: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/BuildAgentReleaseManager.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/BuildAgentReleaseManager.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision