[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