[jboss-svn-commits] JBL Code SVN: r7268 - 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
Wed Nov 1 07:01:22 EST 2006


Author: michael.neale at jboss.com
Date: 2006-11-01 07:01:16 -0500 (Wed, 01 Nov 2006)
New Revision: 7268

Modified:
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTestCase.java
Log:
Added code for loading rules by UUID

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-11-01 11:57:39 UTC (rev 7267)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java	2006-11-01 12:01:16 UTC (rev 7268)
@@ -543,13 +543,6 @@
         
     }
     
-//    /**
-//     * This will add a rule to the default package.
-//     * Normally you should load the specific package you want to store the rule in.
-//     */
-//    public RuleItem addRule(String name, String description) {
-//        return loadDefaultRulePackage().addRule( name, description );
-//    }
     
     /**
      * Similar to above. Loads a RulePackage for the specified uuid. 
@@ -571,6 +564,24 @@
             }
         }
     }    
+    
+    
+    /**
+     * Loads a rule by its UUID (generally the fastest way to load something).
+     */
+    public RuleItem loadRuleByUUID(String uuid) {
+        try {
+            Node rulePackageNode = this.session.getNodeByUUID(uuid);
+            return new RuleItem(this, rulePackageNode);
+        }
+        catch (RepositoryException e) {
+            log.error("Unable to load a rule asset by UUID.", e);
+            throw new RulesRepositoryException(e);
+        }
+        
+    }    
+    
+    
 
     /**
      * Adds a rule package node in the repository. This node has a property called 
@@ -747,4 +758,8 @@
 
 
 
+
+
+
+
 }
\ No newline at end of file

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-11-01 11:57:39 UTC (rev 7267)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTestCase.java	2006-11-01 12:01:16 UTC (rev 7268)
@@ -68,6 +68,32 @@
         
     }
 
+    
+    public void testLoadRuleByUUID() throws Exception {
+        RulesRepository repo = RepositorySession.getRepository();
+        
+        RulePackageItem rulePackageItem = repo.loadDefaultRulePackage();
+        RuleItem rule = rulePackageItem.addRule( "testLoadRuleByUUID", "this is a description");
+        
+        repo.save();
+                
+        String uuid = rule.getNode().getUUID();
+
+        RuleItem loaded = repo.loadRuleByUUID(uuid);
+        assertNotNull(loaded);
+        assertEquals("testLoadRuleByUUID", loaded.getName());
+        assertEquals( "this is a description", loaded.getDescription());
+        
+        // try loading rule package that was not created 
+        try {
+            repo.loadRuleByUUID("01010101-0101-0101-0101-010101010101");
+            fail("Exception not thrown loading rule package that was not created.");
+        } catch (RulesRepositoryException e) {
+            // that is OK!
+            assertNotNull(e.getMessage());
+        }        
+    }
+    
     public void testAddRuleCalendarWithDates() {
         RulesRepository rulesRepository = RepositorySession.getRepository();
 




More information about the jboss-svn-commits mailing list