You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by lh...@apache.org on 2008/08/07 12:30:41 UTC

svn commit: r683577 - in /servicemix/components/engines/servicemix-drools/trunk/src/test: java/org/apache/servicemix/drools/DroolsComponentTest.java resources/chained.drl

Author: lhein
Date: Thu Aug  7 03:30:40 2008
New Revision: 683577

URL: http://svn.apache.org/viewvc?rev=683577&view=rev
Log:
- added test case for chained routing

Added:
    servicemix/components/engines/servicemix-drools/trunk/src/test/resources/chained.drl
Modified:
    servicemix/components/engines/servicemix-drools/trunk/src/test/java/org/apache/servicemix/drools/DroolsComponentTest.java

Modified: servicemix/components/engines/servicemix-drools/trunk/src/test/java/org/apache/servicemix/drools/DroolsComponentTest.java
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-drools/trunk/src/test/java/org/apache/servicemix/drools/DroolsComponentTest.java?rev=683577&r1=683576&r2=683577&view=diff
==============================================================================
--- servicemix/components/engines/servicemix-drools/trunk/src/test/java/org/apache/servicemix/drools/DroolsComponentTest.java (original)
+++ servicemix/components/engines/servicemix-drools/trunk/src/test/java/org/apache/servicemix/drools/DroolsComponentTest.java Thu Aug  7 03:30:40 2008
@@ -23,12 +23,9 @@
 import javax.jbi.messaging.InOut;
 import javax.xml.namespace.QName;
 
-import org.w3c.dom.Element;
-
-import junit.framework.TestCase;
-
 import org.apache.servicemix.client.DefaultServiceMixClient;
 import org.apache.servicemix.client.ServiceMixClient;
+import org.apache.servicemix.common.JbiConstants;
 import org.apache.servicemix.components.util.MockServiceComponent;
 import org.apache.servicemix.jbi.container.JBIContainer;
 import org.apache.servicemix.jbi.jaxp.SourceTransformer;
@@ -36,6 +33,10 @@
 import org.apache.servicemix.tck.ReceiverComponent;
 import org.springframework.core.io.ClassPathResource;
 
+import org.w3c.dom.Element;
+
+import junit.framework.TestCase;
+
 public class DroolsComponentTest extends TestCase {
 
     private JBIContainer jbi;
@@ -54,6 +55,38 @@
         jbi.shutDown();
     }
     
+    public void testChainedRoutingInOnly() throws Exception {
+        drools = new DroolsComponent();
+        
+        DroolsEndpoint endpoint = new DroolsEndpoint(drools.getServiceUnit(),
+                                                     new QName("smx", "drools"), "endpoint");
+        endpoint.setRuleBaseResource(new ClassPathResource("chained.drl"));
+        
+        drools.setEndpoints(new DroolsEndpoint[] {endpoint});
+        jbi.activateComponent(drools, "servicemix-drools");
+
+        ReceiverComponent target = new ReceiverComponent();
+        target.setService(new QName("smx", "target"));
+        target.setEndpoint("endpoint");
+        
+        jbi.activateComponent(target, "target");
+        
+        jbi.start();
+        
+        InOnly me = client.createInOnlyExchange();
+        me.setService(new QName("smx", "drools"));
+        me.setOperation(new QName("smx", "process"));
+        me.getInMessage().setContent(new StringSource("<payload />"));
+        me.setProperty(JbiConstants.CORRELATION_ID, "TEST");
+        if (client.sendSync(me, 10000)) {
+            assertEquals(ExchangeStatus.DONE, me.getStatus());
+        } else {
+            fail ("No response from drools in time...");
+        }
+        
+        Thread.sleep(50);
+    }
+    
     public void testRouteInOnly() throws Exception {
         drools = new DroolsComponent();
         DroolsEndpoint endpoint = new DroolsEndpoint(drools.getServiceUnit(),

Added: servicemix/components/engines/servicemix-drools/trunk/src/test/resources/chained.drl
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-drools/trunk/src/test/resources/chained.drl?rev=683577&view=auto
==============================================================================
--- servicemix/components/engines/servicemix-drools/trunk/src/test/resources/chained.drl (added)
+++ servicemix/components/engines/servicemix-drools/trunk/src/test/resources/chained.drl Thu Aug  7 03:30:40 2008
@@ -0,0 +1,30 @@
+package org.apache.servicemix.drools
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import org.apache.servicemix.drools.model.Exchange;
+
+global org.apache.servicemix.drools.model.JbiHelper jbi;
+
+rule UnknownOperation
+    agenda-group "init"
+    auto-focus true    
+    when
+        $me : Exchange( status == Exchange.ACTIVE, $in : in != null,
+                       operation != "{smx}process")
+    then
+        jbi.route("service:smx/target");
+end
+
+rule Input
+    agenda-group "input"
+    auto-focus true    
+    when
+        $me : Exchange( status == Exchange.ACTIVE, $in : in != null,
+                       operation == "{smx}process" )
+        eval ( true )
+    then
+        jbi.getLogger().debug("[Rule: Input]: Message routed to drools2...");
+        jbi.route("service:smx/drools");
+end