[jboss-svn-commits] JBL Code SVN: r9001 - in labs/jbossrules/trunk/drools-repository/src: test/java/org/drools/repository and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jan 23 21:32:45 EST 2007


Author: michael.neale at jboss.com
Date: 2007-01-23 21:32:44 -0500 (Tue, 23 Jan 2007)
New Revision: 9001

Modified:
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/VersionableItem.java
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTest.java
Log:
JBRULES-625

Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java	2007-01-24 00:16:10 UTC (rev 9000)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java	2007-01-24 02:32:44 UTC (rev 9001)
@@ -445,11 +445,17 @@
         }
     }    
     
-    public void restoreHistoricalAsset(String uuid) {
-        AssetItem item = loadAssetByUUID( uuid );
-        Version v = (Version) item.getNode();
+    public void restoreHistoricalAsset(String versionUUID, String assetUUID, String comment) {
+        AssetItem head = loadAssetByUUID( assetUUID );
+        String oldVersionNumber = head.getVersionNumber();
+        
+        AssetItem version = loadAssetByUUID( versionUUID );
+        Version v = (Version) version.getNode();
         try {
             this.session.getWorkspace().restore( new Version[] {v}, false );
+            AssetItem newHead = loadAssetByUUID( assetUUID );
+            newHead.updateStringProperty( oldVersionNumber, VersionableItem.VERSION_NUMBER_PROPERTY_NAME );
+            newHead.checkin( comment );
         } catch ( RepositoryException e ) {
             log.error( "Unable to restore version of asset.", e );
             throw new RulesRepositoryException(e);

Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/VersionableItem.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/VersionableItem.java	2007-01-24 00:16:10 UTC (rev 9000)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/VersionableItem.java	2007-01-24 02:32:44 UTC (rev 9001)
@@ -8,6 +8,7 @@
 import javax.jcr.RepositoryException;
 import javax.jcr.UnsupportedRepositoryOperationException;
 import javax.jcr.Value;
+import javax.jcr.version.Version;
 
 import org.drools.repository.util.VersionNumberGenerator;
 
@@ -464,7 +465,7 @@
      */
     public String getName() {
         try {
-            return getVersionContentNode().getName();
+                return getVersionContentNode().getName();
         } catch ( RepositoryException e ) {
             throw new RulesRepositoryException( e );
         }
@@ -702,7 +703,7 @@
     public Calendar getCreatedDate() {
         Property prop;
         try {
-            prop = getVersionContentNode().getProperty( "jcr:created" );
+            prop = this.node.getProperty( "jcr:created" );
             return prop.getDate();
         } catch ( RepositoryException e ) {
             throw new RulesRepositoryException( e );

Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTest.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTest.java	2007-01-24 00:16:10 UTC (rev 9000)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTest.java	2007-01-24 02:32:44 UTC (rev 9001)
@@ -6,6 +6,7 @@
 
 import javax.jcr.PathNotFoundException;
 import javax.jcr.version.Version;
+import javax.jcr.version.VersionIterator;
 
 import junit.framework.TestCase;
 
@@ -68,7 +69,7 @@
     }
 
     
-    public void testUpdateContent() {
+    public void testUpdateContent() throws Exception {
             AssetItem ruleItem1 = getDefaultPackage().addAsset("testUpdateContent", "test description");
             ruleItem1.updateContent( "test content" );            
             ruleItem1.checkin( "yeah" );
@@ -88,6 +89,20 @@
             
             assertEquals(prev, ruleItem1.getPrecedingVersion());
 
+            
+            ruleItem1 = getDefaultPackage().loadAsset( "testUpdateContent" );
+            VersionIterator it = ruleItem1.getNode().getVersionHistory().getAllVersions();
+
+            // and this shows using a version iterator. 
+            // perhaps migrate to using this rather then next/prev methods.
+            //this way, we can skip.
+            assertTrue(it.hasNext());
+            while (it.hasNext()) {
+                Version n = it.nextVersion();
+                AssetItem item = new AssetItem(ruleItem1.getRulesRepository(), n);
+                assertNotNull(item);
+                
+            }
     }
     
 
@@ -361,6 +376,8 @@
             
             ruleItem1.addCategory( "foo" );
             ruleItem1.updateContent( "test content" );
+            ruleItem1.updateDescription( "descr2" );
+            Thread.sleep( 100 );
             ruleItem1.checkin( "boo" );
             
             AssetItem predecessorRuleItem = (AssetItem) ruleItem1.getPrecedingVersion();
@@ -368,8 +385,17 @@
             
             //check version handling
             assertNotNull(predecessorRuleItem.getVersionSnapshotUUID());
-            assertFalse(predecessorRuleItem.getVersionSnapshotUUID().equals( ruleItem1.getUUID() ));            
+            assertFalse(predecessorRuleItem.getVersionSnapshotUUID().equals( ruleItem1.getUUID() ));
+
             
+            //assertEquals(predecessorRuleItem.getCreatedDate().getTimeInMillis(), ruleItem1.getCreatedDate().getTimeInMillis());
+            
+            
+            assertEquals(ruleItem1.getState().getName(), predecessorRuleItem.getState().getName());
+            //assertEquals(ruleItem1.getName(), predecessorRuleItem.getName());
+            
+            
+            
             AssetItem loadedHistorical = getRepo().loadAssetByUUID( predecessorRuleItem.getVersionSnapshotUUID() );
             assertTrue(loadedHistorical.isHistoricalVersion());
             assertFalse(ruleItem1.getVersionNumber().equals(loadedHistorical.getVersionNumber()));
@@ -384,7 +410,7 @@
             assertEquals("foo", cat.getName());
             
             assertEquals("test content", predecessorRuleItem.getContent());
-            assertEquals("descr", predecessorRuleItem.getDescription());
+
             assertEquals("default", predecessorRuleItem.getPackageName());
             
             ruleItem1.updateContent("newer lhs");
@@ -399,13 +425,18 @@
  
             //now try restoring
             String oldVersionUUID = predecessorRuleItem.getVersionSnapshotUUID();
+            String oldVersionNumber = ruleItem1.getVersionNumber();
             
-            getRepo().restoreHistoricalAsset( oldVersionUUID  );
+            getRepo().restoreHistoricalAsset( oldVersionUUID, ruleItem1.getUUID(), "cause I want to"  );
             
+            
             AssetItem restored = getRepo().loadDefaultPackage().loadAsset( "testGetPrecedingVersion" );
 
-            assertEquals( predecessorRuleItem.getCheckinComment(), restored.getCheckinComment());
-            
+            //assertEquals( predecessorRuleItem.getCheckinComment(), restored.getCheckinComment());
+            assertEquals(predecessorRuleItem.getDescription(), restored.getDescription());
+            assertEquals("cause I want to", restored.getCheckinComment());
+            assertEquals("5", restored.getVersionNumber());
+            assertFalse(oldVersionNumber.equals( restored.getVersionNumber() ));
     }
     
     public void testGetSucceedingVersion() {




More information about the jboss-svn-commits mailing list