[jboss-svn-commits] JBL Code SVN: r19903 - in labs/jbossrules/trunk/drools-compiler/src/test: java/org/drools/bpel/instance and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu May 8 08:06:02 EDT 2008


Author: KrisVerlaenen
Date: 2008-05-08 08:06:02 -0400 (Thu, 08 May 2008)
New Revision: 19903

Added:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/WorkingMemoryLoggerTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/empty.drl
Modified:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/bpel/core/BPELReply.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/bpel/instance/BPELExceptionHandlerInstance.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/bpel/instance/BPELExceptionScopeInstance.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/bpel/test/BPELTest.java
Log:
JBRULES-1549: Workflow Context
 - swimlanes and exception scope as context
JBRULES-1550: Workflow timer
 - timer node
JBRULES-1465: RuleFlow work items should allow plugging in custom editors
 - Work items palette customizable by user

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/bpel/core/BPELReply.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/bpel/core/BPELReply.java	2008-05-08 11:18:27 UTC (rev 19902)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/bpel/core/BPELReply.java	2008-05-08 12:06:02 UTC (rev 19903)
@@ -13,7 +13,7 @@
     private static final long serialVersionUID = 400L;
     
     private static final String PARTNER_LINK = "PartnerLink";
-    private static final String PORT_TYPE = "Porttype";
+    private static final String PORT_TYPE = "PortType";
     private static final String OPERATION = "Operation";
     private static final String INPUT = "Message";
     private static final String FAULT_NAME = "FaultName";

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/bpel/instance/BPELExceptionHandlerInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/bpel/instance/BPELExceptionHandlerInstance.java	2008-05-08 11:18:27 UTC (rev 19902)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/bpel/instance/BPELExceptionHandlerInstance.java	2008-05-08 12:06:02 UTC (rev 19903)
@@ -1,6 +1,7 @@
 package org.drools.bpel.instance;
 
 import org.drools.bpel.core.BPELFaultHandler;
+import org.drools.process.core.context.exception.ExceptionHandler;
 import org.drools.process.core.context.variable.VariableScope;
 import org.drools.process.instance.context.exception.ExceptionHandlerInstance;
 import org.drools.process.instance.context.variable.VariableScopeInstance;
@@ -17,8 +18,8 @@
         return faultHandler;
     }
 
-    public void setFaultHandler(BPELFaultHandler faultHandler) {
-        this.faultHandler = faultHandler;
+    public void setExceptionHandler(ExceptionHandler handler) {
+        this.faultHandler = (BPELFaultHandler) handler;
     }
 
     public NodeInstanceContainer getNodeInstanceContainer() {

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/bpel/instance/BPELExceptionScopeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/bpel/instance/BPELExceptionScopeInstance.java	2008-05-08 11:18:27 UTC (rev 19902)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/bpel/instance/BPELExceptionScopeInstance.java	2008-05-08 12:06:02 UTC (rev 19903)
@@ -2,7 +2,6 @@
 
 import org.drools.bpel.core.BPELFaultHandler;
 import org.drools.process.core.context.exception.ExceptionHandler;
-import org.drools.process.instance.context.exception.ExceptionHandlerInstance;
 import org.drools.process.instance.context.exception.ExceptionScopeInstance;
 import org.drools.workflow.instance.NodeInstanceContainer;
 import org.drools.workflow.instance.context.WorkflowContextInstance;
@@ -13,13 +12,6 @@
     
     private NodeInstanceContainer nodeInstanceContainer;
 
-    protected ExceptionHandlerInstance getExceptionHandlerInstance(ExceptionHandler exceptionHandler) {
-        BPELExceptionHandlerInstance handlerInstance = new BPELExceptionHandlerInstance();
-        handlerInstance.setFaultHandler((BPELFaultHandler) exceptionHandler);
-        handlerInstance.setNodeInstanceContainer(getNodeInstanceContainer());
-        return handlerInstance;
-    }
-
     public NodeInstanceContainer getNodeInstanceContainer() {
         return nodeInstanceContainer;
     }
@@ -28,4 +20,16 @@
         this.nodeInstanceContainer = nodeInstanceContainer;
     }
 
+	public void handleException(ExceptionHandler handler, String exception, Object params) {
+		if (handler instanceof BPELFaultHandler) {
+			BPELExceptionHandlerInstance handlerInstance = new BPELExceptionHandlerInstance();
+	        handlerInstance.setExceptionHandler(handler);
+	        handlerInstance.setNodeInstanceContainer(nodeInstanceContainer);
+			handlerInstance.handleException(exception, params);
+		} else {
+			throw new IllegalArgumentException(
+				"A BPEL Exception scope can only handle BPELFaultHandlers: " + handler);
+		}
+	}
+
 }

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/bpel/test/BPELTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/bpel/test/BPELTest.java	2008-05-08 11:18:27 UTC (rev 19902)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/bpel/test/BPELTest.java	2008-05-08 12:06:02 UTC (rev 19903)
@@ -44,6 +44,7 @@
         process.setId("1");
         process.setVersion("1");
         process.setPackageName("org.drools.bpel.test");
