You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ct...@apache.org on 2009/03/20 15:16:26 UTC

svn commit: r756477 - in /continuum/trunk: continuum-data-management/data-management-jdo/src/main/java/org/apache/maven/continuum/management/ continuum-data-management/data-management-jdo/src/test/resources/ continuum-model/src/main/mdo/ continuum-stor...

Author: ctan
Date: Fri Mar 20 14:16:25 2009
New Revision: 756477

URL: http://svn.apache.org/viewvc?rev=756477&view=rev
Log:
[CONTINUUM-2140] fix backup/restore of ContinuumReleaseResult, BuildDefinitionTemplate, DirectoryPurgeConfiguration, and RepositoryPurgeConfiguration.

TODO:
Include the RepositoryPurgeConfiguration during restore. Comment out for now because of NPE, which is caused by how the RepositoryPurgeConfiguration is being written by ContinuumStaxWriter (LocalRepository first before the id).



Modified:
    continuum/trunk/continuum-data-management/data-management-jdo/src/main/java/org/apache/maven/continuum/management/JdoDataManagementTool.java
    continuum/trunk/continuum-data-management/data-management-jdo/src/test/resources/expected.xml
    continuum/trunk/continuum-model/src/main/mdo/continuum.xml
    continuum/trunk/continuum-store/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTestCase.java
    continuum/trunk/continuum-store/src/test/java/org/apache/maven/continuum/store/ContinuumStoreTest.java

Modified: continuum/trunk/continuum-data-management/data-management-jdo/src/main/java/org/apache/maven/continuum/management/JdoDataManagementTool.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-data-management/data-management-jdo/src/main/java/org/apache/maven/continuum/management/JdoDataManagementTool.java?rev=756477&r1=756476&r2=756477&view=diff
==============================================================================
--- continuum/trunk/continuum-data-management/data-management-jdo/src/main/java/org/apache/maven/continuum/management/JdoDataManagementTool.java (original)
+++ continuum/trunk/continuum-data-management/data-management-jdo/src/main/java/org/apache/maven/continuum/management/JdoDataManagementTool.java Fri Mar 20 14:16:25 2009
@@ -19,6 +19,8 @@
  * under the License.
  */
 
+import org.apache.continuum.dao.BuildDefinitionTemplateDao;
+import org.apache.continuum.dao.ContinuumReleaseResultDao;
 import org.apache.continuum.dao.DaoUtils;
 import org.apache.continuum.dao.DirectoryPurgeConfigurationDao;
 import org.apache.continuum.dao.InstallationDao;
@@ -30,9 +32,13 @@
 import org.apache.continuum.dao.ScheduleDao;
 import org.apache.continuum.dao.SystemConfigurationDao;
 import org.apache.continuum.model.project.ProjectScmRoot;
+import org.apache.continuum.model.release.ContinuumReleaseResult;
+import org.apache.continuum.model.repository.DirectoryPurgeConfiguration;
 import org.apache.continuum.model.repository.LocalRepository;
+import org.apache.continuum.model.repository.RepositoryPurgeConfiguration;
 import org.apache.continuum.utils.ProjectSorter;
 import org.apache.maven.continuum.model.project.BuildDefinition;
+import org.apache.maven.continuum.model.project.BuildDefinitionTemplate;
 import org.apache.maven.continuum.model.project.ContinuumDatabase;
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.model.project.ProjectGroup;
@@ -129,6 +135,16 @@
      */
     private ProjectScmRootDao projectScmRootDao;
 
