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 2006/09/25 02:40:27 UTC

svn commit: r449533 [1/3] - in /maven/continuum/trunk: ./ continuum-api/src/main/java/org/apache/maven/continuum/ continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ continuum-api/src/main/java/org/apache/maven/continuum/store/ cont...

Author: carlos
Date: Sun Sep 24 17:40:23 2006
New Revision: 449533

URL: http://svn.apache.org/viewvc?view=rev&rev=449533
Log:
Merged bug fixes and improvements up to rev# 449148 from continuum-acegi branch

Added:
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/filter/
      - copied from r448283, maven/continuum/branches/continuum-acegi/continuum-webapp/src/main/java/org/apache/maven/continuum/web/filter/
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/filter/FilterToComponentProxy.java
      - copied unchanged from r448283, maven/continuum/branches/continuum-acegi/continuum-webapp/src/main/java/org/apache/maven/continuum/web/filter/FilterToComponentProxy.java
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/BuildStatusCell.java
      - copied unchanged from r448283, maven/continuum/branches/continuum-acegi/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/BuildStatusCell.java
    maven/continuum/trunk/continuum-webapp/src/main/webapp/components/buildNowCell.jsp
      - copied unchanged from r448283, maven/continuum/branches/continuum-acegi/continuum-webapp/src/main/webapp/components/buildNowCell.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/deleteBuildDefinition.jsp
      - copied unchanged from r448283, maven/continuum/branches/continuum-acegi/continuum-webapp/src/main/webapp/deleteBuildDefinition.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/navigations/ProjectGroupMenu.jsp
      - copied, changed from r448283, maven/continuum/branches/continuum-acegi/continuum-webapp/src/main/webapp/navigations/ProjectGroupMenu.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/navigations/ProjectMenu.jsp
      - copied unchanged from r448283, maven/continuum/branches/continuum-acegi/continuum-webapp/src/main/webapp/navigations/ProjectMenu.jsp
Removed:
    maven/continuum/trunk/continuum-webapp/src/main/resources/log4j.xml
    maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/extremecomponents.tld
    maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/sitemesh-decorator.tld
    maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/sitemesh-page.tld
    maven/continuum/trunk/continuum-webapp/src/main/webapp/error.jsp
Modified:
    maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
    maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuildingResult.java
    maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractBuildDefinitionContinuumAction.java   (contents, props changed)
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddBuildDefinitionToProjectAction.java   (contents, props changed)
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddBuildDefinitionToProjectGroupAction.java   (contents, props changed)
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/RemoveBuildDefinitionFromProjectAction.java   (contents, props changed)
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/RemoveBuildDefinitionFromProjectGroupAction.java   (contents, props changed)
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateBuildDefinitionFromProjectAction.java   (contents, props changed)
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateBuildDefinitionFromProjectGroupAction.java   (contents, props changed)
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/DefaultMavenBuilderHelper.java
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenBuilderHelper.java
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/DefaultContinuumScm.java
    maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java
    maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/notification/mail/FormatterToolTest.java
    maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilderTest.java
    maven/continuum/trunk/continuum-core/src/test/resources/log4j.properties
    maven/continuum/trunk/continuum-rpc-client/pom.xml
    maven/continuum/trunk/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java
    maven/continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java
    maven/continuum/trunk/continuum-updater/pom.xml
    maven/continuum/trunk/continuum-webapp/pom.xml
    maven/continuum/trunk/continuum-webapp/src/main/filters/filter.properties
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildDefinitionAction.java   (contents, props changed)
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildResultAction.java
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ConfigurationAction.java
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ContinuumActionSupport.java
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/PerformReleaseAction.java
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/PrepareReleaseAction.java
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectGroupAction.java   (contents, props changed)
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectViewAction.java
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/SummaryAction.java
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/BuildDefinitionSummaryAction.java   (contents, props changed)
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/exception/ContinuumActionException.java   (contents, props changed)
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/BuildCell.java
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/BuildNowCell.java
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/StateCell.java
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/buildresults/StateCell.java
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/commons/DateCell.java
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/projectview/NotifierEventCell.java
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/projectview/NotifierFromCell.java
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/projectview/NotifierRecipientCell.java
    maven/continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/application.xml
    maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties
    maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml
    maven/continuum/trunk/continuum-webapp/src/main/webapp/   (props changed)
    maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/   (props changed)
    maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/web.xml
    maven/continuum/trunk/continuum-webapp/src/main/webapp/addProject.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/buildDefinitionEdit.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/buildResult.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/buildResults.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/components/buildDefinitionSummaryComponent.jsp   (contents, props changed)
    maven/continuum/trunk/continuum-webapp/src/main/webapp/components/companyLogo.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/components/projectSummaryComponent.jsp   (contents, props changed)
    maven/continuum/trunk/continuum-webapp/src/main/webapp/confirmBuildDefinitionRemoval.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/decorators/default.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/decorators/none.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/editSchedule.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/groupSummary.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/index.jsp   (contents, props changed)
    maven/continuum/trunk/continuum-webapp/src/main/webapp/navigations/Menu.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/notifierSelectType.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/performRelease.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/prepareRelease.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/projectGroupBuildDefinition.jsp   (contents, props changed)
    maven/continuum/trunk/continuum-webapp/src/main/webapp/projectGroupMembers.jsp   (contents, props changed)
    maven/continuum/trunk/continuum-webapp/src/main/webapp/projectGroupNotifier.jsp   (contents, props changed)
    maven/continuum/trunk/continuum-webapp/src/main/webapp/projectGroupSummary.jsp   (contents, props changed)
    maven/continuum/trunk/continuum-webapp/src/main/webapp/projectView.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/schedules.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/surefireReport.jsp   (contents, props changed)
    maven/continuum/trunk/continuum-webapp/src/main/webapp/workingCopy.jsp
    maven/continuum/trunk/pom.xml

Modified: maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java (original)
+++ maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java Sun Sep 24 17:40:23 2006
@@ -16,13 +16,19 @@
  * limitations under the License.
  */
 
+import java.io.File;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.maven.continuum.configuration.ConfigurationService;
+import org.apache.maven.continuum.execution.ContinuumBuildExecutor;
 import org.apache.maven.continuum.model.project.BuildDefinition;
 import org.apache.maven.continuum.model.project.BuildResult;
 import org.apache.maven.continuum.model.project.Project;
+import org.apache.maven.continuum.model.project.ProjectGroup;
 import org.apache.maven.continuum.model.project.ProjectNotifier;
 import org.apache.maven.continuum.model.project.Schedule;
-import org.apache.maven.continuum.model.project.ProjectGroup;
 import org.apache.maven.continuum.model.system.ContinuumUser;
 import org.apache.maven.continuum.model.system.UserGroup;
 import org.apache.maven.continuum.project.builder.ContinuumProjectBuildingResult;
@@ -30,11 +36,6 @@
 import org.apache.maven.continuum.release.ContinuumReleaseManager;
 import org.codehaus.plexus.util.dag.CycleDetectedException;
 
-import java.io.File;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
 /**
  * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
  * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
@@ -48,9 +49,16 @@
     // Project Groups
     // ----------------------------------------------------------------------
 
+    public static final String DEFAULT_PROJECT_GROUP_GROUP_ID = "default";
+
     public ProjectGroup getProjectGroup( int projectGroupId )
         throws ContinuumException;
 
+    /**
+     * Get all {@link ProjectGroup}s and their {@link Project}s
+     * 
+     * @return {@link Collection} &lt;{@link ProjectGroup}>
+     */
     public Collection getAllProjectGroupsWithProjects();
 
     public ProjectGroup getProjectGroupByProjectId( int projectId )
@@ -155,6 +163,14 @@
     // Projects
     // ----------------------------------------------------------------------
 
+    /**
+     * Add a project to the list of building projects (ant, shell,...)
+     * 
+     * @param project the project to add
+     * @param executorId the id of an {@link ContinuumBuildExecutor}, eg. <code>ant</code> or <code>shell</code> 
+     * @return id of the project
+     * @throws ContinuumException
+     */
     int addProject( Project project, String executorId )
         throws ContinuumException;
 
@@ -188,16 +204,16 @@
     ProjectNotifier getNotifier( int projectId, int notifierId )
         throws ContinuumException;
 
-    void updateNotifier( int projectId, int notifierId, Map configuration )
+    ProjectNotifier updateNotifier( int projectId, int notifierId, Map configuration )
         throws ContinuumException;
 
-    void updateNotifier( int projectId, ProjectNotifier notifier )
+    ProjectNotifier updateNotifier( int projectId, ProjectNotifier notifier )
         throws ContinuumException;
 
