With the new KnowledgeAgent API, you can not only connect to Guvnor
server remotely to store and retrieve rules, but also to add or update
rules. It also has basic authentication supported. Take a look at the
unit test:
http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-compiler...
Below is a very simple test case that connects to Guvnor to retrieve a
rule package, build a KnowledgeSession, then fire rules:
public void testBasicAuthentication() throws Exception {
String xml = "";
xml += "<change-set
xmlns='http://drools.org/drools-5.0/change-set'";
xml += "
xmlns:xs='http://www.w3.org/2001/XMLSchema-instance'";
xml += "
xs:schemaLocation='http://drools.org/drools-5.0/change-set
drools-change-set-5.0.xsd' >";
xml += " <add> ";
xml += " <resource
source='http://localhost:8081/drools-guvnor/org.drools.guvnor.Guvnor/package/mortgages/LATEST'
type='PKG' basicAuthentication='enabled' username='admin'
password='admin'/>";
xml += " </add> ";
xml += "</change-set>";
File fxml = fileManager.newFile("changeset.xml");
Writer output = new BufferedWriter(new FileWriter(fxml));
output.write(xml);
output.close();
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
ResourceChangeScannerConfiguration sconf = ResourceFactory
.getResourceChangeScannerService()
.newResourceChangeScannerConfiguration();
sconf.setProperty("drools.resource.scanner.interval", "2");
ResourceFactory.getResourceChangeScannerService().configure(sconf);
KnowledgeAgentConfiguration aconf = KnowledgeAgentFactory
.newKnowledgeAgentConfiguration();
aconf.setProperty("drools.agent.scanDirectories", "true");
aconf.setProperty("drools.agent.scanResources", "true");
aconf.setProperty("drools.agent.newInstance", "true");
KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent(
"test agent", kbase, aconf);
kagent.applyChangeSet(ResourceFactory.newUrlResource(fxml.toURI()
.toURL()));
StatefulKnowledgeSession ksession = kagent.getKnowledgeBase()
.newStatefulKnowledgeSession();
List<String> list = new ArrayList<String>();
ksession.setGlobal("list", list);
ksession.fireAllRules();
ksession.dispose();
assertEquals(2, list.size());
assertTrue(list.contains("rule1"));
assertTrue(list.contains("rule2"));
}
Hope this helps,
Jervis
Michael Rhoden wrote:
Yes and no. Guvnor uses a JCR repository (the default is
http://jackrabbit.apache.org/) which can not be accessed using
hibernate directly. We ran into this issue, and the only way to use
guvnor as of 6 months ago was to have a user go into guvnor and create
a DRL file by clicking a few buttons. Not a big deal, but it isn't
automated. You can then use that DRL as a resource in your
application. I know there was some working being done to be able to
pull out DRLs from Guvnor using xml calls, but don't know if that was
ever completed.
Michael Rhoden
----- Original Message -----
From: "bbarani" <bbarani(a)gmail.com>
To: rules-users(a)lists.jboss.org
Sent: Wednesday, May 19, 2010 5:12:57 PM
Subject: [rules-users] Drools with Guvnor
Hi,
I am very new to Drools and very very new to Guvnor.
I am in the process of creating a rule engine which will fetch the
data from
a source (I am using Hibernate framework to fetch the data) and
evaluate the
data using Drools rule engine. The rules supplied to the Drools rule
engine
are stored in a Rules table in a database.
Now my question is that can I use Guvnor to store the rules (instead of me
creating a rule data model) and use Guvnor to supply rules to my Drools
engine?
I am trying to find out the best possible way to create / manage a rule
database (which stores all the rules).
Thanks,
BB
--
View this message in context:
http://drools-java-rules-engine.46999.n3.nabble.com/Drools-with-Guvnor-tp...
Sent from the Drools - User mailing list archive at
Nabble.com.
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
------------------------------------------------------------------------
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users