+    /**
+     * @plexus.requirement
+     */
+    private BuildDefinitionTemplateDao buildDefinitionTemplateDao;
+
+    /**
+     * @plexus.requirement
+     */
+    private ContinuumReleaseResultDao releaseResultDao;
+
     protected static final String BUILDS_XML = "builds.xml";
 
     /**
@@ -169,6 +185,15 @@
         database.setDirectoryPurgeConfigurations( directoryPurgeConfigurationDao.getAllDirectoryPurgeConfigurations() );
 
         database.setProjectScmRoots( projectScmRootDao.getAllProjectScmRoots() );
+        try
+        {
+            database.setBuildDefinitionTemplates( buildDefinitionTemplateDao.getAllBuildDefinitionTemplate() );
+        }
+        catch ( ContinuumStoreException e )
+        {
+        }
+
+        database.setContinuumReleaseResults( releaseResultDao.getAllContinuumReleaseResults() );
 
         ContinuumStaxWriter writer = new ContinuumStaxWriter();
 
@@ -337,6 +362,47 @@
                 continue;
             }
         }
+
+        /*
+        for ( RepositoryPurgeConfiguration repoPurge : (List<RepositoryPurgeConfiguration>) database.getRepositoryPurgeConfigurations() )
+        {
+            repoPurge.setRepository( localRepositories.get( 
+                                     Integer.valueOf( repoPurge.getRepository().getId() ) ) );
+
+            if ( repoPurge.getSchedule() != null )
+            {
+                repoPurge.setSchedule( schedules.get( 
+                                       Integer.valueOf( repoPurge.getSchedule().getId() ) ) );
+            }
+
+            repoPurge = (RepositoryPurgeConfiguration) PlexusJdoUtils.addObject( pmf.getPersistenceManager(), repoPurge );
+        }*/
+
+        for ( DirectoryPurgeConfiguration dirPurge : (List<DirectoryPurgeConfiguration>) database.getDirectoryPurgeConfigurations() )
+        {
+            if ( dirPurge.getSchedule() != null )
+            {
+                dirPurge.setSchedule( schedules.get(
+                                      Integer.valueOf( dirPurge.getSchedule().getId() ) ) );
+            }
+
+            dirPurge = (DirectoryPurgeConfiguration) PlexusJdoUtils.addObject( pmf.getPersistenceManager(), dirPurge );
+        }
+
+        for ( ContinuumReleaseResult releaseResult : (List<ContinuumReleaseResult>) database.getContinuumReleaseResults() )
+        {
+            releaseResult.setProjectGroup( projectGroups.get( 
+                                           Integer.valueOf( releaseResult.getProjectGroup().getId() ) ) );
+
+            releaseResult =
+                (ContinuumReleaseResult) PlexusJdoUtils.addObject( pmf.getPersistenceManager(), releaseResult );
+        }
+
+        for ( BuildDefinitionTemplate template : (List<BuildDefinitionTemplate>) database.getBuildDefinitionTemplates() )
+        {
+            template = 
+                (BuildDefinitionTemplate) PlexusJdoUtils.addObject( pmf.getPersistenceManager(), template );
+        }
     }
     
     private List<Project> getProjectsByGroupIdWithDependencies( PersistenceManagerFactory pmf, int projectGroupId )

Modified: continuum/trunk/continuum-data-management/data-management-jdo/src/test/resources/expected.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-data-management/data-management-jdo/src/test/resources/expected.xml?rev=756477&r1=756476&r2=756477&view=diff
==============================================================================
--- continuum/trunk/continuum-data-management/data-management-jdo/src/test/resources/expected.xml (original)
+++ continuum/trunk/continuum-data-management/data-management-jdo/src/test/resources/expected.xml Fri Mar 20 14:16:25 2009
@@ -549,4 +549,11 @@
       <projectGroup id="2"></projectGroup>
     </projectScmRoot>
   </projectScmRoots>
+  <continuumReleaseResults>
+    <continuumReleaseResult>
+      <id>1</id>
+      <projectGroup id="2"></projectGroup>
+      <releaseGoal>releaseGoal</releaseGoal>
+    </continuumReleaseResult>
+  </continuumReleaseResults>
 </continuumDatabase>

Modified: continuum/trunk/continuum-model/src/main/mdo/continuum.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-model/src/main/mdo/continuum.xml?rev=756477&r1=756476&r2=756477&view=diff
==============================================================================
--- continuum/trunk/continuum-model/src/main/mdo/continuum.xml (original)
+++ continuum/trunk/continuum-model/src/main/mdo/continuum.xml Fri Mar 20 14:16:25 2009
@@ -108,6 +108,24 @@
           </association>
           <defaultValue>new java.util.ArrayList()</defaultValue>
         </field>
