You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ev...@apache.org on 2009/03/31 06:55:04 UTC
svn commit: r760328 [1/2] - in /continuum/trunk:
continuum-api/src/main/java/org/apache/maven/continuum/
continuum-api/src/main/java/org/apache/maven/continuum/initialization/
continuum-core/src/main/java/org/apache/maven/continuum/
continuum-core/src/...
Author: evenisse
Date: Tue Mar 31 04:55:00 2009
New Revision: 760328
URL: http://svn.apache.org/viewvc?rev=760328&view=rev
Log:
[CONTINUUM-1130] Allow to delete the default project group
Modified:
continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/initialization/ContinuumInitializer.java
continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/builddefinition/DefaultBuildDefinitionService.java
continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java
continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java
continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java
continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java
continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java
continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java
continuum/trunk/continuum-store/src/main/java/org/apache/continuum/dao/ProjectGroupDaoImpl.java
continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectAction.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectAction_fr.properties
continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-api/src/main/java/org/apache/maven/continuum/xmlrpc/ContinuumService.java
continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-client/src/main/java/org/apache/maven/continuum/xmlrpc/client/ContinuumXmlRpcClient.java
continuum/trunk/continuum-xmlrpc/continuum-xmlrpc-server/src/main/java/org/apache/maven/continuum/xmlrpc/server/ContinuumServiceImpl.java
continuum/trunk/maven-continuum-plugin/src/main/java/org/apache/maven/continuum/plugin/AbstractAddProject.java
continuum/trunk/maven-continuum-plugin/src/main/java/org/apache/maven/continuum/plugin/AddMavenOneProject.java
Modified: continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java?rev=760328&r1=760327&r2=760328&view=diff
==============================================================================
--- continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java (original)
+++ continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java Tue Mar 31 04:55:00 2009
@@ -26,8 +26,8 @@
import org.apache.continuum.builder.distributed.manager.DistributedBuildManager;
import org.apache.continuum.buildmanager.BuildsManager;
-import org.apache.continuum.model.release.ContinuumReleaseResult;
import org.apache.continuum.model.project.ProjectScmRoot;
+import org.apache.continuum.model.release.ContinuumReleaseResult;
import org.apache.continuum.purge.ContinuumPurgeManager;
import org.apache.continuum.purge.PurgeConfigurationService;
import org.apache.continuum.release.distributed.manager.DistributedReleaseManager;
@@ -62,8 +62,6 @@
// Project Groups
// ----------------------------------------------------------------------
- public static final String DEFAULT_PROJECT_GROUP_GROUP_ID = "default";
-
public ProjectGroup getProjectGroup( int projectGroupId )
throws ContinuumException;
@@ -106,7 +104,7 @@
throws ContinuumException;
public List<ProjectGroup> getAllProjectGroupsWithRepository( int repositoryId );
-
+
// ----------------------------------------------------------------------
// Project
// ----------------------------------------------------------------------
@@ -114,11 +112,11 @@
void removeProject( int projectId )
throws ContinuumException;
-
+
/**
- * @deprecated
* @param projectId
* @throws ContinuumException
+ * @deprecated
*/
void checkoutProject( int projectId )
throws ContinuumException;
@@ -237,17 +235,6 @@
/**
* Add a project to the list of building projects (ant, shell,...)
*
- * @param project the project to add
- * @param executorId the id of an {@link org.apache.maven.continuum.execution.ContinuumBuildExecutor}, eg. <code>ant</code> or <code>shell</code>
- * @return id of the project
- * @throws ContinuumException
- */
- int addProject( Project project, String executorId )
- throws ContinuumException;
-
- /**
- * Add a project to the list of building projects (ant, shell,...)
- *
* @param project the project to add
* @param executorId the id of an {@link org.apache.maven.continuum.execution.ContinuumBuildExecutor}, eg. <code>ant</code> or <code>shell</code>
* @param projectGroupId
@@ -365,27 +352,6 @@
/**
* Add a Maven 1 project to the list of projects.
*
- * @param metadataUrl url of the project.xml
- * @return a holder with the projects, project groups and errors occurred during the project adding
- * @throws ContinuumException
- */
- ContinuumProjectBuildingResult addMavenOneProject( String metadataUrl )
- throws ContinuumException;
-
- /**
- * Add a Maven 1 project to the list of projects.
- *
- * @param metadataUrl url of the project.xml
- * @param checkProtocol check if the protocol is allowed, use false if the pom is uploaded
- * @return a holder with the projects, project groups and errors occurred during the project adding
- * @throws ContinuumException
- */
- ContinuumProjectBuildingResult addMavenOneProject( String metadataUrl, boolean checkProtocol )
- throws ContinuumException;
-
- /**
- * Add a Maven 1 project to the list of projects.
- *
* @param metadataUrl url of the project.xml
* @param projectGroupId id of the project group to use
* @return a holder with the projects, project groups and errors occurred during the project adding
@@ -634,7 +600,7 @@
// ----------------------------------------------------------------------
// Builds Manager
// ----------------------------------------------------------------------
- BuildsManager getBuildsManager();
+ BuildsManager getBuildsManager();
// ----------------------------------------------------------------------
// Build Queue
Modified: continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/initialization/ContinuumInitializer.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/initialization/ContinuumInitializer.java?rev=760328&r1=760327&r2=760328&view=diff
==============================================================================
--- continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/initialization/ContinuumInitializer.java (original)
+++ continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/initialization/ContinuumInitializer.java Tue Mar 31 04:55:00 2009
@@ -1,24 +1,23 @@
package org.apache.maven.continuum.initialization;
-
/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied. See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
/**
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
@@ -26,6 +25,8 @@
*/
public interface ContinuumInitializer
{
+ String DEFAULT_PROJECT_GROUP_GROUP_ID = "default";
+
String ROLE = ContinuumInitializer.class.getName();
void initialize()
Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java?rev=760328&r1=760327&r2=760328&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java Tue Mar 31 04:55:00 2009
@@ -425,7 +425,7 @@
log.info( "Remove project group " + projectGroup.getName() + "(" + projectGroup.getId() + ")" );
- Map context = new HashMap();
+ Map<String, Object> context = new HashMap<String, Object>();
context.put( AbstractContinuumAction.KEY_PROJECT_GROUP_ID, projectGroup.getId() );
executeAction( "remove-assignable-roles", context );
@@ -463,7 +463,7 @@
buildDefinitionService.addBuildDefinitionTemplateToProjectGroup( new_pg.getId(),
buildDefinitionService.getDefaultMavenTwoBuildDefinitionTemplate() );
- Map context = new HashMap();
+ Map<String, Object> context = new HashMap<String, Object>();
context.put( AbstractContinuumAction.KEY_PROJECT_GROUP_ID, new_pg.getId() );
executeAction( "add-assignable-roles", context );
@@ -1239,27 +1239,6 @@
// Maven 1.x projects
// ----------------------------------------------------------------------
- public ContinuumProjectBuildingResult addMavenOneProject( String metadataUrl )
- throws ContinuumException
- {
- return addMavenOneProject( metadataUrl, true );
- }
-
- public ContinuumProjectBuildingResult addMavenOneProject( String metadataUrl, boolean checkProtocol )
- throws ContinuumException
- {
- try
- {
- return executeAddProjectsFromMetadataActivity( metadataUrl, MavenOneContinuumProjectBuilder.ID,
- getDefaultProjectGroup().getId(), checkProtocol,
- buildDefinitionService.getDefaultMavenOneBuildDefinitionTemplate().getId() );
- }
- catch ( BuildDefinitionServiceException e )
- {
- throw new ContinuumException( e.getMessage(), e );
- }
- }
-
public ContinuumProjectBuildingResult addMavenOneProject( String metadataUrl, int projectGroupId )
throws ContinuumException
{
@@ -1384,15 +1363,6 @@
// Shell projects
// ----------------------------------------------------------------------
- /**
- * @see org.apache.maven.continuum.Continuum#addProject(org.apache.maven.continuum.model.project.Project, java.lang.String)
- */
- public int addProject( Project project, String executorId )
- throws ContinuumException
- {
- return addProject( project, executorId, getDefaultProjectGroup().getId() );
- }
-
public int addProject( Project project, String executorId, int groupId )
throws ContinuumException
{
@@ -1407,13 +1377,47 @@
{
project.setExecutorId( executorId );
- List<BuildDefinition> buildDefinitions = Collections.EMPTY_LIST;
+ return executeAddProjectFromScmActivity( project, groupId, buildDefintionTemplateId );
+ }
+
+ // ----------------------------------------------------------------------
+ // Activities. These should end up as workflows in werkflow
+ // ----------------------------------------------------------------------
+
+ private int executeAddProjectFromScmActivity( Project project, int groupId, int buildDefintionTemplateId )
+ throws ContinuumException
+ {
+ String executorId = project.getExecutorId();
+
+ ProjectGroup projectGroup = getProjectGroupWithBuildDetails( groupId );
+
+ Map<String, Object> context = new HashMap<String, Object>();
+
+ String scmUrl = project.getScmUrl();
+ createProjectScmRoot( projectGroup, scmUrl );
+
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
+ context.put( AbstractContinuumAction.KEY_WORKING_DIRECTORY, getWorkingDirectory() );
+
+ context.put( AbstractContinuumAction.KEY_UNVALIDATED_PROJECT, project );
+
+ context.put( AbstractContinuumAction.KEY_UNVALIDATED_PROJECT_GROUP, projectGroup );
+
+ context.put( AbstractContinuumAction.KEY_PROJECT_GROUP_ID, projectGroup.getId() );
+
+ executeAction( "validate-project", context );
+
+ executeAction( "store-project", context );
try
{
+ BuildDefinitionTemplate bdt;
+
if ( executorId.equalsIgnoreCase( ContinuumBuildExecutorConstants.ANT_BUILD_EXECUTOR ) )
{
- BuildDefinitionTemplate bdt = null;
if ( buildDefintionTemplateId <= 0 )
{
bdt = buildDefinitionService.getDefaultAntBuildDefinitionTemplate();
@@ -1422,13 +1426,10 @@
{
bdt = buildDefinitionService.getBuildDefinitionTemplate( buildDefintionTemplateId );
}
- buildDefinitions = bdt.getBuildDefinitions();
}
else
{
//shell default
-
- BuildDefinitionTemplate bdt = null;
if ( buildDefintionTemplateId <= 0 )
{
bdt = buildDefinitionService.getDefaultShellBuildDefinitionTemplate();
@@ -1437,60 +1438,22 @@
{
bdt = buildDefinitionService.getBuildDefinitionTemplate( buildDefintionTemplateId );
}
- buildDefinitions = bdt.getBuildDefinitions();
}
- for ( BuildDefinition buildDefinition : buildDefinitions )
- {
- BuildDefinition cloned = buildDefinitionService.cloneBuildDefinition( buildDefinition );
- cloned.setTemplate( false );
- project.addBuildDefinition( buildDefinitionService.addBuildDefinition( cloned ) );
- }
+ buildDefinitionService.addTemplateInProject( bdt.getId(), getProject(
+ (Integer) context.get( AbstractContinuumAction.KEY_PROJECT_ID ) ) );
}
catch ( BuildDefinitionServiceException e )
{
throw new ContinuumException( e.getMessage(), e );
}
- return executeAddProjectFromScmActivity( project, groupId );
- }
-
- // ----------------------------------------------------------------------
- // Activities. These should end up as workflows in werkflow
- // ----------------------------------------------------------------------
-
- @SuppressWarnings("unchecked")
- private int executeAddProjectFromScmActivity( Project project, int groupId )
- throws ContinuumException
- {
- ProjectGroup projectGroup = getProjectGroupWithBuildDetails( groupId );
-
- Map context = new HashMap();
-
- String scmUrl = project.getScmUrl();
- createProjectScmRoot( projectGroup, scmUrl );
-
- // ----------------------------------------------------------------------
- //
- // ----------------------------------------------------------------------
-
- context.put( AbstractContinuumAction.KEY_WORKING_DIRECTORY, getWorkingDirectory() );
-
- context.put( AbstractContinuumAction.KEY_UNVALIDATED_PROJECT, project );
-
- context.put( AbstractContinuumAction.KEY_UNVALIDATED_PROJECT_GROUP, projectGroup );
-
- context.put( AbstractContinuumAction.KEY_PROJECT_GROUP_ID, projectGroup.getId() );
-
- // used by BuildManager to determine on which build queue will the project be put
- context.put( AbstractContinuumAction.KEY_BUILD_DEFINITION, project.getBuildDefinitions().get( 0 ) );
-
- executeAction( "validate-project", context );
-
- executeAction( "store-project", context );
-
if ( !configurationService.isDistributedBuildEnabled() )
{
+ // used by BuildManager to determine on which build queue will the project be put
+ context.put( AbstractContinuumAction.KEY_BUILD_DEFINITION, getProjectWithBuildDetails(
+ (Integer) context.get( AbstractContinuumAction.KEY_PROJECT_ID ) ).getBuildDefinitions().get( 0 ) );
+
executeAction( "add-project-to-checkout-queue", context );
}
@@ -1531,7 +1494,7 @@
}
}
- Map context = new HashMap();
+ Map<String, Object> context = new HashMap<String, Object>();
context.put( CreateProjectsFromMetadataAction.KEY_PROJECT_BUILDER_ID, projectBuilderId );
@@ -1622,7 +1585,7 @@
{
log.info( "Creating project group with the group id: '" + projectGroup.getGroupId() + "'." );
- Map pgContext = new HashMap();
+ Map<String, Object> pgContext = new HashMap<String, Object>();
pgContext.put( AbstractContinuumAction.KEY_WORKING_DIRECTORY, getWorkingDirectory() );
@@ -2094,10 +2057,10 @@
public BuildDefinition addBuildDefinitionToProject( int projectId, BuildDefinition buildDefinition )
throws ContinuumException
{
- HashMap context = new HashMap();
+ HashMap<String, Object> context = new HashMap<String, Object>();
context.put( AbstractContinuumAction.KEY_BUILD_DEFINITION, buildDefinition );
- context.put( AbstractContinuumAction.KEY_PROJECT_ID, new Integer( projectId ) );
+ context.put( AbstractContinuumAction.KEY_PROJECT_ID, projectId );
executeAction( "add-build-definition-to-project", context );
@@ -2107,10 +2070,10 @@
public void removeBuildDefinitionFromProject( int projectId, int buildDefinitionId )
throws ContinuumException
{
- HashMap context = new HashMap();
+ HashMap<String, Object> context = new HashMap<String, Object>();
context.put( AbstractContinuumAction.KEY_BUILD_DEFINITION, getBuildDefinition( buildDefinitionId ) );
- context.put( AbstractContinuumAction.KEY_PROJECT_ID, new Integer( projectId ) );
+ context.put( AbstractContinuumAction.KEY_PROJECT_ID, projectId );
executeAction( "remove-build-definition-from-project", context );
}
@@ -2118,10 +2081,10 @@
public BuildDefinition updateBuildDefinitionForProject( int projectId, BuildDefinition buildDefinition )
throws ContinuumException
{
- HashMap context = new HashMap();
+ HashMap<String, Object> context = new HashMap<String, Object>();
context.put( AbstractContinuumAction.KEY_BUILD_DEFINITION, buildDefinition );
- context.put( AbstractContinuumAction.KEY_PROJECT_ID, new Integer( projectId ) );
+ context.put( AbstractContinuumAction.KEY_PROJECT_ID, projectId );
executeAction( "update-build-definition-from-project", context );
@@ -2131,10 +2094,10 @@
public BuildDefinition addBuildDefinitionToProjectGroup( int projectGroupId, BuildDefinition buildDefinition )
throws ContinuumException
{
- HashMap context = new HashMap();
+ HashMap<String, Object> context = new HashMap<String, Object>();
context.put( AbstractContinuumAction.KEY_BUILD_DEFINITION, buildDefinition );
- context.put( AbstractContinuumAction.KEY_PROJECT_GROUP_ID, new Integer( projectGroupId ) );
+ context.put( AbstractContinuumAction.KEY_PROJECT_GROUP_ID, projectGroupId );
executeAction( "add-build-definition-to-project-group", context );
@@ -2144,10 +2107,10 @@
public void removeBuildDefinitionFromProjectGroup( int projectGroupId, int buildDefinitionId )
throws ContinuumException
{
- HashMap context = new HashMap();
+ HashMap<String, Object> context = new HashMap<String, Object>();
context.put( AbstractContinuumAction.KEY_BUILD_DEFINITION, getBuildDefinition( buildDefinitionId ) );
- context.put( AbstractContinuumAction.KEY_PROJECT_GROUP_ID, new Integer( projectGroupId ) );
+ context.put( AbstractContinuumAction.KEY_PROJECT_GROUP_ID, projectGroupId );
executeAction( "remove-build-definition-from-project-group", context );
}
@@ -2155,10 +2118,10 @@
public BuildDefinition updateBuildDefinitionForProjectGroup( int projectGroupId, BuildDefinition buildDefinition )
throws ContinuumException
{
- HashMap context = new HashMap();
+ HashMap<String, Object> context = new HashMap<String, Object>();
context.put( AbstractContinuumAction.KEY_BUILD_DEFINITION, buildDefinition );
- context.put( AbstractContinuumAction.KEY_PROJECT_GROUP_ID, new Integer( projectGroupId ) );
+ context.put( AbstractContinuumAction.KEY_PROJECT_GROUP_ID, projectGroupId );
executeAction( "update-build-definition-from-project-group", context );
@@ -3047,24 +3010,6 @@
}
}
- private ProjectGroup getDefaultProjectGroup()
- throws ContinuumException
- {
- try
- {
- return projectGroupDao.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 );
- }
- }
-
public InstallationService getInstallationService()
{
return installationService;
@@ -3612,7 +3557,7 @@
ProjectScmRoot newScmRoot = new ProjectScmRoot();
if ( project.getScmUrl().equals( oldScmRoot.getScmRootAddress() ) )
{
- BeanUtils.copyProperties( oldScmRoot, newScmRoot, new String[] { "id", "projectGroup" } );
+ BeanUtils.copyProperties( oldScmRoot, newScmRoot, new String[]{"id", "projectGroup"} );
}
else
{
Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/builddefinition/DefaultBuildDefinitionService.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/builddefinition/DefaultBuildDefinitionService.java?rev=760328&r1=760327&r2=760328&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/builddefinition/DefaultBuildDefinitionService.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/builddefinition/DefaultBuildDefinitionService.java Tue Mar 31 04:55:00 2009
@@ -18,6 +18,10 @@
*/
package org.apache.maven.continuum.builddefinition;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
import org.apache.continuum.buildqueue.BuildQueueServiceException;
import org.apache.continuum.configuration.ContinuumConfigurationException;
import org.apache.continuum.dao.BuildDefinitionDao;
@@ -39,10 +43,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
/**
* @author <a href="mailto:olamy@apache.org">olamy</a>
* @version $Id$
@@ -576,7 +576,7 @@
return;
}
project = projectDao.getProjectWithBuildDetails( project.getId() );
- List<BuildDefinition> buildDefs = new ArrayList<BuildDefinition>();
+
for ( Iterator<BuildDefinition> iterator = template.getBuildDefinitions().iterator(); iterator.hasNext(); )
{
BuildDefinition bd = iterator.next();
@@ -605,10 +605,11 @@
{
return null;
}
- List<BuildDefinition> buildDefs = new ArrayList<BuildDefinition>();
+
for ( Iterator<BuildDefinition> iterator = template.getBuildDefinitions().iterator(); iterator.hasNext(); )
{
BuildDefinition bd = iterator.next();
+ bd.setTemplate( false );
bd = buildDefinitionDao.addBuildDefinition( cloneBuildDefinition( bd ) );
projectGroup.addBuildDefinition( bd );
}
Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java?rev=760328&r1=760327&r2=760328&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java Tue Mar 31 04:55:00 2009
@@ -19,6 +19,10 @@
* under the License.
*/
+import java.io.File;
+import java.util.List;
+import java.util.Map;
+
import org.apache.continuum.model.project.ProjectScmRoot;
import org.apache.maven.continuum.model.project.BuildDefinition;
import org.apache.maven.continuum.model.project.BuildDefinitionTemplate;
@@ -28,10 +32,6 @@
import org.codehaus.plexus.action.AbstractAction;
import org.codehaus.plexus.util.StringUtils;
-import java.io.File;
-import java.util.List;
-import java.util.Map;
-
/**
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
* @version $Id$
@@ -46,9 +46,9 @@
public static final String KEY_PROJECT_ID = "project-id";
public static final String KEY_PROJECT = "project";
-
+
public static final String KEY_PROJECTS = "projects";
-
+
public static final String KEY_PROJECTS_BUILD_DEFINITIONS_MAP = "projects-build-definitions";
public static final String KEY_BUILD_DEFINITION_TEMPLATE = "build-definition-template";
@@ -80,11 +80,11 @@
public static final String KEY_FIRST_RUN = "first-run";
public static final String KEY_PROJECT_RELATIVE_PATH = "project-relative-path";
-
+
public static final String KEY_SCM_USE_CREDENTIALS_CACHE = "useCredentialsCache";
-
+
public static final String KEY_SCM_USERNAME = "scmUserName";
-
+
public static final String KEY_SCM_PASSWORD = "scmUserPassword";
public static final String KEY_SCM_RESULT = "scmResult";
@@ -224,14 +224,14 @@
public static int getOldBuildId( Map context )
{
- return getInteger( context, KEY_OLD_BUILD_ID );
+ return getInteger( context, KEY_OLD_BUILD_ID );
}
-
+
public static List<Project> getListOfProjects( Map context )
{
return (List<Project>) getObject( context, KEY_PROJECTS );
}
-
+
public static Map<Integer, BuildDefinition> getProjectsBuildDefinitionsMap( Map context )
{
return (Map<Integer, BuildDefinition>) getObject( context, KEY_PROJECTS_BUILD_DEFINITIONS_MAP );
@@ -258,25 +258,25 @@
public static boolean getBoolean( Map context, String key )
{
- return ( (Boolean) getObject( context, key ) ).booleanValue();
+ return (Boolean) getObject( context, key );
}
-
+
public static boolean getBoolean( Map context, String key, boolean defaultValue )
{
- return ( (Boolean) getObject( context, key, Boolean.valueOf( defaultValue ) ) ).booleanValue();
- }
+ return (Boolean) getObject( context, key, Boolean.valueOf( defaultValue ) );
+ }
protected static int getInteger( Map context, String key )
{
Object obj = getObject( context, key, null );
-
+
if ( obj == null )
{
return 0;
}
else
{
- return ( (Integer) obj ).intValue();
+ return (Integer) obj;
}
}
Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java?rev=760328&r1=760327&r2=760328&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java Tue Mar 31 04:55:00 2009
@@ -19,14 +19,14 @@
* under the License.
*/
+import java.util.Map;
+
import org.apache.continuum.buildmanager.BuildsManager;
import org.apache.continuum.dao.ProjectDao;
import org.apache.maven.continuum.model.project.BuildDefinition;
import org.apache.maven.continuum.model.project.Project;
import org.apache.maven.continuum.utils.WorkingDirectoryService;
-import java.util.Map;
-
/**
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
* @version $Id$
@@ -45,12 +45,12 @@
* @plexus.requirement
*/
private ProjectDao projectDao;
-
+
/**
* @plexus.requirement role-hint="parallel"
*/
private BuildsManager parallelBuildsManager;
-
+
@SuppressWarnings("unchecked")
public void execute( Map context )
throws Exception
@@ -61,7 +61,7 @@
project = projectDao.getProject( getProjectId( context ) );
}
- BuildDefinition defaultBuildDefinition = ( BuildDefinition ) getBuildDefinition( context );
+ BuildDefinition defaultBuildDefinition = getBuildDefinition( context );
parallelBuildsManager.checkoutProject( project.getId(), project.getName(),
workingDirectoryService.getWorkingDirectory( project ),
project.getScmUsername(), project.getScmPassword(),
Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java?rev=760328&r1=760327&r2=760328&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java Tue Mar 31 04:55:00 2009
@@ -19,14 +19,14 @@
* under the License.
*/
+import java.util.Map;
+
import org.apache.continuum.dao.ProjectGroupDao;
import org.apache.maven.continuum.ContinuumException;
import org.apache.maven.continuum.model.project.Project;
import org.apache.maven.continuum.model.project.ProjectGroup;
import org.apache.maven.continuum.store.ContinuumStoreException;
-import java.util.Map;
-
/**
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
* @version $Id$
@@ -65,7 +65,7 @@
projectGroupDao.updateProjectGroup( projectGroup );
- context.put( KEY_PROJECT_ID, new Integer( project.getId() ) );
+ context.put( KEY_PROJECT_ID, project.getId() );
// ----------------------------------------------------------------------
// Set the working directory
Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java?rev=760328&r1=760327&r2=760328&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/initialization/DefaultContinuumInitializer.java Tue Mar 31 04:55:00 2009
@@ -19,15 +19,18 @@
* under the License.
*/
+import java.io.IOException;
+import java.util.Collection;
+
import org.apache.continuum.dao.LocalRepositoryDao;
import org.apache.continuum.dao.ProjectGroupDao;
import org.apache.continuum.dao.RepositoryPurgeConfigurationDao;
import org.apache.continuum.dao.SystemConfigurationDao;
import org.apache.continuum.model.repository.LocalRepository;
import org.apache.continuum.model.repository.RepositoryPurgeConfiguration;
-import org.apache.maven.continuum.Continuum;
import org.apache.maven.continuum.builddefinition.BuildDefinitionService;
import org.apache.maven.continuum.builddefinition.BuildDefinitionServiceException;
+import org.apache.maven.continuum.model.project.BuildDefinitionTemplate;
import org.apache.maven.continuum.model.project.ProjectGroup;
import org.apache.maven.continuum.model.system.SystemConfiguration;
import org.apache.maven.continuum.store.ContinuumObjectNotFoundException;
@@ -39,8 +42,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
-
/**
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
* @version $Id$
@@ -144,30 +145,34 @@
ProjectGroup group;
try
{
- group = projectGroupDao.getProjectGroupByGroupId( Continuum.DEFAULT_PROJECT_GROUP_GROUP_ID );
+ group = projectGroupDao.getProjectGroupByGroupId( DEFAULT_PROJECT_GROUP_GROUP_ID );
log.info( "Default Project Group exists" );
}
catch ( ContinuumObjectNotFoundException e )
{
+ Collection<ProjectGroup> pgs = projectGroupDao.getAllProjectGroups();
+ if ( pgs != null && pgs.isEmpty() )
+ {
+ log.info( "create Default Project Group" );
- log.info( "create Default Project Group" );
+ group = new ProjectGroup();
- group = new ProjectGroup();
+ group.setName( "Default Project Group" );
- group.setName( "Default Project Group" );
+ group.setGroupId( DEFAULT_PROJECT_GROUP_GROUP_ID );
- group.setGroupId( Continuum.DEFAULT_PROJECT_GROUP_GROUP_ID );
+ group.setDescription( "Contains all projects that do not have a group of their own" );
- group.setDescription( "Contains all projects that do not have a group of their own" );
+ LocalRepository localRepository = localRepositoryDao.getLocalRepositoryByName( "DEFAULT" );
- LocalRepository localRepository = localRepositoryDao.getLocalRepositoryByName( "DEFAULT" );
+ group.setLocalRepository( localRepository );
- group.setLocalRepository( localRepository );
+ group = projectGroupDao.addProjectGroup( group );
- group.getBuildDefinitions().addAll(
- buildDefinitionService.getDefaultMavenTwoBuildDefinitionTemplate().getBuildDefinitions() );
+ BuildDefinitionTemplate bdt = buildDefinitionService.getDefaultMavenTwoBuildDefinitionTemplate();
- group = projectGroupDao.addProjectGroup( group );
+ buildDefinitionService.addBuildDefinitionTemplateToProjectGroup( group.getId(), bdt );
+ }
}
}
Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java?rev=760328&r1=760327&r2=760328&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java Tue Mar 31 04:55:00 2009
@@ -20,20 +20,14 @@
*/
import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.net.ConnectException;
import java.net.MalformedURLException;
-import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
import org.apache.continuum.dao.LocalRepositoryDao;
import org.apache.continuum.dao.ScheduleDao;
import org.apache.continuum.model.repository.LocalRepository;
-import org.apache.http.HttpException;
import org.apache.maven.continuum.builddefinition.BuildDefinitionService;
import org.apache.maven.continuum.builddefinition.BuildDefinitionServiceException;
import org.apache.maven.continuum.configuration.ConfigurationService;
@@ -105,8 +99,8 @@
{
try
{
- return buildProjectsFromMetadata( url, username, password, loadRecursiveProjects, buildDefinitionService
- .getDefaultMavenTwoBuildDefinitionTemplate() );
+ return buildProjectsFromMetadata( url, username, password, loadRecursiveProjects,
+ buildDefinitionService.getDefaultMavenTwoBuildDefinitionTemplate() );
}
catch ( BuildDefinitionServiceException e )
{
@@ -153,12 +147,12 @@
try
{
pomFile = createMetadataFile( result, url, username, password );
-
+
if ( result.hasErrors() )
{
return;
}
-
+
mavenProject = builderHelper.getMavenProject( result, pomFile );
if ( result.hasErrors() )
@@ -345,7 +339,7 @@
if ( StringUtils.isEmpty( buildDefinition.getArguments() ) )
{
// strange for a mvn build
- log.info( "build definition has empty args" );
+ log.info( "build definition '" + buildDefinition.getId() + "' has empty args" );
}
else
{
Modified: continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java?rev=760328&r1=760327&r2=760328&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java (original)
+++ continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java Tue Mar 31 04:55:00 2009
@@ -23,7 +23,6 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -36,6 +35,7 @@
import org.apache.maven.continuum.builddefinition.BuildDefinitionService;
import org.apache.maven.continuum.configuration.ConfigurationService;
import org.apache.maven.continuum.execution.ContinuumBuildExecutorConstants;
+import org.apache.maven.continuum.initialization.ContinuumInitializer;
import org.apache.maven.continuum.model.project.BuildDefinition;
import org.apache.maven.continuum.model.project.Project;
import org.apache.maven.continuum.model.project.ProjectGroup;
@@ -56,32 +56,32 @@
extends AbstractContinuumTest
{
protected Logger log = LoggerFactory.getLogger( getClass() );
-
+
private Mockery context;
-
+
private TaskQueueManager taskQueueManager;
-
+
private ProjectDao projectDao;
-
+
@Override
protected void setUp()
throws Exception
{
super.setUp();
-
+
context = new JUnit3Mockery();
-
+
taskQueueManager = context.mock( TaskQueueManager.class );
-
+
projectDao = context.mock( ProjectDao.class );
}
-
+
public void testContinuumConfiguration()
throws Exception
{
lookup( Continuum.ROLE );
}
-
+
public void testAddMavenTwoProjectSet()
throws Exception
{
@@ -94,20 +94,19 @@
File rootPom = getTestFile( "src/test/resources/projects/continuum/continuum-notifiers/pom.xml" );
assertTrue( rootPom.exists() );
-
+
ContinuumUrlValidator validator = (ContinuumUrlValidator) lookup( ContinuumUrlValidator.class, "continuumUrl" );
-
+
String fileUrl = rootPom.toURL().toExternalForm();
-
+
//assertTrue( validator.validate( fileUrl ) );
-
- ContinuumProjectBuildingResult result = continuum.addMavenTwoProject( rootPom.toURI().toURL()
- .toExternalForm(), -1, true,
- false, true, -1 );
+
+ ContinuumProjectBuildingResult result =
+ continuum.addMavenTwoProject( rootPom.toURI().toURL().toExternalForm(), -1, true, false, true, -1 );
assertNotNull( result );
- assertEquals( "result.warnings.size", 0, result.getWarnings().size() );
+ assertEquals( "result.warnings.size" + result.getWarnings(), 0, result.getWarnings().size() );
assertEquals( "result.projects.size", 3, result.getProjects().size() );
@@ -115,20 +114,17 @@
log.info( "number of projects: " + getProjectDao().getAllProjectsByName().size() );
- log.info(
- "number of project groups: " + getProjectGroupDao().getAllProjectGroupsWithProjects().size() );
+ log.info( "number of project groups: " + getProjectGroupDao().getAllProjectGroupsWithProjects().size() );
assertEquals( "Total project count", projectCount + 3, getProjectDao().getAllProjectsByName().size() );
assertEquals( "Total project group count.", projectGroupCount + 1,
getProjectGroupDao().getAllProjectGroupsWithProjects().size() );
- Map projects = new HashMap();
+ Map<String, Project> projects = new HashMap<String, Project>();
- for ( Iterator i = getProjectDao().getAllProjectsByName().iterator(); i.hasNext(); )
+ for ( Project project : getProjectDao().getAllProjectsByName() )
{
- Project project = (Project) i.next();
-
projects.put( project.getName(), project );
// validate project in project group
@@ -252,8 +248,6 @@
/**
* todo add another project group to test
- *
- * @throws Exception
*/
public void testProjectGroups()
throws Exception
@@ -274,7 +268,7 @@
assertEquals( 1, result.getProjectGroups().size() );
- ProjectGroup projectGroup = (ProjectGroup) result.getProjectGroups().get( 0 );
+ ProjectGroup projectGroup = result.getProjectGroups().get( 0 );
assertEquals( "plexus", projectGroup.getGroupId() );
@@ -286,24 +280,23 @@
projectGroup = (ProjectGroup) projectGroupList.iterator().next();
assertNotNull( projectGroup );
-
+
BuildsManager buildsManager = continuum.getBuildsManager();
-
+
List<Project> projects = projectGroup.getProjects();
- int[] projectIds = new int[ projects.size() ];
-
+ int[] projectIds = new int[projects.size()];
+
int idx = 0;
- for( Project project : projects )
+ for ( Project project : projects )
{
- projectIds[ idx ] = project.getId();
+ projectIds[idx] = project.getId();
idx++;
}
-
- while( buildsManager.isAnyProjectCurrentlyBeingCheckedOut( projectIds ) )
+
+ while ( buildsManager.isAnyProjectCurrentlyBeingCheckedOut( projectIds ) )
{
- continue;
}
-
+
continuum.removeProjectGroup( projectGroup.getId() );
projectGroupList = continuum.getAllProjectGroupsWithProjects();
@@ -313,8 +306,6 @@
/**
* test the logic for notifiers
- *
- * @throws Exception
*/
public void testProjectAndGroupNotifiers()
throws Exception
@@ -335,13 +326,12 @@
assertEquals( 1, result.getProjectGroups().size() );
- ProjectGroup projectGroup = (ProjectGroup) result.getProjectGroups().get( 0 );
+ ProjectGroup projectGroup = result.getProjectGroups().get( 0 );
continuum.addGroupNotifier( projectGroup.getId(), new ProjectNotifier() );
- for ( Iterator i = projectGroup.getProjects().iterator(); i.hasNext(); )
+ for ( Project p : (List<Project>) projectGroup.getProjects() )
{
- Project p = (Project) i.next();
continuum.addNotifier( p.getId(), new ProjectNotifier() );
}
@@ -349,9 +339,8 @@
assertEquals( 1, projectGroup.getNotifiers().size() );
- for ( Iterator i = projectGroup.getProjects().iterator(); i.hasNext(); )
+ for ( Project p : (List<Project>) projectGroup.getProjects() )
{
- Project p = (Project) i.next();
assertEquals( 2, p.getNotifiers().size() );
}
}
@@ -371,8 +360,8 @@
//expected, check for twice wrapped exception
if ( e.getCause() != null )
{
- assertFalse( exceptionName + " is wrapped in " + exceptionName, e.getCause().getClass()
- .equals( ContinuumException.class ) );
+ assertFalse( exceptionName + " is wrapped in " + exceptionName,
+ e.getCause().getClass().equals( ContinuumException.class ) );
}
}
}
@@ -381,9 +370,9 @@
throws Exception
{
Continuum continuum = (Continuum) lookup( Continuum.ROLE );
-
+
BuildsManager parallelBuildsManager = continuum.getBuildsManager();
-
+
String url = getTestFile( "src/test-projects/project1/pom.xml" ).toURL().toExternalForm();
ContinuumProjectBuildingResult result = continuum.addMavenTwoProject( url );
@@ -397,9 +386,9 @@
assertEquals( Project.class, projects.get( 0 ).getClass() );
Project project = (Project) projects.get( 0 );
-
+
parallelBuildsManager.removeProjectFromCheckoutQueue( project.getId() );
-
+
assertFalse( "project still exist on the checkout queue",
parallelBuildsManager.isInAnyCheckoutQueue( project.getId() ) );
}
@@ -411,9 +400,10 @@
Project project = new Project();
project.setScmUrl( "scmUrl" );
- int projectId = continuum.addProject( project, ContinuumBuildExecutorConstants.ANT_BUILD_EXECUTOR );
- ProjectGroup defaultProjectGroup = continuum
- .getProjectGroupByGroupId( Continuum.DEFAULT_PROJECT_GROUP_GROUP_ID );
+ ProjectGroup defaultProjectGroup =
+ continuum.getProjectGroupByGroupId( ContinuumInitializer.DEFAULT_PROJECT_GROUP_GROUP_ID );
+ int projectId = continuum.addProject( project, ContinuumBuildExecutorConstants.ANT_BUILD_EXECUTOR,
+ defaultProjectGroup.getId() );
assertEquals( 1, continuum.getProjectGroupWithProjects( defaultProjectGroup.getId() ).getProjects().size() );
project = continuum.getProjectWithAllDetails( projectId );
assertNotNull( project );
@@ -422,8 +412,8 @@
assertEquals( 4, service.getAllBuildDefinitionTemplate().size() );
assertEquals( 5, service.getAllBuildDefinitions().size() );
- BuildDefinition buildDef = (BuildDefinition) service.getDefaultAntBuildDefinitionTemplate()
- .getBuildDefinitions().get( 0 );
+ BuildDefinition buildDef =
+ (BuildDefinition) service.getDefaultAntBuildDefinitionTemplate().getBuildDefinitions().get( 0 );
buildDef = service.cloneBuildDefinition( buildDef );
buildDef.setTemplate( false );
continuum.addBuildDefinitionToProject( project.getId(), buildDef );
@@ -438,24 +428,23 @@
{
Continuum continuum = getContinuum();
RepositoryService service = (RepositoryService) lookup( RepositoryService.ROLE );
-
+
LocalRepository repository = new LocalRepository();
repository.setName( "defaultRepo" );
repository.setLocation( getTestFile( "target/default-repository" ).getAbsolutePath() );
repository = service.addLocalRepository( repository );
-
+
ProjectGroup group = new ProjectGroup();
group.setGroupId( "testGroup" );
group.setName( "testGroup" );
group.setLocalRepository( repository );
continuum.addProjectGroup( group );
-
- ProjectGroup retrievedDefaultProjectGroup = continuum
- .getProjectGroupByGroupId( "testGroup" );
+
+ ProjectGroup retrievedDefaultProjectGroup = continuum.getProjectGroupByGroupId( "testGroup" );
assertNotNull( retrievedDefaultProjectGroup.getLocalRepository() );
-
+
continuum.removeProjectGroup( retrievedDefaultProjectGroup.getId() );
-
+
try
{
continuum.getProjectGroupByGroupId( "testGroup" );
@@ -465,7 +454,7 @@
{
// should fail. do nothing.
}
-
+
LocalRepository retrievedRepository = service.getLocalRepository( repository.getId() );
assertNotNull( retrievedRepository );
assertEquals( repository, retrievedRepository );
@@ -476,14 +465,15 @@
{
Continuum continuum = getContinuum();
- ProjectGroup defaultProjectGroup = continuum.getProjectGroupByGroupId( Continuum.DEFAULT_PROJECT_GROUP_GROUP_ID );
+ ProjectGroup defaultProjectGroup =
+ continuum.getProjectGroupByGroupId( ContinuumInitializer.DEFAULT_PROJECT_GROUP_GROUP_ID );
assertEquals( 0, continuum.getAllContinuumReleaseResults().size() );
ContinuumReleaseResult releaseResult = new ContinuumReleaseResult();
releaseResult.setStartTime( System.currentTimeMillis() );
- File logFile = continuum.getConfiguration().getReleaseOutputFile( defaultProjectGroup.getId(),
+ File logFile = continuum.getConfiguration().getReleaseOutputFile( defaultProjectGroup.getId(),
"releases-" + releaseResult.getStartTime() );
logFile.mkdirs();
@@ -495,43 +485,44 @@
releaseResult = continuum.addContinuumReleaseResult( releaseResult );
- List<ContinuumReleaseResult> releaseResults = continuum.getContinuumReleaseResultsByProjectGroup( defaultProjectGroup.getId() );
+ List<ContinuumReleaseResult> releaseResults =
+ continuum.getContinuumReleaseResultsByProjectGroup( defaultProjectGroup.getId() );
assertEquals( 1, releaseResults.size() );
assertEquals( releaseResult, releaseResults.get( 0 ) );
continuum.removeContinuumReleaseResult( releaseResult.getId() );
- assertEquals( 0 , continuum.getAllContinuumReleaseResults().size() );
+ assertEquals( 0, continuum.getAllContinuumReleaseResults().size() );
assertFalse( logFile.exists() );
- assertEquals( defaultProjectGroup, continuum.getProjectGroupByGroupId( Continuum.DEFAULT_PROJECT_GROUP_GROUP_ID ) );
-
+ assertEquals( defaultProjectGroup,
+ continuum.getProjectGroupByGroupId( ContinuumInitializer.DEFAULT_PROJECT_GROUP_GROUP_ID ) );
+
}
-
+
public void testBuildProjectWhileProjectIsInReleaseStage()
throws Exception
{
- DefaultContinuum continuum = ( DefaultContinuum ) getContinuum();
-
+ DefaultContinuum continuum = (DefaultContinuum) getContinuum();
+
continuum.setTaskQueueManager( taskQueueManager );
-
+
continuum.setProjectDao( projectDao );
-
+
final Project project = new Project();
project.setId( 1 );
project.setName( "Continuum Core" );
project.setGroupId( "org.apache.continuum" );
project.setArtifactId( "continuum-core" );
-
+
context.checking( new Expectations()
{
- {
+ {
one( projectDao ).getProject( 1 );
will( returnValue( project ) );
-
+
one( taskQueueManager ).isProjectInReleaseStage( "org.apache.continuum:continuum-core" );
will( returnValue( true ) );
- }
- });
-
+ }} );
+
try
{
continuum.buildProject( 1 );
@@ -542,43 +533,42 @@
assertEquals( "Project (id=1) is currently in release stage.", e.getMessage() );
}
}
-
+
public void testBuildProjectGroupWhileAtLeastOneProjectIsInReleaseStage()
throws Exception
{
- DefaultContinuum continuum = ( DefaultContinuum ) getContinuum();
-
+ DefaultContinuum continuum = (DefaultContinuum) getContinuum();
+
continuum.setTaskQueueManager( taskQueueManager );
-
+
continuum.setProjectDao( projectDao );
-
+
final List<Project> projects = new ArrayList<Project>();
-
+
Project project = new Project();
project.setId( 1 );
project.setName( "Continuum Core" );
project.setGroupId( "org.apache.continuum" );
project.setArtifactId( "continuum-core" );
projects.add( project );
-
+
project = new Project();
project.setId( 2 );
project.setName( "Continuum API" );
project.setGroupId( "org.apache.continuum" );
project.setArtifactId( "continuum-api" );
projects.add( project );
-
- context.checking( new Expectations()
+
+ context.checking( new Expectations()
{
{
one( projectDao ).getProjectsInGroup( 1 );
will( returnValue( projects ) );
-
+
one( taskQueueManager ).isProjectInReleaseStage( "org.apache.continuum:continuum-core" );
will( returnValue( true ) );
- }
- });
-
+ }} );
+
try
{
continuum.buildProjectGroup( 1 );
@@ -590,7 +580,7 @@
e.getMessage() );
}
}
-
+
private Continuum getContinuum()
throws Exception
{
Modified: continuum/trunk/continuum-store/src/main/java/org/apache/continuum/dao/ProjectGroupDaoImpl.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-store/src/main/java/org/apache/continuum/dao/ProjectGroupDaoImpl.java?rev=760328&r1=760327&r2=760328&view=diff
==============================================================================
--- continuum/trunk/continuum-store/src/main/java/org/apache/continuum/dao/ProjectGroupDaoImpl.java (original)
+++ continuum/trunk/continuum-store/src/main/java/org/apache/continuum/dao/ProjectGroupDaoImpl.java Tue Mar 31 04:55:00 2009
@@ -19,22 +19,26 @@
* 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 org.springframework.stereotype.Repository;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
import javax.annotation.Resource;
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;
+import org.springframework.stereotype.Repository;
/**
* @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
@@ -48,7 +52,7 @@
{
/**
* @plexus.requirement role=org.apache.continuum.dao.ProjectDao"
- */
+ */
@Resource
private ProjectDao projectDao;
@@ -62,7 +66,7 @@
ProjectGroup pg = null;
try
{
- pg = getProjectGroupWithProjects( projectGroup.getId() );
+ pg = getProjectGroupWithBuildDetailsByProjectGroupId( projectGroup.getId() );
}
catch ( Exception e )
{
@@ -78,6 +82,35 @@
{
projectDao.removeProject( p );
}
+
+ List<BuildDefinition> buildDefs = new ArrayList<BuildDefinition>();
+ Iterator<BuildDefinition> it = pg.getBuildDefinitions().listIterator();
+ boolean template = false;
+ while ( it.hasNext() )
+ {
+ BuildDefinition bd = it.next();
+ if ( bd.isTemplate() )
+ {
+ template = true;
+ }
+ else
+ {
+ buildDefs.add( bd );
+ }
+ }
+ if ( template )
+ {
+ try
+ {
+ pg.setBuildDefinitions( buildDefs );
+ updateProjectGroup( pg );
+ }
+ catch ( ContinuumStoreException e )
+ {
+ // Do nothing
+ }
+ }
+
removeObject( pg );
}
}
@@ -158,10 +191,10 @@
public List<ProjectGroup> getAllProjectGroupsWithTheLot()
{
- List fetchGroups = Arrays.asList( new String[]{PROJECT_WITH_BUILDS_FETCH_GROUP,
- PROJECTGROUP_PROJECTS_FETCH_GROUP, BUILD_RESULT_WITH_DETAILS_FETCH_GROUP,
- PROJECT_WITH_CHECKOUT_RESULT_FETCH_GROUP, PROJECT_ALL_DETAILS_FETCH_GROUP,
- PROJECT_BUILD_DETAILS_FETCH_GROUP} );
+ List fetchGroups = Arrays.asList(
+ new String[]{PROJECT_WITH_BUILDS_FETCH_GROUP, PROJECTGROUP_PROJECTS_FETCH_GROUP,
+ BUILD_RESULT_WITH_DETAILS_FETCH_GROUP, PROJECT_WITH_CHECKOUT_RESULT_FETCH_GROUP,
+ PROJECT_ALL_DETAILS_FETCH_GROUP, PROJECT_BUILD_DETAILS_FETCH_GROUP} );
return PlexusJdoUtils.getAllObjectsDetached( getPersistenceManager(), ProjectGroup.class, "name ascending",
fetchGroups );
}
Modified: continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java?rev=760328&r1=760327&r2=760328&view=diff
==============================================================================
--- continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java (original)
+++ continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java Tue Mar 31 04:55:00 2009
@@ -19,6 +19,16 @@
* under the License.
*/
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import javax.jdo.PersistenceManager;
+import javax.jdo.PersistenceManagerFactory;
+
import org.apache.continuum.dao.DaoUtils;
import org.apache.continuum.dao.ProjectDao;
import org.apache.continuum.dao.ProjectGroupDao;
@@ -26,6 +36,7 @@
import org.apache.maven.continuum.configuration.ConfigurationService;
import org.apache.maven.continuum.execution.ContinuumBuildExecutor;
import org.apache.maven.continuum.execution.ContinuumBuildExecutorConstants;
+import org.apache.maven.continuum.initialization.ContinuumInitializer;
import org.apache.maven.continuum.jdo.MemoryJdoFactory;
import org.apache.maven.continuum.model.project.BuildDefinition;
import org.apache.maven.continuum.model.project.Project;
@@ -38,15 +49,6 @@
import org.codehaus.plexus.spring.PlexusInSpringTestCase;
import org.jpox.SchemaTool;
-import javax.jdo.PersistenceManager;
-import javax.jdo.PersistenceManagerFactory;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
/**
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
* @version $Id$
@@ -117,7 +119,7 @@
group.setName( "Default Project Group" );
- group.setGroupId( Continuum.DEFAULT_PROJECT_GROUP_GROUP_ID );
+ group.setGroupId( ContinuumInitializer.DEFAULT_PROJECT_GROUP_GROUP_ID );
group.setDescription( "Contains all projects that do not have a group of their own" );
@@ -131,7 +133,7 @@
configurationService.setBuildOutputDirectory( getTestFile( "target/build-output" ) );
configurationService.setWorkingDirectory( getTestFile( "target/working-directory" ) );
-
+
configurationService.setReleaseOutputDirectory( getTestFile( "target/release-outpur" ) );
configurationService.setReleaseOutputDirectory( getTestFile( "target/release-outpur" ) );
@@ -142,7 +144,8 @@
protected ProjectGroup getDefaultProjectGroup()
throws ContinuumStoreException
{
- return projectGroupDao.getProjectGroupByGroupIdWithProjects( Continuum.DEFAULT_PROJECT_GROUP_GROUP_ID );
+ return projectGroupDao.getProjectGroupByGroupIdWithProjects(
+ ContinuumInitializer.DEFAULT_PROJECT_GROUP_GROUP_ID );
}
// ----------------------------------------------------------------------
Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java?rev=760328&r1=760327&r2=760328&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java Tue Mar 31 04:55:00 2009
@@ -21,10 +21,8 @@
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Iterator;
import java.util.List;
-import org.apache.maven.continuum.Continuum;
import org.apache.maven.continuum.ContinuumException;
import org.apache.maven.continuum.builddefinition.BuildDefinitionServiceException;
import org.apache.maven.continuum.model.project.BuildDefinitionTemplate;
@@ -64,7 +62,7 @@
private String projectType;
- private Collection projectGroups;
+ private Collection<ProjectGroup> projectGroups;
private int selectedProjectGroup;
@@ -104,6 +102,10 @@
{
addActionError( getText( "addProject.scmUrl.required" ) );
}
+ if ( selectedProjectGroup == 0 )
+ {
+ addActionError( getText( "addProject.projectGroup.required" ) );
+ }
if ( hasActionErrors() )
{
input();
@@ -147,9 +149,9 @@
for ( Project project : getContinuum().getProjects() )
{
// CONTINUUM-1445
- if ( StringUtils.equalsIgnoreCase( project.getName(), projectNameTrim )
- && StringUtils.equalsIgnoreCase( project.getVersion(), versionTrim )
- && StringUtils.equalsIgnoreCase( project.getScmUrl(), scmTrim ) )
+ if ( StringUtils.equalsIgnoreCase( project.getName(), projectNameTrim ) &&
+ StringUtils.equalsIgnoreCase( project.getVersion(), versionTrim ) &&
+ StringUtils.equalsIgnoreCase( project.getScmUrl(), scmTrim ) )
{
addActionError( getText( "projectName.already.exist.error" ) );
return INPUT;
@@ -210,25 +212,18 @@
return REQUIRES_AUTHORIZATION;
}
- projectGroups = new ArrayList();
+ projectGroups = new ArrayList<ProjectGroup>();
- Collection allProjectGroups = getContinuum().getAllProjectGroups();
+ Collection<ProjectGroup> allProjectGroups = getContinuum().getAllProjectGroups();
- for ( Iterator i = allProjectGroups.iterator(); i.hasNext(); )
+ for ( ProjectGroup pg : allProjectGroups )
{
- ProjectGroup pg = (ProjectGroup) i.next();
-
if ( isAuthorizedToAddProjectToGroup( pg.getName() ) )
{
projectGroups.add( pg );
}
}
- if ( !disableGroupSelection )
- {
- selectedProjectGroup =
- getContinuum().getProjectGroupByGroupId( Continuum.DEFAULT_PROJECT_GROUP_GROUP_ID ).getId();
- }
this.profiles = profileService.getAllProfiles();
buildDefinitionTemplates = getContinuum().getBuildDefinitionService().getAllBuildDefinitionTemplate();
return INPUT;
@@ -236,7 +231,7 @@
private void initializeProjectGroupName()
{
- if ( disableGroupSelection == true )
+ if ( disableGroupSelection )
{
try
{
@@ -319,12 +314,12 @@
this.projectVersion = projectVersion;
}
- public Collection getProjectGroups()
+ public Collection<ProjectGroup> getProjectGroups()
{
return projectGroups;
}
- public void setProjectGroups( Collection projectGroups )
+ public void setProjectGroups( Collection<ProjectGroup> projectGroups )
{
this.projectGroups = projectGroups;
}
Modified: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectAction.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectAction.properties?rev=760328&r1=760327&r2=760328&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectAction.properties (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectAction.properties Tue Mar 31 04:55:00 2009
@@ -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
Modified: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectAction_fr.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectAction_fr.properties?rev=760328&r1=760327&r2=760328&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectAction_fr.properties (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/AddProjectAction_fr.properties Tue Mar 31 04:55:00 2009
@@ -20,3 +20,4 @@
addProject.name.required = le nom est obligatoire et ne peut pas contenir uniquement des espaces
addProject.version.required = la version est obligatoire et ne peut pas contenir uniquement des espaces
addProject.scmUrl.required = l''URL du gestionnaire de sources est obligatoire et ne peut pas contenir uniquement des espaces
+addProject.projectGroup.required = Le groupe de projets est requis et tous les projets doivent \u00eatre dans un groupe de projets
\ No newline at end of file