+    	int nodeId = 0;
         
         // variables
         VariableScope variableScope = process.getVariableScope();
@@ -80,6 +81,7 @@
         faultHandler.setFaultName("cannotCompleteOrder");
         faultHandler.setFaultVariable("POFault");
         BPELReply reply = new BPELReply();
+        reply.setId(++nodeId);
         reply.setPartnerLink("purchasing");
         reply.setPortType("lns:purchaseOrderPT");
         reply.setOperation("sendPurchaseOrder");
@@ -91,11 +93,13 @@
         
         // sequence
         BPELSequence sequence = new BPELSequence();
+        sequence.setId(++nodeId);
         sequence.setName("sequence");
         List<BPELActivity> sequenceActivities = new ArrayList<BPELActivity>();
         
         // Receive purchase order
         BPELReceive receive = new BPELReceive();
+        receive.setId(++nodeId);
         receive.setName("Receive Purchase Order");
         receive.setPartnerLink("purchasing");
         receive.setPortType("lns:purchaseOrderPT");
@@ -106,23 +110,27 @@
         
         // flow
         BPELFlow flow = new BPELFlow();
+        flow.setId(++nodeId);
         flow.setName("flow");
         flow.setLinks(new String[] { "ship-to-invoice", "ship-to-scheduling" });
         List<BPELActivity> flowActivities = new ArrayList<BPELActivity>();
         
             /********** sequence1 **********/
             BPELSequence sequence1 = new BPELSequence();
+            sequence1.setId(++nodeId);
             sequence1.setName("sequence1");
             List<BPELActivity> sequence1Activities = new ArrayList<BPELActivity>();
         
             // assign1
             BPELAssign assign1 = new BPELAssign();
+            assign1.setId(++nodeId);
             // $shippingRequest.customerInfo <- $PO.customerInfo
             assign1.setAction("");
             sequence1Activities.add(assign1);
             
             // invoke1
             BPELInvoke invoke1 = new BPELInvoke();
+            invoke1.setId(++nodeId);
             invoke1.setName("Decide On Shipper");
             invoke1.setPartnerLink("shipping");
             invoke1.setPortType("lns:shippingPT");
@@ -134,6 +142,7 @@
         
             // receive1
             BPELReceive receive1 = new BPELReceive();
+            receive1.setId(++nodeId);
             receive1.setName("Arrange Logistics");
             receive1.setPartnerLink("shipping");
             receive1.setPortType("lns:shippingCallbackPT");
@@ -148,11 +157,13 @@
             
             /********** sequence2 **********/
             BPELSequence sequence2 = new BPELSequence();
+            sequence2.setId(++nodeId);
             sequence2.setName("sequence2");
             List<BPELActivity> sequence2Activities = new ArrayList<BPELActivity>();
         
             // invoke2a
             BPELInvoke invoke2a = new BPELInvoke();
+            invoke2a.setId(++nodeId);
             invoke2a.setName("Initial Price Calculation");
             invoke2a.setPartnerLink("invoicing");
             invoke2a.setPortType("lns:computePricePT");
@@ -162,6 +173,7 @@
             
             // invoke2b
             BPELInvoke invoke2b = new BPELInvoke();
