You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by oc...@apache.org on 2009/01/13 04:00:37 UTC

svn commit: r734009 [3/8] - in /continuum/branches/continuum-parallel-builds: ./ continuum-api/src/main/java/org/apache/continuum/buildmanager/ continuum-api/src/main/java/org/apache/continuum/configuration/ continuum-api/src/main/java/org/apache/conti...

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/build/settings/DefaultSchedulesActivator.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/build/settings/DefaultSchedulesActivator.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/build/settings/DefaultSchedulesActivator.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/build/settings/DefaultSchedulesActivator.java Mon Jan 12 18:58:46 2009
@@ -32,7 +32,6 @@
 import org.apache.maven.continuum.scheduler.ContinuumPurgeJob;
 import org.apache.maven.continuum.scheduler.ContinuumSchedulerConstants;
 import org.apache.maven.continuum.store.ContinuumStoreException;
-import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.scheduler.AbstractJob;
 import org.codehaus.plexus.scheduler.Scheduler;
 import org.codehaus.plexus.util.StringUtils;
@@ -40,6 +39,8 @@
 import org.quartz.JobDataMap;
 import org.quartz.JobDetail;
 import org.quartz.SchedulerException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.text.ParseException;
 import java.util.Collection;
@@ -52,9 +53,10 @@
  * @plexus.component role="org.apache.maven.continuum.build.settings.SchedulesActivator"
  */
 public class DefaultSchedulesActivator
