[jboss-svn-commits] JBL Code SVN: r6280 - 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
Mon Sep 18 12:25:59 EDT 2006
Author: michael.neale at jboss.com
Date: 2006-09-18 12:25:54 -0400 (Mon, 18 Sep 2006)
New Revision: 6280
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/RulePackageItemTestCase.java
Log:
contribs from pablo and marcos for loading rule packages
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-09-18 16:20:06 UTC (rev 6279)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java 2006-09-18 16:25:54 UTC (rev 6280)
@@ -511,9 +511,53 @@
log.error("Caught Exception", e);
throw new RulesRepositoryException(e);
}
- }
+ }
+
+ /**
+ * Loads a RulePackage for the specified package name. Will throw
+ * an exception if the specified rule package does not exist.
+ * @param name the name of the package to load
+ * @return a RulePackageItem object
+ */
+ public RulePackageItem loadRulePackage(String name) throws RulesRepositoryException {
+ try {
+ Node folderNode = this.getAreaNode(RULE_PACKAGE_AREA);
+ Node rulePackageNode = folderNode.getNode(name);
+ return new RulePackageItem(this, rulePackageNode);
+ }
+ catch(Exception e) {
+ log.error("Unable to load a rule package. ", e);
+ if (e instanceof RuntimeException ) {
+ throw (RuntimeException) e;
+ } else {
+ throw new RulesRepositoryException("Unable to load a rule package. ", e);
+ }
+ }
+ }
+
/**
+ * Similar to above. Loads a RulePackage for the specified uuid.
+ * @param uuid the uuid of the package to load
+ * @return a RulePackageItem object
+ * @throws RulesRepositoryException
+ */
+ public RulePackageItem loadRulePackageByUUID(String uuid) throws RulesRepositoryException {
+ try {
+ Node rulePackageNode = this.session.getNodeByUUID(uuid);
+ return new RulePackageItem(this, rulePackageNode);
+ }
+ catch (Exception e) {
+ log.error("Unable to load a rule package by UUID. ", e);
+ if (e instanceof RuntimeException ) {
+ throw (RuntimeException) e;
+ } else {
+ throw new RulesRepositoryException("Unable to load a rule package. ", e);
+ }
+ }
+ }
+
+ /**
* Adds a rule package node in the repository. This node has a property called
* drools:rule_reference that is a multi-value reference property. It will hold an array of
* references to rule nodes that are subsequently added.
@@ -591,7 +635,6 @@
StringTokenizer tok = new StringTokenizer(tagName, "/");
while(tok.hasMoreTokens()) {
String currentTagName = tok.nextToken();
-
tagNode = folderNode.getNode( currentTagName ) ;
//MN was this: RulesRepository.addNodeIfNew(folderNode, currentTagName, CategoryItem.TAG_NODE_TYPE_NAME);
folderNode = tagNode;
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-09-18 16:20:06 UTC (rev 6279)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulePackageItemTestCase.java 2006-09-18 16:25:54 UTC (rev 6280)
@@ -4,6 +4,8 @@
import java.util.Iterator;
import java.util.List;
+import javax.jcr.UnsupportedRepositoryOperationException;
+
import org.drools.repository.*;
import junit.framework.TestCase;
@@ -57,6 +59,46 @@
return RepositorySession.getRepository();
}
+ public void testLoadRulePackageItem() {
+
+ RulePackageItem rulePackageItem = getRepo().createRulePackage("testLoadRuleRuleItem");
+
+ rulePackageItem = getRepo().loadRulePackage("testLoadRuleRuleItem");
+ assertNotNull(rulePackageItem);
+ assertEquals("testLoadRuleRuleItem", rulePackageItem.getName());
+
+ // try loading rule package that was not created
+ try {
+ rulePackageItem = getRepo().loadRulePackage("anotherRuleRuleItem");
+ fail("Exception not thrown loading rule package that was not created.");
+ } catch (RulesRepositoryException e) {
+ // that is OK!
+ assertNotNull(e.getMessage());
+ }
+ }
+
+ public void testLoadRulePackageItemByUUID() throws Exception {
+
+ RulePackageItem rulePackageItem = getRepo().createRulePackage("testLoadRuleRuleItemByUUID");
+
+ String uuid = null;
+ uuid = rulePackageItem.getNode().getUUID();
+
+
+ rulePackageItem = getRepo().loadRulePackageByUUID(uuid);
+ assertNotNull(rulePackageItem);
+ assertEquals("testLoadRuleRuleItemByUUID", rulePackageItem.getName());
+
+ // try loading rule package that was not created
+ try {
+ rulePackageItem = getRepo().loadRulePackageByUUID("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 testAddRuleRuleItem() {
RulePackageItem rulePackageItem1 = getRepo().createRulePackage("testAddRuleRuleItem");
More information about the jboss-svn-commits
mailing list