+            invoke2b.setId(++nodeId);
             invoke2b.setName("Complete Price Calculation");
             invoke2b.setPartnerLink("invoicing");
             invoke2b.setPortType("lns:computePricePT");
@@ -172,6 +184,7 @@
         
             // receive2
             BPELReceive receive2 = new BPELReceive();
+            receive2.setId(++nodeId);
             receive2.setName("Receive Invoice");
             receive2.setPartnerLink("invoicing");
             receive2.setPortType("lns:invoiceCallbackPT");
@@ -185,11 +198,13 @@
             
             /********** sequence3 **********/
             BPELSequence sequence3 = new BPELSequence();
+            sequence3.setId(++nodeId);
             sequence3.setName("sequence3");
             List<BPELActivity> sequence3Activities = new ArrayList<BPELActivity>();
         
             // invoke3a
             BPELInvoke invoke3a = new BPELInvoke();
+            invoke3a.setId(++nodeId);
             invoke3a.setName("Initiate Production Scheduling");
             invoke3a.setPartnerLink("scheduling");
             invoke3a.setPortType("lns:schedulingPT");
@@ -199,6 +214,7 @@
             
             // invoke2b
             BPELInvoke invoke3b = new BPELInvoke();
+            invoke3b.setId(++nodeId);
             invoke3b.setName("Complete Production Scheduling");
             invoke3b.setPartnerLink("scheduling");
             invoke3b.setPortType("lns:schedulingPT");
@@ -215,6 +231,7 @@
         
         // reply
         reply = new BPELReply();
+        reply.setId(++nodeId);
         reply.setName("Invoice Processing");
         reply.setPartnerLink("purchasing");
         reply.setPortType("lns:purchaseOrderPT");
@@ -368,6 +385,8 @@
             System.out.println("Web service invoked "
                 + workItem.getParameter("PartnerLink") + " "
                 + workItem.getParameter("PortType") + " "
+                + (workItem.getParameter("FaultName") == null ? ""
+                		: "fault=" + workItem.getParameter("FaultName"))
                 + workItem.getParameter("Operation") + ", message = "
                 + workItem.getParameter("Message"));
         }
@@ -376,6 +395,8 @@
             System.out.println("Web service invocation aborted "
                 + workItem.getParameter("PartnerLink") + " "
                 + workItem.getParameter("PortType") + " "
+                + (workItem.getParameter("FaultName") == null ? ""
+            		: workItem.getParameter("FaultName"))
                 + workItem.getParameter("Operation") + ", message = "
                 + workItem.getParameter("Message"));
         }

Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/WorkingMemoryLoggerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/WorkingMemoryLoggerTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/WorkingMemoryLoggerTest.java	2008-05-08 12:06:02 UTC (rev 19903)
@@ -0,0 +1,34 @@
+package org.drools.integrationtests;
+
+import java.io.InputStreamReader;
+import java.io.Reader;
+
+import junit.framework.TestCase;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.StatefulSession;
+import org.drools.audit.WorkingMemoryFileLogger;
+import org.drools.compiler.PackageBuilder;
+
+public class WorkingMemoryLoggerTest extends TestCase {
+	
+	private static final Reader DRL = new InputStreamReader(
+			WorkingMemoryLoggerTest.class.getResourceAsStream("empty.drl"));
+
+	private static final String LOG = "session";
+	public void testOutOfMemory() throws Exception {
+		PackageBuilder builder = new PackageBuilder();
+		builder.addPackageFromDrl(DRL);
+		RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+		ruleBase.addPackage(builder.getPackage());
+		for (int i = 0; i < 10000; i++) {
+			System.out.println(i);
+			StatefulSession session = ruleBase.newStatefulSession();
+			WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger(session);
+			session.fireAllRules();
+			session.dispose();
+		}
+	}
+
+}

Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/empty.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/empty.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/empty.drl	2008-05-08 12:06:02 UTC (rev 19903)
@@ -0,0 +1,6 @@
+package com.sample
+
+rule "EmptyRule" 
+	when 
+	then 
+end 
\ No newline at end of file




More information about the jboss-svn-commits mailing list