Author: trygvis Date: Wed May 4 13:42:31 2005 New Revision: 168187 URL: http://svn.apache.org/viewcvs?rev=168187&view=rev Log: o Separating the shell builder from the maven 2 builder. o Making the Maven 2 builder return proper MavenTwoBuildResult objects.
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/builder/maven/m2/DefaultMavenBuilderHelper.java maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/builder/maven/m2/MavenShellBuilder.java maven/continuum/trunk/continuum-model/src/main/resources/continuum.mdo Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/builder/maven/m2/DefaultMavenBuilderHelper.java URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/builder/maven/m2/DefaultMavenBuilderHelper.java?rev=168187&r1=168186&r2=168187&view=diff ============================================================================== --- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/builder/maven/m2/DefaultMavenBuilderHelper.java (original) +++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/builder/maven/m2/DefaultMavenBuilderHelper.java Wed May 4 13:42:31 2005 @@ -28,6 +28,7 @@ import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; import org.apache.maven.continuum.ContinuumException; import org.apache.maven.continuum.project.ContinuumProject; +import org.apache.maven.continuum.project.MavenTwoProject; import org.apache.maven.model.CiManagement; import org.apache.maven.model.Notifier; import org.apache.maven.model.Repository; @@ -74,7 +75,7 @@ // We need to roll the project data into a file so that we can use it // ---------------------------------------------------------------------- - ContinuumProject project = new ContinuumProject(); + MavenTwoProject project = new MavenTwoProject(); try { Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/builder/maven/m2/MavenShellBuilder.java URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/builder/maven/m2/MavenShellBuilder.java?rev=168187&r1=168186&r2=168187&view=diff ============================================================================== --- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/builder/maven/m2/MavenShellBuilder.java (original) +++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/builder/maven/m2/MavenShellBuilder.java Wed May 4 13:42:31 2005 @@ -18,10 +18,13 @@ import java.io.File; import java.net.URL; -import java.util.Arrays; import org.apache.maven.continuum.ContinuumException; -import org.apache.maven.continuum.builder.shell.ShellBuilder; +import org.apache.maven.continuum.builder.AbstractContinuumBuilder; +import org.apache.maven.continuum.builder.ContinuumBuilder; +import org.apache.maven.continuum.builder.shell.ExecutionResult; +import org.apache.maven.continuum.builder.shell.ShellCommandHelper; +import org.apache.maven.continuum.project.ContinuumBuildResult; import org.apache.maven.continuum.project.ContinuumProject; /** @@ -29,13 +32,17 @@ * @version $Id: MavenShellBuilder.java,v 1.2 2005/04/07 23:27:39 trygvis Exp $ */ public class MavenShellBuilder - extends ShellBuilder + extends AbstractContinuumBuilder + implements ContinuumBuilder { public final static String CONFIGURATION_GOALS = "goals"; public final static String ID = "maven2"; /** @requirement */ + private ShellCommandHelper shellCommandHelper; + + /** @requirement */ private MavenBuilderHelper builderHelper; /** @configuration */ @@ -48,31 +55,51 @@ // ContinuumBuilder Implementation // ---------------------------------------------------------------------- - public ContinuumProject createProjectFromMetadata( URL metadata ) + public ContinuumBuildResult build( ContinuumProject project ) throws ContinuumException { - return builderHelper.createProjectFromMetadata( metadata ); - } + File workingDirectory = new File( project.getWorkingDirectory() ); - public void updateProjectFromCheckOut( File workingDirectory, ContinuumProject project ) - throws ContinuumException - { - builderHelper.updateProjectFromMetadata( workingDirectory, project ); - } + ExecutionResult executionResult; - // ---------------------------------------------------------------------- - // ShellBuilder Implementation - // ---------------------------------------------------------------------- + String[] arguments = getArguments( project ); + + try + { + executionResult = shellCommandHelper.executeShellCommand( workingDirectory, + executable, + arguments ); + } + catch ( Exception e ) + { + throw new ContinuumException( "Error while executing shell command.", e ); + } + + boolean success = executionResult.getExitCode() == 0; - protected boolean prependWorkingDirectoryIfMissing() + MavenTwoBuildResult result = new MavenTwoBuildResult(); + + result.setSuccess( success ); + + result.setStandardOutput( executionResult.getStandardOutput() ); + + result.setStandardError( executionResult.getStandardError() ); + + result.setExitCode( executionResult.getExitCode() ); + + return result; + } + + public ContinuumProject createProjectFromMetadata( URL metadata ) + throws ContinuumException { - return false; + return builderHelper.createProjectFromMetadata( metadata ); } - protected String getExecutable( ContinuumProject project ) + public void updateProjectFromCheckOut( File workingDirectory, ContinuumProject project ) throws ContinuumException { - return executable; + builderHelper.updateProjectFromMetadata( workingDirectory, project ); } protected String[] getArguments( ContinuumProject project ) @@ -87,8 +114,6 @@ System.arraycopy( a, 0, arguments, 0, a.length ); System.arraycopy( goals, 0, arguments, a.length, goals.length ); - - System.err.println( "arguments: " + Arrays.asList( arguments ) ); return arguments; } Modified: maven/continuum/trunk/continuum-model/src/main/resources/continuum.mdo URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-model/src/main/resources/continuum.mdo?rev=168187&r1=168186&r2=168187&view=diff ============================================================================== --- maven/continuum/trunk/continuum-model/src/main/resources/continuum.mdo (original) +++ maven/continuum/trunk/continuum-model/src/main/resources/continuum.mdo Wed May 4 13:42:31 2005 @@ -15,7 +15,7 @@ | |--> <classes> - <class rootElement="true" stash.storable="true"> + <class rootElement="true" stash.storable="true"><!-- java.abstract="true" --> <name>ContinuumProject</name> <version>1.0.0</version> <fields> @@ -247,10 +247,8 @@ | | BuilderBuildResult | - | This class should be abstract. - | | --> - <class stash.storable="true"> + <class stash.storable="true"> <!-- java.abstract="true"--> <name>ContinuumBuildResult</name> <version>1.0.0</version> <fields> @@ -321,9 +319,9 @@ </field> </fields> </class> -<!-- + <class> - <name>Maven2BuildResult</name> + <name>MavenTwoBuildResult</name> <packageName>org.apache.maven.continuum.builder.maven.m2</packageName> <superClass>ContinuumBuildResult</superClass> <version>1.0.0</version> @@ -345,7 +343,7 @@ </field> </fields> </class> ---> + <class> <name>AntBuildResult</name> <packageName>org.apache.maven.continuum.builder.ant</packageName> @@ -375,7 +373,7 @@ | Scm Result | |--> - <class><!-- abstract --> + <class java.abstract="true"> <name>ScmResult</name> <packageName>org.apache.maven.continuum.scm</packageName> <version>1.0.0</version>