[jboss-svn-commits] JBL Code SVN: r8257 - in labs/jbossrules/trunk/drools-repository/src: main/java/org/drools/repository test/java/org/drools/repository

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Dec 12 10:58:36 EST 2006


Author: mark.proctor at jboss.com
Date: 2006-12-12 10:58:29 -0500 (Tue, 12 Dec 2006)
New Revision: 8257

Added:
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetType.java
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTestCase.java
Removed:
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RuleItemTestCase.java
Modified:
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetItem.java
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.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/DslItemTestCase.java
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulePackageItemTestCase.java
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTestCase.java
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/ScalabilityTest.java
Log:
refactoring

Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetItem.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetItem.java	2006-12-12 15:47:08 UTC (rev 8256)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetItem.java	2006-12-12 15:58:29 UTC (rev 8257)
@@ -13,6 +13,7 @@
 import javax.jcr.Property;
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
+import javax.jcr.ValueFormatException;
 import javax.jcr.lock.LockException;
 import javax.jcr.nodetype.ConstraintViolationException;
 import javax.jcr.version.VersionException;
@@ -26,33 +27,27 @@
  * @author btruitt
  */
 public class AssetItem extends CategorisableItem {
-    private Logger             log                            = Logger.getLogger( AssetItem.class );
-
+    private Logger             log                          = Logger.getLogger( AssetItem.class );
     /**
-     * The name of the DSL property on the rule node type
-     */
-    public static final String DSL_PROPERTY_NAME              = "drools:dslReference";
-
-    /**
      * The name of the rule node type
      */
-    public static final String RULE_NODE_TYPE_NAME            = "drools:ruleNodeType";
+    public static final String RULE_NODE_TYPE_NAME          = "drools:ruleNodeType";
 
-    public static final String RULE_CONTENT_PROPERTY_NAME     = "drools:content";
+    public static final String CONTENT_PROPERTY_NAME        = "drools:content";
 
-    public static final String RULE_CONTENT_URI_PROPERTY_NAME = "drools:contentURI";
+    public static final String CONTENT_URI_PROPERTY_NAME    = "drools:contentURI";
 
     /**
      * The name of the date effective property on the rule node type
      */
-    public static final String DATE_EFFECTIVE_PROPERTY_NAME   = "drools:dateEffective";
+    public static final String DATE_EFFECTIVE_PROPERTY_NAME = "drools:dateEffective";
 
     /**
      * The name of the date expired property on the rule node type
      */
-    public static final String DATE_EXPIRED_PROPERTY_NAME     = "drools:dateExpired";
+    public static final String DATE_EXPIRED_PROPERTY_NAME   = "drools:dateExpired";
 
-    public static final String PACKAGE_NAME_PROPERTY = "drools:packageName";
+    public static final String PACKAGE_NAME_PROPERTY        = "drools:packageName";
 
     /**
      * Constructs a RuleItem object, setting its node attribute to the specified node.
@@ -62,7 +57,7 @@
      * @throws RulesRepositoryException 
      */
     public AssetItem(RulesRepository rulesRepository,
-                    Node node) throws RulesRepositoryException {
+                     Node node) throws RulesRepositoryException {
         super( rulesRepository,
                node );
 
@@ -85,11 +80,11 @@
      * It there is a URI, this may need to access the external resource
      * to grab/sync the latest, but in any case, it should be the real content.
      */
-    public String getRuleContent() throws RulesRepositoryException {
+    public String getContent() throws RulesRepositoryException {
         try {
             Node ruleNode = getVersionContentNode();
-            if ( ruleNode.hasProperty( RULE_CONTENT_PROPERTY_NAME ) ) {
-                Property data = ruleNode.getProperty( RULE_CONTENT_PROPERTY_NAME );
+            if ( ruleNode.hasProperty( CONTENT_PROPERTY_NAME ) ) {
+                Property data = ruleNode.getProperty( CONTENT_PROPERTY_NAME );
                 return data.getValue().getString();
 
             } else {
@@ -108,11 +103,11 @@
      * such as subversion. This URI will contain information for
      * how to get to the exact version that maps to this rule node.
      */
-    public String getRuleContentURI() throws RulesRepositoryException {
+    public String getContentURI() throws RulesRepositoryException {
         try {
             Node ruleNode = getVersionContentNode();
-            if ( ruleNode.hasProperty( RULE_CONTENT_URI_PROPERTY_NAME ) ) {
-                Property data = ruleNode.getProperty( RULE_CONTENT_URI_PROPERTY_NAME );
+            if ( ruleNode.hasProperty( CONTENT_URI_PROPERTY_NAME ) ) {
+                Property data = ruleNode.getProperty( CONTENT_URI_PROPERTY_NAME );
                 return data.getValue().getString();
             } else {
                 return "";
@@ -210,10 +205,10 @@
      * This will not save the session or create a new version of the node 
      * (this has to be done seperately, as several properties may change as part of one edit).
      */
-    public AssetItem updateRuleContent(String newRuleContent) throws RulesRepositoryException {
+    public AssetItem updateContent(String newRuleContent) throws RulesRepositoryException {
         checkout();
         try {
-            this.node.setProperty( RULE_CONTENT_PROPERTY_NAME,
+            this.node.setProperty( CONTENT_PROPERTY_NAME,
                                    newRuleContent );
             return this;
         } catch ( RepositoryException e ) {
@@ -226,10 +221,10 @@
     /**
      * The URI represents a location for 
      */
-    public void updateRuleContentURI(String newURI) throws RulesRepositoryException {
+    public void updateContentURI(String newURI) throws RulesRepositoryException {
         checkout();
         try {
-            this.node.setProperty( RULE_CONTENT_URI_PROPERTY_NAME,
+            this.node.setProperty( CONTENT_URI_PROPERTY_NAME,
                                    newURI );
         } catch ( RepositoryException e ) {
             log.error( "Caught Exception",
@@ -238,30 +233,19 @@
         }
     }
 
+
     /**
-     * Gets a DslItem object corresponding to the DSL reference from the node that this object
-     * encapsulates.
-     * 
-     * @return a DslItem object corresponding to the DSL reference for this rule node. If there is
-     *         no DSL node referenced from this object's node, then null.
-     * @throws RulesRepositoryException 
+     * This updates a user defined property (not one of the intrinsic ones).
      */
-    public DslItem getDsl() throws RulesRepositoryException {
-        try {
-            Property dslProperty = getVersionContentNode().getProperty( DSL_PROPERTY_NAME );
-            Node dslNode = this.node.getSession().getNodeByUUID( dslProperty.getString() );
-            return new DslItem( this.rulesRepository,
-                                dslNode );
-        } catch ( PathNotFoundException e ) {
-            //not set
-            return null;
-        } catch ( Exception e ) {
-            log.error( "Caught exception",
-                       e );
-            throw new RulesRepositoryException( e );
+    public void updateUserProperty(String propertyName, String value) {
+        if (propertyName.startsWith( "drools:" )) { 
+            throw new IllegalArgumentException("Can only set the pre defined fields using the appropriate methods.");
         }
+        updateStringProperty( value, propertyName );        
+        
     }
-
+    
+    
     /**
      * Nicely formats the information contained by the node that this object encapsulates
      */
@@ -269,8 +253,8 @@
         try {
             StringBuffer returnString = new StringBuffer();
             returnString.append( "Content of rule item named '" + this.getName() + "':\n" );
-            returnString.append( "Content: " + this.getRuleContent() + "\n" );
-            returnString.append( "Content URI: " + this.getRuleContentURI() + "\n" );
+            returnString.append( "Content: " + this.getContent() + "\n" );
+            returnString.append( "Content URI: " + this.getContentURI() + "\n" );
             returnString.append( "------\n" );
 
             returnString.append( "Date Effective: " + this.getDateEffective() + "\n" );
@@ -303,7 +287,7 @@
             Node precedingVersionNode = this.getPrecedingVersionNode();
             if ( precedingVersionNode != null ) {
                 return new AssetItem( this.rulesRepository,
-                                     precedingVersionNode );
+                                      precedingVersionNode );
             } else {
                 return null;
             }
@@ -319,7 +303,7 @@
             Node succeedingVersionNode = this.getSucceedingVersionNode();
             if ( succeedingVersionNode != null ) {
                 return new AssetItem( this.rulesRepository,
-                                     succeedingVersionNode );
+                                      succeedingVersionNode );
             } else {
                 return null;
             }
@@ -336,7 +320,17 @@
      * hierarchy to get to the enclosing "package" node.
      */
     public String getPackageName() {
-            return super.getStringProperty( PACKAGE_NAME_PROPERTY );
+        return super.getStringProperty( PACKAGE_NAME_PROPERTY );
     }
 
+    /**
+     * @return A property value (for a user defined property).
+     */
+    public String getUserProperty(String property) {
+        return getStringProperty( property );        
+    }
+    
+
+    
+
 }
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetType.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetType.java	2006-12-12 15:47:08 UTC (rev 8256)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/AssetType.java	2006-12-12 15:58:29 UTC (rev 8257)
@@ -0,0 +1,5 @@
+package org.drools.repository;
+
+public class AssetType {
+    
+}

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	2006-12-12 15:47:08 UTC (rev 8256)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java	2006-12-12 15:58:29 UTC (rev 8257)
@@ -88,8 +88,8 @@
      * Without categories, its going to be hard to find rules later on
      * (unless packages are enough for you).
      */
-    public AssetItem addRule(String ruleName, String description) {
-        return addRule(ruleName, description, null);
+    public AssetItem addAsset(String assetName, String description) {
+        return addAsset(assetName, description, null);
     }
     
 
@@ -97,16 +97,16 @@
      * This adds a rule to the current physical package (you can move it later).
      * With the given category
      */
-    public AssetItem addRule(String ruleName,
+    public AssetItem addAsset(String assetName,
                             String description, String initialCategory) {
         Node ruleNode;
         try {
 
             Node rulesFolder = this.node.getNode( RULES_FOLDER_NAME );
-            ruleNode = rulesFolder.addNode( ruleName,
+            ruleNode = rulesFolder.addNode( assetName,
                                             AssetItem.RULE_NODE_TYPE_NAME );
             ruleNode.setProperty( AssetItem.TITLE_PROPERTY_NAME,
-                                  ruleName );
+                                  assetName );
 
             ruleNode.setProperty( AssetItem.DESCRIPTION_PROPERTY_NAME,
                                   description );

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	2006-12-12 15:47:08 UTC (rev 8256)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/VersionableItem.java	2006-12-12 15:58:29 UTC (rev 8257)
@@ -273,7 +273,9 @@
     }
 
     /**
-     * update a text field.
+     * update a text field. This is a convenience method that just
+     * uses the JCR node to set a property.
+     * This will also update the timestamp.
      */
     protected void updateStringProperty(String value,
                                       String prop) {
@@ -294,6 +296,7 @@
             throw new RulesRepositoryException( e );
         }
     }
+    
 
     /**
      * See the Dublin Core documentation for more
@@ -705,4 +708,5 @@
             throw new RulesRepositoryException( e );
         }
     }
+    
 }

Copied: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTestCase.java (from rev 8232, labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RuleItemTestCase.java)
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RuleItemTestCase.java	2006-12-11 18:02:27 UTC (rev 8232)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTestCase.java	2006-12-12 15:58:29 UTC (rev 8257)
@@ -0,0 +1,548 @@
+package org.drools.repository;
+
+import java.util.Calendar;
+import java.util.Iterator;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+public class AssetItemTestCase extends TestCase {
+
+
+    private RulesRepository getRepo() {
+        return RepositorySession.getRepository();
+    }
+    
+    private PackageItem getDefaultPackage() {
+        return getRepo().loadDefaultRulePackage();
+    }
+    
+    public void testRuleItemCreation() throws Exception {
+                
+            Calendar now = Calendar.getInstance();
+        
+            Thread.sleep(500); //MN: need this sleep to get the correct date
+            
+            AssetItem ruleItem1 = getDefaultPackage().addAsset("testRuleItem", "test content");
+            
+            assertNotNull(ruleItem1);
+            assertNotNull(ruleItem1.getNode());
+            assertEquals("testRuleItem", ruleItem1.getName());
+        
+            assertNotNull(ruleItem1.getCreatedDate());
+            
+            assertTrue(now.before( ruleItem1.getCreatedDate() ));
+            
+            String packName = getDefaultPackage().getName();
+
+            assertEquals(packName, ruleItem1.getPackageName());
+            
+            
+        //try constructing with node of wrong type
+        try {
+            
+            DslItem dslItem = getRepo().addDsl("testRuleItem", "content here");
+            new AssetItem(getRepo(), dslItem.getNode());
+            fail("Exception not thrown for node of type: " + dslItem.getNode().getPrimaryNodeType().getName());
+        }
+        catch(RulesRepositoryException e) {
+            //this is good
+        }
+        catch(Exception e) {
+            fail("Caught unexpected exception: " + e);
+        }
+    }
+
+    public void testGetContent() {
+            
+            AssetItem ruleItem1 = getRepo().loadDefaultRulePackage().addAsset("testGetContent", "test content");
+            ruleItem1.updateContent( "test content" );
+            
+            assertNotNull(ruleItem1);
+            assertNotNull(ruleItem1.getNode());
+            assertEquals("test content", ruleItem1.getContent());
+    }
+
+    public void testGetURI() {
+            AssetItem ruleItem1 = getDefaultPackage().addAsset("testGetURI", "blah");
+            ruleItem1.checkin( "version0" );
+            ruleItem1.updateContentURI( "foo/bar" );
+            ruleItem1.checkin( "ha !" );
+            assertNotNull(ruleItem1);
+            assertNotNull(ruleItem1.getNode());
+            assertEquals("foo/bar", ruleItem1.getContentURI());
+    }
+    
+    public void testUpdateContent() {
+            AssetItem ruleItem1 = getDefaultPackage().addAsset("testUpdateContent", "test description");
+            ruleItem1.updateContent( "test content" );            
+            ruleItem1.checkin( "yeah" );
+            
+            ruleItem1.updateContent( "new rule content");
+            
+            assertEquals("new rule content", ruleItem1.getContent());
+            
+            ruleItem1.checkin( "yeah !" );
+            
+            assertEquals("yeah !", ruleItem1.getCheckinComment());
+            
+            AssetItem prev = (AssetItem) ruleItem1.getPredecessorVersionsIterator().next();
+            assertEquals("test content", prev.getContent());
+            assertFalse("yeah !".equals(prev.getCheckinComment()));
+            
+            
+            assertEquals(prev, ruleItem1.getPrecedingVersion());
+
+    }
+    
+
+    public void testCategories() {
+            AssetItem ruleItem1 = getDefaultPackage().addAsset("testAddTag", "test content");
+            
+            getRepo().loadCategory( "/" ).addCategory( "testAddTagTestTag", "description" );
+            
+            ruleItem1.addCategory("testAddTagTestTag");
+            List tags = ruleItem1.getCategories();
+            assertEquals(1, tags.size());
+            assertEquals("testAddTagTestTag", ((CategoryItem)tags.get(0)).getName());
+            
+            getRepo().loadCategory( "/" ).addCategory( "testAddTagTestTag2", "description" );            
+            ruleItem1.addCategory("testAddTagTestTag2");
+            tags = ruleItem1.getCategories();
+            assertEquals(2, tags.size());   
+            
+            ruleItem1.checkin( "woot" );
+            
+            //now test retrieve by tags
+            List result = getRepo().findRulesByCategory("testAddTagTestTag");            
+            assertEquals(1, result.size());            
+            AssetItem retItem = (AssetItem) result.get( 0 );
+            assertEquals("testAddTag", retItem.getName());
+            
+            ruleItem1.updateContent( "foo" );
+            ruleItem1.checkin( "latest" );
+            
+            result = getRepo().findRulesByCategory( "testAddTagTestTag" );
+            
+            assertEquals(1, result.size());
+
+            ruleItem1 = (AssetItem) result.get( 0 );
+            assertEquals(2, ruleItem1.getCategories().size());
+            
+            assertEquals("foo", ruleItem1.getContent());
+            AssetItem prev = (AssetItem) ruleItem1.getPrecedingVersion();
+            assertNotNull(prev);
+            
+    }
+    
+    public void testFindRulesByCategory() throws Exception {
+        
+        getRepo().loadCategory( "/" ).addCategory( "testFindRulesByCat", "yeah" );
+        getDefaultPackage().addAsset( "testFindRulesByCategory1", "ya", "testFindRulesByCat" ).checkin( "version0" );
+        getDefaultPackage().addAsset( "testFindRulesByCategory2", "ya", "testFindRulesByCat" ).checkin( "version0" );
+  
+        
+        List rules = getRepo().findRulesByCategory( "testFindRulesByCat" );
+        assertEquals(2, rules.size());
+        
+        for ( Iterator iter = rules.iterator(); iter.hasNext(); ) {
+            AssetItem element = (AssetItem) iter.next();
+            assertTrue(element.getName().startsWith( "testFindRulesByCategory" ));
+        }
+        
+    }
+    
+
+    public void testRemoveTag() {
+            AssetItem ruleItem1 = getDefaultPackage().addAsset("testRemoveTag", "test content");
+            
+            getRepo().loadCategory( "/" ).addCategory( "TestRemoveCategory", "description" );
+            
+            ruleItem1.addCategory("TestRemoveCategory");   
+            List tags = ruleItem1.getCategories();
+            assertEquals(1, tags.size());
+            ruleItem1.removeCategory("TestRemoveCategory");
+            tags = ruleItem1.getCategories();
+            assertEquals(0, tags.size());
+
+            getRepo().loadCategory( "/" ).addCategory( "TestRemoveCategory2", "description" );
+            getRepo().loadCategory( "/" ).addCategory( "TestRemoveCategory3", "description" );
+            ruleItem1.addCategory("TestRemoveCategory2");                                    
+            ruleItem1.addCategory("TestRemoveCategory3");
+            ruleItem1.removeCategory("TestRemoveCategory2");
+            tags = ruleItem1.getCategories();
+            assertEquals(1, tags.size());
+            assertEquals("TestRemoveCategory3", ((CategoryItem)tags.get(0)).getName());            
+
+    }
+
+    public void testGetTags() {
+            AssetItem ruleItem1 = getDefaultPackage().addAsset("testGetTags", "test content");
+           
+            List tags = ruleItem1.getCategories();
+            assertNotNull(tags);
+            assertEquals(0, tags.size());
+            
+            getRepo().loadCategory( "/" ).addCategory( "testGetTagsTestTag", "description" );
+            
+            ruleItem1.addCategory("testGetTagsTestTag");                                    
+            tags = ruleItem1.getCategories();
+            assertEquals(1, tags.size());
+            assertEquals("testGetTagsTestTag", ((CategoryItem)tags.get(0)).getName());
+
+    }
+
+    public void testSetStateString() {
+            AssetItem ruleItem1 = getDefaultPackage().addAsset("testSetStateString", "test content");
+           
+            ruleItem1.updateState("TestState1");
+            assertNotNull(ruleItem1.getState());
+            assertEquals("TestState1", ruleItem1.getState().getName());
+            
+            ruleItem1.updateState("TestState2");
+            assertNotNull(ruleItem1.getState());
+            assertEquals("TestState2", ruleItem1.getState().getName());            
+
+    }
+
+    public void testSetStateStateItem() {
+            AssetItem ruleItem1 = getDefaultPackage().addAsset("foobar", "test description");
+           
+            StateItem stateItem1 = getRepo().getState("TestState1");
+            ruleItem1.updateState(stateItem1);            
+            assertNotNull(ruleItem1.getState());
+            assertEquals(ruleItem1.getState().getName(), "TestState1");
+            
+            StateItem stateItem2 = getRepo().getState("TestState2");
+            ruleItem1.updateState(stateItem2);
+            assertNotNull(ruleItem1.getState());
+            assertEquals("TestState2", ruleItem1.getState().getName());            
+
+    }
+
+    public void testGetState() {
+            AssetItem ruleItem1 = getDefaultPackage().addAsset("testGetState", "test content");
+           
+            StateItem stateItem1 = ruleItem1.getState();
+            assertNull(stateItem1);
+            
+            ruleItem1.updateState("TestState1");
+            assertNotNull(ruleItem1.getState());
+            assertEquals("TestState1", ruleItem1.getState().getName());    
+            
+            ruleItem1 = getDefaultPackage().addAsset( "testGetState2", "wa" );
+            assertEquals("", ruleItem1.getStateDescription());
+            assertNull(ruleItem1.getState());
+    }
+    
+
+    public void testToString() {
+            AssetItem ruleItem1 = getDefaultPackage().addAsset("testToString", "test content");
+           
+            assertNotNull(ruleItem1.toString());                        
+
+    }
+    
+    public void testGetLastModifiedOnCheckin() throws Exception  {
+            AssetItem ruleItem1 = getDefaultPackage().addAsset("testGetLastModified", "test content");
+           
+            Calendar cal = Calendar.getInstance();
+            long before = cal.getTimeInMillis();           
+            
+            Thread.sleep( 100 );
+            ruleItem1.updateContent("new lhs");
+            ruleItem1.checkin( "woot" );
+            Calendar cal2 = ruleItem1.getLastModified();
+            long lastMod = cal2.getTimeInMillis();           
+            
+            cal = Calendar.getInstance();
+            long after = cal.getTimeInMillis();
+            
+            
+            
+            assertTrue(before < lastMod);
+            assertTrue(lastMod < after);
+
+    }
+    
+    public void testGetDateEffective() {
+
+            AssetItem ruleItem1 = getDefaultPackage().addAsset("testGetDateEffective", "test content");
+           
+            //it should be initialized to null
+            assertTrue(ruleItem1.getDateEffective() == null);
+            
+            //now try setting it, then retrieving it
+            Calendar cal = Calendar.getInstance();
+            ruleItem1.updateDateEffective(cal);
+            Calendar cal2 = ruleItem1.getDateEffective();
+            
+            assertEquals(cal, cal2);            
+    }
+    
+    public void testGetDateExpired() {
+        try {
+            AssetItem ruleItem1 = getRepo().loadDefaultRulePackage().addAsset("testGetDateExpired", "test content");
+           
+            //it should be initialized to null
+            assertTrue(ruleItem1.getDateExpired() == null);
+            
+            //now try setting it, then retrieving it
+            Calendar cal = Calendar.getInstance();
+            ruleItem1.updateDateExpired(cal);
+            Calendar cal2 = ruleItem1.getDateExpired();
+            
+            assertEquals(cal, cal2);            
+        }
+        catch(Exception e) {
+            fail("Caught unexpected exception: " + e);
+        }
+    }
+    
+    
+    public void testSaveAndCheckinDescriptionAndTitle() throws Exception {
+            AssetItem ruleItem1 = getRepo().loadDefaultRulePackage().addAsset("testGetDescription", "");
+            ruleItem1.checkin( "version0" );
+            
+            //it should be "" to begin with
+            assertEquals("", ruleItem1.getDescription());
+            
+            ruleItem1.updateDescription("test description");
+            assertEquals("test description", ruleItem1.getDescription());
+            
+            
+            
+            
+            assertTrue(getRepo().getSession().hasPendingChanges());
+            
+            ruleItem1.updateTitle( "This is a title" );
+            assertTrue(getRepo().getSession().hasPendingChanges());
+            ruleItem1.checkin( "ya" );
+
+            
+            //we can save without a checkin
+            getRepo().getSession().save();
+
+            assertFalse(getRepo().getSession().hasPendingChanges());
+
+            
+            try {
+                ruleItem1.getPrecedingVersion().updateTitle( "baaad" );
+                fail("should not be able to do this");
+            } catch (RulesRepositoryException e) {
+                assertNotNull(e.getMessage());
+            }
+            
+    }
+    
+    public void testGetPrecedingVersion() {
+        
+            getRepo().loadCategory( "/" ).addCategory( "foo", "ka" );
+            AssetItem ruleItem1 = getRepo().loadDefaultRulePackage().addAsset("testGetPrecedingVersion", "descr");
+            ruleItem1.checkin( "version0" );
+            assertTrue(ruleItem1.getPrecedingVersion() == null);
+            
+            
+            
+            ruleItem1.addCategory( "foo" );
+            ruleItem1.updateContent( "test content" );
+            ruleItem1.checkin( "boo" );
+            
+            
+            AssetItem predecessorRuleItem = (AssetItem) ruleItem1.getPrecedingVersion();
+            assertNotNull(predecessorRuleItem);            
+            
+            
+            
+            ruleItem1.updateContent("new content");
+            ruleItem1.updateContentURI( "foobar" );
+            ruleItem1.checkin( "two changes" );
+            
+            predecessorRuleItem = (AssetItem) ruleItem1.getPrecedingVersion();
+            assertNotNull(predecessorRuleItem);
+            assertEquals(1, predecessorRuleItem.getCategories().size());
+            CategoryItem cat = (CategoryItem) predecessorRuleItem.getCategories().get( 0 );
+            assertEquals("foo", cat.getName());
+            
+            
+            assertEquals("test content", predecessorRuleItem.getContent());
+            
+            assertEquals("descr", predecessorRuleItem.getDescription());
+            
+            assertEquals("default", predecessorRuleItem.getPackageName());
+            
+            
+            
+            ruleItem1.updateContent("newer lhs");
+            ruleItem1.checkin( "another" );
+            
+            predecessorRuleItem = (AssetItem) ruleItem1.getPrecedingVersion();
+            assertNotNull(predecessorRuleItem);
+            assertEquals("new content", predecessorRuleItem.getContent());
+            predecessorRuleItem = (AssetItem) predecessorRuleItem.getPrecedingVersion();
+            assertNotNull(predecessorRuleItem);
+            assertEquals("test content", predecessorRuleItem.getContent());
+ 
+    }
+    
+    public void testGetSucceedingVersion() {
+            AssetItem ruleItem1 = getRepo().loadDefaultRulePackage().addAsset("testGetSucceedingVersion", "test description");
+            ruleItem1.checkin( "version0" );
+
+            assertEquals("1", ruleItem1.getVersionNumber());
+            
+            AssetItem succeedingRuleItem = (AssetItem) ruleItem1.getSucceedingVersion();
+            assertTrue(succeedingRuleItem == null);            
+            
+            ruleItem1.updateContent("new content");
+            ruleItem1.checkin( "la" );
+            
+            assertEquals("2", ruleItem1.getVersionNumber());
+            
+            AssetItem predecessorRuleItem = (AssetItem) ruleItem1.getPrecedingVersion();
+            assertEquals(null, predecessorRuleItem.getContent());
+            succeedingRuleItem = (AssetItem) predecessorRuleItem.getSucceedingVersion();
+            assertNotNull(succeedingRuleItem);
+            assertEquals(ruleItem1.getContent(), succeedingRuleItem.getContent());                       
+    } 
+    
+    public void testGetSuccessorVersionsIterator() {
+        try {
+            AssetItem ruleItem1 = getRepo().loadDefaultRulePackage().addAsset("testGetSuccessorVersionsIterator", "test content");
+            ruleItem1.checkin( "version0" );
+            
+            Iterator iterator = ruleItem1.getSuccessorVersionsIterator();            
+            assertNotNull(iterator);
+            assertFalse(iterator.hasNext());
+            
+            ruleItem1.updateContent("new content").checkin( "ya" );
+            
+            
+            iterator = ruleItem1.getSuccessorVersionsIterator();            
+            assertNotNull(iterator);
+            assertFalse(iterator.hasNext());
+            
+            AssetItem predecessorRuleItem = (AssetItem) ruleItem1.getPrecedingVersion();
+            iterator = predecessorRuleItem.getSuccessorVersionsIterator();
+            assertNotNull(iterator);
+            assertTrue(iterator.hasNext());
+            AssetItem nextRuleItem = (AssetItem) iterator.next();
+            assertEquals("new content", nextRuleItem.getContent());
+            assertFalse(iterator.hasNext());
+            
+            ruleItem1.updateContent("newer content");
+            ruleItem1.checkin( "boo" );
+                        
+            iterator = predecessorRuleItem.getSuccessorVersionsIterator();
+            assertNotNull(iterator);
+            assertTrue(iterator.hasNext());
+            nextRuleItem = (AssetItem) iterator.next();
+            assertEquals("new content", nextRuleItem.getContent());
+            assertTrue(iterator.hasNext());
+            nextRuleItem = (AssetItem)iterator.next();
+            assertEquals("newer content", nextRuleItem.getContent());
+            assertFalse(iterator.hasNext());            
+        }
+        catch(Exception e) {
+            fail("Caught unexpected exception: " + e);
+        }
+    }
+    
+    public void testGetPredecessorVersionsIterator() {
+            AssetItem ruleItem1 = getRepo().loadDefaultRulePackage().addAsset("testGetPredecessorVersionsIterator", "test description");
+            ruleItem1.checkin( "version0" );
+            
+            Iterator iterator = ruleItem1.getPredecessorVersionsIterator();            
+            assertNotNull(iterator);
+            assertFalse(iterator.hasNext());            
+            
+            ruleItem1.updateContent( "test content" );
+            ruleItem1.checkin( "lalalalala" );
+            
+            iterator = ruleItem1.getPredecessorVersionsIterator();            
+            assertNotNull(iterator);
+            assertTrue(iterator.hasNext());
+            
+            ruleItem1.updateContent("new content");
+            ruleItem1.checkin( "boo" );
+            
+            iterator = ruleItem1.getPredecessorVersionsIterator();            
+            assertNotNull(iterator);
+            assertTrue(iterator.hasNext());
+            AssetItem nextRuleItem = (AssetItem) iterator.next();
+            
+            assertEquals("test content", nextRuleItem.getContent());
+            
+            ruleItem1.updateContent("newer content");
+            ruleItem1.checkin( "wee" );
+            
+            
+            iterator = ruleItem1.getPredecessorVersionsIterator();            
+            assertNotNull(iterator);
+            assertTrue(iterator.hasNext());
+            nextRuleItem = (AssetItem) iterator.next();
+            assertTrue(iterator.hasNext());            
+            assertEquals("new content", nextRuleItem.getContent());
+            nextRuleItem = (AssetItem) iterator.next();
+            
+            assertEquals("test content", nextRuleItem.getContent());
+            
+            assertEquals(null, ((AssetItem) iterator.next()).getContent());
+
+    }
+    
+    public void testGetTitle() {    
+            AssetItem ruleItem1 = getRepo().loadDefaultRulePackage().addAsset("testGetTitle", "test content");            
+                        
+            assertEquals("testGetTitle", ruleItem1.getTitle());
+    }
+    
+    public void testDublinCoreProperties() {
+        PackageItem pkg = getRepo().createRulePackage( "testDublinCore", "wa" );
+        
+        AssetItem ruleItem = pkg.addAsset( "testDublinCoreProperties", "yeah yeah yeah" );
+        ruleItem.updateCoverage( "b" );
+        assertEquals("b",ruleItem.getCoverage());
+        
+        ruleItem.updateLastContributor( "me" );
+        ruleItem.checkin( "woo" );
+        
+        pkg = getRepo().loadRulePackage( "testDublinCore" );
+        ruleItem = (AssetItem) pkg.getRules().next();
+        
+        assertEquals("b", ruleItem.getCoverage());
+        assertEquals("me", ruleItem.getLastContributor());
+        
+        assertEquals("", ruleItem.getExternalRelation());
+        assertEquals("", ruleItem.getExternalSource());
+        
+    }
+    
+    public void testGetFormat() {        
+            AssetItem ruleItem1 = getRepo().loadDefaultRulePackage().addAsset("testGetFormat", "test content");
+            
+            assertEquals("DRL", ruleItem1.getFormat());     
+            
+            ruleItem1.updateFormat( "blah" );
+            assertEquals("blah", ruleItem1.getFormat());
+    }        
+    
+    public void testAnonymousProperties() {
+        AssetItem item = getRepo().loadDefaultRulePackage().addAsset( "anonymousproperty", "lalalalala" );
+        item.updateUserProperty( "fooBar", "value");
+        assertEquals("value", item.getUserProperty("fooBar"));
+        
+        
+        
+        item.checkin( "lalalala" );
+        try {
+            item.updateUserProperty( "drools:content", "whee" );
+            fail("should not be able to set build in properties this way.");
+        }
+        catch (IllegalArgumentException e) {
+            assertNotNull(e.getMessage());
+        }
+
+        
+    }
+}

Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/DslItemTestCase.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/DslItemTestCase.java	2006-12-12 15:47:08 UTC (rev 8256)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/DslItemTestCase.java	2006-12-12 15:58:29 UTC (rev 8257)
@@ -32,7 +32,7 @@
         //try constructing a DslItem object with the wrong node type
         try {
             //Get a reference to a node of the incorrect type
-            AssetItem ruleItem1 = this.getRepo().loadDefaultRulePackage().addRule("test rule", "test guts");
+            AssetItem ruleItem1 = this.getRepo().loadDefaultRulePackage().addAsset("test rule", "test guts");
             
             //this should fail
             DslItem dslItem2 = new DslItem(getRepo(), ruleItem1.getNode());

Deleted: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RuleItemTestCase.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RuleItemTestCase.java	2006-12-12 15:47:08 UTC (rev 8256)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RuleItemTestCase.java	2006-12-12 15:58:29 UTC (rev 8257)
@@ -1,533 +0,0 @@
-package org.drools.repository;
-
-import java.util.Calendar;
-import java.util.Iterator;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-public class RuleItemTestCase extends TestCase {
-
-
-    private RulesRepository getRepo() {
-        return RepositorySession.getRepository();
-    }
-    
-    private PackageItem getDefaultPackage() {
-        return getRepo().loadDefaultRulePackage();
-    }
-    
-    public void testRuleItemCreation() throws Exception {
-                
-            Calendar now = Calendar.getInstance();
-        
-            Thread.sleep(500); //MN: need this sleep to get the correct date
-            
-            AssetItem ruleItem1 = getDefaultPackage().addRule("testRuleItem", "test content");
-            
-            assertNotNull(ruleItem1);
-            assertNotNull(ruleItem1.getNode());
-            assertEquals("testRuleItem", ruleItem1.getName());
-        
-            assertNotNull(ruleItem1.getCreatedDate());
-            
-            assertTrue(now.before( ruleItem1.getCreatedDate() ));
-            
-            String packName = getDefaultPackage().getName();
-
-            assertEquals(packName, ruleItem1.getPackageName());
-            
-            
-        //try constructing with node of wrong type
-        try {
-            
-            DslItem dslItem = getRepo().addDsl("testRuleItem", "content here");
-            new AssetItem(getRepo(), dslItem.getNode());
-            fail("Exception not thrown for node of type: " + dslItem.getNode().getPrimaryNodeType().getName());
-        }
-        catch(RulesRepositoryException e) {
-            //this is good
-        }
-        catch(Exception e) {
-            fail("Caught unexpected exception: " + e);
-        }
-    }
-
-    public void testGetContent() {
-            
-            AssetItem ruleItem1 = getRepo().loadDefaultRulePackage().addRule("testGetContent", "test content");
-            ruleItem1.updateRuleContent( "test content" );
-            
-            assertNotNull(ruleItem1);
-            assertNotNull(ruleItem1.getNode());
-            assertEquals("test content", ruleItem1.getRuleContent());
-    }
-
-    public void testGetURI() {
-            AssetItem ruleItem1 = getDefaultPackage().addRule("testGetURI", "blah");
-            ruleItem1.updateRuleContentURI( "foo/bar" );
-            ruleItem1.checkin( "ha !" );
-            assertNotNull(ruleItem1);
-            assertNotNull(ruleItem1.getNode());
-            assertEquals("foo/bar", ruleItem1.getRuleContentURI());
-    }
-    
-    public void testUpdateContent() {
-            AssetItem ruleItem1 = getDefaultPackage().addRule("testUpdateContent", "test description");
-            ruleItem1.updateRuleContent( "test content" );            
-            ruleItem1.checkin( "yeah" );
-            
-            ruleItem1.updateRuleContent( "new rule content");
-            
-            assertEquals("new rule content", ruleItem1.getRuleContent());
-            
-            ruleItem1.checkin( "yeah !" );
-            
-            assertEquals("yeah !", ruleItem1.getCheckinComment());
-            
-            AssetItem prev = (AssetItem) ruleItem1.getPredecessorVersionsIterator().next();
-            assertEquals("test content", prev.getRuleContent());
-            assertFalse("yeah !".equals(prev.getCheckinComment()));
-            
-            
-            assertEquals(prev, ruleItem1.getPrecedingVersion());
-
-    }
-    
-
-    public void testCategories() {
-            AssetItem ruleItem1 = getDefaultPackage().addRule("testAddTag", "test content");
-            
-            getRepo().loadCategory( "/" ).addCategory( "testAddTagTestTag", "description" );
-            
-            ruleItem1.addCategory("testAddTagTestTag");
-            List tags = ruleItem1.getCategories();
-            assertEquals(1, tags.size());
-            assertEquals("testAddTagTestTag", ((CategoryItem)tags.get(0)).getName());
-            
-            getRepo().loadCategory( "/" ).addCategory( "testAddTagTestTag2", "description" );            
-            ruleItem1.addCategory("testAddTagTestTag2");
-            tags = ruleItem1.getCategories();
-            assertEquals(2, tags.size());   
-            
-            ruleItem1.checkin( "woot" );
-            
-            //now test retrieve by tags
-            List result = getRepo().findRulesByCategory("testAddTagTestTag");            
-            assertEquals(1, result.size());            
-            AssetItem retItem = (AssetItem) result.get( 0 );
-            assertEquals("testAddTag", retItem.getName());
-            
-            ruleItem1.updateRuleContent( "foo" );
-            ruleItem1.checkin( "latest" );
-            
-            result = getRepo().findRulesByCategory( "testAddTagTestTag" );
-            
-            assertEquals(1, result.size());
-
-            ruleItem1 = (AssetItem) result.get( 0 );
-            assertEquals(2, ruleItem1.getCategories().size());
-            
-            assertEquals("foo", ruleItem1.getRuleContent());
-            AssetItem prev = (AssetItem) ruleItem1.getPrecedingVersion();
-            assertNotNull(prev);
-            
-    }
-    
-    public void testFindRulesByCategory() throws Exception {
-        
-        getRepo().loadCategory( "/" ).addCategory( "testFindRulesByCat", "yeah" );
-        getDefaultPackage().addRule( "testFindRulesByCategory1", "ya", "testFindRulesByCat" ).checkin( "version0" );
-        getDefaultPackage().addRule( "testFindRulesByCategory2", "ya", "testFindRulesByCat" ).checkin( "version0" );
-  
-        
-        List rules = getRepo().findRulesByCategory( "testFindRulesByCat" );
-        assertEquals(2, rules.size());
-        
-        for ( Iterator iter = rules.iterator(); iter.hasNext(); ) {
-            AssetItem element = (AssetItem) iter.next();
-            assertTrue(element.getName().startsWith( "testFindRulesByCategory" ));
-        }
-        
-    }
-    
-
-    public void testRemoveTag() {
-            AssetItem ruleItem1 = getDefaultPackage().addRule("testRemoveTag", "test content");
-            
-            getRepo().loadCategory( "/" ).addCategory( "TestRemoveCategory", "description" );
-            
-            ruleItem1.addCategory("TestRemoveCategory");   
-            List tags = ruleItem1.getCategories();
-            assertEquals(1, tags.size());
-            ruleItem1.removeCategory("TestRemoveCategory");
-            tags = ruleItem1.getCategories();
-            assertEquals(0, tags.size());
-
-            getRepo().loadCategory( "/" ).addCategory( "TestRemoveCategory2", "description" );
-            getRepo().loadCategory( "/" ).addCategory( "TestRemoveCategory3", "description" );
-            ruleItem1.addCategory("TestRemoveCategory2");                                    
-            ruleItem1.addCategory("TestRemoveCategory3");
-            ruleItem1.removeCategory("TestRemoveCategory2");
-            tags = ruleItem1.getCategories();
-            assertEquals(1, tags.size());
-            assertEquals("TestRemoveCategory3", ((CategoryItem)tags.get(0)).getName());            
-
-    }
-
-    public void testGetTags() {
-            AssetItem ruleItem1 = getDefaultPackage().addRule("testGetTags", "test content");
-           
-            List tags = ruleItem1.getCategories();
-            assertNotNull(tags);
-            assertEquals(0, tags.size());
-            
-            getRepo().loadCategory( "/" ).addCategory( "testGetTagsTestTag", "description" );
-            
-            ruleItem1.addCategory("testGetTagsTestTag");                                    
-            tags = ruleItem1.getCategories();
-            assertEquals(1, tags.size());
-            assertEquals("testGetTagsTestTag", ((CategoryItem)tags.get(0)).getName());
-
-    }
-
-    public void testSetStateString() {
-            AssetItem ruleItem1 = getDefaultPackage().addRule("testSetStateString", "test content");
-           
-            ruleItem1.updateState("TestState1");
-            assertNotNull(ruleItem1.getState());
-            assertEquals("TestState1", ruleItem1.getState().getName());
-            
-            ruleItem1.updateState("TestState2");
-            assertNotNull(ruleItem1.getState());
-            assertEquals("TestState2", ruleItem1.getState().getName());            
-
-    }
-
-    public void testSetStateStateItem() {
-            AssetItem ruleItem1 = getDefaultPackage().addRule("foobar", "test description");
-           
-            StateItem stateItem1 = getRepo().getState("TestState1");
-            ruleItem1.updateState(stateItem1);            
-            assertNotNull(ruleItem1.getState());
-            assertEquals(ruleItem1.getState().getName(), "TestState1");
-            
-            StateItem stateItem2 = getRepo().getState("TestState2");
-            ruleItem1.updateState(stateItem2);
-            assertNotNull(ruleItem1.getState());
-            assertEquals("TestState2", ruleItem1.getState().getName());            
-
-    }
-
-    public void testGetState() {
-            AssetItem ruleItem1 = getDefaultPackage().addRule("testGetState", "test content");
-           
-            StateItem stateItem1 = ruleItem1.getState();
-            assertNull(stateItem1);
-            
-            ruleItem1.updateState("TestState1");
-            assertNotNull(ruleItem1.getState());
-            assertEquals("TestState1", ruleItem1.getState().getName());    
-            
-            ruleItem1 = getDefaultPackage().addRule( "testGetState2", "wa" );
-            assertEquals("", ruleItem1.getStateDescription());
-            assertNull(ruleItem1.getState());
-    }
-    
-
-    public void testToString() {
-            AssetItem ruleItem1 = getDefaultPackage().addRule("testToString", "test content");
-           
-            assertNotNull(ruleItem1.toString());                        
-
-    }
-    
-    public void testGetLastModifiedOnCheckin() throws Exception  {
-            AssetItem ruleItem1 = getDefaultPackage().addRule("testGetLastModified", "test content");
-           
-            Calendar cal = Calendar.getInstance();
-            long before = cal.getTimeInMillis();           
-            
-            Thread.sleep( 100 );
-            ruleItem1.updateRuleContent("new lhs");
-            ruleItem1.checkin( "woot" );
-            Calendar cal2 = ruleItem1.getLastModified();
-            long lastMod = cal2.getTimeInMillis();           
-            
-            cal = Calendar.getInstance();
-            long after = cal.getTimeInMillis();
-            
-            
-            
-            assertTrue(before < lastMod);
-            assertTrue(lastMod < after);
-
-    }
-    
-    public void testGetDateEffective() {
-
-            AssetItem ruleItem1 = getDefaultPackage().addRule("testGetDateEffective", "test content");
-           
-            //it should be initialized to null
-            assertTrue(ruleItem1.getDateEffective() == null);
-            
-            //now try setting it, then retrieving it
-            Calendar cal = Calendar.getInstance();
-            ruleItem1.updateDateEffective(cal);
-            Calendar cal2 = ruleItem1.getDateEffective();
-            
-            assertEquals(cal, cal2);            
-    }
-    
-    public void testGetDateExpired() {
-        try {
-            AssetItem ruleItem1 = getRepo().loadDefaultRulePackage().addRule("testGetDateExpired", "test content");
-           
-            //it should be initialized to null
-            assertTrue(ruleItem1.getDateExpired() == null);
-            
-            //now try setting it, then retrieving it
-            Calendar cal = Calendar.getInstance();
-            ruleItem1.updateDateExpired(cal);
-            Calendar cal2 = ruleItem1.getDateExpired();
-            
-            assertEquals(cal, cal2);            
-        }
-        catch(Exception e) {
-            fail("Caught unexpected exception: " + e);
-        }
-    }
-    
-    
-    public void testSaveAndCheckinDescriptionAndTitle() throws Exception {
-            AssetItem ruleItem1 = getRepo().loadDefaultRulePackage().addRule("testGetDescription", "");
-            ruleItem1.checkin( "version0" );
-            
-            //it should be "" to begin with
-            assertEquals("", ruleItem1.getDescription());
-            
-            ruleItem1.updateDescription("test description");
-            assertEquals("test description", ruleItem1.getDescription());
-            
-            
-            
-            
-            assertTrue(getRepo().getSession().hasPendingChanges());
-            
-            ruleItem1.updateTitle( "This is a title" );
-            assertTrue(getRepo().getSession().hasPendingChanges());
-            ruleItem1.checkin( "ya" );
-
-            
-            //we can save without a checkin
-            getRepo().getSession().save();
-
-            assertFalse(getRepo().getSession().hasPendingChanges());
-
-            
-            try {
-                ruleItem1.getPrecedingVersion().updateTitle( "baaad" );
-                fail("should not be able to do this");
-            } catch (RulesRepositoryException e) {
-                assertNotNull(e.getMessage());
-            }
-            
-    }
-    
-    public void testGetPrecedingVersion() {
-        
-            getRepo().loadCategory( "/" ).addCategory( "foo", "ka" );
-            AssetItem ruleItem1 = getRepo().loadDefaultRulePackage().addRule("testGetPrecedingVersion", "descr");
-            ruleItem1.checkin( "version0" );
-            assertTrue(ruleItem1.getPrecedingVersion() == null);
-            
-            
-            
-            ruleItem1.addCategory( "foo" );
-            ruleItem1.updateRuleContent( "test content" );
-            ruleItem1.checkin( "boo" );
-            
-            
-            AssetItem predecessorRuleItem = (AssetItem) ruleItem1.getPrecedingVersion();
-            assertNotNull(predecessorRuleItem);            
-            
-            
-            
-            ruleItem1.updateRuleContent("new content");
-            ruleItem1.updateRuleContentURI( "foobar" );
-            ruleItem1.checkin( "two changes" );
-            
-            predecessorRuleItem = (AssetItem) ruleItem1.getPrecedingVersion();
-            assertNotNull(predecessorRuleItem);
-            assertEquals(1, predecessorRuleItem.getCategories().size());
-            CategoryItem cat = (CategoryItem) predecessorRuleItem.getCategories().get( 0 );
-            assertEquals("foo", cat.getName());
-            
-            
-            assertEquals("test content", predecessorRuleItem.getRuleContent());
-            
-            assertEquals("descr", predecessorRuleItem.getDescription());
-            
-            assertEquals("default", predecessorRuleItem.getPackageName());
-            
-            
-            
-            ruleItem1.updateRuleContent("newer lhs");
-            ruleItem1.checkin( "another" );
-            
-            predecessorRuleItem = (AssetItem) ruleItem1.getPrecedingVersion();
-            assertNotNull(predecessorRuleItem);
-            assertEquals("new content", predecessorRuleItem.getRuleContent());
-            predecessorRuleItem = (AssetItem) predecessorRuleItem.getPrecedingVersion();
-            assertNotNull(predecessorRuleItem);
-            assertEquals("test content", predecessorRuleItem.getRuleContent());
- 
-    }
-    
-    public void testGetSucceedingVersion() {
-            AssetItem ruleItem1 = getRepo().loadDefaultRulePackage().addRule("testGetSucceedingVersion", "test description");
-            ruleItem1.checkin( "version0" );
-
-            assertEquals("1", ruleItem1.getVersionNumber());
-            
-            AssetItem succeedingRuleItem = (AssetItem) ruleItem1.getSucceedingVersion();
-            assertTrue(succeedingRuleItem == null);            
-            
-            ruleItem1.updateRuleContent("new content");
-            ruleItem1.checkin( "la" );
-            
-            assertEquals("2", ruleItem1.getVersionNumber());
-            
-            AssetItem predecessorRuleItem = (AssetItem) ruleItem1.getPrecedingVersion();
-            assertEquals(null, predecessorRuleItem.getRuleContent());
-            succeedingRuleItem = (AssetItem) predecessorRuleItem.getSucceedingVersion();
-            assertNotNull(succeedingRuleItem);
-            assertEquals(ruleItem1.getRuleContent(), succeedingRuleItem.getRuleContent());                       
-    } 
-    
-    public void testGetSuccessorVersionsIterator() {
-        try {
-            AssetItem ruleItem1 = getRepo().loadDefaultRulePackage().addRule("testGetSuccessorVersionsIterator", "test content");
-            ruleItem1.checkin( "version0" );
-            
-            Iterator iterator = ruleItem1.getSuccessorVersionsIterator();            
-            assertNotNull(iterator);
-            assertFalse(iterator.hasNext());
-            
-            ruleItem1.updateRuleContent("new content").checkin( "ya" );
-            
-            
-            iterator = ruleItem1.getSuccessorVersionsIterator();            
-            assertNotNull(iterator);
-            assertFalse(iterator.hasNext());
-            
-            AssetItem predecessorRuleItem = (AssetItem) ruleItem1.getPrecedingVersion();
-            iterator = predecessorRuleItem.getSuccessorVersionsIterator();
-            assertNotNull(iterator);
-            assertTrue(iterator.hasNext());
-            AssetItem nextRuleItem = (AssetItem) iterator.next();
-            assertEquals("new content", nextRuleItem.getRuleContent());
-            assertFalse(iterator.hasNext());
-            
-            ruleItem1.updateRuleContent("newer content");
-            ruleItem1.checkin( "boo" );
-                        
-            iterator = predecessorRuleItem.getSuccessorVersionsIterator();
-            assertNotNull(iterator);
-            assertTrue(iterator.hasNext());
-            nextRuleItem = (AssetItem) iterator.next();
-            assertEquals("new content", nextRuleItem.getRuleContent());
-            assertTrue(iterator.hasNext());
-            nextRuleItem = (AssetItem)iterator.next();
-            assertEquals("newer content", nextRuleItem.getRuleContent());
-            assertFalse(iterator.hasNext());            
-        }
-        catch(Exception e) {
-            fail("Caught unexpected exception: " + e);
-        }
-    }
-    
-    public void testGetPredecessorVersionsIterator() {
-        try {
-            AssetItem ruleItem1 = getRepo().loadDefaultRulePackage().addRule("testGetPredecessorVersionsIterator", "test description");
-            ruleItem1.checkin( "version0" );
-            
-            Iterator iterator = ruleItem1.getPredecessorVersionsIterator();            
-            assertNotNull(iterator);
-            assertFalse(iterator.hasNext());            
-            
-            ruleItem1.updateRuleContent( "test content" );
-            ruleItem1.checkin( "lalalalala" );
-            
-            iterator = ruleItem1.getPredecessorVersionsIterator();            
-            assertNotNull(iterator);
-            assertTrue(iterator.hasNext());
-            
-            ruleItem1.updateRuleContent("new content");
-            ruleItem1.checkin( "boo" );
-            
-            iterator = ruleItem1.getPredecessorVersionsIterator();            
-            assertNotNull(iterator);
-            assertTrue(iterator.hasNext());
-            AssetItem nextRuleItem = (AssetItem) iterator.next();
-            
-            assertEquals("test content", nextRuleItem.getRuleContent());
-            
-            ruleItem1.updateRuleContent("newer content");
-            ruleItem1.checkin( "wee" );
-            
-            
-            iterator = ruleItem1.getPredecessorVersionsIterator();            
-            assertNotNull(iterator);
-            assertTrue(iterator.hasNext());
-            nextRuleItem = (AssetItem) iterator.next();
-            assertTrue(iterator.hasNext());            
-            assertEquals("new content", nextRuleItem.getRuleContent());
-            nextRuleItem = (AssetItem) iterator.next();
-            
-            assertEquals("test content", nextRuleItem.getRuleContent());
-            
-            assertEquals(null, ((AssetItem) iterator.next()).getRuleContent());
-            
-        }
-        catch(Exception e) {
-            fail("Caught unexpected exception: " + e);
-        }
-    }
-    
-    public void testGetTitle() {    
-            AssetItem ruleItem1 = getRepo().loadDefaultRulePackage().addRule("testGetTitle", "test content");            
-                        
-            assertEquals("testGetTitle", ruleItem1.getTitle());
-    }
-    
-    public void testDublinCoreProperties() {
-        PackageItem pkg = getRepo().createRulePackage( "testDublinCore", "wa" );
-        
-        AssetItem ruleItem = pkg.addRule( "testDublinCoreProperties", "yeah yeah yeah" );
-        ruleItem.updateCoverage( "b" );
-        assertEquals("b",ruleItem.getCoverage());
-        
-        ruleItem.updateLastContributor( "me" );
-        ruleItem.checkin( "woo" );
-        
-        pkg = getRepo().loadRulePackage( "testDublinCore" );
-        ruleItem = (AssetItem) pkg.getRules().next();
-        
-        assertEquals("b", ruleItem.getCoverage());
-        assertEquals("me", ruleItem.getLastContributor());
-        
-        assertEquals("", ruleItem.getExternalRelation());
-        assertEquals("", ruleItem.getExternalSource());
-        
-    }
-    
-    public void testGetFormat() {        
-            AssetItem ruleItem1 = getRepo().loadDefaultRulePackage().addRule("testGetFormat", "test content");
-            
-            assertEquals("DRL", ruleItem1.getFormat());     
-            
-            ruleItem1.updateFormat( "blah" );
-            assertEquals("blah", ruleItem1.getFormat());
-    }        
-}

Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulePackageItemTestCase.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulePackageItemTestCase.java	2006-12-12 15:47:08 UTC (rev 8256)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulePackageItemTestCase.java	2006-12-12 15:58:29 UTC (rev 8257)
@@ -71,8 +71,8 @@
         
         PackageItem pack = repo.createRulePackage( "testBaselinePackage", "for testing baselines" );
         
-        AssetItem rule1 = pack.addRule( "rule 1", "yeah" );
-        AssetItem rule2 = pack.addRule( "rule 2", "foobar" );
+        AssetItem rule1 = pack.addAsset( "rule 1", "yeah" );
+        AssetItem rule2 = pack.addAsset( "rule 2", "foobar" );
         
         StateItem state = repo.getState( "deployed" );
         
@@ -104,8 +104,8 @@
         String packName = StackUtil.getCurrentMethodName();
         PackageItem pack = getRepo().createRulePackage( packName, "yeah" );
         
-        AssetItem rule = pack.addRule( "foobar", "waah" );        
-        rule.updateRuleContent( "this is something" );        
+        AssetItem rule = pack.addAsset( "foobar", "waah" );        
+        rule.updateContent( "this is something" );        
         rule.checkin( "something" );
         
         StateItem state = getRepo().getState( "something" );
@@ -115,18 +115,18 @@
         pack = getRepo().loadRulePackage( packName );
         
         rule = (AssetItem) pack.getRules().next();
-        rule.updateRuleContent( "blah" );
+        rule.updateContent( "blah" );
         rule.checkin( "woot" );
         
         pack.createBaseline( "yeah", state );
         
         pack = getRepo().loadRulePackage( packName );
         rule = (AssetItem) pack.getRules().next();
-        assertEquals("blah", rule.getRuleContent());
+        assertEquals("blah", rule.getContent());
         
         PackageItem prev = (PackageItem) pack.getPrecedingVersion();
         rule = (AssetItem) prev.getRules().next();
-        assertEquals("this is something", rule.getRuleContent());
+        assertEquals("this is something", rule.getContent());
         
     }
 
@@ -160,13 +160,13 @@
         PackageItem pack = getRepo().createRulePackage( "package extractor", "foo" );
         
         
-        AssetItem rule1 = pack.addRule( "rule number 1", "yeah man" );
+        AssetItem rule1 = pack.addAsset( "rule number 1", "yeah man" );
         rule1.checkin( "version0" );
         
-        AssetItem rule2 = pack.addRule( "rule number 2", "no way" );
+        AssetItem rule2 = pack.addAsset( "rule number 2", "no way" );
         rule2.checkin( "version0" );
         
-        AssetItem rule3 = pack.addRule( "rule number 3", "yes way" );
+        AssetItem rule3 = pack.addAsset( "rule number 3", "yes way" );
         rule3.checkin( "version0" );
         
         getRepo().save();
@@ -196,14 +196,14 @@
         assertEquals(3, rules.size());
         
         //now do an update, and pull it out via state
-        rule1.updateRuleContent( "new content" );
+        rule1.updateContent( "new content" );
         rule1.updateState( "draft" );
         rule1.checkin( "latest" );
         
         rules = iteratorToList( pack.getRules(getRepo().getState( "draft" )) );
         assertEquals(1, rules.size());
         AssetItem rule = (AssetItem) rules.get( 0 );
-        assertEquals("new content", rule.getRuleContent());
+        assertEquals("new content", rule.getContent());
         
         //get the previous one via state
         
@@ -211,7 +211,7 @@
         assertEquals(1, rules.size());
         AssetItem prior = (AssetItem) rules.get( 0 );
         
-        assertFalse("new content".equals( prior.getRuleContent() ));
+        assertFalse("new content".equals( prior.getContent() ));
         
     }
     
@@ -254,8 +254,8 @@
             PackageItem rulePackageItem1 = getRepo().createRulePackage("testAddRuleRuleItem","desc");
 
             
-            AssetItem ruleItem1 = rulePackageItem1.addRule("testAddRuleRuleItem", "test description");
-            ruleItem1.updateRuleContent( "test content" );
+            AssetItem ruleItem1 = rulePackageItem1.addAsset("testAddRuleRuleItem", "test description");
+            ruleItem1.updateContent( "test content" );
             ruleItem1.checkin( "updated the rule content" );
             
             Iterator rulesIt = rulePackageItem1.getRules();
@@ -265,7 +265,7 @@
             assertEquals("testAddRuleRuleItem", first.getName());
             
             //test that it is following the head revision                        
-            ruleItem1.updateRuleContent("new lhs");
+            ruleItem1.updateContent("new lhs");
             ruleItem1.checkin( "updated again" );
             rulesIt = rulePackageItem1.getRules();
             assertNotNull(rulesIt);
@@ -273,9 +273,9 @@
             List rules = iteratorToList( rulesIt );
             assertEquals(1, rules.size());
             assertEquals("testAddRuleRuleItem", ((AssetItem)rules.get(0)).getName());
-            assertEquals("new lhs", ((AssetItem)rules.get(0)).getRuleContent());
+            assertEquals("new lhs", ((AssetItem)rules.get(0)).getContent());
                         
-            AssetItem ruleItem2 = rulePackageItem1.addRule("testAddRuleRuleItem2", "test content");
+            AssetItem ruleItem2 = rulePackageItem1.addAsset("testAddRuleRuleItem2", "test content");
             
             rules = iteratorToList(rulePackageItem1.getRules());
             assertNotNull(rules);
@@ -375,8 +375,8 @@
     public void testGetRules() {
             PackageItem rulePackageItem1 = getRepo().createRulePackage("testGetRules", "desc");
                         
-            AssetItem ruleItem1 = rulePackageItem1.addRule("testGetRules", "desc" );
-            ruleItem1.updateRuleContent( "test lhs content" );
+            AssetItem ruleItem1 = rulePackageItem1.addAsset("testGetRules", "desc" );
+            ruleItem1.updateContent( "test lhs content" );
 
             
             List rules = iteratorToList(rulePackageItem1.getRules());
@@ -384,8 +384,8 @@
             assertEquals(1, rules.size());
             assertEquals("testGetRules", ((AssetItem)rules.get(0)).getName());
                                   
-            AssetItem ruleItem2 = rulePackageItem1.addRule("testGetRules2", "desc" );
-            ruleItem2.updateRuleContent( "test lhs content" );
+            AssetItem ruleItem2 = rulePackageItem1.addAsset("testGetRules2", "desc" );
+            ruleItem2.updateContent( "test lhs content" );
             
             rules = iteratorToList(rulePackageItem1.getRules());
             assertNotNull(rules);
@@ -403,8 +403,8 @@
     public void testToString() {
             PackageItem rulePackageItem1 = getRepo().createRulePackage("testToStringPackage", "desc");
             
-            AssetItem ruleItem1 = rulePackageItem1.addRule("testToStringPackage", "test lhs content" );
-            ruleItem1.updateRuleContent( "test lhs content" );
+            AssetItem ruleItem1 = rulePackageItem1.addAsset("testToStringPackage", "test lhs content" );
+            ruleItem1.updateContent( "test lhs content" );
             
             assertNotNull(rulePackageItem1.toString());                        
 
@@ -413,8 +413,8 @@
     public void testRemoveRule() {
             PackageItem rulePackageItem1 = getRepo().createRulePackage("testRemoveRule", "desc");
             
-            AssetItem ruleItem1 = rulePackageItem1.addRule("testRemoveRule", "test lhs content" );
-            ruleItem1.updateRuleContent( "test lhs content" ); 
+            AssetItem ruleItem1 = rulePackageItem1.addAsset("testRemoveRule", "test lhs content" );
+            ruleItem1.updateContent( "test lhs content" ); 
             
             
             
@@ -426,14 +426,14 @@
                                
             
             
-            ruleItem1.updateRuleContent("new lhs");
+            ruleItem1.updateContent("new lhs");
             List rules = iteratorToList(rulePackageItem1.getRules());
             assertNotNull(rules);
             assertEquals(1, rules.size());
             assertEquals("testRemoveRule", ((AssetItem)rules.get(0)).getName());
-            assertEquals("new lhs", ((AssetItem)rules.get(0)).getRuleContent());
+            assertEquals("new lhs", ((AssetItem)rules.get(0)).getContent());
                         
-            AssetItem ruleItem2 = rulePackageItem1.addRule("testRemoveRule2", "test lhs content");
+            AssetItem ruleItem2 = rulePackageItem1.addAsset("testRemoveRule2", "test lhs content");
             
             //remove the rule, make sure the other rule in the pacakge stays around
             rulePackageItem1.removeRule(ruleItem1.getName());

Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTestCase.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTestCase.java	2006-12-12 15:47:08 UTC (rev 8256)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTestCase.java	2006-12-12 15:58:29 UTC (rev 8257)
@@ -44,15 +44,15 @@
         PackageItem pack = repo.createRulePackage( "testAddVersionARule", "description" );
         repo.save();
         
-        AssetItem rule = pack.addRule( "my rule", "foobar" );
+        AssetItem rule = pack.addAsset( "my rule", "foobar" );
         assertEquals("my rule", rule.getName());
         
-        rule.updateRuleContent( "foo foo" );
+        rule.updateContent( "foo foo" );
         rule.checkin( "version0" );
         
-        pack.addRule( "other rule", "description" );
+        pack.addAsset( "other rule", "description" );
         
-        rule.updateRuleContent( "foo bar" );
+        rule.updateContent( "foo bar" );
         rule.checkin( "version1" );
         
         PackageItem pack2 =  repo.loadRulePackage( "testAddVersionARule" );
@@ -66,8 +66,8 @@
         
         AssetItem prev = (AssetItem) rule.getPrecedingVersion();
        
-        assertEquals("foo bar", rule.getRuleContent());
-        assertEquals("foo foo", prev.getRuleContent());
+        assertEquals("foo bar", rule.getContent());
+        assertEquals("foo foo", prev.getContent());
         
         
         
@@ -78,7 +78,7 @@
         RulesRepository repo = RepositorySession.getRepository();
         
         PackageItem rulePackageItem = repo.loadDefaultRulePackage();
-        AssetItem rule = rulePackageItem.addRule( "testLoadRuleByUUID", "this is a description");
+        AssetItem rule = rulePackageItem.addAsset( "testLoadRuleByUUID", "this is a description");
         
         repo.save();
                 
@@ -91,7 +91,7 @@
         
         String oldVersionNumber = loaded.getVersionNumber();
         
-        loaded.updateRuleContent( "xxx" );
+        loaded.updateContent( "xxx" );
         loaded.checkin( "woo" );
         
         
@@ -99,7 +99,7 @@
         
         AssetItem reload = repo.loadRuleByUUID( uuid );
         assertEquals("testLoadRuleByUUID", reload.getName());
-        assertEquals("xxx", reload.getRuleContent());
+        assertEquals("xxx", reload.getContent());
         System.out.println(reload.getVersionNumber());
         System.out.println(loaded.getVersionNumber());
         assertFalse(reload.getVersionNumber().equals( oldVersionNumber ));
@@ -122,7 +122,7 @@
             Calendar effectiveDate = Calendar.getInstance();
             Calendar expiredDate = Calendar.getInstance();
             expiredDate.setTimeInMillis(effectiveDate.getTimeInMillis() + (1000 * 60 * 60 * 24));
-            AssetItem ruleItem1 = rulesRepository.loadDefaultRulePackage().addRule("testAddRuleCalendarCalendar", "desc");
+            AssetItem ruleItem1 = rulesRepository.loadDefaultRulePackage().addAsset("testAddRuleCalendarCalendar", "desc");
             ruleItem1.updateDateEffective( effectiveDate );
             ruleItem1.updateDateExpired( expiredDate );
      
@@ -217,7 +217,7 @@
     public void testMoveRulePackage() throws Exception {
         RulesRepository repo = RepositorySession.getRepository();
         PackageItem pkg = repo.createRulePackage( "testMove", "description" );
-        AssetItem r = pkg.addRule( "testMove", "description" );
+        AssetItem r = pkg.addAsset( "testMove", "description" );
         r.checkin( "version0" );
         
         assertEquals("testMove", r.getPackageName());

Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/ScalabilityTest.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/ScalabilityTest.java	2006-12-12 15:47:08 UTC (rev 8256)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/ScalabilityTest.java	2006-12-12 15:58:29 UTC (rev 8257)
@@ -48,14 +48,14 @@
         
         start = System.currentTimeMillis();
         AssetItem item = (AssetItem) list.get( 0 );
-        item.updateRuleContent( "this is a description" );
+        item.updateContent( "this is a description" );
         item.checkin( "newer" );
         System.out.println("time to update and version: " + (System.currentTimeMillis() - start));
         
         start = System.currentTimeMillis();
         item = (AssetItem) list.get( 42 );
-        item.updateRuleContent( "this is a description" );
-        item.updateRuleContent( "wooooooooooooooooooooooooooooooooooot" );
+        item.updateContent( "this is a description" );
+        item.updateContent( "wooooooooooooooooooooooooooooooooooot" );
         item.checkin( "latest" );
         System.out.println("time to update and version: " + (System.currentTimeMillis() - start));        
         
@@ -128,7 +128,7 @@
             System.out.println("ADDING rule: " + ruleName);
                         
             
-            AssetItem item = repo.loadDefaultRulePackage().addRule( ruleName, "Foo(bar == " + i + ")panic(" + i + ");" );            
+            AssetItem item = repo.loadDefaultRulePackage().addAsset( ruleName, "Foo(bar == " + i + ")panic(" + i + ");" );            
             item.addCategory( cat );
             list.add( item );
             




More information about the jboss-svn-commits mailing list