[jboss-svn-commits] JBL Code SVN: r6612 - in labs/jbossrules/trunk: drools-examples/src/main/java/org/drools/benchmark drools-repository/src/main/java/org/drools/repository drools-repository/src/main/resources/node_type_definitions drools-repository/src/test/java/org/drools/repository

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Oct 5 06:12:32 EDT 2006


Author: michael.neale at jboss.com
Date: 2006-10-05 06:12:18 -0400 (Thu, 05 Oct 2006)
New Revision: 6612

Added:
   labs/jbossrules/trunk/drools-repository/src/main/resources/node_type_definitions/versionable_asset_folder_node_type.cnd
Modified:
   labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/RuleSetLoadTest.java
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RepositoryConfigurator.java
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RuleItem.java
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulePackageItem.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/resources/node_type_definitions/rulepackage_node_type.cnd
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RuleItemTestCase.java
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulePackageItemTestCase.java
Log:
JBRULES-511 - baselines for package level assets

Modified: labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/RuleSetLoadTest.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/RuleSetLoadTest.java	2006-10-04 22:49:11 UTC (rev 6611)
+++ labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/benchmark/RuleSetLoadTest.java	2006-10-05 10:12:18 UTC (rev 6612)
@@ -40,6 +40,10 @@
         RuleSetLoadTest test = new RuleSetLoadTest();
         test.testOneThousandLoad();
         
+        test.testOneThousandLoad();
+        
+        test.testOneThousandLoad();
+        
         // generate the drl first to run this test
         //test.testFourThousandLoad();
     }
