You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by jv...@apache.org on 2005/07/21 03:03:15 UTC
svn commit: r219970 - in /maven/continuum/trunk/continuum-core/src:
main/java/org/apache/maven/continuum/store/JdoContinuumStore.java
test/java/org/apache/maven/continuum/store/NewModelTest.java
Author: jvanzyl
Date: Wed Jul 20 18:03:14 2005
New Revision: 219970
URL: http://svn.apache.org/viewcvs?rev=219970&view=rev
Log:
o changes to store for build settings
o tests for build settings
Modified:
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/store/NewModelTest.java
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=219970&r1=219969&r2=219970&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 Wed Jul 20 18:03:14 2005
@@ -36,6 +36,7 @@
import org.apache.maven.continuum.project.ContinuumSchedule;
import org.apache.maven.continuum.project.ContinuumProjectGroup;
import org.apache.maven.continuum.project.ContinuumBuildGroup;
+import org.apache.maven.continuum.project.ContinuumBuildSettings;
import org.apache.maven.continuum.scm.ScmResult;
import org.codehaus.plexus.jdo.JdoFactory;
@@ -78,7 +79,7 @@
public String addProject( ContinuumProject project )
throws ContinuumStoreException
{
- return ((ContinuumProject)addObject( project ) ).getId();
+ return ( (ContinuumProject) addObject( project ) ).getId();
}
public void removeProject( String projectId )
@@ -328,7 +329,7 @@
return project;
}
- catch( JDOObjectNotFoundException e )
+ catch ( JDOObjectNotFoundException e )
{
throw new ContinuumObjectNotFoundException( ContinuumProject.class.getName(), projectId );
}
@@ -406,7 +407,7 @@
public String addSchedule( ContinuumSchedule schedule )
throws ContinuumStoreException
{
- return ((ContinuumSchedule)addObject( schedule ) ).getId();
+ return ( (ContinuumSchedule) addObject( schedule ) ).getId();
}
public ContinuumSchedule getSchedule( String projectId )
@@ -428,7 +429,7 @@
return schedule;
}
- catch( JDOObjectNotFoundException e )
+ catch ( JDOObjectNotFoundException e )
{
throw new ContinuumObjectNotFoundException( ContinuumProject.class.getName(), projectId );
}
@@ -718,7 +719,7 @@
public String addProjectGroup( ContinuumProjectGroup projectGroup )
throws ContinuumStoreException
{
- return ((ContinuumProjectGroup)addObject( projectGroup )).getId();
+ return ( (ContinuumProjectGroup) addObject( projectGroup ) ).getId();
}
public void updateProjectGroup( ContinuumProjectGroup projectGroup )
@@ -821,7 +822,7 @@
public String addBuildGroup( ContinuumBuildGroup buildGroup )
throws ContinuumStoreException
{
- return ((ContinuumBuildGroup) addObject( buildGroup )).getId();
+ return ( (ContinuumBuildGroup) addObject( buildGroup ) ).getId();
}
public void updateBuildGroup( ContinuumBuildGroup schedule )
@@ -915,6 +916,140 @@
}
}
+ // ----------------------------------------------------------------------
+ // Build Settings
+ // ----------------------------------------------------------------------
+
+ public String addBuildSettings( ContinuumBuildSettings buildSettings )
+ throws ContinuumStoreException
+ {
+ return ( (ContinuumBuildSettings) addObject( buildSettings ) ).getId();
+ }
+
+ public void updateBuildSettings( ContinuumBuildSettings buildSettings )
+ throws ContinuumStoreException
+ {
+ updateObject( buildSettings );
+ }
+
+ public void removeBuildSettings( String buildSettingsId )
+ throws ContinuumStoreException
+ {
+ PersistenceManager pm = pmf.getPersistenceManager();
+
+ Transaction tx = pm.currentTransaction();
+
+ try
+ {
+ tx.begin();
+
+ Object id = pm.newObjectIdInstance( ContinuumBuildSettings.class, buildSettingsId );
+
+ ContinuumBuildSettings buildSettings = (ContinuumBuildSettings) pm.getObjectById( id );
+
+ // remove references of this buildSettings object in the build groups
+ if ( buildSettings.getBuildGroups() != null && buildSettings.getBuildGroups().size() > 0 )
+ {
+ Set projects = buildSettings.getBuildGroups();
+
+ for ( Iterator i = projects.iterator(); i.hasNext(); )
+ {
+ ContinuumBuildGroup buildGroup = (ContinuumBuildGroup) i.next();
+
+ buildGroup.getBuildSettings().remove( buildSettings );
+ }
+ }
+
+ // remove references of this buildSettings object in the project groups
+ if ( buildSettings.getProjectGroups() != null && buildSettings.getProjectGroups().size() > 0 )
+ {
+ Set projects = buildSettings.getProjectGroups();
+
+ for ( Iterator i = projects.iterator(); i.hasNext(); )
+ {
+ ContinuumProjectGroup project = (ContinuumProjectGroup) i.next();
+
+ project.getBuildSettings().remove( buildSettings );
+ }
+ }
+
+ pm.deletePersistent( buildSettings );
+
+ commit( tx );
+ }
+ finally
+ {
+ rollback( tx );
+ }
+ }
+
+ public ContinuumBuildSettings getBuildSettings( String buildSettingsId )
+ throws ContinuumStoreException
+ {
+ return (ContinuumBuildSettings) getDetailedObject( ContinuumBuildSettings.class,
+ buildSettingsId,
+ "build-settings-detail" );
+
+ /*
+ PersistenceManager pm = pmf.getPersistenceManager();
+
+ Transaction tx = pm.currentTransaction();
+
+ try
+ {
+ tx.begin();
+
+ Object id = pm.newObjectIdInstance( ContinuumBuildSettings.class, buildSettingsId );
+
+ ContinuumBuildSettings buildSettings = (ContinuumBuildSettings) pm.getObjectById( id );
+
+ buildSettings = (ContinuumBuildSettings) pm.detachCopy( buildSettings );
+
+ commit( tx );
+
+ return buildSettings;
+ }
+ catch ( JDOObjectNotFoundException e )
+ {
+ throw new ContinuumObjectNotFoundException( ContinuumBuildSettings.class.getName(), buildSettingsId );
+ }
+ finally
+ {
+ rollback( tx );
+ }
+ */
+ }
+
+ public Collection getBuildSettings()
+ throws ContinuumStoreException
+ {
+ PersistenceManager pm = pmf.getPersistenceManager();
+
+ Transaction tx = pm.currentTransaction();
+
+ try
+ {
+ tx.begin();
+
+ Extent extent = pm.getExtent( ContinuumBuildSettings.class, true );
+
+ Query query = pm.newQuery( extent );
+
+ query.setOrdering( "name ascending" );
+
+ Collection result = (Collection) query.execute();
+
+ result = pm.detachCopyAll( result );
+
+ commit( tx );
+
+ return result;
+ }
+ finally
+ {
+ rollback( tx );
+ }
+ }
// ----------------------------------------------------------------------
//
Modified: maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/store/NewModelTest.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/store/NewModelTest.java?rev=219970&r1=219969&r2=219970&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/store/NewModelTest.java (original)
+++ maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/store/NewModelTest.java Wed Jul 20 18:03:14 2005
@@ -20,6 +20,7 @@
import org.apache.maven.continuum.project.ContinuumBuildGroup;
import org.apache.maven.continuum.project.ContinuumProject;
import org.apache.maven.continuum.project.ContinuumProjectGroup;
+import org.apache.maven.continuum.project.ContinuumBuildSettings;
import java.util.Collection;
import java.util.Set;
@@ -175,6 +176,112 @@
assertNotNull( project );
}
+ public void testBuildSettingsAdditionAndRemovalFromBuildGroup()
+ throws Exception
+ {
+ // create buildSettings
+ ContinuumBuildSettings buildSettings = createStubBuildSettings( "buildSettings1", "1.3" );
+
+ String buildSettingsId = getStore().addBuildSettings( buildSettings );
+
+ buildSettings = getStore().getBuildSettings( buildSettingsId );
+
+ // create buildGroup
+ ContinuumBuildGroup buildGroup = createStubBuildGroup( "buildGroup1", "buildGroup1" );
+
+ String buildGroupId = getStore().addBuildGroup( buildGroup );
+
+ buildGroup = getStore().getBuildGroup( buildGroupId );
+
+ // add build group
+ buildSettings.addBuildGroup( buildGroup );
+
+ // update buildSettings
+ getStore().updateBuildSettings( buildSettings );
+
+ // retrieve buildSettings
+ buildSettings = getStore().getBuildSettings( buildSettingsId );
+
+ assertNotNull( buildSettings );
+
+ // get buildGroups out of the buildSettings
+ Set buildGroups = buildSettings.getBuildGroups();
+
+ assertEquals( 1, buildGroups.size() );
+
+ // get individual build group
+ buildGroup = (ContinuumBuildGroup) buildSettings.getBuildGroups().iterator().next();
+
+ // test values within the build group
+ assertEquals( "buildGroup1", buildGroup.getName() );
+
+ // ----------------------------------------------------------------------
+ // Now lookup the build group on its own and make sure the build settings are
+ // present within the build build gropu.
+ // ----------------------------------------------------------------------
+
+ buildGroup = getStore().getBuildGroup( buildGroupId );
+
+ assertNotNull( buildGroup );
+
+ buildSettings = (ContinuumBuildSettings) buildGroup.getBuildSettings().iterator().next();
+
+ assertEquals( "buildSettings1", buildSettings.getName() );
+
+ // ----------------------------------------------------------------------
+ // Now delete the buildSettings from the getStore() and make sure that the build group
+ // still remains in the getStore().
+ // ----------------------------------------------------------------------
+
+ buildSettings = getStore().getBuildSettings( buildSettingsId );
+
+ getStore().removeBuildSettings( buildSettings.getId() );
+
+ buildGroup = getStore().getBuildGroup( buildGroupId );
+
+ assertNotNull( buildGroup );
+ }
+
+ // ----------------------------------------------------------------------
+ // Simple utils
+ // ----------------------------------------------------------------------
+
+ public ContinuumBuildSettings createStubBuildSettings( String name, String jdkVersion )
+ {
+ ContinuumBuildSettings buildSettings = new ContinuumBuildSettings();
+
+ buildSettings.setName( name );
+
+ buildSettings.setJdkVersion( jdkVersion );
+
+ return buildSettings;
+ }
+
+ public ContinuumBuildGroup createStubBuildGroup( String name, String description )
+ {
+ ContinuumBuildGroup buildGroup = new ContinuumBuildGroup();
+
+ buildGroup.setName( name );
+
+ buildGroup.setDescription( description );
+
+ return buildGroup;
+ }
+
+ public ContinuumProjectGroup createStubProjectGroup( String name, String description )
+ {
+ ContinuumProjectGroup projectGroup = new ContinuumProjectGroup();
+
+ projectGroup.setName( name );
+
+ projectGroup.setDescription( description );
+
+ return projectGroup;
+ }
+
+ // ----------------------------------------------------------------------
+ // We're not exactly sure why this beasty doesn't work.
+ // ----------------------------------------------------------------------
public void xtestBasic()
throws Exception
@@ -320,27 +427,4 @@
// assertEquals( 0, plexusGroup.getProjects().size() );
}
-
- public ContinuumBuildGroup createStubBuildGroup( String name, String description )
- {
- ContinuumBuildGroup buildGroup = new ContinuumBuildGroup();
-
- buildGroup.setName( name );
-
- buildGroup.setDescription( description );
-
- return buildGroup;
- }
-
- public ContinuumProjectGroup createStubProjectGroup( String name, String description )
- {
- ContinuumProjectGroup projectGroup = new ContinuumProjectGroup();
-
- projectGroup.setName( name );
-
- projectGroup.setDescription( description );
-
- return projectGroup;
- }
-
}