[jboss-svn-commits] JBL Code SVN: r24649 - in labs/jbossrules/trunk: drools-compiler/src/main/java/org/drools/xml/processes and 22 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Jan 12 09:11:28 EST 2009
Author: KrisVerlaenen
Date: 2009-01-12 09:11:27 -0500 (Mon, 12 Jan 2009)
New Revision: 24649
Added:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/StateNodeHandler.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ProcessStateTest.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/StateNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/StateNodeInstance.java
labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse.task/src/main/java/org/drools/eclipse/task/views/TimeoutException.java
labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/NodeInstanceLog.java
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ProcessSemanticModule.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ConnectionHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaRule.mvel
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/event/RuleFlowNodeLogEvent.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/Command.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/CommandService.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/CompleteWorkItemCommand.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetProcessInstanceCommand.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/InsertObjectCommand.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/SignalEventCommand.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/StartProcessCommand.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/AsynchronousCommandService.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/DefaultCommandService.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/StatefulSessionCommandService.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/NodeInstanceFactoryRegistry.java
labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse.task/src/main/java/org/drools/eclipse/task/views/AbstractBlockingResponseHandler.java
labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse.task/src/main/java/org/drools/eclipse/task/views/BlockingTaskOperationResponseHandler.java
labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse.task/src/main/java/org/drools/eclipse/task/views/BlockingTaskSummaryResponseHandler.java
labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse.task/src/main/java/org/drools/eclipse/task/views/TaskView.java
labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/debug/AuditView.java
labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/core/HumanTaskNodeWrapper.java
labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/core/RuleFlowWrapperBuilder.java
labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/RuleFlowModelEditor.java
labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/ProcessInstanceDbLog.java
labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/WorkingMemoryDbLogger.java
labs/jbossrules/trunk/drools-process/drools-bam/src/main/resources/AuditLog.hbm.xml
labs/jbossrules/trunk/drools-process/drools-bam/src/main/resources/hibernate.cfg.xml
labs/jbossrules/trunk/drools-process/drools-bam/src/test/java/org/drools/process/audit/WorkingMemoryDbLoggerTest.java
labs/jbossrules/trunk/drools-process/drools-bam/src/test/resources/ruleflow2.rf
labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/instance/OSWorkflowProcessInstance.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/resources/META-INF/orm.xml
labs/jbossrules/trunk/drools-repository/.classpath
labs/jbossrules/trunk/drools-repository/.project
labs/jbossrules/trunk/drools-templates/.classpath
labs/jbossrules/trunk/drools-templates/.project
Log:
JBRULES-1913: Extend history log
- added node instance information to db
Other minor fixes
- added simple state node
- minor fixes in IDE
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ProcessSemanticModule.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ProcessSemanticModule.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/ProcessSemanticModule.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -24,6 +24,7 @@
import org.drools.xml.processes.RuleSetNodeHandler;
import org.drools.xml.processes.SplitNodeHandler;
import org.drools.xml.processes.StartNodeHandler;
+import org.drools.xml.processes.StateNodeHandler;
import org.drools.xml.processes.SubProcessNodeHandler;
import org.drools.xml.processes.SwimlaneHandler;
import org.drools.xml.processes.TimerHandler;
@@ -107,5 +108,7 @@
new TimerHandler() );
addHandler( "trigger",
new TriggerHandler() );
+ addHandler( "state",
+ new StateNodeHandler() );
}
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ConnectionHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ConnectionHandler.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ConnectionHandler.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -6,75 +6,71 @@
import org.drools.workflow.core.Connection;
import org.drools.workflow.core.NodeContainer;
import org.drools.workflow.core.impl.ConnectionImpl;
+import org.drools.workflow.core.impl.NodeImpl;
import org.drools.xml.BaseAbstractHandler;
import org.drools.xml.ExtensibleXmlParser;
import org.drools.xml.Handler;
-import org.w3c.dom.Element;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
-public class ConnectionHandler extends BaseAbstractHandler
- implements
- Handler {
- public ConnectionHandler() {
- if ( (this.validParents == null) && (this.validPeers == null) ) {
- this.validParents = new HashSet();
- this.validParents.add( NodeContainer.class );
+public class ConnectionHandler extends BaseAbstractHandler implements Handler {
- this.validPeers = new HashSet();
- this.validPeers.add( null );
- this.validPeers.add( Connection.class );
+ public ConnectionHandler() {
+ if ((this.validParents == null) && (this.validPeers == null)) {
+ this.validParents = new HashSet<Class<?>>();
+ this.validParents.add(NodeContainer.class);
+ this.validPeers = new HashSet<Class<?>>();
+ this.validPeers.add(null);
+ this.validPeers.add(Connection.class);
+ this.allowNesting = false;
+ }
+ }
- this.allowNesting = false;
- }
- }
-
+ public Object start(final String uri, final String localName,
+ final Attributes attrs, final ExtensibleXmlParser parser)
+ throws SAXException {
+ parser.startElementBuilder(localName, attrs);
-
- public Object start(final String uri,
- final String localName,
- final Attributes attrs,
- final ExtensibleXmlParser parser) throws SAXException {
- parser.startElementBuilder( localName,
- attrs );
-
- String fromId = attrs.getValue( "from" );
- emptyAttributeCheck( localName, "from", fromId, parser );
- String toId = attrs.getValue( "to" );
- emptyAttributeCheck( localName, "to", toId, parser );
- String bendpoints = attrs.getValue( "bendpoints" );
-
- NodeContainer nodeContainer = (NodeContainer) parser.getParent();
- Node fromNode = nodeContainer.getNode( new Long(fromId) );
- Node toNode = nodeContainer.getNode( new Long(toId) );
-
- if ( fromNode == null ) {
- throw new SAXParseException( "Node '" + fromId + "' cannot be found",
- parser.getLocator() );
- }
- if ( toNode == null ) {
- throw new SAXParseException( "Node '" + toId + "' cannot be found",
- parser.getLocator() );
- }
-
- ConnectionImpl connection = new ConnectionImpl(
- fromNode, org.drools.workflow.core.Node.CONNECTION_DEFAULT_TYPE,
- toNode, org.drools.workflow.core.Node.CONNECTION_DEFAULT_TYPE);
- connection.setMetaData("bendpoints", bendpoints);
-
- return connection;
- }
-
- public Object end(final String uri,
- final String localName,
- final ExtensibleXmlParser parser) throws SAXException {
- final Element element = parser.endElementBuilder();
- return parser.getCurrent();
- }
+ String fromId = attrs.getValue("from");
+ emptyAttributeCheck(localName, "from", fromId, parser);
+ String toId = attrs.getValue("to");
+ emptyAttributeCheck(localName, "to", toId, parser);
+ String bendpoints = attrs.getValue("bendpoints");
- public Class generateNodeFor() {
- return Connection.class;
- }
+ String fromType = attrs.getValue("fromType");
+ if (fromType == null || fromType.trim().length() == 0) {
+ fromType = NodeImpl.CONNECTION_DEFAULT_TYPE;
+ }
+ String toType = attrs.getValue("toType");
+ if (toType == null || toType.trim().length() == 0) {
+ toType = NodeImpl.CONNECTION_DEFAULT_TYPE;
+ }
+ NodeContainer nodeContainer = (NodeContainer) parser.getParent();
+ Node fromNode = nodeContainer.getNode(new Long(fromId));
+ Node toNode = nodeContainer.getNode(new Long(toId));
+
+ if (fromNode == null) {
+ throw new SAXParseException(
+ "Node '" + fromId + "' cannot be found", parser.getLocator());
+ }
+ if (toNode == null) {
+ throw new SAXParseException("Node '" + toId + "' cannot be found", parser.getLocator());
+ }
+
+ ConnectionImpl connection = new ConnectionImpl(fromNode, fromType, toNode, toType);
+ connection.setMetaData("bendpoints", bendpoints);
+
+ return connection;
+ }
+
+ public Object end(final String uri, final String localName, final ExtensibleXmlParser parser) throws SAXException {
+ return parser.getCurrent();
+ }
+
+ public Class<?> generateNodeFor() {
+ return Connection.class;
+ }
+
}
Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/StateNodeHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/StateNodeHandler.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/StateNodeHandler.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -0,0 +1,36 @@
+package org.drools.xml.processes;
+
+import org.drools.workflow.core.Node;
+import org.drools.workflow.core.node.StateNode;
+import org.drools.xml.ExtensibleXmlParser;
+import org.w3c.dom.Element;
+import org.xml.sax.SAXException;
+
+public class StateNodeHandler extends AbstractNodeHandler {
+
+ protected Node createNode() {
+ return new StateNode();
+ }
+
+ @SuppressWarnings("unchecked")
+ public Class generateNodeFor() {
+ return StateNode.class;
+ }
+
+ public void handleNode(final Node node, final Element element, final String uri,
+ final String localName, final ExtensibleXmlParser parser)
+ throws SAXException {
+ super.handleNode(node, element, uri, localName, parser);
+ StateNode stateNode = (StateNode) node;
+ for (String eventType: stateNode.getActionTypes()) {
+ handleAction(node, element, eventType);
+ }
+ }
+
+ public void writeNode(Node node, StringBuffer xmlDump, boolean includeMeta) {
+ StateNode milestoneNode = (StateNode) node;
+ writeNode("state", milestoneNode, xmlDump, includeMeta);
+ endNode(xmlDump);
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaRule.mvel
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaRule.mvel 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaRule.mvel 2009-01-12 14:11:27 UTC (rev 24649)
@@ -100,8 +100,7 @@
@end{}
@declare{"consequenceMethod"}
-public static void @{methodName}(org.drools.spi.KnowledgeHelper drools at if{declarations != empty}, at end{} @foreach{type : declarationTypes, declr : declarations} @{type} @{declr.identifier}, org.drools.FactHandle @{declr.identifier}__Handle__ @end{","}@if{globals != empty}, at end{} @foreach{type : globalTypes, identifier : globals} @{type} @{identifier} @end{","} ) throws Exception {
- org.drools.runtime.rule.RuleContext kcontext = drools;
+public static void @{methodName}(org.drools.spi.KnowledgeHelper drools at if{declarations != empty}, at end{} @foreach{type : declarationTypes, declr : declarations} @{type} @{declr.identifier}, org.drools.FactHandle @{declr.identifier}__Handle__ @end{","}@if{globals != empty}, at end{} @foreach{type : globalTypes, identifier : globals} @{type} @{identifier} @end{","} ) throws Exception { org.drools.runtime.rule.RuleContext kcontext = drools;
@{text}
}
@end{}
Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ProcessStateTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ProcessStateTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ProcessStateTest.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -0,0 +1,53 @@
+package org.drools.integrationtests;
+
+import java.io.Reader;
+import java.io.StringReader;
+
+import junit.framework.TestCase;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.WorkingMemory;
+import org.drools.compiler.PackageBuilder;
+import org.drools.process.instance.ProcessInstance;
+import org.drools.rule.Package;
+
+public class ProcessStateTest extends TestCase {
+
+ public void testOnEntryExit() {
+ PackageBuilder builder = new PackageBuilder();
+ Reader source = new StringReader(
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+ "<process xmlns=\"http://drools.org/drools-5.0/process\"\n" +
+ " xmlns:xs=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
+ " xs:schemaLocation=\"http://drools.org/drools-5.0/process drools-processes-5.0.xsd\"\n" +
+ " type=\"RuleFlow\" name=\"flow\" id=\"org.drools.state\" package-name=\"org.drools\" version=\"1\" >\n" +
+ "\n" +
+ " <header>\n" +
+ " </header>\n" +
+ "\n" +
+ " <nodes>\n" +
+ " <start id=\"1\" name=\"Start\" />\n" +
+ " <state id=\"2\" name=\"State\" />\n" +
+ " <end id=\"3\" name=\"End\" />\n" +
+ " </nodes>\n" +
+ "\n" +
+ " <connections>\n" +
+ " <connection from=\"1\" to=\"2\" />\n" +
+ " <connection from=\"2\" to=\"3\" />\n" +
+ " </connections>\n" +
+ "\n" +
+ "</process>");
+ builder.addRuleFlow(source);
+ Package pkg = builder.getPackage();
+ RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+ ruleBase.addPackage( pkg );
+ WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ ProcessInstance processInstance = ( ProcessInstance )
+ workingMemory.startProcess("org.drools.state");
+ assertEquals(ProcessInstance.STATE_ACTIVE, processInstance.getState());
+ processInstance.signalEvent("signal", null);
+ assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState());
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -826,6 +826,7 @@
System.err.println( "Error occured while loading work definitions " + location );
System.err.println( "Continuing without reading these work definitions" );
t.printStackTrace();
+ throw new RuntimeException("Could not parse work definitions " + location + ": " + t.getMessage());
}
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -37,6 +37,8 @@
import org.drools.audit.event.RuleFlowNodeLogEvent;
import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
+import org.drools.definition.process.Node;
+import org.drools.definition.process.NodeContainer;
import org.drools.event.ActivationCancelledEvent;
import org.drools.event.ActivationCreatedEvent;
import org.drools.event.AfterActivationFiredEvent;
@@ -73,8 +75,12 @@
import org.drools.impl.StatefulKnowledgeSessionImpl;
import org.drools.impl.StatelessKnowledgeSessionImpl;
import org.drools.rule.Declaration;
+import org.drools.runtime.process.NodeInstance;
+import org.drools.runtime.process.NodeInstanceContainer;
import org.drools.spi.Activation;
import org.drools.spi.Tuple;
+import org.drools.workflow.core.node.CompositeNode;
+import org.drools.workflow.instance.node.CompositeNodeInstance;
/**
* A logger of events generated by a working memory.
@@ -423,8 +429,9 @@
public void beforeRuleFlowNodeTriggered(RuleFlowNodeTriggeredEvent event,
WorkingMemory workingMemory) {
filterLogEvent(new RuleFlowNodeLogEvent(LogEvent.BEFORE_RULEFLOW_NODE_TRIGGERED,
- event.getRuleFlowNodeInstance().getId() + "",
+ createNodeId(event.getRuleFlowNodeInstance()),
event.getRuleFlowNodeInstance().getNodeName(),
+ createNodeInstanceId(event.getRuleFlowNodeInstance()),
event.getProcessInstance().getProcessId(),
event.getProcessInstance().getProcessName(),
event.getProcessInstance().getId()) );
@@ -433,19 +440,65 @@
public void afterRuleFlowNodeTriggered(RuleFlowNodeTriggeredEvent event,
WorkingMemory workingMemory) {
filterLogEvent(new RuleFlowNodeLogEvent(LogEvent.AFTER_RULEFLOW_NODE_TRIGGERED,
- event.getRuleFlowNodeInstance().getId() + "",
+ createNodeId(event.getRuleFlowNodeInstance()),
event.getRuleFlowNodeInstance().getNodeName(),
+ createNodeInstanceId(event.getRuleFlowNodeInstance()),
event.getProcessInstance().getProcessId(),
event.getProcessInstance().getProcessName(),
event.getProcessInstance().getId()) );
}
+
+ private String createNodeId(NodeInstance nodeInstance) {
+ Node node = ((org.drools.workflow.instance.NodeInstance) nodeInstance).getNode();
+ String nodeId = "" + node.getId();
+ NodeContainer nodeContainer = node.getNodeContainer();
+ while (nodeContainer != null) {
+ if (nodeContainer instanceof CompositeNode) {
+ node = (CompositeNode) nodeContainer;
+ nodeId = node.getId() + ":" + nodeId;
+ nodeContainer = node.getNodeContainer();
+ } else {
+ break;
+ }
+ }
+ return nodeId;
+ }
+ private String createNodeInstanceId(NodeInstance nodeInstance) {
+ String nodeInstanceId = "" + nodeInstance.getId();
+ NodeInstanceContainer nodeContainer = nodeInstance.getNodeInstanceContainer();
+ while (nodeContainer != null) {
+ if (nodeContainer instanceof CompositeNodeInstance) {
+ nodeInstance = (CompositeNodeInstance) nodeContainer;
+ nodeInstanceId = nodeInstance.getId() + ":" + nodeInstanceId;
+ nodeContainer = nodeInstance.getNodeInstanceContainer();
+ } else {
+ break;
+ }
+ }
+ return nodeInstanceId;
+ }
+
public void beforeRuleFlowNodeLeft(RuleFlowNodeTriggeredEvent event,
WorkingMemory workingMemory) {
+ filterLogEvent(new RuleFlowNodeLogEvent(LogEvent.BEFORE_RULEFLOW_NODE_EXITED,
+ createNodeId(event.getRuleFlowNodeInstance()),
+ event.getRuleFlowNodeInstance().getNodeName(),
+ createNodeInstanceId(event.getRuleFlowNodeInstance()),
+ event.getProcessInstance().getProcessId(),
+ event.getProcessInstance().getProcessName(),
+ event.getProcessInstance().getId()) );
}
public void afterRuleFlowNodeLeft(RuleFlowNodeTriggeredEvent event,
WorkingMemory workingMemory) {
+ filterLogEvent(new RuleFlowNodeLogEvent(LogEvent.AFTER_RULEFLOW_NODE_EXITED,
+ createNodeId(event.getRuleFlowNodeInstance()),
+ event.getRuleFlowNodeInstance().getNodeName(),
+ createNodeInstanceId(event.getRuleFlowNodeInstance()),
+ event.getProcessInstance().getProcessId(),
+ event.getProcessInstance().getProcessName(),
+ event.getProcessInstance().getId()) );
}
public void afterPackageAdded(AfterPackageAddedEvent event) {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/event/RuleFlowNodeLogEvent.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/event/RuleFlowNodeLogEvent.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/event/RuleFlowNodeLogEvent.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -8,6 +8,7 @@
private String nodeId;
private String nodeName;
+ private String nodeInstanceId;
/**
* Create a new ruleflow node log event.
@@ -19,24 +20,28 @@
public RuleFlowNodeLogEvent(final int type,
final String nodeId,
final String nodeName,
+ final String nodeInstanceId,
final String processId,
final String processName,
final long processInstanceId) {
super( type, processId, processName, processInstanceId );
this.nodeId = nodeId;
this.nodeName = nodeName;
+ this.nodeInstanceId = nodeInstanceId;
}
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
super.readExternal(in);
- nodeId = (String)in.readObject();
- nodeName = (String)in.readObject();
+ nodeId = (String) in.readObject();
+ nodeName = (String) in.readObject();
+ nodeInstanceId = (String) in.readObject();
}
public void writeExternal(ObjectOutput out) throws IOException {
super.writeExternal(out);
out.writeObject(nodeId);
out.writeObject(nodeName);
+ out.writeObject(nodeInstanceId);
}
public String getNodeId() {
@@ -47,6 +52,10 @@
return nodeName;
}
+ public String getNodeInstanceId() {
+ return nodeInstanceId;
+ }
+
public String toString() {
String msg = null;
switch ( this.getType() ) {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/Command.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/Command.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/Command.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -2,8 +2,8 @@
import org.drools.WorkingMemory;
-public interface Command {
+public interface Command<T> {
- Object execute(WorkingMemory workingMemory);
+ T execute(WorkingMemory workingMemory);
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/CommandService.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/CommandService.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/CommandService.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -2,6 +2,6 @@
public interface CommandService {
- Object execute(Command command);
+ <T> T execute(Command<T> command);
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/CompleteWorkItemCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/CompleteWorkItemCommand.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/CompleteWorkItemCommand.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -5,7 +5,7 @@
import org.drools.WorkingMemory;
-public class CompleteWorkItemCommand implements Command {
+public class CompleteWorkItemCommand implements Command<Object> {
private long workItemId;
private Map<String, Object> results = new HashMap<String, Object>();
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetProcessInstanceCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetProcessInstanceCommand.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/GetProcessInstanceCommand.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -1,8 +1,9 @@
package org.drools.process.command;
import org.drools.WorkingMemory;
+import org.drools.process.instance.ProcessInstance;
-public class GetProcessInstanceCommand implements Command {
+public class GetProcessInstanceCommand implements Command<ProcessInstance> {
private Long processInstanceId;
@@ -14,7 +15,7 @@
this.processInstanceId = processInstanceId;
}
- public Object execute(WorkingMemory workingMemory) {
+ public ProcessInstance execute(WorkingMemory workingMemory) {
if (processInstanceId == null) {
return null;
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/InsertObjectCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/InsertObjectCommand.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/InsertObjectCommand.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -5,7 +5,7 @@
import org.drools.WorkingMemory;
-public class InsertObjectCommand implements Command {
+public class InsertObjectCommand implements Command<Object> {
private List<Object> objects;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/SignalEventCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/SignalEventCommand.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/SignalEventCommand.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -3,7 +3,7 @@
import org.drools.process.instance.ProcessInstance;
import org.drools.WorkingMemory;
-public class SignalEventCommand implements Command {
+public class SignalEventCommand implements Command<Object> {
private long processInstanceId;
private String eventType;
@@ -34,9 +34,13 @@
}
public Object execute(WorkingMemory workingMemory) {
- ProcessInstance processInstance = ( ProcessInstance ) workingMemory.getProcessInstance(processInstanceId);
- if (processInstance != null) {
- processInstance.signalEvent(eventType, processInstance);
+ if (processInstanceId == -1) {
+ workingMemory.getSignalManager().signalEvent(eventType, event);
+ } else {
+ ProcessInstance processInstance = ( ProcessInstance ) workingMemory.getProcessInstance(processInstanceId);
+ if (processInstance != null) {
+ processInstance.signalEvent(eventType, processInstance);
+ }
}
return null;
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/StartProcessCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/StartProcessCommand.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/StartProcessCommand.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -7,7 +7,7 @@
import org.drools.process.instance.ProcessInstance;
import org.drools.WorkingMemory;
-public class StartProcessCommand implements Command {
+public class StartProcessCommand implements Command<ProcessInstance> {
private String processId;
private Map<String, Object> parameters = new HashMap<String, Object>();
@@ -37,7 +37,7 @@
this.data = data;
}
- public Object execute(WorkingMemory workingMemory) {
+ public ProcessInstance execute(WorkingMemory workingMemory) {
if (data != null) {
for (Object o: data) {
workingMemory.insert(o);
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/AsynchronousCommandService.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/AsynchronousCommandService.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/AsynchronousCommandService.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -12,7 +12,7 @@
this.workingMemory = workingMemory;
}
- public Object execute(final Command command) {
+ public <T> T execute(final Command<T> command) {
new Thread(new Runnable() {
public void run() {
command.execute(workingMemory);
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/DefaultCommandService.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/DefaultCommandService.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/DefaultCommandService.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -12,7 +12,7 @@
this.workingMemory = workingMemory;
}
- public Object execute(Command command) {
+ public <T> T execute(Command<T> command) {
return command.execute(workingMemory);
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/StatefulSessionCommandService.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/StatefulSessionCommandService.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/StatefulSessionCommandService.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -18,14 +18,14 @@
this.session = session;
}
- public Object execute(Command command) {
+ public <T> T execute(Command<T> command) {
Persister<StatefulSession> persister =
new MemoryPersister<StatefulSession>(new StatefulSessionSnapshotter(session));
persister.save();
Transaction transaction = persister.getTransaction();
try {
transaction.start();
- Object result = command.execute(session);
+ T result = command.execute(session);
transaction.commit();
return result;
} catch (Throwable t) {
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/StateNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/StateNode.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/StateNode.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -0,0 +1,7 @@
+package org.drools.workflow.core.node;
+
+public class StateNode extends EventBasedNode {
+
+ private static final long serialVersionUID = 1L;
+
+}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/NodeInstanceFactoryRegistry.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/NodeInstanceFactoryRegistry.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/NodeInstanceFactoryRegistry.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -17,6 +17,7 @@
import org.drools.workflow.core.node.RuleSetNode;
import org.drools.workflow.core.node.Split;
import org.drools.workflow.core.node.StartNode;
+import org.drools.workflow.core.node.StateNode;
import org.drools.workflow.core.node.SubProcessNode;
import org.drools.workflow.core.node.TimerNode;
import org.drools.workflow.core.node.WorkItemNode;
@@ -35,6 +36,7 @@
import org.drools.workflow.instance.node.RuleSetNodeInstance;
import org.drools.workflow.instance.node.SplitInstance;
import org.drools.workflow.instance.node.StartNodeInstance;
+import org.drools.workflow.instance.node.StateNodeInstance;
import org.drools.workflow.instance.node.SubProcessNodeInstance;
import org.drools.workflow.instance.node.TimerNodeInstance;
import org.drools.workflow.instance.node.WorkItemNodeInstance;
@@ -80,6 +82,8 @@
new CreateNewNodeFactory( ForEachNodeInstance.class ) );
register( EventNode.class,
new CreateNewNodeFactory( EventNodeInstance.class ) );
+ register( StateNode.class,
+ new CreateNewNodeFactory( StateNodeInstance.class ) );
}
public void register(Class< ? extends Node> cls,
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/StateNodeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/StateNodeInstance.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/StateNodeInstance.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -0,0 +1,41 @@
+package org.drools.workflow.instance.node;
+
+import org.drools.runtime.process.NodeInstance;
+import org.drools.workflow.core.impl.NodeImpl;
+
+public class StateNodeInstance extends EventBasedNodeInstance {
+
+ private static final long serialVersionUID = 4L;
+
+ public void internalTrigger(NodeInstance from, String type) {
+ addTriggerListener();
+ }
+
+ public void signalEvent(String type, Object event) {
+ if ("signal".equals(type)) {
+ String connectionType = NodeImpl.CONNECTION_DEFAULT_TYPE;
+ if (event instanceof String) {
+ connectionType = (String) event;
+ }
+ removeEventListeners();
+ triggerCompleted(connectionType, true);
+ } else {
+ super.signalEvent(type, event);
+ }
+ }
+
+ private void addTriggerListener() {
+ getProcessInstance().addEventListener("signal", this, false);
+ }
+
+ public void addEventListeners() {
+ super.addEventListeners();
+ addTriggerListener();
+ }
+
+ public void removeEventListeners() {
+ super.removeEventListeners();
+ getProcessInstance().removeEventListener("signal", this, false);
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/debug/AuditView.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/debug/AuditView.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/debug/AuditView.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -109,13 +109,13 @@
((TreeViewer) getViewer()).expandAll();
}
- protected List createEventList(List logEvents) {
- Iterator iterator = logEvents.iterator();
- List events = new ArrayList();
- Stack beforeEvents = new Stack();
- List newActivations = new ArrayList();
- Map activationMap = new HashMap();
- Map objectMap = new HashMap();
+ protected List<Event> createEventList(List<LogEvent> logEvents) {
+ Iterator<LogEvent> iterator = logEvents.iterator();
+ List<Event> events = new ArrayList<Event>();
+ Stack<Event> beforeEvents = new Stack<Event>();
+ List<Event> newActivations = new ArrayList<Event>();
+ Map<String, Event> activationMap = new HashMap<String, Event>();
+ Map<Long, Event> objectMap = new HashMap<Long, Event>();
while (iterator.hasNext()) {
LogEvent inEvent = (LogEvent) iterator.next();
Event event = new Event(inEvent.getType());
@@ -309,6 +309,9 @@
newActivations.clear();
}
break;
+ default:
+ // do nothing
+ break;
}
}
return events;
@@ -397,7 +400,7 @@
private String toString;
private int type;
- private List subEvents = new ArrayList();
+ private List<Event> subEvents = new ArrayList<Event>();
private Event causeEvent;
public Event(int type) {
@@ -420,7 +423,7 @@
subEvents.add(subEvent);
}
- public void addSubEvents(Collection subEvents) {
+ public void addSubEvents(Collection<Event> subEvents) {
this.subEvents.addAll(subEvents);
}
Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/core/HumanTaskNodeWrapper.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/core/HumanTaskNodeWrapper.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/core/HumanTaskNodeWrapper.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -66,7 +66,7 @@
protected void initDescriptors() {
super.initDescriptors();
IPropertyDescriptor[] parentDescriptors = descriptors;
- IPropertyDescriptor[] descriptors = new IPropertyDescriptor[parentDescriptors.length + 1];
+ descriptors = new IPropertyDescriptor[parentDescriptors.length + 1];
System.arraycopy(parentDescriptors, 0, descriptors, 0, parentDescriptors.length);
descriptors[descriptors.length - 1] =
new TextPropertyDescriptor(SWIMLANE, "Swimlane");
Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/core/RuleFlowWrapperBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/core/RuleFlowWrapperBuilder.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/core/RuleFlowWrapperBuilder.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -35,6 +35,7 @@
import org.drools.workflow.core.node.TimerNode;
import org.drools.workflow.core.node.WorkItemNode;
import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jface.dialogs.MessageDialog;
public class RuleFlowWrapperBuilder implements ProcessWrapperBuilder {
@@ -124,16 +125,21 @@
WorkItemWrapper workItemWrapper = new WorkItemWrapper();
Work work = ((WorkItemNode) node).getWork();
if (work != null && work.getName() != null) {
- WorkDefinition workDefinition =
- WorkItemDefinitions.getWorkDefinitions(project)
- .get(work.getName());
- if (workDefinition == null) {
-// DroolsEclipsePlugin.log(
-// new IllegalArgumentException("Could not find work definition for work " + work.getName()));
- workDefinition = new WorkDefinitionImpl();
- ((WorkDefinitionImpl) workDefinition).setName(work.getName());
+ try {
+ WorkDefinition workDefinition =
+ WorkItemDefinitions.getWorkDefinitions(project)
+ .get(work.getName());
+ if (workDefinition == null) {
+ // DroolsEclipsePlugin.log(
+ // new IllegalArgumentException("Could not find work definition for work " + work.getName()));
+ workDefinition = new WorkDefinitionImpl();
+ ((WorkDefinitionImpl) workDefinition).setName(work.getName());
+ }
+ workItemWrapper.setWorkDefinition(workDefinition);
+ } catch (Throwable t) {
+ // an error might be thrown when parsing the work definitions,
+ // but this should already be displayed to the user
}
- workItemWrapper.setWorkDefinition(workDefinition);
}
return workItemWrapper;
} else if (node instanceof EventNode) {
Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/RuleFlowModelEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/RuleFlowModelEditor.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/RuleFlowModelEditor.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -47,6 +47,7 @@
import org.eclipse.gef.palette.PaletteRoot;
import org.eclipse.gef.requests.SimpleFactory;
import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IFileEditorInput;
@@ -100,42 +101,47 @@
Thread.currentThread().setContextClassLoader(newLoader);
PaletteDrawer drawer = (PaletteDrawer) getPaletteRoot().getChildren().get(2);
List entries = new ArrayList();
- for (final WorkDefinition workDefinition: WorkItemDefinitions.getWorkDefinitions(file).values()) {
- final String label;
- String description = workDefinition.getName();
- String icon = null;
- if (workDefinition instanceof WorkDefinitionExtension) {
- WorkDefinitionExtension extension = (WorkDefinitionExtension) workDefinition;
- label = extension.getDisplayName();
- description = extension.getExplanationText();
- icon = extension.getIcon();
- } else {
- label = workDefinition.getName();
- }
-
- URL iconUrl = null;
- if (icon != null) {
- iconUrl = newLoader.getResource(icon);
- }
- if (iconUrl == null) {
- iconUrl = DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/action.gif");
- }
- CombinedTemplateCreationEntry combined = new CombinedTemplateCreationEntry(
- label,
- description,
- WorkItemWrapper.class,
- new SimpleFactory(WorkItemWrapper.class) {
- public Object getNewObject() {
- WorkItemWrapper workItemWrapper = (WorkItemWrapper) super.getNewObject();
- workItemWrapper.setName(label);
- workItemWrapper.setWorkDefinition(workDefinition);
- return workItemWrapper;
- }
- },
- ImageDescriptor.createFromURL(iconUrl),
- ImageDescriptor.createFromURL(iconUrl)
- );
- entries.add(combined);
+ try {
+ for (final WorkDefinition workDefinition: WorkItemDefinitions.getWorkDefinitions(file).values()) {
+ final String label;
+ String description = workDefinition.getName();
+ String icon = null;
+ if (workDefinition instanceof WorkDefinitionExtension) {
+ WorkDefinitionExtension extension = (WorkDefinitionExtension) workDefinition;
+ label = extension.getDisplayName();
+ description = extension.getExplanationText();
+ icon = extension.getIcon();
+ } else {
+ label = workDefinition.getName();
+ }
+
+ URL iconUrl = null;
+ if (icon != null) {
+ iconUrl = newLoader.getResource(icon);
+ }
+ if (iconUrl == null) {
+ iconUrl = DroolsEclipsePlugin.getDefault().getBundle().getEntry("icons/action.gif");
+ }
+ CombinedTemplateCreationEntry combined = new CombinedTemplateCreationEntry(
+ label,
+ description,
+ WorkItemWrapper.class,
+ new SimpleFactory(WorkItemWrapper.class) {
+ public Object getNewObject() {
+ WorkItemWrapper workItemWrapper = (WorkItemWrapper) super.getNewObject();
+ workItemWrapper.setName(label);
+ workItemWrapper.setWorkDefinition(workDefinition);
+ return workItemWrapper;
+ }
+ },
+ ImageDescriptor.createFromURL(iconUrl),
+ ImageDescriptor.createFromURL(iconUrl)
+ );
+ entries.add(combined);
+ }
+ } catch (Throwable t) {
+ MessageDialog.openError(
+ getSite().getShell(), "Parsing work item definitions", t.getMessage());
}
drawer.setChildren(entries);
} finally {
Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse.task/src/main/java/org/drools/eclipse/task/views/AbstractBlockingResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse.task/src/main/java/org/drools/eclipse/task/views/AbstractBlockingResponseHandler.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse.task/src/main/java/org/drools/eclipse/task/views/AbstractBlockingResponseHandler.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -4,7 +4,6 @@
package org.drools.eclipse.task.views;
import org.drools.task.service.BaseMinaHandler.ResponseHandler;
-import org.drools.task.service.TaskClientHandler.AddCommentResponseHandler;
public abstract class AbstractBlockingResponseHandler
implements
Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse.task/src/main/java/org/drools/eclipse/task/views/BlockingTaskOperationResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse.task/src/main/java/org/drools/eclipse/task/views/BlockingTaskOperationResponseHandler.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse.task/src/main/java/org/drools/eclipse/task/views/BlockingTaskOperationResponseHandler.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -3,8 +3,6 @@
*/
package org.drools.eclipse.task.views;
-import org.drools.eventmessaging.EventResponseHandler;
-import org.drools.eventmessaging.Payload;
import org.drools.task.service.TaskClientHandler.TaskOperationResponseHandler;
public class BlockingTaskOperationResponseHandler extends AbstractBlockingResponseHandler implements TaskOperationResponseHandler {
Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse.task/src/main/java/org/drools/eclipse/task/views/BlockingTaskSummaryResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse.task/src/main/java/org/drools/eclipse/task/views/BlockingTaskSummaryResponseHandler.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse.task/src/main/java/org/drools/eclipse/task/views/BlockingTaskSummaryResponseHandler.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -33,7 +33,7 @@
isDone = this.done;
}
if ( !isDone ) {
- throw new RuntimeException("Timeout : unable to retrieve results" );
+ throw new TimeoutException();
}
return results;
Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse.task/src/main/java/org/drools/eclipse/task/views/TaskView.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse.task/src/main/java/org/drools/eclipse/task/views/TaskView.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse.task/src/main/java/org/drools/eclipse/task/views/TaskView.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -3,6 +3,7 @@
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.text.DateFormat;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -52,8 +53,6 @@
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.dialogs.ViewContentProvider;
-import org.eclipse.ui.internal.dialogs.ViewLabelProvider;
import org.eclipse.ui.part.ViewPart;
public class TaskView extends ViewPart {
@@ -112,7 +111,7 @@
}
public void dispose() {
}
- @SuppressWarnings("unchecked")
+ @SuppressWarnings({ "unchecked" })
public Object[] getElements(Object parent) {
if (parent instanceof List) {
List<TaskSummary> tasks = (List<TaskSummary>) parent;
@@ -435,14 +434,22 @@
return;
}
- BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner(userId, language, responseHandler);
- List<TaskSummary> tasks = responseHandler.getResults();
-
- tableViewer.setInput(tasks);
- tableViewer.refresh();
- tableViewer.setSelection(null);
- updateButtons();
+ try {
+ BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
+ client.getTasksAssignedAsPotentialOwner(userId, language, responseHandler);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ tableViewer.setInput(tasks);
+ tableViewer.refresh();
+ tableViewer.setSelection(null);
+ updateButtons();
+ } catch (TimeoutException e) {
+ showMessage("Could not connect to task server, refresh first.");
+ client.disconnect();
+ this.client = null;
+ tableViewer.setInput(new ArrayList<TaskSummary>());
+ tableViewer.refresh();
+ tableViewer.setSelection(null);
+ }
}
private void createTask() {
Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse.task/src/main/java/org/drools/eclipse/task/views/TimeoutException.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse.task/src/main/java/org/drools/eclipse/task/views/TimeoutException.java (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse.task/src/main/java/org/drools/eclipse/task/views/TimeoutException.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -0,0 +1,7 @@
+package org.drools.eclipse.task.views;
+
+public class TimeoutException extends RuntimeException {
+
+ private static final long serialVersionUID = 4L;
+
+}
Added: labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/NodeInstanceLog.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/NodeInstanceLog.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/NodeInstanceLog.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -0,0 +1,92 @@
+package org.drools.process.audit;
+
+import java.util.Date;
+
+public class NodeInstanceLog {
+
+ public static final int TYPE_ENTER = 0;
+ public static final int TYPE_EXIT = 1;
+
+ private String id;
+ private int type;
+ private long processInstanceId;
+ private String processId;
+ private String nodeInstanceId;
+ private String nodeId;
+ private Date date;
+
+ NodeInstanceLog() {
+ }
+
+ public NodeInstanceLog(int type, long processInstanceId, String processId,
+ String nodeInstanceId, String nodeId) {
+ this.type = type;
+ this.processInstanceId = processInstanceId;
+ this.processId = processId;
+ this.nodeInstanceId = nodeInstanceId;
+ this.nodeId = nodeId;
+ this.date = new Date();
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ void setType(int type) {
+ this.type = type;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ void setId(String id) {
+ this.id = id;
+ }
+
+ public long getProcessInstanceId() {
+ return processInstanceId;
+ }
+
+ void setProcessInstanceId(long processInstanceId) {
+ this.processInstanceId = processInstanceId;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ public String getNodeInstanceId() {
+ return nodeInstanceId;
+ }
+
+ void setNodeInstanceId(String nodeInstanceId) {
+ this.nodeInstanceId = nodeInstanceId;
+ }
+
+ public String getNodeId() {
+ return nodeId;
+ }
+
+ void setNodeId(String nodeId) {
+ this.nodeId = nodeId;
+ }
+
+ public Date getDate() {
+ return date;
+ }
+
+ void setDate(Date date) {
+ this.date = date;
+ }
+
+ public String toString() {
+ return (type == 0 ? "Triggered " : "Left ") + "Node Instance '" +
+ processId + "#" + nodeId + "' [" + processInstanceId + "#" + nodeInstanceId + "]";
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/ProcessInstanceDbLog.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/ProcessInstanceDbLog.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/ProcessInstanceDbLog.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -37,4 +37,44 @@
return result == null || result.size() == 0 ? null : result.get(0);
}
+ @SuppressWarnings("unchecked")
+ public static List<NodeInstanceLog> findNodeInstances(long processInstanceId) {
+ Session session = HibernateUtil.getSessionFactory().getCurrentSession();
+ session.beginTransaction();
+ List<NodeInstanceLog> result = session.createQuery(
+ "from NodeInstanceLog as log where log.processInstanceId = ?")
+ .setLong(0, processInstanceId).list();
+ session.getTransaction().commit();
+ return result;
+ }
+
+ @SuppressWarnings("unchecked")
+ public static List<NodeInstanceLog> findNodeInstances(long processInstanceId, String nodeId) {
+ Session session = HibernateUtil.getSessionFactory().getCurrentSession();
+ session.beginTransaction();
+ List<NodeInstanceLog> result = session.createQuery(
+ "from NodeInstanceLog as log where log.processInstanceId = ? and log.nodeId = ?")
+ .setLong(0, processInstanceId)
+ .setString(1, nodeId).list();
+ session.getTransaction().commit();
+ return result;
+ }
+
+ @SuppressWarnings("unchecked")
+ public static void clear() {
+ Session session = HibernateUtil.getSessionFactory().getCurrentSession();
+ session.beginTransaction();
+ List<ProcessInstanceLog> processInstances =
+ session.createQuery("from ProcessInstanceLog").list();
+ for (ProcessInstanceLog processInstance: processInstances) {
+ session.delete(processInstance);
+ }
+ List<NodeInstanceLog> nodeInstances =
+ session.createQuery("from NodeInstanceLog").list();
+ for (NodeInstanceLog nodeInstance: nodeInstances) {
+ session.delete(nodeInstance);
+ }
+ session.getTransaction().commit();
+ }
+
}
Modified: labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/WorkingMemoryDbLogger.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/WorkingMemoryDbLogger.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-process/drools-bam/src/main/java/org/drools/process/audit/WorkingMemoryDbLogger.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -6,6 +6,7 @@
import org.drools.audit.WorkingMemoryLogger;
import org.drools.audit.event.LogEvent;
import org.drools.audit.event.RuleFlowLogEvent;
+import org.drools.audit.event.RuleFlowNodeLogEvent;
import org.drools.event.KnowledgeRuntimeEventManager;
import org.hibernate.Session;
@@ -22,19 +23,27 @@
public void logEventCreated(LogEvent logEvent) {
switch (logEvent.getType()) {
case LogEvent.BEFORE_RULEFLOW_CREATED:
- RuleFlowLogEvent event = (RuleFlowLogEvent) logEvent;
- addLog(event.getProcessInstanceId(), event.getProcessId());
+ RuleFlowLogEvent processEvent = (RuleFlowLogEvent) logEvent;
+ addProcessLog(processEvent.getProcessInstanceId(), processEvent.getProcessId());
break;
case LogEvent.AFTER_RULEFLOW_COMPLETED:
- event = (RuleFlowLogEvent) logEvent;
- updateLog(event.getProcessInstanceId());
+ processEvent = (RuleFlowLogEvent) logEvent;
+ updateProcessLog(processEvent.getProcessInstanceId());
break;
+ case LogEvent.BEFORE_RULEFLOW_NODE_TRIGGERED:
+ RuleFlowNodeLogEvent nodeEvent = (RuleFlowNodeLogEvent) logEvent;
+ addNodeEnterLog(nodeEvent.getProcessInstanceId(), nodeEvent.getProcessId(), nodeEvent.getNodeInstanceId(), nodeEvent.getNodeId());
+ break;
+ case LogEvent.BEFORE_RULEFLOW_NODE_EXITED:
+ nodeEvent = (RuleFlowNodeLogEvent) logEvent;
+ addNodeExitLog(nodeEvent.getProcessInstanceId(), nodeEvent.getProcessId(), nodeEvent.getNodeInstanceId(), nodeEvent.getNodeId());
+ break;
default:
// ignore all other events
}
}
- private void addLog(long processInstanceId, String processId) {
+ private void addProcessLog(long processInstanceId, String processId) {
ProcessInstanceLog log = new ProcessInstanceLog(processInstanceId, processId);
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
@@ -42,7 +51,7 @@
session.getTransaction().commit();
}
- private void updateLog(long processInstanceId) {
+ private void updateProcessLog(long processInstanceId) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
ProcessInstanceLog log = (ProcessInstanceLog) session.load(ProcessInstanceLog.class, processInstanceId);
@@ -50,4 +59,21 @@
session.update(log);
session.getTransaction().commit();
}
+
+ private void addNodeEnterLog(long processInstanceId, String processId, String nodeInstanceId, String nodeId) {
+ NodeInstanceLog log = new NodeInstanceLog(NodeInstanceLog.TYPE_ENTER, processInstanceId, processId, nodeInstanceId, nodeId);
+ Session session = HibernateUtil.getSessionFactory().getCurrentSession();
+ session.beginTransaction();
+ session.save(log);
+ session.getTransaction().commit();
+ }
+
+ private void addNodeExitLog(long processInstanceId, String processId, String nodeInstanceId, String nodeId) {
+ NodeInstanceLog log = new NodeInstanceLog(NodeInstanceLog.TYPE_EXIT, processInstanceId, processId, nodeInstanceId, nodeId);
+ Session session = HibernateUtil.getSessionFactory().getCurrentSession();
+ session.beginTransaction();
+ session.save(log);
+ session.getTransaction().commit();
+ }
+
}
Modified: labs/jbossrules/trunk/drools-process/drools-bam/src/main/resources/AuditLog.hbm.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bam/src/main/resources/AuditLog.hbm.xml 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-process/drools-bam/src/main/resources/AuditLog.hbm.xml 2009-01-12 14:11:27 UTC (rev 24649)
@@ -7,11 +7,23 @@
<class name="org.drools.process.audit.ProcessInstanceLog" >
<id name="processInstanceId">
- <generator class="native"/>
+ <generator class="assigned"/>
</id>
<property name="processId"/>
<property name="start" type="timestamp" column="START_DATE"/>
<property name="end" type="timestamp" column="END_DATE"/>
</class>
+ <class name="org.drools.process.audit.NodeInstanceLog" >
+ <id name="id">
+ <generator class="native"/>
+ </id>
+ <property name="type"/>
+ <property name="nodeInstanceId"/>
+ <property name="nodeId"/>
+ <property name="processInstanceId"/>
+ <property name="processId"/>
+ <property name="date" type="timestamp" column="DATE"/>
+ </class>
+
</hibernate-mapping>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-process/drools-bam/src/main/resources/hibernate.cfg.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bam/src/main/resources/hibernate.cfg.xml 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-process/drools-bam/src/main/resources/hibernate.cfg.xml 2009-01-12 14:11:27 UTC (rev 24649)
@@ -9,8 +9,8 @@
<!-- Database connection settings -->
<property name="connection.driver_class">org.h2.Driver</property>
- <!--property name="connection.url">jdbc:h2:mem:mydb</property-->
- <property name="connection.url">jdbc:h2:file:/NotBackedUp/data/mydb</property>
+ <property name="connection.url">jdbc:h2:mem:mydb</property>
+ <!--property name="connection.url">jdbc:h2:file:/NotBackedUp/data/mydb</property-->
<property name="connection.username">sa</property>
<property name="connection.password"></property>
@@ -30,7 +30,7 @@
<property name="show_sql">false</property>
<!-- Drop and re-create the database schema on startup -->
- <!-- property name="hbm2ddl.auto">create</property-->
+ <!--property name="hbm2ddl.auto">create</property-->
<mapping resource="AuditLog.hbm.xml"/>
Modified: labs/jbossrules/trunk/drools-process/drools-bam/src/test/java/org/drools/process/audit/WorkingMemoryDbLoggerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bam/src/test/java/org/drools/process/audit/WorkingMemoryDbLoggerTest.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-process/drools-bam/src/test/java/org/drools/process/audit/WorkingMemoryDbLoggerTest.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -15,7 +15,7 @@
public class WorkingMemoryDbLoggerTest extends TestCase {
- public void testLogger() {
+ public void testLogger1() {
// load the process
RuleBase ruleBase = createKnowledgeBase();
// create a new session
@@ -24,18 +24,92 @@
session.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler());
// start process instance
+ long processInstanceId = session.startProcess("com.sample.ruleflow").getId();
+
+ System.out.println("Checking process instances for process 'com.sample.ruleflow'");
+ List<ProcessInstanceLog> processInstances =
+ ProcessInstanceDbLog.findProcessInstances("com.sample.ruleflow");
+ assertEquals(1, processInstances.size());
+ ProcessInstanceLog processInstance = processInstances.get(0);
+ System.out.println(processInstance);
+ assertNotNull(processInstance.getStart());
+ assertNotNull(processInstance.getEnd());
+ assertEquals(processInstanceId, processInstance.getProcessInstanceId());
+ assertEquals("com.sample.ruleflow", processInstance.getProcessId());
+ List<NodeInstanceLog> nodeInstances = ProcessInstanceDbLog.findNodeInstances(processInstanceId);
+ assertEquals(6, nodeInstances.size());
+ for (NodeInstanceLog nodeInstance: nodeInstances) {
+ System.out.println(nodeInstance);
+ assertEquals(processInstanceId, processInstance.getProcessInstanceId());
+ assertEquals("com.sample.ruleflow", processInstance.getProcessId());
+ assertNotNull(nodeInstance.getDate());
+ }
+ ProcessInstanceDbLog.clear();
+ }
+
+ public void testLogger2() {
+ // load the process
+ RuleBase ruleBase = createKnowledgeBase();
+ // create a new session
+ StatefulSession session = ruleBase.newStatefulSession();
+ new WorkingMemoryDbLogger(session);
+ session.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler());
+
+ // start process instance
session.startProcess("com.sample.ruleflow");
session.startProcess("com.sample.ruleflow");
System.out.println("Checking process instances for process 'com.sample.ruleflow'");
- List<ProcessInstanceLog> processInstances
- = ProcessInstanceDbLog.findProcessInstances("com.sample.ruleflow");
- for (Object result: processInstances) {
- System.out.println(result);
+ List<ProcessInstanceLog> processInstances =
+ ProcessInstanceDbLog.findProcessInstances("com.sample.ruleflow");
+ assertEquals(2, processInstances.size());
+ for (ProcessInstanceLog processInstance: processInstances) {
+ System.out.print(processInstance);
+ System.out.println(" -> " + processInstance.getStart() + " - " + processInstance.getEnd());
+ List<NodeInstanceLog> nodeInstances = ProcessInstanceDbLog.findNodeInstances(processInstance.getProcessInstanceId());
+ for (NodeInstanceLog nodeInstance: nodeInstances) {
+ System.out.print(nodeInstance);
+ System.out.println(" -> " + nodeInstance.getDate());
+ }
+ assertEquals(6, nodeInstances.size());
}
- assertEquals(2, processInstances.size());
+ ProcessInstanceDbLog.clear();
}
+ public void testLogger3() {
+ // load the process
+ RuleBase ruleBase = createKnowledgeBase();
+ // create a new session
+ StatefulSession session = ruleBase.newStatefulSession();
+ new WorkingMemoryDbLogger(session);
+ session.getWorkItemManager().registerWorkItemHandler("Human Task", new SystemOutWorkItemHandler());
+
+ // start process instance
+ long processInstanceId = session.startProcess("com.sample.ruleflow2").getId();
+
+ System.out.println("Checking process instances for process 'com.sample.ruleflow2'");
+ List<ProcessInstanceLog> processInstances =
+ ProcessInstanceDbLog.findProcessInstances("com.sample.ruleflow2");
+ assertEquals(1, processInstances.size());
+ ProcessInstanceLog processInstance = processInstances.get(0);
+ System.out.print(processInstance);
+ System.out.println(" -> " + processInstance.getStart() + " - " + processInstance.getEnd());
+ assertNotNull(processInstance.getStart());
+ assertNotNull(processInstance.getEnd());
+ assertEquals(processInstanceId, processInstance.getProcessInstanceId());
+ assertEquals("com.sample.ruleflow2", processInstance.getProcessId());
+ List<NodeInstanceLog> nodeInstances = ProcessInstanceDbLog.findNodeInstances(processInstanceId);
+ for (NodeInstanceLog nodeInstance: nodeInstances) {
+ System.out.print(nodeInstance);
+ System.out.println(" -> " + nodeInstance.getDate());
+ assertEquals(processInstanceId, processInstance.getProcessInstanceId());
+ assertEquals("com.sample.ruleflow2", processInstance.getProcessId());
+ assertNotNull(nodeInstance.getDate());
+ }
+ assertEquals(14, nodeInstances.size());
+ ProcessInstanceDbLog.clear();
+ }
+
private static RuleBase createKnowledgeBase() {
// create a builder
PackageBuilder builder = new PackageBuilder();
@@ -43,7 +117,10 @@
Reader source = new InputStreamReader(
ProcessInstanceExecutor.class.getResourceAsStream("/ruleflow.rf"));
builder.addProcessFromXml(source);
- // create the knowledge base
+ source = new InputStreamReader(
+ ProcessInstanceExecutor.class.getResourceAsStream("/ruleflow2.rf"));
+ builder.addProcessFromXml(source);
+ // create the knowledge base
Package pkg = builder.getPackage();
RuleBase ruleBase = RuleBaseFactory.newRuleBase();
ruleBase.addPackage(pkg);
Modified: labs/jbossrules/trunk/drools-process/drools-bam/src/test/resources/ruleflow2.rf
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bam/src/test/resources/ruleflow2.rf 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-process/drools-bam/src/test/resources/ruleflow2.rf 2009-01-12 14:11:27 UTC (rev 24649)
@@ -9,7 +9,8 @@
<nodes>
<start id="1" name="Start" />
- <workItem id="2" name="Task" >
+ <split id="2" name="Split" type="1" />
+ <workItem id="3" name="Task" >
<work name="Human Task" >
<parameter name="ActorId" >
<type name="org.drools.process.core.datatype.impl.type.StringDataType" />
@@ -26,12 +27,34 @@
</parameter>
</work>
</workItem>
- <end id="3" name="End" />
+ <workItem id="4" name="Task" >
+ <work name="Human Task" >
+ <parameter name="ActorId" >
+ <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+ </parameter>
+ <parameter name="TaskName" >
+ <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+ <value>Task</value>
+ </parameter>
+ <parameter name="Comment" >
+ <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+ </parameter>
+ <parameter name="Priority" >
+ <type name="org.drools.process.core.datatype.impl.type.StringDataType" />
+ </parameter>
+ </work>
+ </workItem>
+ <join id="5" name="Join" type="1" />
+ <end id="6" name="End" />
</nodes>
<connections>
<connection from="1" to="2" />
<connection from="2" to="3" />
+ <connection from="2" to="4" />
+ <connection from="3" to="5" />
+ <connection from="4" to="5" />
+ <connection from="5" to="6" />
</connections>
</process>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/instance/OSWorkflowProcessInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/instance/OSWorkflowProcessInstance.java 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/instance/OSWorkflowProcessInstance.java 2009-01-12 14:11:27 UTC (rev 24649)
@@ -68,11 +68,13 @@
public void doAction(int actionId, Map inputs) {
for (org.drools.runtime.process.NodeInstance nodeInstance: getNodeInstances()) {
- StepNodeInstance stepNodeInstance = (StepNodeInstance) nodeInstance;
- if (stepNodeInstance.isAvailableAction(actionId)) {
- stepNodeInstance.doAction(actionId, inputs);
- break;
- }
+ if (nodeInstance instanceof StepNodeInstance) {
+ StepNodeInstance stepNodeInstance = (StepNodeInstance) nodeInstance;
+ if (stepNodeInstance.isAvailableAction(actionId)) {
+ stepNodeInstance.doAction(actionId, inputs);
+ break;
+ }
+ }
}
checkImplicitFinish();
}
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/resources/META-INF/orm.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/resources/META-INF/orm.xml 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/resources/META-INF/orm.xml 2009-01-12 14:11:27 UTC (rev 24649)
@@ -87,7 +87,7 @@
new org.drools.task.query.TaskSummary(
t.id,
names.text,
- subjects.text,
+ subject.text,
descriptions.text,
t.taskData.status,
t.priority,
@@ -98,9 +98,11 @@
t.taskData.activationTime,
t.taskData.expirationTime)
from
- Task t left join t.taskData.createdBy left join t.taskData.actualOwner,
+ Task t
+ left join t.taskData.createdBy
+ left join t.taskData.actualOwner
+ left join t.subjects as subject,
I18NText names,
- I18NText subjects,
I18NText descriptions,
OrganizationalEntity potentialOwners
where
@@ -110,8 +112,7 @@
names.language = :language and
names in elements( t.names) and
- subjects.language = :language and
- subjects in elements( t.subjects) and
+ subject.language = :language and
descriptions.language = :language and
descriptions in elements( t.descriptions) and
Modified: labs/jbossrules/trunk/drools-repository/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-repository/.classpath 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-repository/.classpath 2009-01-12 14:11:27 UTC (rev 24649)
@@ -1,62 +1,62 @@
-<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
- <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
- <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
- <classpathentry kind="output" path="target/classes"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="M2_REPO/org/jboss/security/acl-spi/2.0.2.CR6/acl-spi-2.0.2.CR6.jar"/>
- <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/>
- <classpathentry kind="var" path="M2_REPO/asm/asm/1.5.3/asm-1.5.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/asm/asm-attrs/1.5.3/asm-attrs-1.5.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jboss/security/authorization-spi/2.0.2.CR6/authorization-spi-2.0.2.CR6.jar"/>
- <classpathentry kind="var" path="M2_REPO/cglib/cglib/2.1_3/cglib-2.1_3.jar"/>
- <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/apache-httpclient/commons-httpclient/2.0.2/commons-httpclient-2.0.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/concurrent/concurrent/1.3.4/concurrent-1.3.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/derby/derby/10.2.1.6/derby-10.2.1.6.jar"/>
- <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/net/sf/ehcache/ehcache/1.2.3/ehcache-1.2.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/ch/ethz/ganymed/ganymed-ssh2/build210/ganymed-ssh2-build210.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate/3.2.4.sp1/hibernate-3.2.4.sp1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-annotations/3.3.0.ga/hibernate-annotations-3.3.0.ga.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-commons-annotations/3.0.0.ga/hibernate-commons-annotations-3.0.0.ga.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-entitymanager/3.3.1.ga/hibernate-entitymanager-3.3.1.ga.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-validator/3.0.0.ga/hibernate-validator-3.0.0.ga.jar"/>
- <classpathentry kind="var" path="M2_REPO/hsqldb/hsqldb/1.8.0.2/hsqldb-1.8.0.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jboss/security/identity-impl/2.0.2.CR6/identity-impl-2.0.2.CR6.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jboss/security/identity-spi/2.0.2.CR6/identity-spi-2.0.2.CR6.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-api/1.4/jackrabbit-api-1.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-core/1.4.5/jackrabbit-core-1.4.5.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-jcr-commons/1.4/jackrabbit-jcr-commons-1.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-spi/1.4/jackrabbit-spi-1.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-spi-commons/1.4/jackrabbit-spi-commons-1.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-text-extractors/1.4/jackrabbit-text-extractors-1.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/javassist/javassist/3.3.GA/javassist-3.3.GA.jar"/>
- <classpathentry kind="var" path="M2_REPO/jboss/jboss-common-core/2.0.2.GA/jboss-common-core-2.0.2.GA.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-common-core/2.2.1.GA/jboss-common-core-2.2.1.GA.jar"/>
- <classpathentry kind="var" path="M2_REPO/jboss/jboss-common-logging-spi/2.0.4.GA/jboss-common-logging-spi-2.0.4.GA.jar"/>
- <classpathentry kind="var" path="M2_REPO/jboss/jboss-logging-log4j/2.0.2.GA/jboss-logging-log4j-2.0.2.GA.jar"/>
- <classpathentry kind="var" path="M2_REPO/jboss/jboss-logging-spi/2.0.2.GA/jboss-logging-spi-2.0.2.GA.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jboss/security/jboss-security-acl/2.0.2.Beta4/jboss-security-acl-2.0.2.Beta4.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jboss/security/jboss-security-acl-impl/2.0.2.CR6/jboss-security-acl-impl-2.0.2.CR6.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jboss/security/jboss-security-spi/2.0.2.CR6/jboss-security-spi-2.0.2.CR6.jar"/>
- <classpathentry kind="var" path="M2_REPO/javax/jcr/jcr/1.0/jcr-1.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.0.1/jmock-2.5.0.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/apache-log4j/log4j/1.2.14/log4j-1.2.14.jar"/>
- <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.13/log4j-1.2.13.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/lucene/lucene-core/2.2.0/lucene-core-2.2.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.4.3/slf4j-api-1.4.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.4.3/slf4j-log4j12-1.4.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/tmatesoft/svnkit/1.1.2/svnkit-1.1.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/apache-slide/webdavlib/2.0/webdavlib-2.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.8.0/xercesImpl-2.8.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/apache-xerces/xml-apis/2.7.1/xml-apis-2.7.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.jar"/>
+<classpath>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
+ <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
+ <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/org/jboss/security/acl-spi/2.0.2.CR6/acl-spi-2.0.2.CR6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/asm/asm/1.5.3/asm-1.5.3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/asm/asm-attrs/1.5.3/asm-attrs-1.5.3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jboss/security/authorization-spi/2.0.2.CR6/authorization-spi-2.0.2.CR6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/cglib/cglib/2.1_3/cglib-2.1_3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/apache-httpclient/commons-httpclient/2.0.2/commons-httpclient-2.0.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/concurrent/concurrent/1.3.4/concurrent-1.3.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/derby/derby/10.2.1.6/derby-10.2.1.6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/net/sf/ehcache/ehcache/1.2.3/ehcache-1.2.3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/ch/ethz/ganymed/ganymed-ssh2/build210/ganymed-ssh2-build210.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate/3.2.4.sp1/hibernate-3.2.4.sp1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-annotations/3.3.0.ga/hibernate-annotations-3.3.0.ga.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-commons-annotations/3.0.0.ga/hibernate-commons-annotations-3.0.0.ga.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-entitymanager/3.3.1.ga/hibernate-entitymanager-3.3.1.ga.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-validator/3.0.0.ga/hibernate-validator-3.0.0.ga.jar"/>
+ <classpathentry kind="var" path="M2_REPO/hsqldb/hsqldb/1.8.0.2/hsqldb-1.8.0.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jboss/security/identity-impl/2.0.2.CR6/identity-impl-2.0.2.CR6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jboss/security/identity-spi/2.0.2.CR6/identity-spi-2.0.2.CR6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-api/1.4/jackrabbit-api-1.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-core/1.4.5/jackrabbit-core-1.4.5.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-jcr-commons/1.4/jackrabbit-jcr-commons-1.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-spi/1.4/jackrabbit-spi-1.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-spi-commons/1.4/jackrabbit-spi-commons-1.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-text-extractors/1.4/jackrabbit-text-extractors-1.4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javassist/javassist/3.3.GA/javassist-3.3.GA.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jboss/jboss-common-core/2.0.2.GA/jboss-common-core-2.0.2.GA.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-common-core/2.2.1.GA/jboss-common-core-2.2.1.GA.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jboss/jboss-common-logging-spi/2.0.4.GA/jboss-common-logging-spi-2.0.4.GA.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jboss/jboss-logging-log4j/2.0.2.GA/jboss-logging-log4j-2.0.2.GA.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jboss/jboss-logging-spi/2.0.2.GA/jboss-logging-spi-2.0.2.GA.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jboss/security/jboss-security-acl/2.0.2.Beta4/jboss-security-acl-2.0.2.Beta4.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jboss/security/jboss-security-acl-impl/2.0.2.CR6/jboss-security-acl-impl-2.0.2.CR6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jboss/security/jboss-security-spi/2.0.2.CR6/jboss-security-spi-2.0.2.CR6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/jcr/jcr/1.0/jcr-1.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.0.1/jmock-2.5.0.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/apache-log4j/log4j/1.2.14/log4j-1.2.14.jar"/>
+ <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.13/log4j-1.2.13.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/lucene/lucene-core/2.2.0/lucene-core-2.2.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.4.3/slf4j-api-1.4.3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-log4j12/1.4.3/slf4j-log4j12-1.4.3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/tmatesoft/svnkit/1.1.2/svnkit-1.1.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/apache-slide/webdavlib/2.0/webdavlib-2.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.8.0/xercesImpl-2.8.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/apache-xerces/xml-apis/2.7.1/xml-apis-2.7.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.jar"/>
</classpath>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-repository/.project
===================================================================
--- labs/jbossrules/trunk/drools-repository/.project 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-repository/.project 2009-01-12 14:11:27 UTC (rev 24649)
@@ -1,13 +1,13 @@
-<projectDescription>
- <name>drools-repository</name>
- <comment>A rule production system</comment>
- <projects/>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
+<projectDescription>
+ <name>drools-repository</name>
+ <comment>A rule production system</comment>
+ <projects/>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
</projectDescription>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-templates/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-templates/.classpath 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-templates/.classpath 2009-01-12 14:11:27 UTC (rev 24649)
@@ -1,20 +1,20 @@
-<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
- <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
- <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
- <classpathentry kind="output" path="target/classes"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
- <classpathentry kind="src" path="/drools-api"/>
- <classpathentry kind="src" path="/drools-compiler"/>
- <classpathentry kind="src" path="/drools-core"/>
- <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.0.1/jmock-2.5.0.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.5.2/joda-time-1.5.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.5/mvel2-2.0.5.jar"/>
+<classpath>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
+ <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
+ <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
+ <classpathentry kind="src" path="/drools-api"/>
+ <classpathentry kind="src" path="/drools-compiler"/>
+ <classpathentry kind="src" path="/drools-core"/>
+ <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.0.1/jmock-2.5.0.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.5.2/joda-time-1.5.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.5/mvel2-2.0.5.jar"/>
</classpath>
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-templates/.project
===================================================================
--- labs/jbossrules/trunk/drools-templates/.project 2009-01-12 12:45:08 UTC (rev 24648)
+++ labs/jbossrules/trunk/drools-templates/.project 2009-01-12 14:11:27 UTC (rev 24649)
@@ -1,17 +1,17 @@
-<projectDescription>
- <name>drools-templates</name>
- <comment>A rule production system</comment>
- <projects>
- <project>drools-api</project>
- <project>drools-compiler</project>
- <project>drools-core</project>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
+<projectDescription>
+ <name>drools-templates</name>
+ <comment>A rule production system</comment>
+ <projects>
+ <project>drools-api</project>
+ <project>drools-compiler</project>
+ <project>drools-core</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
</projectDescription>
\ No newline at end of file
More information about the jboss-svn-commits
mailing list