-    void addNotifier( int projectId, ProjectNotifier notifier )
+    ProjectNotifier addNotifier( int projectId, ProjectNotifier notifier )
         throws ContinuumException;
 
-    void addNotifier( int projectId, String notifierType, Map configuration )
+    ProjectNotifier addNotifier( int projectId, String notifierType, Map configuration )
         throws ContinuumException;
 
     void removeNotifier( int projectId, int notifierId )
@@ -256,10 +272,10 @@
     BuildDefinition getDefaultBuildDefinition( int projectId )
         throws ContinuumException;
 
-    void addBuildDefinitionToProject( int projectId, BuildDefinition buildDefinition )
+    BuildDefinition addBuildDefinitionToProject( int projectId, BuildDefinition buildDefinition )
         throws ContinuumException;
 
-    void addBuildDefinitionToProjectGroup( int projectGroupId, BuildDefinition buildDefinition )
+    BuildDefinition addBuildDefinitionToProjectGroup( int projectGroupId, BuildDefinition buildDefinition )
         throws ContinuumException;    
 
     List getBuildDefinitionsForProject( int projectId )
@@ -274,10 +290,10 @@
     void removeBuildDefinitionFromProjectGroup( int projectGroupId, int buildDefinitionId )
         throws ContinuumException;
 
-    void updateBuildDefinitionForProject( int projectId, BuildDefinition buildDefinition )
+    BuildDefinition updateBuildDefinitionForProject( int projectId, BuildDefinition buildDefinition )
         throws ContinuumException;
 
-    void updateBuildDefinitionForProjectGroup( int projectGroupId, BuildDefinition buildDefinition )
+    BuildDefinition updateBuildDefinitionForProjectGroup( int projectGroupId, BuildDefinition buildDefinition )
         throws ContinuumException;
 
 

Modified: maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuildingResult.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuildingResult.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuildingResult.java (original)
+++ maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuildingResult.java Sun Sep 24 17:40:23 2006
@@ -35,7 +35,9 @@
     public static final String ERROR_MALFORMED_URL = "add.project.malformed.url.error";
 
     public static final String ERROR_UNKNOWN_HOST = "add.project.unknown.host.error";
-    
+
+    public static final String ERROR_CONNECT = "add.project.connect.error";
+
     public static final String ERROR_XML_PARSE = "add.project.xml.parse.error";
 
     public static final String ERROR_EXTEND = "add.project.extend.error";
@@ -45,7 +47,7 @@
     public static final String ERROR_MISSING_ARTIFACTID = "add.project.missing.artifactid.error";
 
     public static final String ERROR_POM_NOT_FOUND = "add.project.missing.pom.error";
-    
+
     public static final String ERROR_MISSING_VERSION = "add.project.missing.version.error";
 
     public static final String ERROR_MISSING_NAME = "add.project.missing.name.error";
@@ -53,17 +55,23 @@
     public static final String ERROR_MISSING_REPOSITORY = "add.project.missing.repository.error";
 
     public static final String ERROR_MISSING_SCM = "add.project.missing.scm.error";
-    
+
     public static final String ERROR_MISSING_SCM_CONNECTION = "add.project.missing.scm.connection.error";
 
     public static final String ERROR_MISSING_NOTIFIER_TYPE = "add.project.missing.notifier.type.error";
 
     public static final String ERROR_MISSING_NOTIFIER_CONFIGURATION = "add.project.missing.notifier.configuration.error";
-    
+
     public static final String ERROR_METADATA_TRANSFER = "add.project.metadata.transfer.error";
-    
+
     public static final String ERROR_VALIDATION = "add.project.validation.error";
-    
+
+    public static final String ERROR_UNAUTHORIZED = "add.project.unauthorized.error";
+
+    public static final String ERROR_ARTIFACT_NOT_FOUND = "add.project.artifact.not.found.error";
+
+    public static final String ERROR_PROJECT_BUILDING = "add.project.project.building.error";
+
     public static final String ERROR_UNKNOWN = "add.project.unknown.error";
 
     private List projects = new ArrayList();
@@ -119,7 +127,7 @@
     {
         errors.add( errorKey );
     }
-    
+
     /**
      * Add an error that happened during adding the project to Continuum.
      * 
@@ -130,7 +138,7 @@
         // TODO: store the parameters.
         errors.add( errorKey );
     }
-    
+
     /**
      * Add an error that happened during adding the project to Continuum.
      * 
@@ -141,7 +149,7 @@
         // TODO: store the parameters.
         errors.add( errorKey );
     }
-    
+
     /**
      * Get the warnings that happened during adding the project to Continuum.
      * There is an entry with the warning key (so it can be internationalized later) for each warning.

Modified: maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java (original)
+++ maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java Sun Sep 24 17:40:23 2006
@@ -218,9 +218,6 @@
     Project getProjectWithBuildDetails( int projectId )
         throws ContinuumObjectNotFoundException, ContinuumStoreException;
 
-    ProjectGroup getDefaultProjectGroup()
-        throws ContinuumStoreException;
-
     SystemConfiguration addSystemConfiguration( SystemConfiguration systemConf );
 
     void updateSystemConfiguration( SystemConfiguration systemConf )

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java Sun Sep 24 17:40:23 2006
@@ -36,6 +36,7 @@
 import org.apache.maven.continuum.model.project.ProjectGroup;
 import org.apache.maven.continuum.model.project.ProjectNotifier;
 import org.apache.maven.continuum.model.project.Schedule;
+import org.apache.maven.continuum.model.scm.ScmResult;
 import org.apache.maven.continuum.model.system.ContinuumUser;
 import org.apache.maven.continuum.model.system.UserGroup;
 import org.apache.maven.continuum.project.ContinuumProjectState;
@@ -765,18 +766,7 @@
     {
         ArrayList buildResults;
 
-        try
-        {
-            buildResults = new ArrayList( store.getProjectWithBuilds( projectId ).getBuildResults() );
-        }
-        catch ( ContinuumObjectNotFoundException e )
-        {
-            return Collections.EMPTY_LIST;
-        }
-        catch ( ContinuumStoreException e )
-        {
-            throw logAndCreateException( "Exception while getting build results for project.", e );
-        }
+        buildResults = new ArrayList( store.getBuildResultsForProject( projectId, 0 ) );
 
         Collections.reverse( buildResults );
 
@@ -817,7 +807,12 @@
                 changes = new ArrayList();
             }
 
-            changes.addAll( buildResult.getScmResult().getChanges() );
+            ScmResult scmResult = buildResult.getScmResult();
+
+            if ( scmResult != null )
+            {
+                changes.addAll( scmResult.getChanges() );
+            }
 
             if ( !buildResultsIterator.hasNext() )
             {
@@ -931,14 +926,7 @@
 
         context.put( AbstractContinuumAction.KEY_UNVALIDATED_PROJECT, project );
 
-        try
-        {
-            context.put( AbstractContinuumAction.KEY_UNVALIDATED_PROJECT_GROUP, store.getDefaultProjectGroup() );
-        }
-        catch ( ContinuumStoreException e )
-        {
-            throw new ContinuumException( "Error getting the default project group to work with" );
-        }
+        context.put( AbstractContinuumAction.KEY_UNVALIDATED_PROJECT_GROUP, getDefaultProjectGroup() );
 
         executeAction( "validate-project", context );
 
@@ -1047,6 +1035,10 @@
 
                 projectGroup = store.getProjectGroupWithProjects( projectGroupId );
             }
+
+            /* add the project group loaded from database, which has more info, like id */
+            result.getProjectGroups().remove( 0 );
+            result.getProjectGroups().add( projectGroup );
         }
         catch ( ContinuumStoreException e )
         {
@@ -1125,7 +1117,7 @@
         return notifier;
     }
 
-    public void updateNotifier( int projectId, ProjectNotifier notifier )
+    public ProjectNotifier updateNotifier( int projectId, ProjectNotifier notifier )
         throws ContinuumException
     {
         Project project = getProjectWithAllDetails( projectId );
@@ -1137,10 +1129,10 @@
 
         updateProject( project );
 
-        addNotifier( projectId, notifier );
+        return addNotifier( projectId, notifier );
     }
 
-    public void updateNotifier( int projectId, int notifierId, Map configuration )
+    public ProjectNotifier updateNotifier( int projectId, int notifierId, Map configuration )
         throws ContinuumException
     {
         Project project = getProjectWithAllDetails( projectId );
@@ -1154,7 +1146,7 @@
 
         updateProject( project );
 
-        addNotifier( projectId, notifierType, configuration );
+        return addNotifier( projectId, notifierType, configuration );
     }
 
     private Properties createNotifierProperties( Map configuration )