+        <field>
+          <name>continuumReleaseResults</name>
+          <version>1.1.3+</version>
+          <association java.init="field">
+            <type>ContinuumReleaseResult</type>
+            <multiplicity>*</multiplicity>
+          </association>
+          <defaultValue>new java.util.ArrayList()</defaultValue>
+        </field>
+        <field>
+          <name>buildDefinitionTemplates</name>
+          <version>1.1.3+</version>
+          <association java.init="field">
+            <type>BuildDefinitionTemplate</type>
+            <multiplicity>*</multiplicity>
+          </association>
+          <defaultValue>new java.util.ArrayList()</defaultValue>
+        </field>
       </fields>
     </class>
 

Modified: continuum/trunk/continuum-store/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTestCase.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-store/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTestCase.java?rev=756477&r1=756476&r2=756477&view=diff
==============================================================================
--- continuum/trunk/continuum-store/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTestCase.java (original)
+++ continuum/trunk/continuum-store/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTestCase.java Fri Mar 20 14:16:25 2009
@@ -141,6 +141,8 @@
 
     protected ProjectScmRoot testProjectScmRoot;
 
+    protected ContinuumReleaseResult testContinuumReleaseResult;
+
     private SystemConfiguration systemConfiguration;
 
     @Override
@@ -541,7 +543,7 @@
 
         if ( addToStore )
         {
-            projectGroupDao.addProjectGroup( group );
+            group = projectGroupDao.addProjectGroup( group );
             defaultProjectGroup.setId( group.getId() );
             testProject1.setId( project1.getId() );
             testProject2.setId( project2.getId() );
@@ -582,6 +584,7 @@
         }
         else
         {
+            group.setId( 2 );
             testProjectGroup2.setId( 2 ); // from expected.xml, continuum-data-management
         }
 
@@ -632,10 +635,29 @@
         }
         
         testProjectScmRoot = createTestProjectScmRoot( "scmRootAddress1", 1, 0, "error1", group );
-        
+        ProjectScmRoot scmRoot = createTestProjectScmRoot( testProjectScmRoot );
+
+        if ( addToStore )
+        {
+            scmRoot = projectScmRootDao.addProjectScmRoot( scmRoot );
+            testProjectScmRoot.setId( scmRoot.getId() );
+        }
+        else
+        {
+            testProjectScmRoot.setId( 1 );
+        }
+
+        testContinuumReleaseResult = createTestContinuumReleaseResult( group, null, "releaseGoal", 0, 0, 0 );
+        ContinuumReleaseResult releaseResult = createTestContinuumReleaseResult( testContinuumReleaseResult );
+
         if ( addToStore )
         {
-            projectScmRootDao.addProjectScmRoot( testProjectScmRoot );
+            releaseResult = releaseResultDao.addContinuumReleaseResult( releaseResult );
+            testContinuumReleaseResult.setId( releaseResult.getId() );
+        }
+        else
+        {
+            testContinuumReleaseResult.setId( 1 );
         }
     }
 
@@ -819,7 +841,26 @@
         store.addProjectGroup( group );
         testProjectGroup2.setId( group.getId() );
 */
-        assertSystemConfiguration( systemConfiguration, systemConfigurationDao.getSystemConfiguration() );        
+        assertSystemConfiguration( systemConfiguration, systemConfigurationDao.getSystemConfiguration() );
+
+        assertLocalRepositoryEquals( testLocalRepository1, localRepositoryDao.getLocalRepository( testLocalRepository1.getId() ) );
+        assertLocalRepositoryEquals( testLocalRepository2, localRepositoryDao.getLocalRepository( testLocalRepository2.getId() ) );
+        assertLocalRepositoryEquals( testLocalRepository3, localRepositoryDao.getLocalRepository( testLocalRepository3.getId() ) );
+
+/*
+        assertRepositoryPurgeConfigurationEquals( testRepoPurgeConfiguration1,
+                                                  repositoryPurgeConfigurationDao.getRepositoryPurgeConfiguration( testRepoPurgeConfiguration1.getId() ) );
+        assertRepositoryPurgeConfigurationEquals( testRepoPurgeConfiguration2,
+                                                  repositoryPurgeConfigurationDao.getRepositoryPurgeConfiguration( testRepoPurgeConfiguration2.getId() ) );
+        assertRepositoryPurgeConfigurationEquals( testRepoPurgeConfiguration3,
+                                                  repositoryPurgeConfigurationDao.getRepositoryPurgeConfiguration( testRepoPurgeConfiguration3.getId() ) );
+
+        assertDirectoryPurgeConfigurationEquals( testDirectoryPurgeConfig, 
+                                                 directoryPurgeConfigurationDao.getDirectoryPurgeConfiguration( testDirectoryPurgeConfig.getId() ) );
+*/
+        assertProjectScmRootEquals( testProjectScmRoot, projectScmRootDao.getProjectScmRoot( testProjectScmRoot.getId() ) );
+
+        assertReleaseResultEquals( testContinuumReleaseResult, releaseResultDao.getContinuumReleaseResult( testContinuumReleaseResult.getId() ) );
     }
 
     private void assertSystemConfiguration( SystemConfiguration expected, SystemConfiguration actual )
