### Eclipse Workspace Patch 1.0
#P continuum-store
Index: src/main/java/org/apache/continuum/dao/ProjectGroupDaoImpl.java
===================================================================
--- src/main/java/org/apache/continuum/dao/ProjectGroupDaoImpl.java	(revision 741962)
+++ src/main/java/org/apache/continuum/dao/ProjectGroupDaoImpl.java	(working copy)
@@ -19,20 +19,23 @@
  * under the License.
  */
 
-import org.apache.maven.continuum.model.project.Project;
-import org.apache.maven.continuum.model.project.ProjectGroup;
-import org.apache.maven.continuum.store.ContinuumObjectNotFoundException;
-import org.apache.maven.continuum.store.ContinuumStoreException;
-import org.codehaus.plexus.jdo.PlexusJdoUtils;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
 
 import javax.jdo.Extent;
 import javax.jdo.PersistenceManager;
 import javax.jdo.Query;
 import javax.jdo.Transaction;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
+
+import org.apache.maven.continuum.model.project.BuildDefinition;
+import org.apache.maven.continuum.model.project.Project;
+import org.apache.maven.continuum.model.project.ProjectGroup;
+import org.apache.maven.continuum.store.ContinuumObjectNotFoundException;
+import org.apache.maven.continuum.store.ContinuumStoreException;
+import org.codehaus.plexus.jdo.PlexusJdoUtils;
 
 /**
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
@@ -58,7 +61,7 @@
         ProjectGroup pg = null;
         try
         {
-            pg = getProjectGroupWithProjects( projectGroup.getId() );
+            pg = getProjectGroupWithBuildDetailsByProjectGroupId( projectGroup.getId() );
         }
         catch ( Exception e )
         {
@@ -74,6 +77,29 @@
             {
                 projectDao.removeProject( p );
             }
+
+            Iterator<BuildDefinition> it = pg.getBuildDefinitions().listIterator();
+            boolean template = false;
+            while ( it.hasNext() )
+            {
+                BuildDefinition bd = it.next();
+                if ( bd.isTemplate() )
+                {
+                    it.remove();
+                    template = true;
+                }
+            }
+            if(template){
+                try
+                {
+                    updateProjectGroup( pg );
+                }
+                catch ( ContinuumStoreException e )
+                {
+                    // Do nothing
+                }
+            }
+
             removeObject( pg );
         }
     }
#P continuum-webapp
Index: src/main/resources/org/apache/maven/continuum/web/action/AddProjectAction.properties
===================================================================
--- src/main/resources/org/apache/maven/continuum/web/action/AddProjectAction.properties	(revision 741962)
+++ src/main/resources/org/apache/maven/continuum/web/action/AddProjectAction.properties	(working copy)
@@ -20,3 +20,4 @@
 addProject.name.required = Name is required and cannot contain null or spaces only
 addProject.version.required = Version is required and cannot contain null or spaces only
 addProject.scmUrl.required = SCM Url is required and cannot contain null or spaces only
+addProject.projectGroup.required = Project Group is required and all projects must be in a project group
Index: src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java
===================================================================
--- src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java	(revision 741962)
+++ src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java	(working copy)
@@ -19,8 +19,11 @@
  * under the License.
  */
 
-import com.opensymphony.xwork.Validateable;
-import org.apache.maven.continuum.Continuum;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.builddefinition.BuildDefinitionServiceException;
 import org.apache.maven.continuum.model.project.BuildDefinitionTemplate;
@@ -32,10 +35,7 @@
 import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
 import org.codehaus.plexus.util.StringUtils;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
+import com.opensymphony.xwork.Validateable;
 
 /**
  * @author Nick Gonzalez
@@ -88,7 +88,7 @@
         boolean projectNameAlreadyExist = false;
 
         clearErrorsAndMessages();
-        
+
         try
         {
             if ( ( projectName.trim().length() > 0 ) && ( projectVersion.trim().length() > 0 ) && ( projectScmUrl.trim().length() > 0 ) )
@@ -126,6 +126,10 @@
                 {
                     addActionError( getText( "addProject.scmUrl.required" ) );
                 }
+                if ( selectedProjectGroup == 0 )
+                {
+                    addActionError( getText( "addProject.projectGroup.required" ) );
+                }
                 this.input();
             }
         }
@@ -224,11 +228,6 @@
             }
         }
 
-        if ( !disableGroupSelection )
-        {
-            selectedProjectGroup = getContinuum().getProjectGroupByGroupId( Continuum.DEFAULT_PROJECT_GROUP_GROUP_ID )
-                .getId();
-        }
         this.profiles = profileService.getAllProfiles();
         buildDefinitionTemplates = getContinuum().getBuildDefinitionService().getAllBuildDefinitionTemplate();
         return SUCCESS;