@@ -1184,7 +1176,7 @@
         return notifierProperties;
     }
 
-    public void addNotifier( int projectId, ProjectNotifier notifier )
+    public ProjectNotifier addNotifier( int projectId, ProjectNotifier notifier )
         throws ContinuumException
     {
         ProjectNotifier notif = new ProjectNotifier();
@@ -1208,9 +1200,11 @@
         project.addNotifier( notif );
 
         updateProject( project );
+
+        return notif;
     }
 
-    public void addNotifier( int projectId, String notifierType, Map configuration )
+    public ProjectNotifier addNotifier( int projectId, String notifierType, Map configuration )
         throws ContinuumException
     {
         ProjectNotifier notifier = new ProjectNotifier();
@@ -1241,7 +1235,7 @@
 
         notifier.setConfiguration( notifierProperties );
 
-        addNotifier( projectId, notifier );
+        return addNotifier( projectId, notifier );
     }
 
     public void removeNotifier( int projectId, int notifierId )
@@ -1353,7 +1347,7 @@
         return projectGroup.getBuildDefinitions();
     }
 
-    public void addBuildDefinitionToProject( int projectId, BuildDefinition buildDefinition )
+    public BuildDefinition addBuildDefinitionToProject( int projectId, BuildDefinition buildDefinition )
         throws ContinuumException
     {
         HashMap context = new HashMap();
@@ -1362,6 +1356,8 @@
         context.put( AbstractContinuumAction.KEY_PROJECT_ID, new Integer( projectId ) );
 
         executeAction( "add-build-definition-to-project", context );
+
+        return (BuildDefinition) context.get( AbstractContinuumAction.KEY_BUILD_DEFINITION );
     }
 
     public void removeBuildDefinitionFromProject( int projectId, int buildDefinitionId )
@@ -1375,7 +1371,7 @@
         executeAction( "remove-build-definition-from-project", context );
     }
 
-    public void updateBuildDefinitionForProject( int projectId, BuildDefinition buildDefinition )
+    public BuildDefinition updateBuildDefinitionForProject( int projectId, BuildDefinition buildDefinition )
         throws ContinuumException
     {
         HashMap context = new HashMap();
@@ -1384,9 +1380,11 @@
         context.put( AbstractContinuumAction.KEY_PROJECT_ID, new Integer( projectId ) );
 
         executeAction( "update-build-definition-from-project", context );
+
+        return (BuildDefinition) context.get( AbstractContinuumAction.KEY_BUILD_DEFINITION );
     }
 
-    public void addBuildDefinitionToProjectGroup( int projectGroupId, BuildDefinition buildDefinition )
+    public BuildDefinition addBuildDefinitionToProjectGroup( int projectGroupId, BuildDefinition buildDefinition )
         throws ContinuumException
     {
         HashMap context = new HashMap();
@@ -1395,6 +1393,8 @@
         context.put( AbstractContinuumAction.KEY_PROJECT_GROUP_ID, new Integer( projectGroupId ) );
 
         executeAction( "add-build-definition-to-project-group", context );
+
+        return (BuildDefinition) context.get( AbstractContinuumAction.KEY_BUILD_DEFINITION );
     }
 
     public void removeBuildDefinitionFromProjectGroup( int projectGroupId, int buildDefinitionId )
@@ -1408,7 +1408,7 @@
         executeAction( "remove-build-definition-from-project-group", context );
     }
 
-    public void updateBuildDefinitionForProjectGroup( int projectGroupId, BuildDefinition buildDefinition )
+    public BuildDefinition updateBuildDefinitionForProjectGroup( int projectGroupId, BuildDefinition buildDefinition )
         throws ContinuumException
     {
         HashMap context = new HashMap();
@@ -1417,6 +1417,8 @@
         context.put( AbstractContinuumAction.KEY_PROJECT_GROUP_ID, new Integer( projectGroupId ) );
 
         executeAction( "update-build-definition-from-project-group", context );
+
+        return (BuildDefinition) context.get( AbstractContinuumAction.KEY_BUILD_DEFINITION );
     }
 
     public void removeBuildDefinition( int projectId, int buildDefinitionId )
@@ -2187,7 +2189,10 @@
 
     private void closeStore()
     {
-        store.closeStore();
+        if ( store != null )
+        {
+            store.closeStore();
+        }
     }
 
     public void stop()
@@ -2206,7 +2211,10 @@
 
         try
         {
-            configurationService.store();
+            if ( configurationService != null )
+            {
+                configurationService.store();
+            }
         }
         catch ( ConfigurationStoringException e )
         {
@@ -2500,9 +2508,13 @@
 
     private void stopMessage()
     {
-        getLogger().info( "Stopping Continuum." );
+        // Yes dorothy, this can happen!
+        if ( getLogger() != null )
+        {
+            getLogger().info( "Stopping Continuum." );
 
-        getLogger().info( "Continuum stopped." );
+            getLogger().info( "Continuum stopped." );
+        }
     }
 
     private String getVersion()
@@ -2529,4 +2541,24 @@
             return "unknown";
         }
     }
+
+    private ProjectGroup getDefaultProjectGroup()
+        throws ContinuumException
+    {
+        try
+        {
+            return store.getProjectGroupByGroupIdWithProjects( Continuum.DEFAULT_PROJECT_GROUP_GROUP_ID );
+        }
+        catch ( ContinuumObjectNotFoundException e )
+        {
+            throw new ContinuumException(
+                                          "Continuum is not properly initialized, default project group does not exist",
+                                          e );
+        }
+        catch ( ContinuumStoreException ex )
+        {
+            throw logAndCreateException( "Exception while getting default project group.", ex );
+        }
+    }
+
 }

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractBuildDefinitionContinuumAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractBuildDefinitionContinuumAction.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractBuildDefinitionContinuumAction.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractBuildDefinitionContinuumAction.java Sun Sep 24 17:40:23 2006
@@ -1,17 +1,5 @@
 package org.apache.maven.continuum.core.action;
 
-import org.apache.maven.continuum.ContinuumException;
-import org.apache.maven.continuum.initialization.DefaultContinuumInitializer;
-import org.apache.maven.continuum.model.project.BuildDefinition;
-import org.apache.maven.continuum.model.project.ProjectGroup;
-import org.apache.maven.continuum.model.project.Schedule;
-import org.apache.maven.continuum.model.project.Project;
-import org.apache.maven.continuum.store.ContinuumStore;
-import org.apache.maven.continuum.store.ContinuumStoreException;
-import org.apache.maven.continuum.store.ContinuumObjectNotFoundException;
-
-import java.util.Iterator;
-import java.util.List;
 /*
  * Copyright 2005 The Apache Software Foundation.
  *
@@ -28,11 +16,24 @@
  * limitations under the License.
  */
 
+import org.apache.maven.continuum.ContinuumException;
+import org.apache.maven.continuum.initialization.DefaultContinuumInitializer;
+import org.apache.maven.continuum.model.project.BuildDefinition;
+import org.apache.maven.continuum.model.project.ProjectGroup;
+import org.apache.maven.continuum.model.project.Schedule;
+import org.apache.maven.continuum.model.project.Project;
+import org.apache.maven.continuum.store.ContinuumStore;
+import org.apache.maven.continuum.store.ContinuumStoreException;
+import org.apache.maven.continuum.store.ContinuumObjectNotFoundException;
+
+import java.util.Iterator;
+import java.util.List;
+
 /**
  * AbstractBuildDefinitionContinuumAction:
  *
- * @author: Jesse McConnell <jm...@apache.org>
- * @version: $ID:$
+ * @author Jesse McConnell <jm...@apache.org>
+ * @version $Id$
  */
 public abstract class AbstractBuildDefinitionContinuumAction
     extends AbstractContinuumAction
@@ -127,7 +128,7 @@
      * @param buildDefinition
      * @throws ContinuumException
      */