@@ -1430,6 +1471,12 @@
         return projectScmRoot;
     }
 
+    protected static ProjectScmRoot createTestProjectScmRoot( ProjectScmRoot scmRoot )
+    {
+        return createTestProjectScmRoot( scmRoot.getScmRootAddress(), scmRoot.getState(), scmRoot.getOldState(), 
+                                         scmRoot.getError(), scmRoot.getProjectGroup() );
+    }
+
     protected static void assertProjectScmRootEquals( ProjectScmRoot expectedConfig, ProjectScmRoot actualConfig )
     {
         assertEquals( "compare project scm root - id", expectedConfig.getId(), actualConfig.getId() );
@@ -1454,7 +1501,14 @@
         
         return releaseResult;
     }
-    
+
+    protected static ContinuumReleaseResult createTestContinuumReleaseResult( ContinuumReleaseResult releaseResult )
+    {
+        return createTestContinuumReleaseResult( releaseResult.getProjectGroup(), releaseResult.getProject(), 
+                                                 releaseResult.getReleaseGoal(), releaseResult.getResultCode(),
+                                                 releaseResult.getStartTime(), releaseResult.getEndTime() );
+    }
+
     protected static void assertReleaseResultEquals( ContinuumReleaseResult expectedConfig, 
                                                      ContinuumReleaseResult actualConfig )
     {
@@ -1468,7 +1522,7 @@
         assertEquals( "compare continuum release result - endTime", expectedConfig.getEndTime(),
                       actualConfig.getEndTime() );
     }
-    
+
     /**
      * Setup JDO Factory
      *

Modified: continuum/trunk/continuum-store/src/test/java/org/apache/maven/continuum/store/ContinuumStoreTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-store/src/test/java/org/apache/maven/continuum/store/ContinuumStoreTest.java?rev=756477&r1=756476&r2=756477&view=diff
==============================================================================
--- continuum/trunk/continuum-store/src/test/java/org/apache/maven/continuum/store/ContinuumStoreTest.java (original)
+++ continuum/trunk/continuum-store/src/test/java/org/apache/maven/continuum/store/ContinuumStoreTest.java Fri Mar 20 14:16:25 2009
@@ -1300,9 +1300,9 @@
         releaseResult = releaseResultDao.addContinuumReleaseResult( releaseResult );
         
         List<ContinuumReleaseResult> releaseResults = releaseResultDao.getAllContinuumReleaseResults();
-        assertEquals( "check size of continuum release results", 1, releaseResults.size() );
+        assertEquals( "check size of continuum release results", 2, releaseResults.size() );
         
-        ContinuumReleaseResult retrievedResult = releaseResults.get( 0 );
+        ContinuumReleaseResult retrievedResult = releaseResults.get( 1 );
         assertReleaseResultEquals( releaseResult, retrievedResult );
         assertProjectGroupEquals( group, retrievedResult.getProjectGroup() );
         assertProjectEquals( project, retrievedResult.getProject() );
@@ -1312,7 +1312,7 @@
         assertFalse( projectDao.getProjectsInGroup( group.getId() ).contains( project ) );
         
         releaseResults = releaseResultDao.getAllContinuumReleaseResults();
-        assertEquals( "check size of continuum release results", 0, releaseResults.size() );
+        assertEquals( "check size of continuum release results", 1, releaseResults.size() );
     }
     // ----------------------------------------------------------------------
     //  HELPER METHODS