[jboss-svn-commits] JBL Code SVN: r10056 - in labs/jbossrules/trunk/drools-repository/src: main/java/org/drools/repository/util and 5 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Mar 8 04:37:42 EST 2007


Author: michael.neale at jboss.com
Date: 2007-03-08 04:37:42 -0500 (Thu, 08 Mar 2007)
New Revision: 10056

Removed:
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/util/DefaultVersionNumberGenerator.java
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/util/VersionNumberGenerator.java
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/util/DefaultVersionNumberGeneratorTest.java
Modified:
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java
   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/main/java/org/drools/scm/jcr/JcrActionFactory.java
   labs/jbossrules/trunk/drools-repository/src/main/resources/node_type_definitions/versionable_node_type.cnd
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTest.java
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTest.java
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/scm/jcr/JcrActionFactoryTest.java
Log:
JBRULES-638 changed version numbering scheme

Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java	2007-03-08 04:43:59 UTC (rev 10055)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java	2007-03-08 09:37:42 UTC (rev 10056)
@@ -492,7 +492,7 @@
                 List fullHistory = new ArrayList();
                 for ( Iterator iter = head.getHistory(); iter.hasNext(); ) {
                     AssetItem element = (AssetItem) iter.next();
-                    if (!element.getVersionNumber().equals( "" )) {
+                    if (!(element.getVersionNumber() == 0)) {
                         fullHistory.add( element );
                     }
                 }
@@ -521,7 +521,12 @@
                                Object o2) {
                 AssetItem a1 = (AssetItem) o1;
                 AssetItem a2 = (AssetItem) o2;
-                return a2.getVersionNumber().compareTo( a1.getVersionNumber() );
+                long la1 = a1.getVersionNumber();
+                long la2 = a2.getVersionNumber();
+                if (la1 == la2) return 0;
+                else if (la1 < la2) return 1;
+                else return -1;
+                
             }
             
         });

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-03-08 04:43:59 UTC (rev 10055)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java	2007-03-08 09:37:42 UTC (rev 10056)
@@ -22,8 +22,6 @@
 import javax.jcr.version.Version;
 
 import org.apache.log4j.Logger;
-import org.drools.repository.util.DefaultVersionNumberGenerator;
-import org.drools.repository.util.VersionNumberGenerator;
 
 
 /**
@@ -67,10 +65,7 @@
     private static final Logger log = Logger.getLogger(RulesRepository.class);
 
     private Map areaNodeCache = new HashMap();
-
-    protected VersionNumberGenerator versionNumberGenerator = new DefaultVersionNumberGenerator();
     
-    
     /**
      * The name of the rulepackage area of the repository
      */
@@ -249,16 +244,6 @@
     
   
     
-    
-    /**
-     * Optionally override the default version number generator with a custom
-     * number generator.
-     * The default one is incremental.
-     */
-    public void setVersionNumberGenerator(VersionNumberGenerator gen) {
-        this.versionNumberGenerator = gen;
-    }
-    
 
     
 //  MN: This is kept for future reference showing how to tie references to a specific version when 