-    protected void updateBuildDefinitionInList( List buildDefinitions, BuildDefinition buildDefinition )
+    protected BuildDefinition updateBuildDefinitionInList( List buildDefinitions, BuildDefinition buildDefinition )
         throws ContinuumException
     {
         try
@@ -173,6 +174,8 @@
                 storedDefinition.setSchedule( schedule );
 
                 store.storeBuildDefinition( storedDefinition );
+
+                return storedDefinition;
             }
             else
             {

Propchange: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractBuildDefinitionContinuumAction.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddBuildDefinitionToProjectAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddBuildDefinitionToProjectAction.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddBuildDefinitionToProjectAction.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddBuildDefinitionToProjectAction.java Sun Sep 24 17:40:23 2006
@@ -1,11 +1,7 @@
 package org.apache.maven.continuum.core.action;
 
-import org.apache.maven.continuum.model.project.BuildDefinition;
-import org.apache.maven.continuum.model.project.Project;
-
-import java.util.Map;
 /*
- * Copyright 2005 The Apache Software Foundation.
+ * Copyright 2005-2006 The Apache Software Foundation.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,11 +16,16 @@
  * limitations under the License.
  */
 
+import org.apache.maven.continuum.model.project.BuildDefinition;
+import org.apache.maven.continuum.model.project.Project;
+
+import java.util.Map;
+
 /**
  * AddBuildDefinitionToProjectAction:
  *
- * @author: Jesse McConnell <jm...@apache.org>
- * @version: $ID:$
+ * @author Jesse McConnell <jm...@apache.org>
+ * @version $Id$
  *
  * @plexus.component
  *   role="org.codehaus.plexus.action.Action"
@@ -33,12 +34,12 @@
 public class AddBuildDefinitionToProjectAction
     extends AbstractBuildDefinitionContinuumAction
 {
-    
+
     public void execute( Map map )
         throws Exception
     {
         BuildDefinition buildDefinition = getBuildDefinition( map );
-        int projectId =  getProjectId( map );
+        int projectId = getProjectId( map );
 
         Project project = store.getProjectWithAllDetails( projectId );
 
@@ -47,5 +48,7 @@
         project.addBuildDefinition( buildDefinition );
 
         store.updateProject( project );
+
+        map.put( AbstractContinuumAction.KEY_BUILD_DEFINITION, buildDefinition );
     }
 }

Propchange: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddBuildDefinitionToProjectAction.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddBuildDefinitionToProjectGroupAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddBuildDefinitionToProjectGroupAction.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddBuildDefinitionToProjectGroupAction.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddBuildDefinitionToProjectGroupAction.java Sun Sep 24 17:40:23 2006
@@ -1,11 +1,7 @@
 package org.apache.maven.continuum.core.action;
 
-import org.apache.maven.continuum.model.project.BuildDefinition;
-import org.apache.maven.continuum.model.project.ProjectGroup;
-
-import java.util.Map;
 /*
- * Copyright 2005 The Apache Software Foundation.
+ * Copyright 2005-2006 The Apache Software Foundation.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,11 +16,16 @@
  * limitations under the License.
  */
 
+import org.apache.maven.continuum.model.project.BuildDefinition;
+import org.apache.maven.continuum.model.project.ProjectGroup;
+
+import java.util.Map;
+
 /**
  * AddBuildDefinitionToProjectAction:
  *
- * @author: Jesse McConnell <jm...@apache.org>
- * @version: $ID:$
+ * @author Jesse McConnell <jm...@apache.org>
+ * @version $Id$
  *
  * @plexus.component
  *   role="org.codehaus.plexus.action.Action"
@@ -47,5 +48,7 @@
         projectGroup.addBuildDefinition( buildDefinition );
 
         store.updateProjectGroup( projectGroup );
+
+        map.put( AbstractContinuumAction.KEY_BUILD_DEFINITION, buildDefinition );
     }
 }

Propchange: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddBuildDefinitionToProjectGroupAction.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/RemoveBuildDefinitionFromProjectAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/RemoveBuildDefinitionFromProjectAction.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/RemoveBuildDefinitionFromProjectAction.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/RemoveBuildDefinitionFromProjectAction.java Sun Sep 24 17:40:23 2006
@@ -24,7 +24,7 @@
  * AddBuildDefinitionToProjectAction:
  *
  * @author: Jesse McConnell <jm...@apache.org>
- * @version: $ID:$
+ * @version: $Id$
  *
  * @plexus.component
  *   role="org.codehaus.plexus.action.Action"

Propchange: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/RemoveBuildDefinitionFromProjectAction.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/RemoveBuildDefinitionFromProjectGroupAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/RemoveBuildDefinitionFromProjectGroupAction.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/RemoveBuildDefinitionFromProjectGroupAction.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/RemoveBuildDefinitionFromProjectGroupAction.java Sun Sep 24 17:40:23 2006
@@ -25,7 +25,7 @@
  * AddBuildDefinitionToProjectAction:
  *
  * @author: Jesse McConnell <jm...@apache.org>
- * @version: $ID:$
+ * @version: $Id$
  *
  * @plexus.component
  *   role="org.codehaus.plexus.action.Action"

Propchange: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/RemoveBuildDefinitionFromProjectGroupAction.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateBuildDefinitionFromProjectAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateBuildDefinitionFromProjectAction.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateBuildDefinitionFromProjectAction.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateBuildDefinitionFromProjectAction.java Sun Sep 24 17:40:23 2006
@@ -1,9 +1,5 @@
 package org.apache.maven.continuum.core.action;
 
-import org.apache.maven.continuum.model.project.BuildDefinition;
-import org.apache.maven.continuum.model.project.Project;
-
-import java.util.Map;
 /*
  * Copyright 2005 The Apache Software Foundation.
  *
@@ -20,11 +16,16 @@
  * limitations under the License.
  */
 
+import org.apache.maven.continuum.model.project.BuildDefinition;
+import org.apache.maven.continuum.model.project.Project;
+
+import java.util.Map;
+
 /**
  * AddBuildDefinitionToProjectAction:
  *
- * @author: Jesse McConnell <jm...@apache.org>
- * @version: $ID:$
+ * @author Jesse McConnell <jm...@apache.org>
+ * @version $Id$
  * @plexus.component role="org.codehaus.plexus.action.Action"
  * role-hint="update-build-definition-from-project"
  */
@@ -41,8 +42,10 @@
         Project project = store.getProjectWithAllDetails( projectId );
 
         resolveDefaultBuildDefinitionsForProject( buildDefinition, project );
-        
+
         updateBuildDefinitionInList( project.getBuildDefinitions(), buildDefinition );
+
+        map.put( AbstractContinuumAction.KEY_BUILD_DEFINITION, buildDefinition );
     }
 
 }

Propchange: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateBuildDefinitionFromProjectAction.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateBuildDefinitionFromProjectGroupAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateBuildDefinitionFromProjectGroupAction.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateBuildDefinitionFromProjectGroupAction.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateBuildDefinitionFromProjectGroupAction.java Sun Sep 24 17:40:23 2006
@@ -1,11 +1,7 @@
 package org.apache.maven.continuum.core.action;
 
-import org.apache.maven.continuum.model.project.BuildDefinition;
-import org.apache.maven.continuum.model.project.ProjectGroup;
-
-import java.util.Map;
 /*
- * Copyright 2005 The Apache Software Foundation.
+ * Copyright 2005-2006 The Apache Software Foundation.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,11 +16,16 @@
  * limitations under the License.
  */
 