-    extends AbstractLogEnabled
     implements SchedulesActivator
 {
+    private Logger log = LoggerFactory.getLogger( DefaultSchedulesActivator.class );
+
     /**
      * @plexus.requirement
      */
@@ -86,7 +88,7 @@
     public void activateSchedules( Continuum continuum )
         throws SchedulesActivationException
     {
-        getLogger().info( "Activating schedules ..." );
+        log.info( "Activating schedules ..." );
 
         Collection<Schedule> schedules = scheduleDao.getAllSchedulesByName();
 
@@ -96,7 +98,7 @@
             {
                 // TODO: this can possibly be removed but it's here now to
                 // weed out any bugs
-                getLogger().info( "Not scheduling " + schedule.getName() );
+                log.info( "Not scheduling " + schedule.getName() );
 
                 continue;
             }
@@ -116,7 +118,7 @@
             }
             catch ( SchedulesActivationException e )
             {
-                getLogger().error( "Can't activate schedule '" + schedule.getName() + "'", e );
+                log.error( "Can't activate schedule '" + schedule.getName() + "'", e );
 
                 schedule.setActive( false );
 
@@ -136,7 +138,7 @@
     public void activateSchedule( Schedule schedule, Continuum continuum )
         throws SchedulesActivationException
     {
-        getLogger().info( "Activating schedule " + schedule.getName() );
+        log.info( "Activating schedule " + schedule.getName() );
 
         if ( isScheduleFromBuildJob( schedule ) )
         {
@@ -152,7 +154,7 @@
     public void unactivateSchedule( Schedule schedule, Continuum continuum )
         throws SchedulesActivationException
     {
-        getLogger().info( "Deactivating schedule " + schedule.getName() );
+        log.info( "Deactivating schedule " + schedule.getName() );
 
         unschedule( schedule, continuum );
     }
@@ -162,7 +164,7 @@
     {
         if ( !schedule.isActive() )
         {
-            getLogger().info( "Schedule \"" + schedule.getName() + "\" is disabled." );
+            log.info( "Schedule \"" + schedule.getName() + "\" is disabled." );
 
             return;
         }
@@ -171,7 +173,7 @@
 
         dataMap.put( "continuum", continuum );
 
-        dataMap.put( AbstractJob.LOGGER, getLogger() );
+        dataMap.put( AbstractJob.LOGGER, log );
 
         dataMap.put( ContinuumSchedulerConstants.SCHEDULE, schedule );
 
@@ -208,7 +210,7 @@
         {
             scheduler.scheduleJob( jobDetail, trigger );
 
-            getLogger().info( trigger.getName() + ": next fire time ->" + trigger.getNextFireTime() );
+            log.info( trigger.getName() + ": next fire time ->" + trigger.getNextFireTime() );
         }
         catch ( SchedulerException e )
         {
@@ -223,7 +225,7 @@
         {
             if ( schedule.isActive() )
             {
-                getLogger().info( "Stopping active schedule \"" + schedule.getName() + "\"." );
+                log.info( "Stopping active schedule \"" + schedule.getName() + "\"." );
 
                 scheduler.interruptSchedule( schedule.getName(), org.quartz.Scheduler.DEFAULT_GROUP );
             }

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/BuildProjectTaskExecutor.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/BuildProjectTaskExecutor.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/BuildProjectTaskExecutor.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/BuildProjectTaskExecutor.java Mon Jan 12 18:58:46 2009
@@ -20,7 +20,6 @@
  */
 
 import org.apache.maven.continuum.buildqueue.BuildProjectTask;
-import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.taskqueue.Task;
 import org.codehaus.plexus.taskqueue.execution.TaskExecutionException;
 import org.codehaus.plexus.taskqueue.execution.TaskExecutor;
@@ -30,7 +29,6 @@
  * @version $Id$
  */
 public class BuildProjectTaskExecutor
-    extends AbstractLogEnabled
     implements TaskExecutor
 {
     /**

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java Mon Jan 12 18:58:46 2009
@@ -45,8 +45,9 @@
 import org.apache.maven.scm.repository.ScmRepositoryException;
 import org.codehaus.plexus.action.ActionManager;
 import org.codehaus.plexus.action.ActionNotFoundException;
-import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.taskqueue.execution.TaskExecutionException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -60,9 +61,10 @@
  *      instantiation-strategy="per-lookup"
  */
 public class DefaultBuildController
-    extends AbstractLogEnabled
     implements BuildController
 {
+    private Logger log = LoggerFactory.getLogger( DefaultBuildController.class );
+
     /**
      * @plexus.requirement
      */
@@ -121,17 +123,17 @@
     public void build( int projectId, int buildDefinitionId, int trigger )
         throws TaskExecutionException
     {
-        getLogger().info( "Initializing build" );
+        log.info( "Initializing build" );
         BuildContext context = initializeBuildContext( projectId, buildDefinitionId, trigger );
 
         // ignore this if AlwaysBuild ?
         if ( !checkScmResult( context ) )
         {
-            getLogger().info( "Error updating from SCM, not building" );
+            log.info( "Error updating from SCM, not building" );
             return;
         }
         
-        getLogger().info( "Starting build of " + context.getProject().getName() );
+        log.info( "Starting build of " + context.getProject().getName() );
         startBuild( context );
 
         try
@@ -154,7 +156,7 @@
                 updateBuildResult( context, ContinuumUtils.throwableToString( e ) );
 
                 //just log the error but don't stop the build from progressing in order not to suppress any build result messages there
-                getLogger().error( "Error executing action update-project-from-working-directory '", e );
+                log.error( "Error executing action update-project-from-working-directory '", e );
             }
 
             performAction( "execute-builder", context );
@@ -391,7 +393,7 @@
 
         try
         {
-            getLogger().info( "Performing action " + actionName );
+            log.info( "Performing action " + actionName );
             actionManager.lookup( actionName ).execute( context.getActionContext() );
             return;
         }
@@ -430,7 +432,7 @@
         }
         catch ( TaskExecutionException e )
         {
-            getLogger().error( "Error updating build result after receiving the following exception: ", exception );
+            log.error( "Error updating build result after receiving the following exception: ", exception );
             throw e;
         }
 
@@ -443,17 +445,17 @@
         BuildDefinition buildDefinition = context.getBuildDefinition();
         if ( buildDefinition.isBuildFresh() )
         {
-            getLogger().info( "FreshBuild configured, building" );
+            log.info( "FreshBuild configured, building" );
             return true;
         }
         if ( buildDefinition.isAlwaysBuild() )
         {
-            getLogger().info( "AlwaysBuild configured, building" );
+            log.info( "AlwaysBuild configured, building" );
             return true;
         }
         if ( context.getOldBuildResult() == null )
         {
-            getLogger().info( "The project was never be built with the current build definition, building" );
+            log.info( "The project was never be built with the current build definition, building" );
             return true;
         }
 
@@ -463,13 +465,13 @@
         if ( project.getOldState() == ContinuumProjectState.ERROR ||
             context.getOldBuildResult().getState() == ContinuumProjectState.ERROR )
         {
-            getLogger().info( "Latest state was 'ERROR', building" );
+            log.info( "Latest state was 'ERROR', building" );
             return true;
         }
 
         if ( context.getTrigger() == ContinuumProjectState.TRIGGER_FORCED )
         {
-            getLogger().info( "The project build is forced, building" );
+            log.info( "The project build is forced, building" );
             return true;
         }
 
@@ -489,12 +491,12 @@
             {
                 if ( !context.getScmResult().getChanges().isEmpty() )
                 {
-                    getLogger().info(
+                    log.info(
                         "The project was not built because all changes are unknown (maybe local modifications or ignored files not defined in your SCM tool." );
                 }
                 else
                 {
-                    getLogger().info(
+                    log.info(
                         "The project was not built because no changes were detected in sources since the last build." );
                 }
             }
@@ -502,7 +504,7 @@
             // Check dependencies changes
             if ( context.getModifiedDependencies() != null && !context.getModifiedDependencies().isEmpty() )
             {
-                getLogger().info( "Found dependencies changes, building" );
+                log.info( "Found dependencies changes, building" );
                 shouldBuild = true;
             }
         }
@@ -527,7 +529,7 @@
 
         if ( shouldBuild )
         {
-            getLogger().info( "Changes found in the current project, building" );
+            log.info( "Changes found in the current project, building" );
         }
         else
         {
@@ -543,7 +545,7 @@
             {
                 throw new TaskExecutionException( "Error storing project", e );
             }
-            getLogger().info( "No changes in the current project, not building" );
+            log.info( "No changes in the current project, not building" );
 
         }
 
@@ -629,19 +631,19 @@
                                                                                            context.getOldBuildResult().getEndTime() );
                     if ( buildResults != null && !buildResults.isEmpty() )
                     {
-                        getLogger().debug( "Dependency changed: " + dep.getGroupId() + ":" + dep.getArtifactId() + ":" +
+                        log.debug( "Dependency changed: " + dep.getGroupId() + ":" + dep.getArtifactId() + ":" +
                             dep.getVersion() );
                         modifiedDependencies.add( dep );
                     }
                     else
                     {
-                        getLogger().debug( "Dependency not changed: " + dep.getGroupId() + ":" + dep.getArtifactId() +
+                        log.debug( "Dependency not changed: " + dep.getGroupId() + ":" + dep.getArtifactId() +
                             ":" + dep.getVersion() );
                     }
                 }
                 else
                 {
-                    getLogger().debug( "Skip non Continuum project: " + dep.getGroupId() + ":" + dep.getArtifactId() +
+                    log.debug( "Skip non Continuum project: " + dep.getGroupId() + ":" + dep.getArtifactId() +
                         ":" + dep.getVersion() );
                 }
             }
@@ -651,7 +653,7 @@
         }
         catch ( ContinuumStoreException e )
         {
-            getLogger().warn( "Can't get the project dependencies", e );
+            log.warn( "Can't get the project dependencies", e );
         }
     }
 

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/builddefinition/DefaultBuildDefinitionService.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/builddefinition/DefaultBuildDefinitionService.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/builddefinition/DefaultBuildDefinitionService.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/builddefinition/DefaultBuildDefinitionService.java Mon Jan 12 18:58:46 2009
@@ -34,9 +34,10 @@
 import org.apache.maven.continuum.model.project.Schedule;
 import org.apache.maven.continuum.store.ContinuumObjectNotFoundException;
 import org.apache.maven.continuum.store.ContinuumStoreException;
-import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -50,9 +51,10 @@
  * @since 15 sept. 07
  */
 public class DefaultBuildDefinitionService
-    extends AbstractLogEnabled
     implements BuildDefinitionService, Initializable
 {
+    private Logger log = LoggerFactory.getLogger( DefaultBuildDefinitionService.class );
+
     /**
      * @plexus.configuration default-value=""
      */
@@ -273,7 +275,7 @@
         {
             return template;
         }
-        getLogger().info( "create default AntBuildDefinitionTemplate" );
+        log.info( "create default AntBuildDefinitionTemplate" );
         template = new BuildDefinitionTemplate();
         template.setContinuumDefault( true );
         template.setName( "Default Ant Template" );
@@ -308,10 +310,10 @@
             getContinuumDefaultWithType( ContinuumBuildExecutorConstants.MAVEN_ONE_BUILD_EXECUTOR );
         if ( template != null )
         {
-            getLogger().debug( "found default maven template " + template.getType() );
+            log.debug( "found default maven template " + template.getType() );
             return template;
         }
-        getLogger().info( "create default MavenOneBuildDefinitionTemplate" );
+        log.info( "create default MavenOneBuildDefinitionTemplate" );
         template = new BuildDefinitionTemplate();
         template.setContinuumDefault( true );
         template.setName( "Default Maven 1 Template" );
@@ -349,7 +351,7 @@
         {
             return template;
         }
-        getLogger().info( "create default MavenTwoBuildDefinitionTemplate" );
+        log.info( "create default MavenTwoBuildDefinitionTemplate" );
         template = new BuildDefinitionTemplate();
         template.setContinuumDefault( true );
         template.setName( "Default Maven 2 Template" );
@@ -387,7 +389,7 @@
         {
             return template;
         }
-        getLogger().info( "create default ShellBuildDefinitionTemplate" );
+        log.info( "create default ShellBuildDefinitionTemplate" );
         template = new BuildDefinitionTemplate();
         template.setContinuumDefault( true );
         template.setName( "Default Shell Template" );

Propchange: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/builddefinition/DefaultBuildDefinitionService.java
------------------------------------------------------------------------------
--- svn:eol-style (original)
+++ svn:eol-style Mon Jan 12 18:58:46 2009
@@ -1 +1 @@
-LF
+native

Propchange: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/builddefinition/DefaultBuildDefinitionService.java
            ('svn:executable' removed)

Propchange: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/builddefinition/DefaultBuildDefinitionService.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Mon Jan 12 18:58:46 2009
@@ -1 +1 @@
-URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id
+Author Date Id Revision

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/buildqueue/evaluator/BuildProjectTaskViabilityEvaluator.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/buildqueue/evaluator/BuildProjectTaskViabilityEvaluator.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/buildqueue/evaluator/BuildProjectTaskViabilityEvaluator.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/buildqueue/evaluator/BuildProjectTaskViabilityEvaluator.java Mon Jan 12 18:58:46 2009
@@ -21,7 +21,6 @@
 
 import org.apache.maven.continuum.buildqueue.BuildProjectTask;
 import org.apache.maven.continuum.project.ContinuumProjectState;
-import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.taskqueue.TaskViabilityEvaluator;
 
 import java.util.ArrayList;
@@ -36,7 +35,6 @@
  * @version $Id$
  */
 public class BuildProjectTaskViabilityEvaluator
-    extends AbstractLogEnabled
     implements TaskViabilityEvaluator
 {
     /**

Propchange: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractBuildDefinitionContinuumAction.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Mon Jan 12 18:58:46 2009
@@ -1 +1 @@
-"Author Date Id Revision"
+Author Date Id Revision

Propchange: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddAssignableRolesAction.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddBuildDefinitionToProjectAction.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Mon Jan 12 18:58:46 2009
@@ -1 +1 @@
-"Author Date Id Revision"
+Author Date Id Revision

Propchange: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddBuildDefinitionToProjectGroupAction.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Mon Jan 12 18:58:46 2009
@@ -1 +1 @@
-"Author Date Id Revision"
+Author Date Id Revision

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CleanWorkingDirectoryAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CleanWorkingDirectoryAction.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CleanWorkingDirectoryAction.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CleanWorkingDirectoryAction.java Mon Jan 12 18:58:46 2009
@@ -30,7 +30,7 @@
 
 /**
  * @author Jesse McConnell <jm...@apache.org>
- * @version $Id:$
+ * @version $Id$
  * @plexus.component role="org.codehaus.plexus.action.Action"
  * role-hint="clean-working-directory"
  */

Propchange: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CleanWorkingDirectoryAction.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateBuildProjectTaskAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateBuildProjectTaskAction.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateBuildProjectTaskAction.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateBuildProjectTaskAction.java Mon Jan 12 18:58:46 2009
@@ -35,6 +35,7 @@
 
 /**
  * @author <a href="mailto:ctan@apache.org">Maria Catherine Tan</a>
+ * @version $Id$
  * @plexus.component role="org.codehaus.plexus.action.Action" role-hint="create-build-project-task"
  */
 public class CreateBuildProjectTaskAction

Propchange: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateBuildProjectTaskAction.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateBuildProjectTaskAction.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateProjectsFromMetadataAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateProjectsFromMetadataAction.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateProjectsFromMetadataAction.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateProjectsFromMetadataAction.java Mon Jan 12 18:58:46 2009
@@ -101,11 +101,18 @@
 
         try
         {
+            BuildDefinitionTemplate buildDefinitionTemplate = getBuildDefinitionTemplate( context );
+            if ( buildDefinitionTemplate == null )
+            {
+                buildDefinitionTemplate = projectBuilder.getDefaultBuildDefinitionTemplate();
+            }            
             if ( !curl.startsWith( "http" ) )
             {
                 url = new URL( curl );
 
-                result = projectBuilder.buildProjectsFromMetadata( url, null, null );
+                result = projectBuilder.buildProjectsFromMetadata( url, null, null, loadRecursiveProjects,
+                                                                   buildDefinitionTemplate );
+
             }
             else
             {
@@ -141,11 +148,7 @@
 
                 if ( urlValidator.isValid( curl ) )
                 {
-                    BuildDefinitionTemplate buildDefinitionTemplate = getBuildDefinitionTemplate( context );
-                    if ( buildDefinitionTemplate == null )
-                    {
-                        buildDefinitionTemplate = projectBuilder.getDefaultBuildDefinitionTemplate();
-                    }
+
                     result = projectBuilder.buildProjectsFromMetadata( url, username, password, loadRecursiveProjects,
                                                                        buildDefinitionTemplate );
 

Propchange: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/DeployArtifactContinuumAction.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Mon Jan 12 18:58:46 2009
@@ -1 +1 @@
-"Author Date Id Revision"
+Author Date Id Revision

Propchange: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/RemoveAssignableRolesAction.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Mon Jan 12 18:58:46 2009
@@ -1 +1 @@
-"Author Date Id Revision"
+Author Date Id Revision

Propchange: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/RemoveBuildDefinitionFromProjectAction.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Mon Jan 12 18:58:46 2009
@@ -1 +1 @@
-"Author Date Id Revision"
+Author Date Id Revision

Propchange: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/RemoveBuildDefinitionFromProjectGroupAction.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Mon Jan 12 18:58:46 2009
@@ -1 +1 @@
-"Author Date Id Revision"
+Author Date Id Revision

Propchange: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateBuildDefinitionFromProjectAction.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Mon Jan 12 18:58:46 2009
@@ -1 +1 @@
-"Author Date Id Revision"
+Author Date Id Revision

Propchange: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateBuildDefinitionFromProjectGroupAction.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Mon Jan 12 18:58:46 2009
@@ -1 +1 @@
-"Author Date Id Revision"
+Author Date Id Revision

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java Mon Jan 12 18:58:46 2009
@@ -31,11 +31,12 @@
 import org.apache.maven.continuum.project.ContinuumProjectState;
 import org.apache.maven.continuum.utils.WorkingDirectoryService;
 import org.codehaus.plexus.commandline.ExecutableResolver;
-import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.cli.CommandLineException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.util.Collections;
@@ -49,9 +50,10 @@
  * @version $Id$
  */
 public abstract class AbstractBuildExecutor
-    extends AbstractLogEnabled
     implements ContinuumBuildExecutor, Initializable
 {
+    protected Logger log = LoggerFactory.getLogger( getClass() );
+    
     private static final String SUDO_EXECUTABLE = "sudo";
 
     private static final String CHROOT_EXECUTABLE = "chroot";
@@ -152,7 +154,7 @@
         {
             if ( StringUtils.isEmpty( defaultExecutable ) )
             {
-                getLogger().warn( "The default executable for build executor '" + id + "' is not set. " +
+                log.warn( "The default executable for build executor '" + id + "' is not set. " +
                     "This will cause a problem unless the project has a executable configured." );
             }
             else
@@ -161,12 +163,12 @@
 
                 if ( resolvedExecutable == null )
                 {
-                    getLogger().warn(
+                    log.warn(
                         "Could not find the executable '" + defaultExecutable + "' in the " + "path '" + path + "'." );
                 }
                 else
                 {
-                    getLogger().info( "Resolved the executable '" + defaultExecutable + "' to " + "'" +
+                    log.info( "Resolved the executable '" + defaultExecutable + "' to " + "'" +
                         resolvedExecutable.getAbsolutePath() + "'." );
                 }
             }
@@ -211,11 +213,11 @@
 
             if ( e == null )
             {
-                getLogger().warn( "Could not find the executable '" + executable + "' in this path: " );
+                log.warn( "Could not find the executable '" + executable + "' in this path: " );
 
                 for ( String element : path )
                 {
-                    getLogger().warn( element );
+                    log.warn( element );
                 }
 
                 actualExecutable = defaultExecutable;
@@ -278,7 +280,7 @@
                                                                                   arguments, output, project.getId(),
                                                                                   environments );
 
-            getLogger().info( "Exit code: " + result.getExitCode() );
+            log.info( "Exit code: " + result.getExitCode() );
 
             return new ContinuumBuildExecutionResult( output, result.getExitCode() );
         }

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/execution/manager/DefaultBuildExecutorManager.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/execution/manager/DefaultBuildExecutorManager.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/execution/manager/DefaultBuildExecutorManager.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/execution/manager/DefaultBuildExecutorManager.java Mon Jan 12 18:58:46 2009
@@ -21,8 +21,9 @@
 
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.execution.ContinuumBuildExecutor;
-import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.HashMap;
 import java.util.Iterator;
@@ -35,9 +36,10 @@
  * role-hint"default"
  */
 public class DefaultBuildExecutorManager
-    extends AbstractLogEnabled
     implements BuildExecutorManager, Initializable
 {
+    private Logger log = LoggerFactory.getLogger( DefaultBuildExecutorManager.class );
+
     /**
      * @plexus.requirement role="org.apache.maven.continuum.execution.ContinuumBuildExecutor"
      */
@@ -56,15 +58,15 @@
 
         if ( executors.size() == 0 )
         {
-            getLogger().warn( "No build executors defined." );
+            log.warn( "No build executors defined." );
         }
         else
         {
-            getLogger().info( "Build executors:" );
+            log.info( "Build executors:" );
 
             for ( Iterator it = executors.keySet().iterator(); it.hasNext(); )
             {
-                getLogger().info( "  " + it.next().toString() );
+                log.info( "  " + it.next().toString() );
             }
         }
     }

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m1/DefaultMavenOneMetadataHelper.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m1/DefaultMavenOneMetadataHelper.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m1/DefaultMavenOneMetadataHelper.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m1/DefaultMavenOneMetadataHelper.java Mon Jan 12 18:58:46 2009
@@ -25,11 +25,12 @@
 import org.apache.maven.continuum.model.project.ProjectNotifier;
 import org.apache.maven.continuum.notification.AbstractContinuumNotifier;
 import org.apache.maven.continuum.project.builder.ContinuumProjectBuildingResult;
-import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 import org.codehaus.plexus.util.xml.Xpp3DomBuilder;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.FileNotFoundException;
@@ -46,9 +47,10 @@
  * role-hint="default"
  */
 public class DefaultMavenOneMetadataHelper
-    extends AbstractLogEnabled
     implements MavenOneMetadataHelper
 {
+    private Logger log = LoggerFactory.getLogger( DefaultMavenOneMetadataHelper.class );
+
     // ----------------------------------------------------------------------
     // MavenOneMetadataHelper Implementation
     // ----------------------------------------------------------------------
@@ -75,7 +77,7 @@
         {
             result.addError( ContinuumProjectBuildingResult.ERROR_XML_PARSE );
 
-            getLogger().info( "Error while reading maven POM (" + e.getMessage() + ").", e );
+            log.info( "Error while reading maven POM (" + e.getMessage() + ").", e );
 
             return;
         }
@@ -83,7 +85,7 @@
         {
             result.addError( ContinuumProjectBuildingResult.ERROR_POM_NOT_FOUND );
 
-            getLogger().info( "Error while reading maven POM (" + e.getMessage() + ").", e );
+            log.info( "Error while reading maven POM (" + e.getMessage() + ").", e );
 
             return;
         }
@@ -91,7 +93,7 @@
         {
             result.addError( ContinuumProjectBuildingResult.ERROR_UNKNOWN );
 
-            getLogger().info( "Error while reading maven POM (" + e.getMessage() + ").", e );
+            log.info( "Error while reading maven POM (" + e.getMessage() + ").", e );
 
             return;
         }
@@ -108,7 +110,7 @@
         {
             result.addError( ContinuumProjectBuildingResult.ERROR_EXTEND );
 
-            getLogger().info( "Cannot use a POM with an 'extend' element." );
+            log.info( "Cannot use a POM with an 'extend' element." );
 
             return;
         }
@@ -137,7 +139,7 @@
             {
                 result.addError( ContinuumProjectBuildingResult.ERROR_MISSING_GROUPID );
 
-                getLogger().info( "Missing 'groupId' element in the POM." );
+                log.info( "Missing 'groupId' element in the POM." );
 
                 // Do not throw an exception or return here, gather up as many results as possible first.
             }
@@ -148,7 +150,7 @@
             {
                 result.addError( ContinuumProjectBuildingResult.ERROR_MISSING_ARTIFACTID );
 
-                getLogger().info( "Missing 'artifactId' element in the POM." );
+                log.info( "Missing 'artifactId' element in the POM." );
 
                 // Do not throw an exception or return here, gather up as many results as possible first.
             }

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/DefaultMavenBuilderHelper.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/DefaultMavenBuilderHelper.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/DefaultMavenBuilderHelper.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/DefaultMavenBuilderHelper.java Mon Jan 12 18:58:46 2009
@@ -59,13 +59,14 @@
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 import org.codehaus.plexus.context.Context;
 import org.codehaus.plexus.context.ContextException;
-import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.IOException;
@@ -81,9 +82,10 @@
  * @plexus.component role="org.apache.maven.continuum.execution.maven.m2.MavenBuilderHelper" role-hint="default"
  */
 public class DefaultMavenBuilderHelper
-    extends AbstractLogEnabled
     implements MavenBuilderHelper, Contextualizable, Initializable
 {
+    private Logger log = LoggerFactory.getLogger( DefaultMavenBuilderHelper.class );
+
     /**
      * @plexus.requirement
      */
@@ -373,7 +375,7 @@
 
             Settings settings = getSettings();
 
-            if ( getLogger().isDebugEnabled() )
+            if ( log.isDebugEnabled() )
             {
                 writeSettings( settings );
             }
@@ -382,7 +384,7 @@
 
             project = projectBuilder.build( file, getLocalRepository(), profileManager, false );
 
-            if ( getLogger().isDebugEnabled() )
+            if ( log.isDebugEnabled() )
             {
                 writePom( project );
                 writeActiveProfileStatement( project );
@@ -434,7 +436,7 @@
 
             file.delete();
 
-            getLogger().error( msg );
+            log.error( msg );
 
             return null;
         }
@@ -447,7 +449,7 @@
 
             file.delete();
 
-            getLogger().error( msg );
+            log.error( msg );
 
             return null;
         }
@@ -463,7 +465,7 @@
         {
             result.addError( ContinuumProjectBuildingResult.ERROR_MISSING_SCM, getProjectName( project ) );
 
-            getLogger().error( "Missing 'scm' element in the " + getProjectName( project ) + " POM." );
+            log.error( "Missing 'scm' element in the " + getProjectName( project ) + " POM." );
 
             return null;
         }
@@ -474,7 +476,7 @@
         {
             result.addError( ContinuumProjectBuildingResult.ERROR_MISSING_SCM_CONNECTION, getProjectName( project ) );
 
-            getLogger().error(
+            log.error(
                 "Missing 'connection' element in the 'scm' element in the " + getProjectName( project ) + " POM." );
 
             return null;
@@ -629,11 +631,11 @@
             message.append( "\n************************************************************************************" );
             message.append( "\n\n" );
 
-            getLogger().debug( message.toString() );
+            log.debug( message.toString() );
         }
         catch ( IOException e )
         {
-            getLogger().warn( "Cannot serialize Settings to XML.", e );
+            log.warn( "Cannot serialize Settings to XML.", e );
         }
     }
 
@@ -659,11 +661,11 @@
             message.append( "\n************************************************************************************" );
             message.append( "\n\n" );
 
-            getLogger().debug( message.toString() );
+            log.debug( message.toString() );
         }
         catch ( IOException e )
         {
-            getLogger().warn( "Cannot serialize POM to XML.", e );
+            log.warn( "Cannot serialize POM to XML.", e );
         }
     }
 
@@ -699,7 +701,7 @@
         message.append( "\n************************************************************************************" );
         message.append( "\n\n" );
 
-        getLogger().debug( message.toString() );
+        log.debug( message.toString() );
     }
 
     /**

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenTwoBuildExecutor.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenTwoBuildExecutor.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenTwoBuildExecutor.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenTwoBuildExecutor.java Mon Jan 12 18:58:46 2009
@@ -25,7 +25,6 @@
 import java.util.Collections;
 import java.util.Enumeration;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
@@ -349,7 +348,7 @@
         }
         catch ( ConfigurationException e )
         {
-            getLogger().info( "error on surefire backup directory creation skip backup " + e.getMessage(), e );
+            log.info( "error on surefire backup directory creation skip backup " + e.getMessage(), e );
         }
         backupTestFiles( getWorkingDirectory( project ), backupDirectory );
     }
@@ -365,7 +364,7 @@
         String[] testResultFiles = scanner.getIncludedFiles();
         if ( testResultFiles.length > 0 )
         {
-            getLogger().info( "Backup surefire files." );
+            log.info( "Backup surefire files." );
         }
         for ( String testResultFile : testResultFiles )
         {
@@ -379,7 +378,7 @@
             }
             catch ( IOException e )
             {
-                getLogger().info( "failed to backup unit report file " + xmlFile.getPath() );
+                log.info( "failed to backup unit report file " + xmlFile.getPath() );
             }
         }
     }
@@ -394,15 +393,17 @@
         throws ContinuumBuildExecutorException
     {
         //Check if it's a recursive build
-        boolean isRecursive = StringUtils.isNotEmpty( buildDefinition.getArguments() ) && !(
-            buildDefinition.getArguments().indexOf( "-N" ) < 0 ||
-                buildDefinition.getArguments().indexOf( "--non-recursive" ) < 0 );
-
-        if ( isRecursive )
+        boolean isRecursive = false;
+        if (StringUtils.isNotEmpty( buildDefinition.getArguments() ) )
+            {
+            isRecursive =  buildDefinition.getArguments().indexOf( "-N" ) < 0 &&
+                buildDefinition.getArguments().indexOf( "--non-recursive" ) < 0 ;
+            }
+        if ( isRecursive && changes != null && !changes.isEmpty() )
         {
-            if ( getLogger().isDebugEnabled() )
+            if ( log.isInfoEnabled() )
             {
-                getLogger().debug( "isRecursive --> shouldBuild = true" );
+                log.info( "recursive build and changes found --> building" );
             }
             return true;
         }
@@ -412,15 +413,15 @@
         //CONTINUUM-1815: additional check for projects recently released
         if ( !continuumProject.getVersion().equals( project.getVersion() ) )
         {
-            getLogger().info( "Found changes in project's version ( maybe project was recently released ), building" );
+            log.info( "Found changes in project's version ( maybe project was recently released ), building" );
             return true;
         }
         
         if ( changes.isEmpty() )
         {
-            if ( getLogger().isDebugEnabled() )
+            if ( log.isInfoEnabled() )
             {
-                getLogger().info( "Found no changes, not building" );
+                log.info( "Found no changes, not building" );
             }
             return false;
         }
@@ -438,15 +439,28 @@
         while ( i <= files.size() - 1 )
         {
             ChangeFile file = files.get( i );
+            if ( log.isDebugEnabled() )
+            {
+                log.debug( "changeFile.name " + file.getName() );
+                log.debug( "check in modules " + modules );
+            }
             boolean found = false;
             for ( String module : modules )
             {
-                if ( file.getName().indexOf( module ) > 0 )
+                if ( file.getName().indexOf( module ) >= 0 )
                 {
+                    if ( log.isDebugEnabled() )
+                    {
+                        log.debug( "changeFile.name " + file.getName() + " removed because in a module" );
+                    }                    
                     files.remove( file );
                     found = true;
                     break;
                 }
+                if (log.isDebugEnabled())
+                {
+                    log.debug( "no remving file " + file.getName() + " not in module " + module );
+                }
             }
             if ( !found )
             {
@@ -458,12 +472,12 @@
 
         if ( !shouldBuild )
         {
-            getLogger().info( "Changes are only in sub-modules." );
+            log.info( "Changes are only in sub-modules." );
         }
 
-        if ( getLogger().isDebugEnabled() )
+        if ( log.isDebugEnabled() )
         {
-            getLogger().debug( "shoulbuild = " + shouldBuild );
+            log.debug( "shoulbuild = " + shouldBuild );
         }
         return shouldBuild;
     }

Propchange: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/SettingsConfigurationException.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Mon Jan 12 18:58:46 2009
@@ -1 +1 @@
-"Author Date Id Revision"
+Author Date Id Revision

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java Mon Jan 12 18:58:46 2009
@@ -34,9 +34,10 @@
 import org.apache.maven.continuum.store.ContinuumStoreException;
 import org.apache.maven.settings.MavenSettingsBuilder;
 import org.apache.maven.settings.Settings;
-import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 import org.jpox.SchemaTool;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 
@@ -48,9 +49,10 @@
  * role-hint="default"
  */
 public class DefaultContinuumInitializer
-    extends AbstractLogEnabled
     implements ContinuumInitializer
 {
+    private Logger log = LoggerFactory.getLogger( DefaultContinuumInitializer.class );
+
     // ----------------------------------------------------------------------
     //  Requirements
     // ----------------------------------------------------------------------
@@ -92,11 +94,11 @@
     public void initialize()
         throws ContinuumInitializationException
     {
-        getLogger().info( "Continuum initializer running ..." );
+        log.info( "Continuum initializer running ..." );
 
-        if ( getLogger().isDebugEnabled() )
+        if ( log.isDebugEnabled() )
         {
-            getLogger().debug( "Dumping JPOX/JDO Schema Details ..." );
+            log.debug( "Dumping JPOX/JDO Schema Details ..." );
             try
             {
                 SchemaTool.outputDBInfo( null, true );
@@ -104,7 +106,7 @@
             }
             catch ( Exception e )
             {
-                getLogger().debug( "Error while dumping the database schema", e );
+                log.debug( "Error while dumping the database schema", e );
             }
         }
 
@@ -132,7 +134,7 @@
         {
             throw new ContinuumInitializationException( "Can't get default build definition", e );
         }
-        getLogger().info( "Continuum initializer end running ..." );
+        log.info( "Continuum initializer end running ..." );
     }
 
 
@@ -143,12 +145,12 @@
         try
         {
             group = projectGroupDao.getProjectGroupByGroupId( Continuum.DEFAULT_PROJECT_GROUP_GROUP_ID );
-            getLogger().info( "Default Project Group exists" );
+            log.info( "Default Project Group exists" );
         }
         catch ( ContinuumObjectNotFoundException e )
         {
 
-            getLogger().info( "create Default Project Group" );
+            log.info( "create Default Project Group" );
 
             group = new ProjectGroup();
 
@@ -180,7 +182,7 @@
 
         if ( repository == null )
         {
-            getLogger().info( "create Default Local Repository" );
+            log.info( "create Default Local Repository" );
 
             repository = new LocalRepository();
 
@@ -194,7 +196,7 @@
         }
         else if ( !repository.getLocation().equals( settings.getLocalRepository() ) )
         {
-            getLogger().info( "updating location of Default Local Repository" );
+            log.info( "updating location of Default Local Repository" );
 
             repository.setLocation( settings.getLocalRepository() );
 

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java Mon Jan 12 18:58:46 2009
@@ -772,7 +772,10 @@
 
             message.setSentDate( new Date() );
 
-            javaMailSender.send( message );
+            if ( message.getAllRecipients() != null && ( (Address[]) message.getAllRecipients() ).length > 0 )
+            {
+                javaMailSender.send( message );
+            }
         }
         catch ( AddressException ex )
         {
@@ -873,7 +876,10 @@
 
             message.setSentDate( new Date() );
 
-            javaMailSender.send( message );
+            if ( message.getAllRecipients() != null && ( (Address[]) message.getAllRecipients() ).length > 0 )
+            {
+                javaMailSender.send( message );
+            }
         }
         catch ( AddressException ex )
         {

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/AbstractContinuumProjectBuilder.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/AbstractContinuumProjectBuilder.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/AbstractContinuumProjectBuilder.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/AbstractContinuumProjectBuilder.java Mon Jan 12 18:58:46 2009
@@ -27,11 +27,13 @@
 import org.apache.http.auth.UsernamePasswordCredentials;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.conn.ClientConnectionManager;
+import org.apache.http.conn.ConnectTimeoutException;
 import org.apache.http.conn.params.ConnManagerPNames;
 import org.apache.http.conn.params.ConnPerRouteBean;
 import org.apache.http.conn.scheme.PlainSocketFactory;
 import org.apache.http.conn.scheme.Scheme;
 import org.apache.http.conn.scheme.SchemeRegistry;
+import org.apache.http.conn.scheme.SocketFactory;
 import org.apache.http.conn.ssl.SSLSocketFactory;
 import org.apache.http.impl.client.DefaultHttpClient;
 import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
@@ -39,19 +41,22 @@
 import org.apache.http.params.HttpParams;
 import org.apache.http.params.HttpProtocolParams;
 import org.apache.http.util.EntityUtils;
-import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.FileWriter;
 import java.io.IOException;
 import java.io.InputStream;
+import java.net.InetAddress;
 import java.net.MalformedURLException;
+import java.net.Socket;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
@@ -63,14 +68,13 @@
  * @version $Id$
  */
 public abstract class AbstractContinuumProjectBuilder
-    extends AbstractLogEnabled
     implements ContinuumProjectBuilder, Initializable
 {
-
     private static final String TMP_DIR = System.getProperty( "java.io.tmpdir" );
 
-    private DefaultHttpClient httpClient;
+    protected Logger log = LoggerFactory.getLogger( AbstractContinuumProjectBuilder.class );
 
+    private DefaultHttpClient httpClient;
 
     public void initialize()
         throws InitializationException
@@ -79,11 +83,7 @@
         // http scheme
         schemeRegistry.register( new Scheme( "http", PlainSocketFactory.getSocketFactory(), 80 ) );
         // https scheme
-        SSLSocketFactory sslSocketFactory = SSLSocketFactory.getSocketFactory();
-
-        // ignore cert
-        sslSocketFactory.setHostnameVerifier( SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER );
-        schemeRegistry.register( new Scheme( "https", sslSocketFactory, 443 ) );
+        schemeRegistry.register( new Scheme( "https", new EasySSLSocketFactory(), 443 ) );
 
         HttpParams params = new BasicHttpParams();
         // TODO put this values to a configuration way ???
@@ -94,8 +94,6 @@
         ClientConnectionManager cm = new ThreadSafeClientConnManager( params, schemeRegistry );
 
         httpClient = new DefaultHttpClient( cm, params );
-
-
     }
 
     protected File createMetadataFile( URL metadata, String username, String password,
@@ -107,7 +105,7 @@
         {
             url = hidePasswordInUrl( url );
         }
-        getLogger().info( "Downloading " + url );
+        log.info( "Downloading " + url );
 
         InputStream is = null;
 
@@ -134,11 +132,11 @@
                 case 200:
                     break;
                 case 401:
-                    getLogger().error( "Error adding project: Unauthorized " + metadata, null );
+                    log.error( "Error adding project: Unauthorized " + metadata );
                     result.addError( ContinuumProjectBuildingResult.ERROR_UNAUTHORIZED );
                     return null;
                 default:
-                    getLogger().warn( "skip non handled http return code " + res );
+                    log.warn( "skip non handled http return code " + res );
             }
             is = IOUtils.toInputStream( EntityUtils.toString( httpResponse.getEntity(), EntityUtils
                 .getContentCharSet( httpResponse.getEntity() ) ) );
@@ -243,32 +241,32 @@
         }
         catch ( FileNotFoundException e )
         {
-            getLogger().info( "URL not found: " + metadata, e );
+            log.info( "URL not found: " + metadata, e );
             result.addError( ContinuumProjectBuildingResult.ERROR_POM_NOT_FOUND );
         }
         catch ( MalformedURLException e )
         {
-            getLogger().info( "Malformed URL: " + metadata, e );
+            log.info( "Malformed URL: " + metadata, e );
             result.addError( ContinuumProjectBuildingResult.ERROR_MALFORMED_URL );
         }
         catch ( URISyntaxException e )
         {
-            getLogger().info( "Malformed URL: " + metadata, e );
+            log.info( "Malformed URL: " + metadata, e );
             result.addError( ContinuumProjectBuildingResult.ERROR_MALFORMED_URL );
         }
         catch ( UnknownHostException e )
         {
-            getLogger().info( "Unknown host: " + metadata, e );
+            log.info( "Unknown host: " + metadata, e );
             result.addError( ContinuumProjectBuildingResult.ERROR_UNKNOWN_HOST );
         }
         catch ( IOException e )
         {
-            getLogger().warn( "Could not download the URL: " + metadata, e );
+            log.warn( "Could not download the URL: " + metadata, e );
             result.addError( ContinuumProjectBuildingResult.ERROR_UNKNOWN );
         }
         catch ( HttpException e )
         {
-            getLogger().warn( "Could not download the URL: " + metadata, e );
+            log.warn( "Could not download the URL: " + metadata, e );
             result.addError( ContinuumProjectBuildingResult.ERROR_UNKNOWN );
         }
         return null;

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/manager/DefaultContinuumProjectBuilderManager.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/manager/DefaultContinuumProjectBuilderManager.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/manager/DefaultContinuumProjectBuilderManager.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/manager/DefaultContinuumProjectBuilderManager.java Mon Jan 12 18:58:46 2009
@@ -20,7 +20,6 @@
  */
 
 import org.apache.maven.continuum.project.builder.ContinuumProjectBuilder;
-import org.codehaus.plexus.logging.AbstractLogEnabled;
 
 import java.util.Map;
 
@@ -31,7 +30,6 @@
  * role-hint="default"
  */
 public class DefaultContinuumProjectBuilderManager
-    extends AbstractLogEnabled
     implements ContinuumProjectBuilderManager
 {
     /**

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenOneContinuumProjectBuilder.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenOneContinuumProjectBuilder.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenOneContinuumProjectBuilder.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenOneContinuumProjectBuilder.java Mon Jan 12 18:58:46 2009
@@ -121,7 +121,7 @@
         }
         catch ( MavenOneMetadataHelperException e )
         {
-            getLogger().error( "Unknown error while processing metadata", e );
+            log.error( "Unknown error while processing metadata", e );
 
             result.addError( ContinuumProjectBuildingResult.ERROR_UNKNOWN );
         }

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java Mon Jan 12 18:58:46 2009
@@ -27,6 +27,7 @@
 import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 
 import org.apache.continuum.dao.LocalRepositoryDao;
@@ -167,37 +168,37 @@
         }
         catch ( MalformedURLException e )
         {
-            getLogger().debug( "Error adding project: Malformed URL " + url, e );
+            log.debug( "Error adding project: Malformed URL " + url, e );
             result.addError( ContinuumProjectBuildingResult.ERROR_MALFORMED_URL );
             return;
         }
         catch ( URISyntaxException e )
         {
-            getLogger().debug( "Error adding project: Malformed URL " + url, e );
+            log.debug( "Error adding project: Malformed URL " + url, e );
             result.addError( ContinuumProjectBuildingResult.ERROR_MALFORMED_URL );
             return;
         }        
         catch ( FileNotFoundException e )
         {
-            getLogger().debug( "Error adding project: File not found " + url, e );
+            log.debug( "Error adding project: File not found " + url, e );
             result.addError( ContinuumProjectBuildingResult.ERROR_POM_NOT_FOUND );
             return;
         }
         catch ( ConnectException e )
         {
-            getLogger().debug( "Error adding project: Unable to connect " + url, e );
+            log.debug( "Error adding project: Unable to connect " + url, e );
             result.addError( ContinuumProjectBuildingResult.ERROR_CONNECT );
             return;
         }
         catch ( IOException e )
         {
-            getLogger().info( "Error adding project: Unknown error downloading from " + url, e );
+            log.info( "Error adding project: Unknown error downloading from " + url, e );
             result.addError( ContinuumProjectBuildingResult.ERROR_UNKNOWN );
             return;
         }
         catch ( HttpException e )
         {
-            getLogger().info( "Error adding project: Unknown error downloading from " + url, e );
+            log.info( "Error adding project: Unknown error downloading from " + url, e );
             result.addError( ContinuumProjectBuildingResult.ERROR_UNKNOWN );
             return;
         }        
@@ -208,14 +209,14 @@
                 pomFile.delete();
             }
         }
-        getLogger().debug( "groupPom " + groupPom );
+        log.debug( "groupPom " + groupPom );
         if ( groupPom )
         {
             ProjectGroup projectGroup = buildProjectGroup( mavenProject, result );
 
             // project groups have the top lvl build definition which is the default build defintion for the sub
             // projects
-            getLogger().debug( "projectGroup != null" + ( projectGroup != null ) );
+            log.debug( "projectGroup != null" + ( projectGroup != null ) );
             if ( projectGroup != null )
             {
                 List<BuildDefinition> buildDefinitions =
@@ -247,7 +248,7 @@
                         }
                         catch ( ContinuumStoreException e )
                         {
-                            getLogger().warn( "Can't get default schedule.", e );
+                            log.warn( "Can't get default schedule.", e );
                         }
                     }
                     // jdo complains that Collections.singletonList(bd) is a second class object and fails.
@@ -284,7 +285,7 @@
 
             if ( result.hasErrors() )
             {
-                getLogger().info(
+                log.info(
                     "Error adding project: Unknown error mapping project " + url + ": " + result.getErrorsAsString() );
                 return;
             }
@@ -304,7 +305,6 @@
             {
                 continuumProject.setScmTag( mavenProject.getScm().getTag() );
             }
-
             result.addProject( continuumProject, MavenTwoBuildExecutor.ID );
         }
 
@@ -346,7 +346,7 @@
                     }
                     catch ( MalformedURLException e )
                     {
-                        getLogger().debug( "Error adding project module: Malformed URL " + urlString, e );
+                        log.debug( "Error adding project module: Malformed URL " + urlString, e );
                         result.addError( ContinuumProjectBuildingResult.ERROR_MALFORMED_URL, urlString );
                         continue;
                     }
@@ -381,7 +381,7 @@
                 if ( StringUtils.isEmpty( buildDefinition.getArguments() ) )
                 {
                     // strange for a mvn build 
-                    getLogger().info( "build definition has empty args" );
+                    log.info( "build definition has empty args" );
                 }
                 else
                 {
@@ -445,7 +445,7 @@
         }
         catch ( ContinuumStoreException e )
         {
-            getLogger().warn( "Can't get default repository.", e );
+            log.warn( "Can't get default repository.", e );
         }
 
         return projectGroup;

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java Mon Jan 12 18:58:46 2009
@@ -24,10 +24,11 @@
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.store.ContinuumStoreException;
 import org.codehaus.plexus.action.ActionManager;
-import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.taskqueue.Task;
 import org.codehaus.plexus.taskqueue.execution.TaskExecutionException;
 import org.codehaus.plexus.taskqueue.execution.TaskExecutor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -39,9 +40,10 @@
  * role-hint="check-out-project" instantiation-strategy="per-lookup"
  */
 public class CheckOutTaskExecutor
-    extends AbstractLogEnabled
     implements TaskExecutor
 {
+    private Logger log = LoggerFactory.getLogger( CheckOutTaskExecutor.class );
+
     /**
      * @plexus.requirement
      */
@@ -59,7 +61,7 @@
     public void executeTask( Task t )
         throws TaskExecutionException
     {
-        getLogger().info( "Checkout task executor.." );
+        log.info( "Checkout task executor.." );
         
         CheckOutTask task = (CheckOutTask) t;
 
@@ -73,7 +75,7 @@
         }
         catch ( ContinuumStoreException ex )
         {
-            getLogger().error( "Internal error while getting the project.", ex );
+            log.error( "Internal error while getting the project.", ex );
 
             return;
         }

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTask.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTask.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTask.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTask.java Mon Jan 12 18:58:46 2009
@@ -1,9 +1,32 @@
 package org.apache.maven.continuum.scm.queue;
 
+/*
+ * 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.codehaus.plexus.taskqueue.Task;
 
+/**
+ * @author 
+ * @version $Id$
+ */
 public class PrepareBuildProjectsTask
     implements Task
 {
@@ -11,10 +34,17 @@
 
     private int trigger;
 
-    public PrepareBuildProjectsTask( Map<Integer, Integer> projectsBuildDefinitionsMap, int trigger )
+    private int projectGroupId;
+
+    private String scmRootAddress;
+
+    public PrepareBuildProjectsTask( Map<Integer, Integer> projectsBuildDefinitionsMap, int trigger, 
+                                     int projectGroupId, String scmRootAddress )
     {
         this.projectsBuildDefinitionsMap = projectsBuildDefinitionsMap;
         this.trigger = trigger;
+        this.projectGroupId = projectGroupId;
+        this.scmRootAddress = scmRootAddress;
     }
     
     public long getMaxExecutionTime()
@@ -42,7 +72,27 @@
     {
         this.trigger = trigger;
     }
-    
+
+    public int getProjectGroupId()
+    {
+        return projectGroupId;
+    }
+
+    public void setProjectGroupId( int projectGroupId )
+    {
+        this.projectGroupId = projectGroupId;
+    }
+
+    public String getScmRootAddress()
+    {
+        return scmRootAddress;
+    }
+
+    public void setScmRootAddress( String scmRootAddress )
+    {
+        this.scmRootAddress = scmRootAddress;
+    }
+
     public int getHashCode()
     {
         return this.hashCode();

Propchange: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTask.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTask.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTaskExecutor.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTaskExecutor.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTaskExecutor.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTaskExecutor.java Mon Jan 12 18:58:46 2009
@@ -1,5 +1,24 @@
 package org.apache.maven.continuum.scm.queue;
 
+/*
+ * 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.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -24,22 +43,25 @@
 import org.apache.maven.continuum.utils.WorkingDirectoryService;
 import org.codehaus.plexus.action.ActionManager;
 import org.codehaus.plexus.action.ActionNotFoundException;
-import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.taskqueue.Task;
 import org.codehaus.plexus.taskqueue.execution.TaskExecutionException;
 import org.codehaus.plexus.taskqueue.execution.TaskExecutor;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.dag.CycleDetectedException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @author <a href="mailto:ctan@apache.org">Maria Catherine Tan</a>
+ * @version $Id$
  * @plexus.component role="org.codehaus.plexus.taskqueue.execution.TaskExecutor"
  * role-hint="prepare-build-project"
  */
 public class PrepareBuildProjectsTaskExecutor
-    extends AbstractLogEnabled
     implements TaskExecutor
 {
+    private Logger log = LoggerFactory.getLogger( PrepareBuildProjectsTaskExecutor.class );
+
     /**
      * @plexus.requirement
      */
@@ -86,34 +108,34 @@
             {
                 int buildDefinitionId = projectsBuildDefinitionsMap.get( projectId );
                 
-                getLogger().info( "Initializing prepare build" );
+                log.info( "Initializing prepare build" );
                 context = initializeContext( projectId, buildDefinitionId );
-                
-                getLogger().info( "Starting prepare build of project: " + AbstractContinuumAction.getProject( context ).getName() );
-                startPrepareBuild( context );
-                
+
                 if ( !checkProjectScmRoot( context ) )
                 {
                     break;
                 }
-                
+
+                log.info( "Starting prepare build of project: " + AbstractContinuumAction.getProject( context ).getName() );
+                startPrepareBuild( context );
+
                 try
                 {
                     if ( AbstractContinuumAction.getBuildDefinition( context ).isBuildFresh() )
                     {
-                        getLogger().info( "Purging existing working copy" );
+                        log.info( "Purging existing working copy" );
                         cleanWorkingDirectory( context );
                     }
-                    
+
                     // ----------------------------------------------------------------------
                     // TODO: Centralize the error handling from the SCM related actions.
                     // ContinuumScmResult should return a ContinuumScmResult from all
                     // methods, even in a case of failure.
                     // ----------------------------------------------------------------------
-                    getLogger().info( "Updating working dir" );
+                    log.info( "Updating working dir" );
                     updateWorkingDirectory( context );
-            
-                    getLogger().info( "Merging SCM results" );
+
+                    log.info( "Merging SCM results" );
                     //CONTINUUM-1393
                     if ( !AbstractContinuumAction.getBuildDefinition( context ).isBuildFresh() )
                     {
@@ -122,21 +144,24 @@
                 }
                 finally
                 {
-                    getLogger().info( "Ending prepare build of project: " + AbstractContinuumAction.getProject( context).getName() );
+                    log.info( "Ending prepare build of project: " + AbstractContinuumAction.getProject( context).getName() );
                     endProjectPrepareBuild( context );
                 }
             }
         }
         finally
         {
-            getLogger().info( "Ending prepare build" );
+            log.info( "Ending prepare build" );
             endPrepareBuild( context );
         }
 
-        int projectGroupId = AbstractContinuumAction.getProjectGroupId( context );
-        buildProjects( projectGroupId, projectsBuildDefinitionsMap, trigger );
+        if ( checkProjectScmRoot( context ) )
+        {
+            int projectGroupId = AbstractContinuumAction.getProjectGroupId( context );
+            buildProjects( projectGroupId, projectsBuildDefinitionsMap, trigger );
+        }
     }
-    
+
     private Map initializeContext( int projectId, int buildDefinitionId )
         throws TaskExecutionException
     {
@@ -289,7 +314,7 @@
         try
         {
             project.setScmResult( scmResult );
-            
+
             projectDao.updateProject( project );
         }
         catch ( ContinuumStoreException e )
@@ -340,7 +365,7 @@
 
         try
         {
-            getLogger().info( "Performing action " + actionName );
+            log.info( "Performing action " + actionName );
             actionManager.lookup( actionName ).execute( context );
             return;
         }
@@ -415,7 +440,7 @@
         {
             projectScmRoot.setState( ContinuumProjectState.ERROR );
             projectScmRoot.setError( error );
-            
+
             projectScmRootDao.updateProjectScmRoot( projectScmRoot );
             
             context.put( AbstractContinuumAction.KEY_PROJECT_SCM_ROOT, projectScmRoot );
@@ -434,7 +459,7 @@
         
         try
         {
-            projectList = ProjectSorter.getSortedProjects( projects, getLogger() );
+            projectList = ProjectSorter.getSortedProjects( projects, log );
         }
         catch ( CycleDetectedException e )
         {
@@ -461,7 +486,7 @@
                 }
                 catch( ContinuumStoreException e )
                 {
-                    getLogger().error( "Error while creating build object", e );
+                    log.error( "Error while creating build object", e );
                     throw new TaskExecutionException( "Error while creating build object", e );
                 }
             }
@@ -477,7 +502,7 @@
                 }
                 catch ( ContinuumStoreException e )
                 {
-                    getLogger().error( "Error while creating build object", e );
+                    log.error( "Error while creating build object", e );
                     throw new TaskExecutionException( "Error while creating build object", e );
                 }
                 //shouldBuild = true;
@@ -492,17 +517,17 @@
             context.put( AbstractContinuumAction.KEY_PROJECTS_BUILD_DEFINITIONS_MAP, projectsBuildDefinitionsMap );
             context.put( AbstractContinuumAction.KEY_TRIGGER, trigger );
             
-            getLogger().info( "Performing action create-build-project-task" );
+            log.info( "Performing action create-build-project-task" );
             actionManager.lookup( "create-build-project-task" ).execute( context );
         }
         catch ( ActionNotFoundException e )
         {
-           getLogger().error( "Error looking up action 'build-project'" );
+           log.error( "Error looking up action 'build-project'" );
            throw new TaskExecutionException( "Error looking up action 'build-project'", e );
         }
         catch ( Exception e )
         {
-            getLogger().error( e.getMessage(), e );
+            log.error( e.getMessage(), e );
             throw new TaskExecutionException( "Error executing action 'build-project'", e );
         }
     }

Propchange: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTaskExecutor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTaskExecutor.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/utils/ProjectSorter.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/utils/ProjectSorter.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/utils/ProjectSorter.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/utils/ProjectSorter.java Mon Jan 12 18:58:46 2009
@@ -21,10 +21,10 @@
 
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.model.project.ProjectDependency;
-import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.dag.CycleDetectedException;
 import org.codehaus.plexus.util.dag.DAG;
 import org.codehaus.plexus.util.dag.TopologicalSorter;
+import org.slf4j.Logger;
 
 import java.util.ArrayList;
 import java.util.Collection;

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/test/java/org/apache/continuum/buildmanager/ParallelBuildsManagerTest.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/test/java/org/apache/continuum/buildmanager/ParallelBuildsManagerTest.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/test/java/org/apache/continuum/buildmanager/ParallelBuildsManagerTest.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/test/java/org/apache/continuum/buildmanager/ParallelBuildsManagerTest.java Mon Jan 12 18:58:46 2009
@@ -72,6 +72,7 @@
     
     private TaskQueue checkoutQueue;
 
+    @Override
     public void setUp()
         throws Exception
     {
@@ -103,6 +104,7 @@
         checkoutQueue = context.mock( TaskQueue.class, "checkout-queue" );
     }
 
+    @Override
     public void tearDown()
         throws Exception
     {

Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java?rev=734009&r1=734008&r2=734009&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java Mon Jan 12 18:58:46 2009
@@ -101,7 +101,9 @@
         
         //assertTrue( validator.validate( fileUrl ) );
         
-        ContinuumProjectBuildingResult result = continuum.addMavenTwoProject( fileUrl );
+        ContinuumProjectBuildingResult result = continuum.addMavenTwoProject( rootPom.toURI().toURL()
+                                                                              .toExternalForm(), -1, true,
+                                                                              false, true, -1 );
 
         assertNotNull( result );
 
@@ -500,6 +502,7 @@
         assertEquals( 0 , continuum.getAllContinuumReleaseResults().size() );
         assertFalse( logFile.exists() );
         assertEquals( defaultProjectGroup, continuum.getProjectGroupByGroupId( Continuum.DEFAULT_PROJECT_GROUP_GROUP_ID ) );
+        
     }
     
     public void testBuildProjectWhileProjectIsInReleaseStage()