You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by tr...@apache.org on 2005/07/23 22:04:12 UTC
svn commit: r224534 - in /maven/continuum/trunk:
continuum-api/src/main/java/org/apache/maven/continuum/store/
continuum-core/src/main/java/org/apache/maven/continuum/
continuum-core/src/main/java/org/apache/maven/continuum/core/action/
continuum-core/...
Author: trygvis
Date: Sat Jul 23 13:03:53 2005
New Revision: 224534
URL: http://svn.apache.org/viewcvs?rev=224534&view=rev
Log:
o Storing new project groups that's found while building projects.
Modified:
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/StoreProjectAction.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/store/JdoContinuumStore.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/configuration/ConfigurationServiceTest.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/projects/continuum/pom.xml
Modified: maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java?rev=224534&r1=224533&r2=224534&view=diff
==============================================================================
--- 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 Sat Jul 23 13:03:53 2005
@@ -147,6 +147,9 @@
ContinuumProjectGroup getProjectGroupByName( String name )
throws ContinuumStoreException;
+ ContinuumProjectGroup getProjectGroupByGroupId( String groupId )
+ throws ContinuumStoreException;
+
Collection getProjectGroups()
throws ContinuumStoreException;
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java?rev=224534&r1=224533&r2=224534&view=diff
==============================================================================
--- 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 Sat Jul 23 13:03:53 2005
@@ -46,14 +46,14 @@
import org.apache.maven.continuum.project.builder.maven.MavenOneContinuumProjectBuilder;
import org.apache.maven.continuum.project.builder.maven.MavenTwoContinuumProjectBuilder;
import org.apache.maven.continuum.scheduler.ContinuumScheduler;
-import org.apache.maven.continuum.scheduler.ContinuumSchedulerConstants;
import org.apache.maven.continuum.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.apache.maven.continuum.utils.ProjectSorter;
import org.codehaus.plexus.action.ActionManager;
-import org.codehaus.plexus.action.Action;
import org.codehaus.plexus.action.ActionNotFoundException;
+import org.codehaus.plexus.action.Action;
import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Startable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.StartingException;
@@ -460,11 +460,60 @@
ContinuumProjectBuildingResult result = (ContinuumProjectBuildingResult)
context.get( CreateProjectsFromMetadata.KEY_PROJECT_BUILDING_RESULT );
+ // ----------------------------------------------------------------------
+ // Look for any warnings.
+ // ----------------------------------------------------------------------
+
if ( result.getWarnings().size() > 0 )
{
return result;
}
+ // ----------------------------------------------------------------------
+ // Save any new project groups that we've found
+ // ----------------------------------------------------------------------
+
+ ContinuumProjectGroup projectGroup = null;
+
+ for ( Iterator it = result.getProjectGroups().iterator(); it.hasNext(); )
+ {
+ projectGroup = (ContinuumProjectGroup) it.next();
+
+ getLogger().info( "Looking for project group '" + projectGroup.getGroupId() + "'." );
+
+ try
+ {
+ try
+ {
+ projectGroup = store.getProjectGroupByGroupId( projectGroup.getGroupId() );
+
+ getLogger().info( "Existed." );
+ }
+ catch ( ContinuumObjectNotFoundException e )
+ {
+ projectGroup = store.addProjectGroup( projectGroup );
+
+ getLogger().info( "Added." );
+ }
+ }
+ catch ( ContinuumStoreException e )
+ {
+ throw new ContinuumException( "Error while querying for project group.", e );
+ }
+ }
+
+ if ( projectGroup == null )
+ {
+ getLogger().info( "Using default project group." );
+
+ projectGroup = getDefaultProjectGroup();
+ }
+
+ // ----------------------------------------------------------------------
+ // Save all the projects
+ // TODO: Validate all the projects before saving them
+ // ----------------------------------------------------------------------
+
List projects = result.getProjects();
for ( Iterator i = projects.iterator(); i.hasNext(); )
@@ -473,6 +522,8 @@
project.setExecutorId( buildExecutorId );
+ project.setProjectGroup( projectGroup );
+
context.put( AbstractContinuumAction.KEY_UNVALIDATED_PROJECT, project );
executeAction( "validate-project", context );
@@ -746,34 +797,6 @@
public ContinuumBuildSettings getDefaultBuildSettings()
{
return initializer.getDefaultBuildSettings();
- }
-
- // ----------------------------------------------------------------------
- // Default Object Management
- // ----------------------------------------------------------------------
-
- private boolean defaultScheduleExists()
- {
- // ----------------------------------------------------------------------
- // Perform a lookup for the default schedule to see if it exists.
- // ----------------------------------------------------------------------
-
- return true;
- }
-
- private void createDefaultSchedule()
- {
- ContinuumSchedule schedule = new ContinuumSchedule();
-
- schedule.setName( ContinuumSchedulerConstants.DEFAULT_SCHEDULE_NAME );
-
- schedule.setDescription( ContinuumSchedulerConstants.DEFAULT_SCHEDULE_NAME );
-
- schedule.setScmMode( ContinuumSchedulerConstants.DEFAULT_SCHEDULE_SCM_MODE );
-
- schedule.setActive( true );
-
- schedule.setCronExpression( ContinuumSchedulerConstants.DEFAULT_CRON_EXPRESSION );
}
// ----------------------------------------------------------------------
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java?rev=224534&r1=224533&r2=224534&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreProjectAction.java Sat Jul 23 13:03:53 2005
@@ -1,7 +1,20 @@
+package org.apache.maven.continuum.core.action;
+
/*
- * Copyright (c) 2005 Your Corporation. All Rights Reserved.
+ * Copyright 2004-2005 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.
*/
-package org.apache.maven.continuum.core.action;
import org.apache.maven.continuum.ContinuumException;
import org.apache.maven.continuum.project.ContinuumProject;
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java?rev=224534&r1=224533&r2=224534&view=diff
==============================================================================
--- 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 Sat Jul 23 13:03:53 2005
@@ -186,7 +186,7 @@
return null;
}
- projectGroup.setGroupId( projectGroup.getGroupId() );
+ projectGroup.setGroupId( mavenProject.getGroupId() );
// ----------------------------------------------------------------------
// Name
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java?rev=224534&r1=224533&r2=224534&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java Sat Jul 23 13:03:53 2005
@@ -806,41 +806,18 @@
public ContinuumProjectGroup getProjectGroupByName( String name )
throws ContinuumStoreException
{
- PersistenceManager pm = pmf.getPersistenceManager();
-
- Transaction tx = pm.currentTransaction();
-
- try
- {
- tx.begin();
-
- Extent extent = pm.getExtent( ContinuumProjectGroup.class, true );
-
- Query query = pm.newQuery( extent );
-
- query.setOrdering( "name ascending" );
-
- query.declareParameters( "String filter" );
-
- query.setFilter( "this.name == name" );
-
- Collection result = (Collection) query.execute( name );
-
- if ( result.size() == 0 )
- {
- throw new ContinuumObjectNotFoundException( ContinuumProjectGroup.class.getName(), name );
- }
-
- Object object = pm.detachCopy( result.iterator().next() );
+ return (ContinuumProjectGroup) getObjectFromQuery( ContinuumProjectGroup.class,
+ "name",
+ name );
+ }
- commit( tx );
+ public ContinuumProjectGroup getProjectGroupByGroupId( String groupId )
+ throws ContinuumStoreException
+ {
+ return (ContinuumProjectGroup) getObjectFromQuery( ContinuumProjectGroup.class,
+ "groupId",
+ groupId );
- return (ContinuumProjectGroup) object;
- }
- finally
- {
- rollback( tx );
- }
}
// ----------------------------------------------------------------------
@@ -1201,6 +1178,51 @@
catch ( JDOObjectNotFoundException e )
{
throw new ContinuumObjectNotFoundException( clazz.getName(), id );
+ }
+ finally
+ {
+ rollback( tx );
+ }
+ }
+
+ private Object getObjectFromQuery( Class clazz, String idField, String id )
+ throws ContinuumStoreException
+ {
+ PersistenceManager pm = pmf.getPersistenceManager();
+
+ Transaction tx = pm.currentTransaction();
+
+ try
+ {
+ tx.begin();
+
+ Extent extent = pm.getExtent( clazz, true );
+
+ Query query = pm.newQuery( extent );
+
+ query.declareParameters( "String " + idField );
+
+ query.setFilter( "this." + idField + " == " + idField );
+
+ Collection result = (Collection) query.execute( id );
+
+ if ( result.size() == 0 )
+ {
+ throw new ContinuumObjectNotFoundException( clazz.getName(), id );
+ }
+
+ if ( result.size() > 1 )
+ {
+ throw new ContinuumStoreException( "A query for object of " +
+ "type " + clazz.getName() + " on the " +
+ "field '" + idField + "' returned more than one object." );
+ }
+
+ Object object = pm.detachCopy( result.iterator().next() );
+
+ commit( tx );
+
+ return object;
}
finally
{
Modified: maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java?rev=224534&r1=224533&r2=224534&view=diff
==============================================================================
--- 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 Sat Jul 23 13:03:53 2005
@@ -18,7 +18,6 @@
import org.apache.maven.continuum.project.MavenTwoProject;
import org.apache.maven.continuum.project.builder.ContinuumProjectBuildingResult;
-import org.codehaus.plexus.PlexusTestCase;
import org.codehaus.plexus.taskqueue.TaskQueue;
import org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor;
Modified: maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/configuration/ConfigurationServiceTest.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/configuration/ConfigurationServiceTest.java?rev=224534&r1=224533&r2=224534&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/configuration/ConfigurationServiceTest.java (original)
+++ maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/configuration/ConfigurationServiceTest.java Sat Jul 23 13:03:53 2005
@@ -25,7 +25,7 @@
/**
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
- * @version $Id:$
+ * @version $Id$
*/
public class ConfigurationServiceTest
extends PlexusTestCase
@@ -102,4 +102,4 @@
assertEquals( "/jdks/1.5", jdk.getHome() );
}
-}
\ No newline at end of file
+}
Modified: maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilderTest.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilderTest.java?rev=224534&r1=224533&r2=224534&view=diff
==============================================================================
--- 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 Sat Jul 23 13:03:53 2005
@@ -26,6 +26,7 @@
import org.apache.maven.continuum.project.ContinuumNotifier;
import org.apache.maven.continuum.project.MavenTwoProject;
+import org.apache.maven.continuum.project.ContinuumProjectGroup;
import org.apache.maven.continuum.project.builder.ContinuumProjectBuilder;
import org.apache.maven.continuum.project.builder.ContinuumProjectBuildingResult;
@@ -120,18 +121,42 @@
assertNotNull( result );
// ----------------------------------------------------------------------
- //
+ // Assert the warnings
// ----------------------------------------------------------------------
assertNotNull( result.getWarnings() );
assertEquals( 1, result.getWarnings().size() );
- assertTrue( result.getWarnings().get( 0 ).toString().indexOf( "I'm-not-here-project/pom.xml" ) != -1 );
+ assertTrue( "Does not end with I'm-not-here-project/pom.xml",
+ result.getWarnings().get( 0 ).toString().endsWith( "I'm-not-here-project/pom.xml" ) );
// ----------------------------------------------------------------------
- //
+ // Assert the project group built
// ----------------------------------------------------------------------
+
+ assertNotNull( result.getProjectGroups() );
+
+ assertEquals( 1, result.getProjectGroups().size() );
+
+ ContinuumProjectGroup projectGroup = (ContinuumProjectGroup) result.getProjectGroups().iterator().next();
+
+ assertEquals( "projectGroup.groupId", "org.apache.maven.continuum", projectGroup.getGroupId() );
+
+ assertEquals( "projectGroup.name", "Continuum Parent Project", projectGroup.getName() );
+
+ assertEquals( "projectGroup.description", "Continuum Project Description", projectGroup.getDescription() );
+
+ assertEquals( "projectGroup.url", "http://cvs.continuum.codehaus.org/", projectGroup.getUrl() );
+
+ assertEquals( "projectGroup.issueManagementUrl", "http://jira.codehaus.org/browse/CONTINUUM",
+ projectGroup.getIssueManagementUrl() );
+
+ // ----------------------------------------------------------------------
+ // Assert the projects built
+ // ----------------------------------------------------------------------
+
+ assertNotNull( result.getProjects() );
assertEquals( 5, result.getProjects().size() );
Modified: maven/continuum/trunk/continuum-core/src/test/resources/projects/continuum/pom.xml
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/test/resources/projects/continuum/pom.xml?rev=224534&r1=224533&r2=224534&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/test/resources/projects/continuum/pom.xml (original)
+++ maven/continuum/trunk/continuum-core/src/test/resources/projects/continuum/pom.xml Sat Jul 23 13:03:53 2005
@@ -5,6 +5,7 @@
<version>1.0-alpha-2-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Continuum Parent Project</name>
+ <description>Continuum Project Description</description>
<url>http://cvs.continuum.codehaus.org/</url>
<ciManagement>
<system>continuum</system>
@@ -16,6 +17,10 @@
</notifier>
</notifiers>
</ciManagement>
+ <issueManagement>
+ <system>jira</system>
+ <url>http://jira.codehaus.org/browse/CONTINUUM</url>
+ </issueManagement>
<inceptionYear>2003</inceptionYear>
<mailingLists>
<mailingList>