+import org.apache.maven.continuum.model.project.BuildDefinition;
+import org.apache.maven.continuum.model.project.ProjectGroup;
+
+import java.util.Map;
+
 /**
  * AddBuildDefinitionToProjectAction:
  *
- * @author: Jesse McConnell <jm...@apache.org>
- * @version: $ID:$
+ * @author Jesse McConnell <jm...@apache.org>
+ * @version $Id$
  *
  * @plexus.component
  *   role="org.codehaus.plexus.action.Action"
@@ -38,12 +39,14 @@
         throws Exception
     {
         BuildDefinition buildDefinition = getBuildDefinition( map );
-        int projectGroupId =  getProjectGroupId( map );
+        int projectGroupId = getProjectGroupId( map );
 
         ProjectGroup projectGroup = store.getProjectGroupWithBuildDetails( projectGroupId );
 
         resolveDefaultBuildDefinitionsForProjectGroup( buildDefinition, projectGroup );
 
         updateBuildDefinitionInList( projectGroup.getBuildDefinitions(), buildDefinition );
+
+        map.put( AbstractContinuumAction.KEY_BUILD_DEFINITION, buildDefinition );
     }
 }

Propchange: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateBuildDefinitionFromProjectGroupAction.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/DefaultMavenBuilderHelper.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/DefaultMavenBuilderHelper.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/DefaultMavenBuilderHelper.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/DefaultMavenBuilderHelper.java Sun Sep 24 17:40:23 2006
@@ -20,6 +20,7 @@
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.model.project.ProjectDependency;
 import org.apache.maven.continuum.model.project.ProjectDeveloper;
@@ -37,6 +38,7 @@
 import org.apache.maven.project.InvalidProjectModelException;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuildingException;
 import org.apache.maven.project.validation.ModelValidationResult;
 import org.apache.maven.settings.MavenSettingsBuilder;
 import org.apache.maven.settings.Mirror;
@@ -336,10 +338,20 @@
             }
 
         }
-        catch ( Exception e )
+        catch ( ProjectBuildingException e )
         {
             StringBuffer messages = new StringBuffer();
 
+            Throwable cause = e.getCause();
+            
+            if( cause != null )
+            {
+                while ( ( cause.getCause() != null ) && ( cause instanceof ProjectBuildingException ) )
+                {
+                    cause = cause.getCause();
+                }
+            }
+
             if ( e instanceof InvalidProjectModelException )
             {
                 InvalidProjectModelException ex = (InvalidProjectModelException) e;
@@ -358,9 +370,31 @@
                 }
             }
 
+            if ( cause instanceof ArtifactNotFoundException )
+            {
+                result.addError( ContinuumProjectBuildingResult.ERROR_ARTIFACT_NOT_FOUND,
+                                 ( (ArtifactNotFoundException) cause ).toString() );
+                return null;
+            }
+
+            result.addError( ContinuumProjectBuildingResult.ERROR_PROJECT_BUILDING, e.getMessage() );
+
             String msg = "Cannot build maven project from " + file + " (" + e.getMessage() + ").\n" + messages;
+            
+            file.delete();
+
+            getLogger().error( msg );
+
+            return null;
+        }
+        // TODO catch all exceptions is bad
+        catch ( Exception e )
+        {
+            String msg = "Cannot build maven project from " + file + " (" + e.getMessage() + ").";
 
-            getLogger().error( msg, e );
+            file.delete();
+            
+            getLogger().error( msg );
             
             return null;
         }

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenBuilderHelper.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenBuilderHelper.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenBuilderHelper.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenBuilderHelper.java Sun Sep 24 17:40:23 2006
@@ -33,12 +33,12 @@
 
     void mapMetadataToProject( File metadata, Project project )
         throws MavenBuilderHelperException;
-    
+
     /**
      * @deprecated use {@link #getMavenProject(ContinuumProjectBuildingResult, File)} instead.
      */
     MavenProject getMavenProject( File file )
-    throws MavenBuilderHelperException;
+        throws MavenBuilderHelperException;
 
     MavenProject getMavenProject( ContinuumProjectBuildingResult result, File file );
 
@@ -47,8 +47,9 @@
      */
     void mapMavenProjectToContinuumProject( MavenProject mavenProject, Project continuumProject )
         throws MavenBuilderHelperException;
-    
-    void mapMavenProjectToContinuumProject( ContinuumProjectBuildingResult result, MavenProject mavenProject, Project continuumProject );
+
+    void mapMavenProjectToContinuumProject( ContinuumProjectBuildingResult result, MavenProject mavenProject,
+                                            Project continuumProject );
 
     ArtifactRepository getLocalRepository();
 }

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java Sun Sep 24 17:40:23 2006
@@ -16,18 +16,22 @@
  * limitations under the License.
  */
 
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.maven.continuum.Continuum;
+import org.apache.maven.continuum.model.project.ProjectGroup;
 import org.apache.maven.continuum.model.project.Schedule;
 import org.apache.maven.continuum.model.system.ContinuumUser;
 import org.apache.maven.continuum.model.system.Permission;
 import org.apache.maven.continuum.model.system.SystemConfiguration;
 import org.apache.maven.continuum.model.system.UserGroup;
 import org.apache.maven.continuum.security.ContinuumSecurity;
+import org.apache.maven.continuum.store.ContinuumObjectNotFoundException;
 import org.apache.maven.continuum.store.ContinuumStore;
 import org.apache.maven.continuum.store.ContinuumStoreException;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
