You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2007/06/28 09:56:24 UTC
svn commit: r551490 - in
/incubator/servicemix/trunk/deployables/serviceengines/servicemix-drools/src:
main/java/org/apache/servicemix/drools/DroolsEndpoint.java
test/java/org/apache/servicemix/drools/DroolsComponentTest.java
test/resources/fibonacci.drl
Author: gnodet
Date: Thu Jun 28 00:56:23 2007
New Revision: 551490
URL: http://svn.apache.org/viewvc?view=rev&rev=551490
Log:
SM-985: Allow additional beans to be injected in the rules memory from the xbean.xml
Modified:
incubator/servicemix/trunk/deployables/serviceengines/servicemix-drools/src/main/java/org/apache/servicemix/drools/DroolsEndpoint.java
incubator/servicemix/trunk/deployables/serviceengines/servicemix-drools/src/test/java/org/apache/servicemix/drools/DroolsComponentTest.java
incubator/servicemix/trunk/deployables/serviceengines/servicemix-drools/src/test/resources/fibonacci.drl
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-drools/src/main/java/org/apache/servicemix/drools/DroolsEndpoint.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-drools/src/main/java/org/apache/servicemix/drools/DroolsEndpoint.java?view=diff&rev=551490&r1=551489&r2=551490
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-drools/src/main/java/org/apache/servicemix/drools/DroolsEndpoint.java (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-drools/src/main/java/org/apache/servicemix/drools/DroolsEndpoint.java Thu Jun 28 00:56:23 2007
@@ -19,6 +19,7 @@
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
+import java.util.Map;
import javax.jbi.JBIException;
import javax.jbi.management.DeploymentException;
@@ -48,6 +49,7 @@
private Resource ruleBaseResource;
private URL ruleBaseURL;
private NamespaceContext namespaceContext;
+ private Map<String, Object> globals;
public DroolsEndpoint() {
super();
@@ -117,6 +119,20 @@
this.namespaceContext = namespaceContext;
}
+ /**
+ * @return the variables
+ */
+ public Map<String, Object> getGlobals() {
+ return globals;
+ }
+
+ /**
+ * @param variables the variables to set
+ */
+ public void setGlobals(Map<String, Object> variables) {
+ this.globals = variables;
+ }
+
public void validate() throws DeploymentException {
super.validate();
if (ruleBase == null && ruleBaseResource == null && ruleBaseURL == null) {
@@ -172,5 +188,10 @@
protected void populateWorkingMemory(WorkingMemory memory, MessageExchange exchange) throws Exception {
memory.setGlobal("jbi", new JbiHelper(this, exchange, memory));
+ if (globals != null) {
+ for (Map.Entry<String, Object> e : globals.entrySet()) {
+ memory.setGlobal(e.getKey(), e.getValue());
+ }
+ }
}
}
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-drools/src/test/java/org/apache/servicemix/drools/DroolsComponentTest.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-drools/src/test/java/org/apache/servicemix/drools/DroolsComponentTest.java?view=diff&rev=551490&r1=551489&r2=551490
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-drools/src/test/java/org/apache/servicemix/drools/DroolsComponentTest.java (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-drools/src/test/java/org/apache/servicemix/drools/DroolsComponentTest.java Thu Jun 28 00:56:23 2007
@@ -16,6 +16,8 @@
*/
package org.apache.servicemix.drools;
+import java.util.HashMap;
+
import javax.jbi.messaging.ExchangeStatus;
import javax.jbi.messaging.InOnly;
import javax.jbi.messaging.InOut;
@@ -170,6 +172,8 @@
DroolsEndpoint endpoint = new DroolsEndpoint(drools.getServiceUnit(),
new QName("drools"), "endpoint");
endpoint.setRuleBaseResource(new ClassPathResource("fibonacci.drl"));
+ endpoint.setGlobals(new HashMap<String, Object>());
+ endpoint.getGlobals().put("max", 100);
drools.setEndpoints(new DroolsEndpoint[] {endpoint });
jbi.activateComponent(drools, "servicemix-drools");
@@ -183,6 +187,14 @@
Element e = new SourceTransformer().toDOMElement(me.getOutMessage());
assertEquals("result", e.getLocalName());
assertEquals("12586269025", e.getTextContent());
+ client.done(me);
+
+ me = client.createInOutExchange();
+ me.setService(new QName("drools"));
+ me.getInMessage().setContent(new StringSource("<fibonacci>150</fibonacci>"));
+ me.getInMessage().setProperty("prop", Boolean.TRUE);
+ client.sendSync(me);
+ assertNotNull(me.getFault());
client.done(me);
Thread.sleep(50);
Modified: incubator/servicemix/trunk/deployables/serviceengines/servicemix-drools/src/test/resources/fibonacci.drl
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/serviceengines/servicemix-drools/src/test/resources/fibonacci.drl?view=diff&rev=551490&r1=551489&r2=551490
==============================================================================
--- incubator/servicemix/trunk/deployables/serviceengines/servicemix-drools/src/test/resources/fibonacci.drl (original)
+++ incubator/servicemix/trunk/deployables/serviceengines/servicemix-drools/src/test/resources/fibonacci.drl Thu Jun 28 00:56:23 2007
@@ -23,6 +23,7 @@
import org.apache.servicemix.drools.fibonacci.Request;
global org.apache.servicemix.drools.model.JbiHelper jbi;
+global java.lang.Integer max;
rule Init
when
@@ -32,8 +33,13 @@
String t = $me.getIn().getContent().getTextContent();
int v = Integer.parseInt( t );
jbi.getLogger().debug("request value: " + v);
- assert( new Request( v ) );
- assert( new Fibonacci( v ) );
+ if (v > max.intValue()) {
+ jbi.getLogger().debug("Value too high");
+ jbi.fault( "<error/>" );
+ } else {
+ assert( new Request( v ) );
+ assert( new Fibonacci( v ) );
+ }
end
rule Answer