@@ -63,7 +67,7 @@
 
     public void testOneThousandLoad() {
         try {
-            String file = "1000_rules.drl";
+            String file = "500_rules.drl";
             long loadStart = System.currentTimeMillis();
             RuleBase ruleBase = readRule( file );
             long loadEnd = System.currentTimeMillis();

Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RepositoryConfigurator.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RepositoryConfigurator.java	2006-10-04 22:49:11 UTC (rev 6611)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RepositoryConfigurator.java	2006-10-05 10:12:18 UTC (rev 6612)
@@ -109,12 +109,15 @@
                 ws.getNamespaceRegistry().registerNamespace("drools", RulesRepository.DROOLS_URI);
                 
                 this.registerNodeTypesFromCndFile("/node_type_definitions/versionable_node_type.cnd", ws);
+                this.registerNodeTypesFromCndFile("/node_type_definitions/versionable_asset_folder_node_type.cnd", ws);
+                
                 this.registerNodeTypesFromCndFile("/node_type_definitions/dsl_node_type.cnd", ws);            
                 this.registerNodeTypesFromCndFile("/node_type_definitions/tag_node_type.cnd", ws);
                 this.registerNodeTypesFromCndFile("/node_type_definitions/state_node_type.cnd", ws);
                 this.registerNodeTypesFromCndFile("/node_type_definitions/rule_node_type.cnd", ws);
                 this.registerNodeTypesFromCndFile("/node_type_definitions/function_node_type.cnd", ws);
                 this.registerNodeTypesFromCndFile("/node_type_definitions/rulepackage_node_type.cnd", ws);
+             
             }
             
             // Setup the rule repository node

Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RuleItem.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RuleItem.java	2006-10-04 22:49:11 UTC (rev 6611)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RuleItem.java	2006-10-05 10:12:18 UTC (rev 6612)
@@ -8,6 +8,7 @@
 import javax.jcr.Node;
 import javax.jcr.PathNotFoundException;
 import javax.jcr.Property;
+import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 
 import org.apache.log4j.Logger;
@@ -74,7 +75,7 @@
         try {
             //make sure this node is a rule node       
             if(!(this.node.getPrimaryNodeType().getName().equals(RULE_NODE_TYPE_NAME) ||
-                 this.node.getPrimaryNodeType().getName().equals("nt:version"))) {
+                 isHistoricalVersion())) {
                 String message = this.node.getName() + " is not a node of type " + RULE_NODE_TYPE_NAME + " nor nt:version. It is a node of type: " + this.node.getPrimaryNodeType().getName();
                 log.error(message);
                 throw new RulesRepositoryException(message);
@@ -158,16 +159,12 @@
      * @throws RulesRepositoryException
      */
     public void updateDateEffective(Calendar newDateEffective) throws RulesRepositoryException {
-        checkout();
-        
+        checkIsUpdateable();
+        checkout();        
         try {                                    
             this.node.setProperty(DATE_EFFECTIVE_PROPERTY_NAME, newDateEffective);
-            
-            Calendar lastModified = Calendar.getInstance();
-            this.node.setProperty(LAST_MODIFIED_PROPERTY_NAME, lastModified);
-
         }
-        catch(Exception e) {
+        catch(RepositoryException e) {
             log.error("Caught Exception", e);
             throw new RulesRepositoryException(e);
         }
@@ -210,10 +207,6 @@
         
         try {                                    
             this.node.setProperty(DATE_EXPIRED_PROPERTY_NAME, newDateExpired);
-            
-            Calendar lastModified = Calendar.getInstance();
-            this.node.setProperty(LAST_MODIFIED_PROPERTY_NAME, lastModified);
-;
         }
         catch(Exception e) {
             log.error("Caught Exception", e);
@@ -247,25 +240,23 @@
         checkout();        
         try {                                    
             this.node.setProperty(RULE_CONTENT_PROPERTY_NAME, newRuleContent);
-            this.node.setProperty(LAST_MODIFIED_PROPERTY_NAME, Calendar.getInstance());
             return this;
         }
-        catch(Exception e) {
+        catch(RepositoryException e) {
             log.error("Caught Exception", e);
             throw new RulesRepositoryException(e);
         }
     }
     
-
+    /**
+     * The URI represents a location for 
+     */
     public void updateRuleContentURI(String newURI) throws RulesRepositoryException {
-        checkout();
-        
+        checkout();        
         try {                                    
             this.node.setProperty(RULE_CONTENT_URI_PROPERTY_NAME, newURI);
-            this.node.setProperty(LAST_MODIFIED_PROPERTY_NAME, Calendar.getInstance());
-
         }
-        catch(Exception e) {
+        catch(RepositoryException e) {
             log.error("Caught Exception", e);
             throw new RulesRepositoryException(e);
         }
@@ -372,13 +363,11 @@
                     }
                 }
                 else {
-                    //TODO: remove the tag if it isn't used by anyone else
                     return;
                 }
             }
             catch(PathNotFoundException e) {
                 //the property doesn't exist yet
-                //TODO: first remove the tag if it isn't used by anyone else
                 return;             
             }
             finally {   
@@ -434,20 +423,14 @@
      * @param stateName the name of the state to set the rule node to
      * @throws RulesRepositoryException 
      */
-    public void setState(String stateName) throws RulesRepositoryException {
+    public void updateState(String stateName) throws RulesRepositoryException {
         try {
-            //make sure this node is a rule node
-            if(this.node.getPrimaryNodeType().getName().equals("nt:version")) {
-                String message = "Error. States can only be set for the head version of a rule node";
-                log.error(message);
-                throw new RulesRepositoryException(message);
-            } 
             
             //now set the state property of the rule                              
             checkout();
             
             StateItem stateItem = this.rulesRepository.getState(stateName);
-            this.setState(stateItem);
+            this.updateState(stateItem);
         }
         catch(Exception e) {
             log.error("Caught exception", e);
@@ -462,7 +445,8 @@
      *                  property
      * @throws RulesRepositoryException 
      */
-    public void setState(StateItem stateItem) throws RulesRepositoryException {
+    public void updateState(StateItem stateItem) throws RulesRepositoryException {
+        checkIsUpdateable();
         try {
             //make sure this node is a rule node
             if(this.node.getPrimaryNodeType().getName().equals("nt:version")) {

Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulePackageItem.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulePackageItem.java	2006-10-04 22:49:11 UTC (rev 6611)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulePackageItem.java	2006-10-05 10:12:18 UTC (rev 6612)
@@ -13,6 +13,7 @@
 import javax.jcr.UnsupportedRepositoryOperationException;
 import javax.jcr.Value;
 import javax.jcr.ValueFactory;
+import javax.jcr.lock.LockException;
 
 import org.apache.log4j.Logger;
 
@@ -70,7 +71,8 @@
 
         try {
             //make sure this node is a rule package node       
-            if ( !(this.node.getPrimaryNodeType().getName().equals( RULE_PACKAGE_TYPE_NAME )) ) {
+            if ( !(this.node.getPrimaryNodeType().getName().equals( RULE_PACKAGE_TYPE_NAME ) ||
+                    isHistoricalVersion())  ) {
                 String message = this.node.getName() + " is not a node of type " + RULE_PACKAGE_TYPE_NAME + ". It is a node of type: " + this.node.getPrimaryNodeType().getName();
                 log.error( message );
                 throw new RulesRepositoryException( message );
@@ -81,6 +83,8 @@
         }
     }
 
+
+
     /**
      * This adds a rule to the current physical package (you can move it later).
      */
@@ -434,7 +438,8 @@
     /** Return an iterator for the rules in this package */
     public Iterator getRules() {
         try {
-            RuleItemIterator it = new RuleItemIterator( this.node.getNode( RULES_FOLDER_NAME ).getNodes(),
+            Node content = getVersionContentNode();
+            RuleItemIterator it = new RuleItemIterator( content.getNode( RULES_FOLDER_NAME ).getNodes(),
                                                         this.rulesRepository );
             return it;
         } catch ( PathNotFoundException e ) {
@@ -571,4 +576,27 @@
         }
         return result.iterator();
     }
+
+    /**
+     * This will create a new version of a package, effectively freezing the state.
+     * This means in the "head" version of the package, rules can be added
+     * removed, without effecting the baseline that was created.
+     */
+    public void createBaseline(String comment,
+                               StateItem state) {
+        Iterator rules = getRules();
+        while(rules.hasNext()) {
+            RuleItem rule = (RuleItem) rules.next();
+            rule.updateState( state );
+            rule.checkin( comment );
+        }
+        
+        checkin( comment );
+        try {
+            this.node.checkout();
+        } catch ( RepositoryException e ) {
+            throw new RulesRepositoryException("Unable to check out package node after creating a new baseline.", e);
+        }
+        
+    }
 }
\ No newline at end of file

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	2006-10-04 22:49:11 UTC (rev 6611)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java	2006-10-05 10:12:18 UTC (rev 6612)
@@ -572,8 +572,8 @@
             //create the node - see section 6.7.22.6 of the spec
             Node rulePackageNode = folderNode.addNode(name, RulePackageItem.RULE_PACKAGE_TYPE_NAME);
             
-            rulePackageNode.addNode( RulePackageItem.RULES_FOLDER_NAME, "nt:folder" );
-            rulePackageNode.addNode( RulePackageItem.FUNCTION_FOLDER_NAME, "nt:folder" );
+            rulePackageNode.addNode( RulePackageItem.RULES_FOLDER_NAME, "drools:versionableAssetFolder" );
+            rulePackageNode.addNode( RulePackageItem.FUNCTION_FOLDER_NAME, "drools:versionableAssetFolder" );
             
             
             rulePackageNode.setProperty(RulePackageItem.TITLE_PROPERTY_NAME, name);
@@ -585,8 +585,10 @@
             Calendar lastModified = Calendar.getInstance();
             rulePackageNode.setProperty(RulePackageItem.LAST_MODIFIED_PROPERTY_NAME, lastModified);
             
+            
             this.session.save();
-
+            
+            
             return new RulePackageItem(this, rulePackageNode);
         } catch (ItemExistsException e) {
             throw new RulesRepositoryException("A package name must be unique.", 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	2006-10-04 22:49:11 UTC (rev 6611)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/VersionableItem.java	2006-10-05 10:12:18 UTC (rev 6612)
@@ -61,6 +61,14 @@
     }
 
     /**
+     * This will return true if the current entity is actually a
+     * historical version (which means is effectively read only).
+     */
+    public boolean isHistoricalVersion() throws RepositoryException {
+        return this.node.getPrimaryNodeType().getName().equals("nt:version") || node.getPrimaryNodeType().getName().equals( "nt:frozenNode" );
+    }    
+    
+    /**
      * @return the predessor node of this node in the version history, or null if no predecessor version exists
      * @throws RulesRepositoryException
      */
@@ -333,6 +341,18 @@
 
         return contentNode;
     }
+    
+    /** 
+     * Need to get the name from the content node, not the version node
+     * if it is in fact a version ! 
+     */
+    public String getName() {
+        try {
+            return getVersionContentNode().getName();
+        } catch ( RepositoryException e) {
+            throw new RulesRepositoryException(e);
+        }
+    }
 
     /**
      * This will check out the node prior to editing.
@@ -364,13 +384,15 @@
     /** 
      * This will save the content (if it hasn't been already) and 
      * then check it in to create a new version.
+     * It will also set the last modified property.
      */
     public void checkin(String comment)  {
         try {
-        this.node.setProperty( VersionableItem.CHECKIN_COMMENT, comment);
-        this.node.getSession().save();        
-        this.node.checkin();
-        } catch (Exception e) {
+            this.node.setProperty( VersionableItem.LAST_MODIFIED_PROPERTY_NAME, Calendar.getInstance() );
+            this.node.setProperty( VersionableItem.CHECKIN_COMMENT, comment);
+            this.node.getSession().save();        
+            this.node.checkin();
+        } catch (RepositoryException e) {
             throw new RulesRepositoryException("Unable to checkin.", e);
         }
     }
@@ -378,13 +400,18 @@
     /**
      * This will check to see if the node is the "head" and
      * so can be updated (you can't update historical nodes ).
-     * @throws RepositoryException
+     * @throws RulesRepositoryException if it is not allowed
+     * (means a programming error !).
      */
-    protected void checkIsUpdateable() throws RepositoryException {
-        if(this.node.getPrimaryNodeType().getName().equals("nt:version")) {
-            String message = "Error. Tags can only be added to the head version of a rule node";
-            log.error(message);
-            throw new RulesRepositoryException(message);
+    protected void checkIsUpdateable() {
+        try {
+            if(this.node.getPrimaryNodeType().getName().equals("nt:version")) {
+                String message = "Error. Tags can only be added to the head version of a rule node";
+                log.error(message);
+                throw new RulesRepositoryException(message);
+            }
+        } catch ( RepositoryException e ) {
+            throw new RulesRepositoryException(e);
         }
     }    
 }

Modified: labs/jbossrules/trunk/drools-repository/src/main/resources/node_type_definitions/rulepackage_node_type.cnd
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/resources/node_type_definitions/rulepackage_node_type.cnd	2006-10-04 22:49:11 UTC (rev 6611)
+++ labs/jbossrules/trunk/drools-repository/src/main/resources/node_type_definitions/rulepackage_node_type.cnd	2006-10-05 10:12:18 UTC (rev 6612)
@@ -13,16 +13,15 @@
 // Supertypes
 > 'drools:versionableNodeType'
 
-// Multiple rules etc are children of one physical package definition
-// ergo this has many rule nodes under it
-//+ * (drools:versionableNodeType)
-// 	version
+// Multiple assets are children of one physical package definition
+// ergo this has many "versionable asset folders".
+// a specific named folder will exist for rules, functions etc.
+// these folders contain the actual assets
++ * (drools:versionableAssetFolder)
+  copy
 
-+ * (nt:folder)
-  version
 
-
-/* MN: retiring this structure  
+/* MN: retiring this structure  - may use it in future for shared rules
 - drools:ruleReference (reference)
   multiple
   copy

Added: labs/jbossrules/trunk/drools-repository/src/main/resources/node_type_definitions/versionable_asset_folder_node_type.cnd
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/resources/node_type_definitions/versionable_asset_folder_node_type.cnd	2006-10-04 22:49:11 UTC (rev 6611)
+++ labs/jbossrules/trunk/drools-repository/src/main/resources/node_type_definitions/versionable_asset_folder_node_type.cnd	2006-10-05 10:12:18 UTC (rev 6612)
@@ -0,0 +1,20 @@
+/*  The node type definition for the rule node type.  
+    See http://jackrabbit.apache.org/doc/nodetype/cnd.html for an explanation
+    
+    This is used for folders that hold versionable assets, such as rules.
+*/
+
+// The namespace declaration
+<drools = 'http://www.jboss.org/drools-repository/1.0'>
+<nt='http://www.jcp.org/jcr/nt/1.0'>
+<mix='http://www.jcp.org/jcr/mix/1.0'>
+
+// Node type name
+[drools:versionableAssetFolder]
+
+// Supertypes
+> 'nt:hierarchyNode','mix:versionable'
+
+// what it contains
++ * (drools:versionableNodeType)
+  copy
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-repository/src/main/resources/node_type_definitions/versionable_asset_folder_node_type.cnd
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: 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-10-04 22:49:11 UTC (rev 6611)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RuleItemTestCase.java	2006-10-05 10:12:18 UTC (rev 6612)
@@ -168,11 +168,11 @@
     public void testSetStateString() {
             RuleItem ruleItem1 = getDefaultPackage().addRule("testSetStateString", "test content");
            
-            ruleItem1.setState("TestState1");
+            ruleItem1.updateState("TestState1");
             assertNotNull(ruleItem1.getState());
             assertEquals("TestState1", ruleItem1.getState().getName());
             
-            ruleItem1.setState("TestState2");
+            ruleItem1.updateState("TestState2");
             assertNotNull(ruleItem1.getState());
             assertEquals("TestState2", ruleItem1.getState().getName());            
 
@@ -182,12 +182,12 @@
             RuleItem ruleItem1 = getDefaultPackage().addRule("foobar", "test description");
            
             StateItem stateItem1 = getRepo().getState("TestState1");
-            ruleItem1.setState(stateItem1);            
+            ruleItem1.updateState(stateItem1);            
             assertNotNull(ruleItem1.getState());
             assertEquals(ruleItem1.getState().getName(), "TestState1");
             
             StateItem stateItem2 = getRepo().getState("TestState2");
-            ruleItem1.setState(stateItem2);
+            ruleItem1.updateState(stateItem2);
             assertNotNull(ruleItem1.getState());
             assertEquals("TestState2", ruleItem1.getState().getName());            
 
@@ -199,7 +199,7 @@
             StateItem stateItem1 = ruleItem1.getState();
             assertNull(stateItem1);
             
-            ruleItem1.setState("TestState1");
+            ruleItem1.updateState("TestState1");
             assertNotNull(ruleItem1.getState());
             assertEquals("TestState1", ruleItem1.getState().getName());                        
     }

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-10-04 22:49:11 UTC (rev 6611)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulePackageItemTestCase.java	2006-10-05 10:12:18 UTC (rev 6612)
@@ -63,7 +63,76 @@
             fail("Caught unexpected exception: " + e);
         }
     }
+    
+    /**
+     * This tests creating a "baseline" of a RulePackage,
+     * basically updating all the resources, and checking it in as a version.
+     * This is showing off "multi dimensional versioning".
+     */
+    public void testBaselinePackage() throws Exception {
+        RulesRepository repo = getRepo();
+        
+        RulePackageItem pack = repo.createRulePackage( "testBaselinePackage", "for testing baselines" );
+        
+        RuleItem rule1 = pack.addRule( "rule 1", "yeah" );
+        RuleItem rule2 = pack.addRule( "rule 2", "foobar" );
+        
+        StateItem state = repo.getState( "deployed" );
+        
+        repo.save();
+        
+        assertNull(pack.getPrecedingVersion());
+        
+        //the first version, frozen with 2 rules
+        pack.createBaseline("commit comment", state);
+        
+        //check head
+        pack = repo.loadRulePackage( "testBaselinePackage" );
+        assertEquals(2, iteratorToList(pack.getRules()).size());
+        
+        //now remove a rule from head
+        pack.removeRule( "rule 1" );
+        repo.save();
+        assertEquals(1, iteratorToList( pack.getRules() ).size());
+        
+        pack.createBaseline( "another", state );
+        
+        RulePackageItem prev = (RulePackageItem) pack.getPrecedingVersion();
+        assertEquals(2, iteratorToList( prev.getRules() ).size());
+        
+    }
 
+    /** Continues to show how multi dimensional versioning works */
+    public void testPackageBaselineWithRuleChanges() throws Exception {
+        String packName = StackUtil.getCurrentMethodName();
+        RulePackageItem pack = getRepo().createRulePackage( packName, "yeah" );
+        
+        RuleItem rule = pack.addRule( "foobar", "waah" );        
+        rule.updateRuleContent( "this is something" );        
+        rule.checkin( "something" );
+        
+        StateItem state = getRepo().getState( "something" );
+        
+        pack.createBaseline( "another one", state );
+        
+        pack = getRepo().loadRulePackage( packName );
+        
+        rule = (RuleItem) pack.getRules().next();
+        rule.updateRuleContent( "blah" );
+        rule.checkin( "woot" );
+        
+        pack.createBaseline( "yeah", state );
+        
+        pack = getRepo().loadRulePackage( packName );
+        rule = (RuleItem) pack.getRules().next();
+        assertEquals("blah", rule.getRuleContent());
+        
+        RulePackageItem prev = (RulePackageItem) pack.getPrecedingVersion();
+        rule = (RuleItem) prev.getRules().next();
+        assertEquals("this is something", rule.getRuleContent());
+        
+    }
+
     private RulesRepository getRepo() {
         return RepositorySession.getRepository();
     }
@@ -106,7 +175,7 @@
         
         StateItem state = getRepo().getState( "foobar" );
         
-        rule1.setState( "foobar" );
+        rule1.updateState( "foobar" );
         rule1.checkin( "yeah" );
         
         pack = getRepo().loadRulePackage( "package extractor" );
@@ -126,7 +195,7 @@
         
         //now do an update, and pull it out via state
         rule1.updateRuleContent( "new content" );
-        rule1.setState( "draft" );
+        rule1.updateState( "draft" );
         rule1.checkin( "latest" );
         
         rules = iteratorToList( pack.getRules(getRepo().getState( "draft" )) );




More information about the jboss-svn-commits mailing list