-
-import java.util.ArrayList;
-import java.util.List;
+import org.jpox.SchemaTool;
 
 /**
  * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
@@ -39,16 +43,6 @@
     implements ContinuumInitializer
 {
     // ----------------------------------------------------------------------
-    // Default values for the default project group
-    // ----------------------------------------------------------------------
-
-    public static final String DEFAULT_PROJECT_GROUP_NAME = "DEFAULT_PROJECT_GROUP";
-
-    public static final String DEFAULT_PROJECT_GROUP_ID = "DEFAULT";
-
-    public static final String DEFAULT_PROJECT_GROUP_DESCRIPTION = "Default Project Group";
-
-    // ----------------------------------------------------------------------
     // Default values for the default schedule
     // ----------------------------------------------------------------------
 
@@ -74,6 +68,20 @@
         throws ContinuumInitializationException
     {
         getLogger().info( "Continuum initializer running ..." );
+        
+        if ( getLogger().isDebugEnabled() )
+        {
+            getLogger().debug( "Dumping JPOX/JDO Schema Details ..." );
+            try
+            {
+                SchemaTool.outputDBInfo( null, true );
+                SchemaTool.outputSchemaInfo( null, true );
+            }
+            catch ( Exception e )
+            {
+                getLogger().debug( "Error while dumping the database schema", e );
+            }
+        }
 
         try
         {

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java Sun Sep 24 17:40:23 2006
@@ -32,7 +32,9 @@
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.util.StringUtils;
 
+import java.io.FileNotFoundException;
 import java.io.IOException;
+import java.net.ConnectException;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.ArrayList;
@@ -108,9 +110,30 @@
             result.addError( ContinuumProjectBuildingResult.ERROR_MALFORMED_URL );
             return;
         }
+        catch ( FileNotFoundException e )
+        {
+            getLogger().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 );
+            result.addError( ContinuumProjectBuildingResult.ERROR_CONNECT );
+            return;
+        }
         catch ( IOException e )
         {
-            getLogger().debug( "Error adding project: Unknown error downloading from " + url, e );
+            if ( e.getMessage() != null )
+            {
+                if ( e.getMessage().indexOf( "Server returned HTTP response code: 401" ) >= 0 )
+                {
+                    getLogger().debug( "Error adding project: Unauthorized " + url, e );
+                    result.addError( ContinuumProjectBuildingResult.ERROR_UNAUTHORIZED );
+                    return;
+                }
+            }
+            getLogger().info( "Error adding project: Unknown error downloading from " + url, e );
             result.addError( ContinuumProjectBuildingResult.ERROR_UNKNOWN );
             return;
         }

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/DefaultContinuumScm.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/DefaultContinuumScm.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/DefaultContinuumScm.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/DefaultContinuumScm.java Sun Sep 24 17:40:23 2006
@@ -355,7 +355,10 @@
 
         // TODO: is this valid? Does it ever return a changeset itself?
         ChangeSet changeSet = convertScmFileSetToChangeSet( scmResult.getCheckedOutFiles() );
-        result.addChange( changeSet );
+        if ( changeSet != null )
+        {
+            result.addChange( changeSet );
+        }
 
         return result;
     }

Modified: maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java (original)
+++ maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java Sun Sep 24 17:40:23 2006
@@ -219,17 +219,30 @@
     {
         Continuum continuum = (Continuum) lookup( Continuum.ROLE );
 
+        Collection projectGroupList = continuum.getAllProjectGroupsWithProjects();
+
+        int projectGroupsBefore = projectGroupList.size();
+
+        assertEquals( 1, projectGroupsBefore );
+
         String url = getTestFile( "src/test-projects/project1/pom.xml" ).toURL().toExternalForm();
 
         ContinuumProjectBuildingResult result = continuum.addMavenTwoProject( url );
 
         assertNotNull( result );
 
-        Collection projectGroupList = continuum.getAllProjectGroupsWithProjects();
+        assertEquals( 1, result.getProjectGroups().size() );
+
+        ProjectGroup projectGroup = (ProjectGroup) result.getProjectGroups().get( 0 );
+
+        assertEquals( "plexus", projectGroup.getGroupId() );
+
+        projectGroupList = continuum.getAllProjectGroupsWithProjects();
 
-        assertTrue ( "project group missing, should be one project group for now", projectGroupList.size() == 1 );
+        assertEquals( "Project group missing, should have " + ( projectGroupsBefore + 1 ) + " project groups",
+                      projectGroupsBefore + 1, projectGroupList.size() );
 
-        ProjectGroup projectGroup = (ProjectGroup) projectGroupList.iterator().next();
+        projectGroup = (ProjectGroup) projectGroupList.iterator().next();
 
         assertNotNull( projectGroup );
 
@@ -237,7 +250,7 @@
 
         projectGroupList = continuum.getAllProjectGroupsWithProjects();
 
-        assertTrue ( "remove project group failed", projectGroupList.size() == 0 );
+        assertEquals( "Remove project group failed", projectGroupsBefore, projectGroupList.size() );
     }
 
     public void testExecuteAction()

Modified: maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/notification/mail/FormatterToolTest.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/notification/mail/FormatterToolTest.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/notification/mail/FormatterToolTest.java (original)
+++ maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/notification/mail/FormatterToolTest.java Sun Sep 24 17:40:23 2006
@@ -1,5 +1,21 @@
 package org.apache.maven.continuum.notification.mail;
 
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed 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 junit.framework.TestCase;
 
 /**

Modified: maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilderTest.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilderTest.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilderTest.java (original)
+++ maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilderTest.java Sun Sep 24 17:40:23 2006
@@ -175,7 +175,7 @@
 
         assertEquals( 1, result.getErrors().size() );
 
-        assertEquals( ContinuumProjectBuildingResult.ERROR_UNKNOWN, result.getErrors().get( 0 ).toString() );
+        assertEquals( ContinuumProjectBuildingResult.ERROR_POM_NOT_FOUND, result.getErrors().get( 0 ).toString() );
 
         // ----------------------------------------------------------------------
         // Assert the project group built

Modified: maven/continuum/trunk/continuum-core/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/test/resources/log4j.properties?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-core/src/test/resources/log4j.properties (original)
+++ maven/continuum/trunk/continuum-core/src/test/resources/log4j.properties Sun Sep 24 17:40:23 2006
@@ -1,25 +1,27 @@
 # Define the destination and format of our logging
-log4j.appender.root=org.apache.log4j.ConsoleAppender
-log4j.appender.root.layout=org.apache.log4j.PatternLayout
-log4j.appender.root.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%c] - %m%n
+log4j.appender.console=org.apache.log4j.ConsoleAppender
+log4j.appender.console.layout=org.apache.log4j.PatternLayout
+log4j.appender.console.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%c] - %m%n
+
+log4j.rootCategory=DEBUG, console
 
 # JPOX Categories
-#log4j.category.JPOX=WARN, root
-log4j.category.JPOX.RDBMS=ERROR, root
-#log4j.category.JPOX.RDBMS.Schema=WARN, root
-#log4j.category.JPOX.RDBMS.DDL=DEBUG, root
-#log4j.category.JPOX.RDBMS.SQL=WARN, root
+log4j.category.JPOX=WARN, console
+log4j.category.JPOX.RDBMS=ERROR, console
+#log4j.category.JPOX.RDBMS.Schema=WARN, console
+#log4j.category.JPOX.RDBMS.DDL=DEBUG, console
+#log4j.category.JPOX.RDBMS.SQL=WARN, console
 
-#log4j.category.JPOX.JDO=DEBUG, root
-#log4j.category.JPOX.Cache=DEBUG, root
-#log4j.category.JPOX.MetaData=DEBUG, root
-#log4j.category.JPOX.General=DEBUG, root
-#log4j.category.JPOX.Utility=DEBUG, root
-#log4j.category.JPOX.Transaction=DEBUG, root
-#log4j.category.JPOX.RDBMS=DEBUG, root
-#log4j.category.JPOX.RDBMS.Schema=DEBUG, root
-#log4j.category.JPOX.RDBMS.DDL=DEBUG, root
-#log4j.category.JPOX.RDBMS.SQL=DEBUG, root
-#log4j.category.JPOX.Enhancer.Parser=DEBUG, root
-#log4j.category.JPOX.Enhancer=DEBUG, root
-#log4j.category.JPOX.SchemaTool=DEBUG, root
+#log4j.category.JPOX.JDO=DEBUG, console
+#log4j.category.JPOX.Cache=DEBUG, console
+#log4j.category.JPOX.MetaData=DEBUG, console
+#log4j.category.JPOX.General=DEBUG, console
+#log4j.category.JPOX.Utility=DEBUG, console
+#log4j.category.JPOX.Transaction=DEBUG, console
+#log4j.category.JPOX.RDBMS=DEBUG, console
+#log4j.category.JPOX.RDBMS.Schema=DEBUG, console
+#log4j.category.JPOX.RDBMS.DDL=DEBUG, console
+#log4j.category.JPOX.RDBMS.SQL=DEBUG, console
+#log4j.category.JPOX.Enhancer.Parser=DEBUG, console
+#log4j.category.JPOX.Enhancer=DEBUG, console
+#log4j.category.JPOX.SchemaTool=DEBUG, console

Modified: maven/continuum/trunk/continuum-rpc-client/pom.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-rpc-client/pom.xml?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-rpc-client/pom.xml (original)
+++ maven/continuum/trunk/continuum-rpc-client/pom.xml Sun Sep 24 17:40:23 2006
@@ -16,7 +16,6 @@
       <plugin>
         <groupId>org.codehaus.modello</groupId>
         <artifactId>modello-maven-plugin</artifactId>
-        <version>1.0-alpha-9</version>
         <executions>
           <execution>
             <goals>

Modified: maven/continuum/trunk/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java (original)
+++ maven/continuum/trunk/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java Sun Sep 24 17:40:23 2006
@@ -88,8 +88,6 @@
 
     private static final String PROJECTGROUP_PROJECTS_FETCH_GROUP = "projectgroup-projects";
 
-    private static final String DEFAULT_GROUP_ID = "default";
-
     // ----------------------------------------------------------------------
     // Component Lifecycle
     // ----------------------------------------------------------------------
@@ -1122,27 +1120,6 @@
         throw new ContinuumObjectNotFoundException( "unable to find project group containing project with id: " + projectId );
     }
 
-
-    public ProjectGroup getDefaultProjectGroup()
-        throws ContinuumStoreException
-    {
-        ProjectGroup group;
-
-        try
-        {
-            group = (ProjectGroup) getObjectFromQuery( ProjectGroup.class, "groupId", DEFAULT_GROUP_ID,
-                                                       PROJECTGROUP_PROJECTS_FETCH_GROUP );
-        }
-        catch ( ContinuumObjectNotFoundException e )
-        {
-            group = new ProjectGroup();
-            group.setName( "Default Project Group" );
-            group.setGroupId( DEFAULT_GROUP_ID );
-            group.setDescription( "Contains all projects that do not have a group of their own" );
-            group = addProjectGroup( group );
-        }
-        return group;
-    }
 
     public SystemConfiguration addSystemConfiguration( SystemConfiguration systemConf )
     {

Modified: maven/continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java (original)
+++ maven/continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java Sun Sep 24 17:40:23 2006
@@ -23,6 +23,7 @@
 import org.apache.maven.continuum.model.project.ProjectGroup;
 import org.apache.maven.continuum.model.project.ProjectNotifier;
 import org.apache.maven.continuum.model.scm.ScmResult;
+import org.apache.maven.continuum.store.ContinuumObjectNotFoundException;
 import org.apache.maven.continuum.store.ContinuumStore;
 import org.apache.maven.continuum.store.ContinuumStoreException;
 import org.codehaus.plexus.PlexusTestCase;
@@ -36,6 +37,7 @@
 
 import java.net.URL;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -62,6 +64,38 @@
         getStore();
 
         setUpConfigurationService( (ConfigurationService) lookup( ConfigurationService.ROLE ) );
+        
+        Collection projectGroups = store.getAllProjectGroupsWithProjects();
+
+        assertEquals( 0, projectGroups.size() );
+
+        createDefaultProjectGroup();
+        
+        projectGroups = store.getAllProjectGroupsWithProjects();
+        
+        assertEquals( 1, projectGroups.size() );
+    }
+
+    protected void createDefaultProjectGroup()
+        throws Exception
+    {
+        ProjectGroup group;
+        try
+        {
+            group = getDefaultProjectGroup();
+        }
+        catch ( ContinuumObjectNotFoundException e )
+        {
+            group = new ProjectGroup();
+
+            group.setName( "Default Project Group" );
+
+            group.setGroupId( Continuum.DEFAULT_PROJECT_GROUP_GROUP_ID );
+
+            group.setDescription( "Contains all projects that do not have a group of their own" );
+
+            group = store.addProjectGroup( group );
+        }
     }
 
     public static void setUpConfigurationService( ConfigurationService configurationService )
@@ -79,7 +113,7 @@
     protected ProjectGroup getDefaultProjectGroup()
         throws ContinuumStoreException
     {
-        return store.getDefaultProjectGroup();
+        return store.getProjectGroupByGroupIdWithProjects( Continuum.DEFAULT_PROJECT_GROUP_GROUP_ID );
     }
 
     // ----------------------------------------------------------------------

Modified: maven/continuum/trunk/continuum-updater/pom.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-updater/pom.xml?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-updater/pom.xml (original)
+++ maven/continuum/trunk/continuum-updater/pom.xml Sun Sep 24 17:40:23 2006
@@ -53,7 +53,6 @@
       <plugin>
         <groupId>org.codehaus.modello</groupId>
         <artifactId>modello-maven-plugin</artifactId>
-        <version>1.0-alpha-4</version>
         <configuration>
           <version>1.0.0</version>
           <packageWithVersion>false</packageWithVersion>

Modified: maven/continuum/trunk/continuum-webapp/pom.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/pom.xml?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-webapp/pom.xml (original)
+++ maven/continuum/trunk/continuum-webapp/pom.xml Sun Sep 24 17:40:23 2006
@@ -21,7 +21,7 @@
         <directory>src/main/resources</directory>
         <includes>
           <include>**/*.properties</include>