@@ -566,13 +551,14 @@
      */
     public void restoreHistoricalAsset(AssetItem versionToRestore, AssetItem headVersion, String comment) {
         
-        String oldVersionNumber = headVersion.getVersionNumber();
+        long oldVersionNumber = headVersion.getVersionNumber();
         
         Version v = (Version) versionToRestore.getNode();
         try {
             headVersion.getNode().restore( v, true );
             AssetItem newHead = loadAssetByUUID( headVersion.getUUID() );
-            newHead.updateStringProperty( oldVersionNumber, VersionableItem.VERSION_NUMBER_PROPERTY_NAME );
+            newHead.checkout();
+            newHead.getNode().setProperty( VersionableItem.VERSION_NUMBER_PROPERTY_NAME, oldVersionNumber );
             newHead.checkin( comment );
         } catch ( RepositoryException e ) {
             log.error( "Unable to restore version of asset.", 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-03-08 04:43:59 UTC (rev 10055)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/VersionableItem.java	2007-03-08 09:37:42 UTC (rev 10056)
@@ -9,8 +9,6 @@
 import javax.jcr.UnsupportedRepositoryOperationException;
 import javax.jcr.Value;
 
-import org.drools.repository.util.VersionNumberGenerator;
-
 /**
  * This is the parent class for versionable assets.
  * Contains standard fields based on Dublin Core, and 
@@ -329,7 +327,7 @@
      * get this version number (default is incrementing integer, but you
      * can provide an implementation of VersionNumberGenerator if needed).
      */
-    public String getVersionNumber() {
+    public long getVersionNumber() {
 //        try {
 //            if ( getVersionContentNode().hasProperty( VERSION_NUMBER_PROPERTY_NAME ) ) {
 //                return getVersionContentNode().getProperty( VERSION_NUMBER_PROPERTY_NAME ).getString();
@@ -340,7 +338,7 @@
 //            throw new RulesRepositoryException( e );
 //        }
         
-        return getStringProperty( VERSION_NUMBER_PROPERTY_NAME );
+        return getLongProperty( VERSION_NUMBER_PROPERTY_NAME );
     }
 
     /**
@@ -504,8 +502,7 @@
         try {
             this.node.setProperty( LAST_MODIFIED_PROPERTY_NAME, Calendar.getInstance() );
             this.node.setProperty( CHECKIN_COMMENT, comment );
-            VersionNumberGenerator gen = rulesRepository.versionNumberGenerator;
-            String nextVersion = gen.calculateNextVersion( getVersionNumber(), this );
+            long nextVersion = getVersionNumber() + 1;
             this.node.setProperty( VERSION_NUMBER_PROPERTY_NAME,  nextVersion );
             this.node.getSession().save();
             this.node.checkin();
@@ -721,6 +718,20 @@
         }
     }
     
+    protected long getLongProperty(String property) {
+        try {
+            Node theNode = getVersionContentNode();
+            if ( theNode.hasProperty( property ) ) {
+                Property data = theNode.getProperty( property );
+                return data.getValue().getLong();
+            } else {
+                return 0;
+            }
+        } catch ( RepositoryException e ) {
+            throw new RulesRepositoryException( e );
+        }        
+    }
+    
     /**
      * This returns the id of the exact version node (as opposed to the "main" node).
      * Note that each asset has only one UUID the whole time, but there are also UUIDs 

Deleted: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/util/DefaultVersionNumberGenerator.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/util/DefaultVersionNumberGenerator.java	2007-03-08 04:43:59 UTC (rev 10055)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/util/DefaultVersionNumberGenerator.java	2007-03-08 09:37:42 UTC (rev 10056)
@@ -1,21 +0,0 @@
-package org.drools.repository.util;
-
-import org.drools.repository.VersionableItem;
-
-public class DefaultVersionNumberGenerator
-    implements
-    VersionNumberGenerator {
-
-    public String calculateNextVersion(String currentVersionLabel, VersionableItem asset) {
-        if (currentVersionLabel == null || currentVersionLabel.trim().equals( "" )) {
-            return "1";
-        } 
-        try {
-            int current = Integer.parseInt( currentVersionLabel );
-            return Integer.toString( ++current );
-        } catch (NumberFormatException e) {
-            throw new IllegalArgumentException("Unable to calculate next version number for version: " + currentVersionLabel);
-        }
-    }
-
-}

Deleted: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/util/VersionNumberGenerator.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/util/VersionNumberGenerator.java	2007-03-08 04:43:59 UTC (rev 10055)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/util/VersionNumberGenerator.java	2007-03-08 09:37:42 UTC (rev 10056)
@@ -1,22 +0,0 @@
-package org.drools.repository.util;
-
-import org.drools.repository.VersionableItem;
-
-/**
- * This is a pluggable version label generator, people can override it 
- * if needed.
- * Version labels are really "version numbers". 
- * 
- * This will be consulted when an asset is checked in.
- * 
- */
-public interface VersionNumberGenerator {
-
-    /**
-     * @param currentVersionNumber The current version number.
-     * @param asset The current asset that is being checked in.
-     * @return The version label for the thing being checked in.
-     */
-    public String calculateNextVersion(String currentVersionNumber, VersionableItem asset);
-    
-}

Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/scm/jcr/JcrActionFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/scm/jcr/JcrActionFactory.java	2007-03-08 04:43:59 UTC (rev 10055)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/scm/jcr/JcrActionFactory.java	2007-03-08 09:37:42 UTC (rev 10056)
@@ -129,7 +129,7 @@
             for ( Iterator assetIter = item.getAssets(); assetIter.hasNext(); ) {
                 AssetItem assetItem = (AssetItem) assetIter.next();
 
-                if (!assetItem.getVersionNumber().equals( "" )) {
+                if (!(assetItem.getVersionNumber() == 0)) {
                 
                     scmEntry = new DefaultScmEntry();
                     scmEntry.setPath( pkgNameAsPath );

Modified: labs/jbossrules/trunk/drools-repository/src/main/resources/node_type_definitions/versionable_node_type.cnd
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/resources/node_type_definitions/versionable_node_type.cnd	2007-03-08 04:43:59 UTC (rev 10055)
+++ labs/jbossrules/trunk/drools-repository/src/main/resources/node_type_definitions/versionable_node_type.cnd	2007-03-08 09:37:42 UTC (rev 10056)
@@ -41,7 +41,7 @@
   mandatory 
 
 //for incrementing (or user defined) unique version numbers
-- drools:versionNumber (string)
+- drools:versionNumber (long)
   
 //to remember when it was created  
 - drools:createdDate (date)  

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-03-08 04:43:59 UTC (rev 10055)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTest.java	2007-03-08 09:37:42 UTC (rev 10056)
@@ -417,7 +417,7 @@
             
             AssetItem loadedHistorical = getRepo().loadAssetByUUID( predecessorRuleItem.getVersionSnapshotUUID() );
             assertTrue(loadedHistorical.isHistoricalVersion());
-            assertFalse(ruleItem1.getVersionNumber().equals(loadedHistorical.getVersionNumber()));
+            assertFalse(ruleItem1.getVersionNumber() == loadedHistorical.getVersionNumber());
             
             ruleItem1.updateContent("new content");
             ruleItem1.checkin( "two changes" );
@@ -443,7 +443,7 @@
             assertEquals("test content", predecessorRuleItem.getContent());
  
             //now try restoring
-            String oldVersionNumber = ruleItem1.getVersionNumber();
+            long oldVersionNumber = ruleItem1.getVersionNumber();
             
             AssetItem toRestore = getRepo().loadAssetByUUID( predecessorRuleItem.getVersionSnapshotUUID() );
             
@@ -455,15 +455,15 @@
             //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() ));
+            assertEquals(5, restored.getVersionNumber());
+            assertFalse(oldVersionNumber ==  restored.getVersionNumber() );
     }
     
     public void testGetSucceedingVersion() {
             AssetItem ruleItem1 = getRepo().loadDefaultPackage().addAsset("testGetSucceedingVersion", "test description");
             ruleItem1.checkin( "version0" );
 
-            assertEquals("1", ruleItem1.getVersionNumber());
+            assertEquals(1, ruleItem1.getVersionNumber());
             
             AssetItem succeedingRuleItem = (AssetItem) ruleItem1.getSucceedingVersion();
             assertTrue(succeedingRuleItem == null);            
@@ -471,7 +471,7 @@
             ruleItem1.updateContent("new content");
             ruleItem1.checkin( "la" );
             
-            assertEquals("2", ruleItem1.getVersionNumber());
+            assertEquals(2, ruleItem1.getVersionNumber());
             
             AssetItem predecessorRuleItem = (AssetItem) ruleItem1.getPrecedingVersion();
             assertEquals(null, predecessorRuleItem.getContent());

Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTest.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTest.java	2007-03-08 04:43:59 UTC (rev 10055)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTest.java	2007-03-08 09:37:42 UTC (rev 10056)
@@ -97,8 +97,8 @@
         it1.checkin( "c" );
         it2.checkin( "c" );
         
-        String ver1 = it1.getVersionNumber();
-        String ver2 = it2.getVersionNumber();
+        long ver1 = it1.getVersionNumber();
+        long ver2 = it2.getVersionNumber();
         assertFalse( "".equals( ver1 ));
         
         assertEquals(2, iteratorToList(pkg.listAssetsByFormat( new String[] {"drl"} )).size());
@@ -118,7 +118,7 @@
         //now make some changes on the main line
         it1.updateContent( "XXX" );
         it1.checkin( "X" );
-        assertFalse(it1.getVersionNumber().equals( ver1 ));
+        assertFalse(it1.getVersionNumber()==  ver1 );
         AssetItem it3 = pkg.addAsset( "testPackageCopy3", "x" );
         it3.updateFormat( "drl" );
         it3.checkin( "a" );
@@ -578,7 +578,7 @@
         assertEquals(rule.getVersionNumber(), rule_.getVersionNumber());
         
         item = getRepo().loadPackage( "testPackageCheckinConfig");
-        String v = item.getVersionNumber();
+        long v = item.getVersionNumber();
         item.updateCheckinComment( "x" );
         getRepo().save();
         
@@ -587,13 +587,13 @@
     }
     
     static class MockAssetItem extends AssetItem {
-        private String version;
+        private long version;
 
-        MockAssetItem(int ver) {
-            this.version = Integer.toString( ver ); 
+        MockAssetItem(long ver) {
+            this.version = ver ; 
         }
         
-        public String getVersionNumber() {
+        public long getVersionNumber() {
             return this.version;
         }
         
@@ -602,7 +602,7 @@
         }
         
         public String toString() {
-            return this.version;
+            return Long.toString( this.version );
         }
     }
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java	2007-03-08 04:43:59 UTC (rev 10055)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java	2007-03-08 09:37:42 UTC (rev 10056)
@@ -127,7 +127,7 @@
         assertEquals("testLoadRuleByUUID", loaded.getName());
         assertEquals( "this is a description", loaded.getDescription());
         
-        String oldVersionNumber = loaded.getVersionNumber();
+        long oldVersionNumber = loaded.getVersionNumber();
         
         loaded.updateContent( "xxx" );
         loaded.checkin( "woo" );
@@ -140,7 +140,7 @@
         assertEquals("xxx", reload.getContent());
         System.out.println(reload.getVersionNumber());
         System.out.println(loaded.getVersionNumber());
-        assertFalse(reload.getVersionNumber().equals( oldVersionNumber ));
+        assertFalse(reload.getVersionNumber() ==  oldVersionNumber );
         
 
         // try loading rule package that was not created 

Deleted: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/util/DefaultVersionNumberGeneratorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/util/DefaultVersionNumberGeneratorTest.java	2007-03-08 04:43:59 UTC (rev 10055)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/util/DefaultVersionNumberGeneratorTest.java	2007-03-08 09:37:42 UTC (rev 10056)
@@ -1,26 +0,0 @@
-package org.drools.repository.util;
-
-import junit.framework.TestCase;
-
-public class DefaultVersionNumberGeneratorTest extends TestCase {
-
-    public void testGenerator() {
-        DefaultVersionNumberGenerator gen = new DefaultVersionNumberGenerator();
-        
-        assertEquals("1", gen.calculateNextVersion( null, null ));
-        assertEquals("1", gen.calculateNextVersion( "0", null ));
-        assertEquals("1", gen.calculateNextVersion( "", null ));
-        
-        assertEquals("42", gen.calculateNextVersion( "41", null ));
-        
-        assertEquals("1000", gen.calculateNextVersion( "999", null ));
-        
-        try {
-            gen.calculateNextVersion( "a", null );
-            fail("should not be able to take a letter for default.");
-        } catch (IllegalArgumentException e) {
-            assertNotNull(e.getMessage());
-        }
-    }
-    
-}

Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/scm/jcr/JcrActionFactoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/scm/jcr/JcrActionFactoryTest.java	2007-03-08 04:43:59 UTC (rev 10055)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/scm/jcr/JcrActionFactoryTest.java	2007-03-08 09:37:42 UTC (rev 10056)
@@ -122,7 +122,7 @@
 
         asset.updateContent( "lala" );
         asset.checkin( "yeah" );
-        String oldVersion = asset.getVersionNumber();
+        long oldVersion = asset.getVersionNumber();
 
         JcrActionFactory fact = new JcrActionFactory( repo );
         ScmAction action = fact.updateFile( "default",
@@ -134,7 +134,7 @@
                       "goo" );
 
         AssetItem asset2 = pkg.loadAsset( "testUpdateFilesSVN" );
-        assertFalse( oldVersion.equals( asset2.getVersionNumber() ) );
+        assertFalse( oldVersion == asset2.getVersionNumber() );
         assertEquals( "lala2",
                       asset2.getContent() );
         assertEquals( "goo",




More information about the jboss-svn-commits mailing list