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

svn commit: r649337 - /continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java

Author: carlos
Date: Thu Apr 17 17:47:38 2008
New Revision: 649337

URL: http://svn.apache.org/viewvc?rev=649337&view=rev
Log:
Refactor

Modified:
    continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java

Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java?rev=649337&r1=649336&r2=649337&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java Thu Apr 17 17:47:38 2008
@@ -99,6 +99,26 @@
         this.resolveExecutable = resolveExecutable;
     }
 
+    public void setShellCommandHelper( ShellCommandHelper shellCommandHelper )
+    {
+        this.shellCommandHelper = shellCommandHelper;
+    }
+
+    public ShellCommandHelper getShellCommandHelper()
+    {
+        return shellCommandHelper;
+    }
+
+    public void setWorkingDirectoryService( WorkingDirectoryService workingDirectoryService )
+    {
+        this.workingDirectoryService = workingDirectoryService;
+    }
+
+    public WorkingDirectoryService getWorkingDirectoryService()
+    {
+        return workingDirectoryService;
+    }
+
     // ----------------------------------------------------------------------
     // Component Lifecycle
     // ----------------------------------------------------------------------
@@ -137,9 +157,11 @@
     //
     // ----------------------------------------------------------------------
 
-    protected ContinuumBuildExecutionResult executeShellCommand( Project project, String executable, String arguments,
-                                                                 File output, Map<String, String> environments )
-        throws ContinuumBuildExecutorException
+    /**
+     * Find the actual executable path to be used
+     * @param defaultExecutable 
+     */
+    protected String findExecutable( Project project, String executable, String defaultExecutable, boolean resolveExecutable, File workingDirectory )
     {
         // ----------------------------------------------------------------------
         // If we're not searching the path for the executable, prefix the
@@ -149,8 +171,6 @@
 
         String actualExecutable;
 
-        File workingDirectory = getWorkingDirectory( project );
-
         if ( !resolveExecutable )
         {
             actualExecutable = new File( workingDirectory, executable ).getAbsolutePath();
@@ -192,6 +212,19 @@
         {
             actualExecutable = executable;
         }
+        
+        return actualExecutable;
+    }
+
+    protected ContinuumBuildExecutionResult executeShellCommand( Project project, String executable, String arguments,
+                                                                 File output, Map<String, String> environments )
+        throws ContinuumBuildExecutorException
+    {
+
+        File workingDirectory = getWorkingDirectory( project );
+
+        String actualExecutable =
+            findExecutable( project, executable, defaultExecutable, resolveExecutable, workingDirectory );
 
         // ----------------------------------------------------------------------
         // Execute the build
@@ -199,9 +232,9 @@
 
         try
         {
-            ExecutionResult result = shellCommandHelper.executeShellCommand( workingDirectory, actualExecutable,
-                                                                             arguments, output, project.getId(),
-                                                                             environments );
+            ExecutionResult result =
+                getShellCommandHelper().executeShellCommand( workingDirectory, actualExecutable, arguments, output,
+                                                             project.getId(), environments );
 
             getLogger().info( "Exit code: " + result.getExitCode() );
 
@@ -298,12 +331,12 @@
 
     public boolean isBuilding( Project project )
     {
-        return project.getState() == ContinuumProjectState.BUILDING || shellCommandHelper.isRunning( project.getId() );
+        return project.getState() == ContinuumProjectState.BUILDING || getShellCommandHelper().isRunning( project.getId() );
     }
 
     public void killProcess( Project project )
     {
-        shellCommandHelper.killProcess( project.getId() );
+        getShellCommandHelper().killProcess( project.getId() );
     }
 
     public List getDeployableArtifacts( Project project, File workingDirectory, BuildDefinition buildDefinition )
@@ -315,7 +348,7 @@
 
     public File getWorkingDirectory( Project project )
     {
-        return workingDirectoryService.getWorkingDirectory( project );
+        return getWorkingDirectoryService().getWorkingDirectory( project );
     }
 
     public InstallationService getInstallationService()