-          <include>**/META-INF/plexus/components.xml</include>
+          <include>**/META-INF/plexus/application.xml</include>
         </includes>
       </resource>
       <resource>
@@ -55,7 +55,6 @@
       <plugin>
         <groupId>org.codehaus.modello</groupId>
         <artifactId>modello-maven-plugin</artifactId>
-        <version>1.0-alpha-8</version>
         <executions>
           <execution>
             <id>web summary model classes</id>
@@ -64,8 +63,8 @@
               <version>1.0.0</version>
             </configuration>
             <goals>
-              <goal>java</goal>             
-            </goals>            
+              <goal>java</goal>         
+            </goals>
           </execution>
           <execution>
             <id>session model classes</id>
@@ -80,8 +79,33 @@
         </executions>
       </plugin>
       <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>jspc-maven-plugin</artifactId>
+        <version>1.4.4</version>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>compile</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <warSourceDirectory>${project.build.directory}/${project.build.finalName}/</warSourceDirectory>
+          <injectString><![CDATA[<!-- [jspc-maven-plugin:post-compiled-jsps-as-servlets] -->]]></injectString>
+          <!-- 
+            Uncomment outputWebXml if you want the generated web.xml to
+            be placed in the working directory that the war:war mojo uses.
+            -->
+          <!-- 
+          <outputWebXml>${project.build.directory}/${project.build.finalName}/WEB-INF/web.xml</outputWebXml> 
+          -->
+        </configuration>
+      </plugin>
+      <plugin>
         <groupId>org.mortbay.jetty</groupId>
         <artifactId>maven-jetty-plugin</artifactId>
+        <version>6.0.0</version>
         <configuration>
           <scanIntervalSeconds>10</scanIntervalSeconds>
           <contextPath>/</contextPath>
@@ -165,6 +189,12 @@
       <groupId>org.apache.derby</groupId>
       <artifactId>derby</artifactId>
     </dependency>
+    <!--
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+    </dependency>
+    -->
     <dependency>
       <groupId>commons-fileupload</groupId>
       <artifactId>commons-fileupload</artifactId>
@@ -255,4 +285,3 @@
     </dependency>
   </dependencies>
 </project>
-

Modified: maven/continuum/trunk/continuum-webapp/src/main/filters/filter.properties
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/filters/filter.properties?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/filters/filter.properties (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/filters/filter.properties Sun Sep 24 17:40:23 2006
@@ -2,3 +2,37 @@
 # emails to the specified address
 # nobody@localhost
 mail.override.to.address=
+
+#
+# Database configuration
+#
+
+# Derby
+db.driverName=org.apache.derby.jdbc.EmbeddedDriver
+db.url=jdbc:derby:${plexus.home}/database;create=true
+db.userName=sa
+db.password=
+acl.sql=org/apache/maven/user/acegi/acl/acegi-acl-derby.sql
+
+# PostgreSQL
+#db.driverName=org.postgresql.Driver
+#db.url=jdbc:postgresql://localhost/continuum
+#db.userName=
+#db.password=
+#acl.sql=not done yet
+
+# MySQL
+#db.driverName=com.mysql.jdbc.Driver
+#db.url=jdbc:mysql://localhost/test
+#db.userName=
+#db.password=
+#acl.sql=org/apache/maven/user/acegi/acl/acegi-acl-mysql.sql
+
+# HSQLDB
+# NOTE: NO NOT USE THIS CONFIGURATION FOR A PRODUCTION SYSTEM.
+# HSQLDB keeps all data in memory at all times.
+#db.driverName=org.hsqldb.jdbcDriver
+#db.url=jdbc:hsqldb:${plexus.home}/database
+#db.userName=sa
+#db.password=
+#acl.sql=not done yet

Modified: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java Sun Sep 24 17:40:23 2006
@@ -16,9 +16,13 @@
  * limitations under the License.
  */
 
+import java.util.Iterator;
+
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.model.project.Project;
 
+import com.opensymphony.xwork.Validateable;
+
 /**
  * @author Nick Gonzalez
  * @version $Id$
@@ -29,6 +33,7 @@
  */
 public class AddProjectAction
     extends ContinuumActionSupport
+    implements Validateable
 {
 
     private String projectName;
@@ -45,7 +50,38 @@
 
     private String projectType;
 
-    public String add()
+    public void validate()
+    {
+        boolean projectNameAlreadyExist = false;
+        Iterator iterator;
+        Project project;
+
+        clearErrorsAndMessages();
+        try
+        {
+            iterator = getContinuum().getProjects().iterator();
+            while ( iterator.hasNext() )
+            {
+                project = (Project) iterator.next();
+                if ( project.getName().equalsIgnoreCase( projectName ) )
+                {
+                    projectNameAlreadyExist = true;
+                    break;
+                }
+            }
+            if ( projectNameAlreadyExist == true )
+            {
+                addActionError( "projectName.already.exist.error" );
+            }
+        }
+        catch ( ContinuumException e )
+        {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+    }
+
+    public String execute()
         throws ContinuumException
     {
         Project project = new Project();

Modified: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildDefinitionAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildDefinitionAction.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildDefinitionAction.java (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildDefinitionAction.java Sun Sep 24 17:40:23 2006
@@ -31,7 +31,7 @@
  * BuildDefinitionAction:
  *
  * @author Jesse McConnell <jm...@apache.org>
- * @version $ID:$
+ * @version $Id$
  * @plexus.component role="com.opensymphony.xwork.Action"
  * role-hint="buildDefinition"
  */
@@ -118,6 +118,7 @@
             goals = buildDefinition.getGoals();
             arguments = buildDefinition.getArguments();
             buildFile = buildDefinition.getBuildFile();
+            scheduleId = buildDefinition.getSchedule().getId();
             defaultBuildDefinition = buildDefinition.isDefaultForProject();
         }
 
@@ -191,7 +192,7 @@
     {
         if ( confirmed )
         {
-            getContinuum().removeBuildDefinitionFromProject( projectGroupId, buildDefinitionId );
+            getContinuum().removeBuildDefinitionFromProjectGroup( projectGroupId, buildDefinitionId );
 
             return SUCCESS;
         }

Propchange: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildDefinitionAction.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildResultAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildResultAction.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildResultAction.java (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildResultAction.java Sun Sep 24 17:40:23 2006
@@ -16,13 +16,16 @@
  * limitations under the License.
  */
 
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+
 import org.apache.maven.continuum.ContinuumException;
+import org.apache.maven.continuum.configuration.ConfigurationException;
 import org.apache.maven.continuum.model.project.BuildResult;
 import org.apache.maven.continuum.model.project.Project;
 import org.codehaus.plexus.util.FileUtils;
 
-import java.util.List;
-
 /**
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
  * @version $Id$
@@ -34,8 +37,6 @@
 public class BuildResultAction
     extends ContinuumActionSupport
 {
-
-
     private BuildResult buildResult;
 
     private int buildId;
@@ -48,19 +49,26 @@
 
     private boolean hasSurefireResults;
 
+    private String buildOutput;
+
     public String execute()
-        throws ContinuumException
+        throws ContinuumException, ConfigurationException, IOException
     {
         //todo get this working for other types of test case rendering other then just surefire
         // check if there are surefire results to display
-        Project project = getContinuum().getProject( projectId );
+        Project project = getContinuum().getProject( getProjectId() );
         hasSurefireResults = FileUtils.fileExists( project.getWorkingDirectory() + "/target/surefire-reports" );
 
+        buildResult = getContinuum().getBuildResult( getBuildId() );
 
-        buildResult = getContinuum().getBuildResult( buildId );
+        changeSet = getContinuum().getChangesSinceLastSuccess( getProjectId(), getBuildId() );
 
+        File buildOutputFile = getContinuum().getConfiguration().getBuildOutputFile( getBuildId(), getProjectId() );
 
-        changeSet = getContinuum().getChangesSinceLastSuccess( projectId, buildId );
+        if ( buildOutputFile.exists() )
+        {
+            buildOutput = FileUtils.fileRead( buildOutputFile );
+        }
 
         return SUCCESS;
     }
@@ -113,5 +121,10 @@
     public void setHasSurefireResults( boolean hasSurefireResults )
     {
         this.hasSurefireResults = hasSurefireResults;
+    }
+
+    public String getBuildOutput()
+    {
+        return buildOutput;
     }
 }

Modified: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ConfigurationAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ConfigurationAction.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ConfigurationAction.java (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ConfigurationAction.java Sun Sep 24 17:40:23 2006
@@ -19,6 +19,8 @@
 import java.io.File;
 import java.util.Collections;
 
+import javax.servlet.http.HttpServletRequest;
+
 import org.apache.maven.continuum.configuration.ConfigurationService;
 import org.apache.maven.continuum.configuration.ConfigurationStoringException;
 import org.apache.maven.continuum.model.system.ContinuumUser;
@@ -26,7 +28,9 @@
 import org.apache.maven.continuum.security.ContinuumSecurity;
 import org.apache.maven.continuum.store.ContinuumStore;
 import org.apache.maven.continuum.store.ContinuumStoreException;
+import org.codehaus.plexus.util.StringUtils;
 
+import com.opensymphony.webwork.ServletActionContext;
 import com.opensymphony.xwork.Preparable;
 
 /**
@@ -83,6 +87,14 @@
 
         baseUrl = configuration.getUrl();
 
+        if ( StringUtils.isEmpty( baseUrl ) )
+        {
+            HttpServletRequest request = ServletActionContext.getRequest();
+            baseUrl = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+                + request.getContextPath();
+            getLogger().info( "baseUrl='" + baseUrl + "'" );
+        }
+
         companyLogo = configuration.getCompanyLogo();
 
         companyName = configuration.getCompanyName();
@@ -124,8 +136,6 @@
 
         configuration.setWorkingDirectory( new File( workingDirectory ) );
 
-        configuration.setWorkingDirectory( new File( workingDirectory ) );
-
         configuration.setBuildOutputDirectory( new File( buildOutputDirectory ) );
 
         configuration.setUrl( baseUrl );
@@ -134,11 +144,10 @@
 
         configuration.setCompanyName( companyName );
 
-        configuration.setInitialized( true );
-        configuration.store();
+        configuration.setCompanyUrl( companyUrl );
 
         configuration.setInitialized( true );
-        configuration.store();            
+        configuration.store();
 
         return SUCCESS;
     }

Modified: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ContinuumActionSupport.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ContinuumActionSupport.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ContinuumActionSupport.java (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ContinuumActionSupport.java Sun Sep 24 17:40:23 2006
@@ -14,13 +14,15 @@
  * 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 com.opensymphony.xwork.Preparable;
 import org.apache.maven.continuum.Continuum;
 import org.apache.maven.continuum.initialization.ContinuumInitializationException;
 import org.codehaus.plexus.xwork.action.PlexusActionSupport;
 
+import com.opensymphony.xwork.Preparable;
+
 /**
  * ContinuumActionSupport
  *
@@ -39,13 +41,13 @@
     public void prepare()
         throws Exception
     {
-        
-
-        getLogger().info("checking the continuum configuration");
+        getLogger().debug( "Checking if Continuum is initialized" );
 
         if ( !continuum.getConfiguration().isInitialized() )
         {
-            throw new ContinuumInitializationException( "continuum not initialized" );
+            throw new ContinuumInitializationException( "This is your first time running continuum, "
+                + "when you access it through a web browser you will need to enter some "
+                + "information before being able to use it. " + "You can ignore this exception." );
         }
 
     }

Modified: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/PerformReleaseAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/PerformReleaseAction.java?view=diff&rev=449533&r1=449532&r2=449533
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/PerformReleaseAction.java (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/PerformReleaseAction.java Sun Sep 24 17:40:23 2006
@@ -62,6 +62,10 @@
     public String execute()
         throws Exception
     {
+        if ( StringUtils.isNotEmpty( goals )  )
+        {
+            goals = "clean deploy";
+        }
         if ( StringUtils.isNotEmpty( releaseId )  )
         {
             ContinuumReleaseManager releaseManager = getContinuum().getReleaseManager();



Re: svn commit: r449533 [1/3] - in /maven/continuum/trunk: ./ continuum-api/src/main/java/org/apache/maven/continuum/ continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ continuum-api/src/main/java/org/apache/maven/continuum/store/ cont...

Posted by Brett Porter <br...@apache.org>.
I've taken a peek through this to sanity check - there are some  
things that look like they've been removed that shouldn't have been,  
but I could be wrong and it could have been intentional. Can you  
confirm?

On 25/09/2006, at 10:40 AM, carlos@apache.org wrote:

> Added:
>     maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/ 
> maven/continuum/web/filter/
>       - copied from r448283, maven/continuum/branches/continuum- 
> acegi/continuum-webapp/src/main/java/org/apache/maven/continuum/web/ 
> filter/
>     maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/ 
> maven/continuum/web/filter/FilterToComponentProxy.java
>       - copied unchanged from r448283, maven/continuum/branches/ 
> continuum-acegi/continuum-webapp/src/main/java/org/apache/maven/ 
> continuum/web/filter/FilterToComponentProxy.java

Isn't this only for Acegi?

> Removed:
>     maven/continuum/trunk/continuum-webapp/src/main/webapp/error.jsp

Isn't this needed?

> -    ProjectGroup getDefaultProjectGroup()
> -        throws ContinuumStoreException;
> -

was this intentional?

> Modified: maven/continuum/trunk/continuum-core/src/main/java/org/ 
> apache/maven/continuum/DefaultContinuum.java
>
> -        try
> -        {
> -            buildResults = new ArrayList 
> ( store.getProjectWithBuilds( projectId ).getBuildResults() );
> -        }
> -        catch ( ContinuumObjectNotFoundException e )
> -        {
> -            return Collections.EMPTY_LIST;
> -        }
> -        catch ( ContinuumStoreException e )
> -        {
> -            throw logAndCreateException( "Exception while getting  
> build results for project.", e );
> -        }
> +        buildResults = new ArrayList 
> ( store.getBuildResultsForProject( projectId, 0 ) );

was this intentional? If so, I assume all the other exception  
removals were too so that there is a catch all. I'm still not sure I  
like that, but something we can overall review later.

> Modified: maven/continuum/trunk/continuum-webapp/src/main/filters/ 
> filter.properties
> URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum- 
> webapp/src/main/filters/filter.properties? 
> view=diff&rev=449533&r1=449532&r2=449533
> ====================================================================== 
> ========
> --- maven/continuum/trunk/continuum-webapp/src/main/filters/ 
> filter.properties (original)
> +++ maven/continuum/trunk/continuum-webapp/src/main/filters/ 
> filter.properties Sun Sep 24 17:40:23 2006
> @@ -2,3 +2,37 @@
>  # emails to the specified address
>  # nobody@localhost
>  mail.override.to.address=
> +
> +#
> +# Database configuration
> +#
> +
> +# Derby
> +db.driverName=org.apache.derby.jdbc.EmbeddedDriver
> +db.url=jdbc:derby:${plexus.home}/database;create=true
> +db.userName=sa
> +db.password=
> +acl.sql=org/apache/maven/user/acegi/acl/acegi-acl-derby.sql
> +
> +# PostgreSQL
> +#db.driverName=org.postgresql.Driver
> +#db.url=jdbc:postgresql://localhost/continuum
> +#db.userName=
> +#db.password=
> +#acl.sql=not done yet
> +
> +# MySQL
> +#db.driverName=com.mysql.jdbc.Driver
> +#db.url=jdbc:mysql://localhost/test
> +#db.userName=
> +#db.password=
> +#acl.sql=org/apache/maven/user/acegi/acl/acegi-acl-mysql.sql
> +
> +# HSQLDB
> +# NOTE: NO NOT USE THIS CONFIGURATION FOR A PRODUCTION SYSTEM.
> +# HSQLDB keeps all data in memory at all times.
> +#db.driverName=org.hsqldb.jdbcDriver
> +#db.url=jdbc:hsqldb:${plexus.home}/database
> +#db.userName=sa
> +#db.password=
> +#acl.sql=not done yet

Can we change this to the datasource based one, consistent with  
Archiva? Much nicer to externalise configuration from the webapp for  
distribution purposes.

- Brett