[jboss-svn-commits] JBL Code SVN: r22686 - in labs/jbossrules/trunk/drools-api/src/main/java/org/drools: builder and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Sep 11 10:44:13 EDT 2008
Author: KrisVerlaenen
Date: 2008-09-11 10:44:13 -0400 (Thu, 11 Sep 2008)
New Revision: 22686
Added:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/process/NodeEvent.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/knowledge/definitions/process/Connection.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/knowledge/definitions/process/Node.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/knowledge/definitions/process/NodeContainer.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/knowledge/definitions/process/WorkflowProcess.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/NodeInstance.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/NodeInstanceContainer.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/WorkItem.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/WorkItemHandler.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/WorkItemManager.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/WorkflowProcessInstance.java
Removed:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/model/
Modified:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/KnowledgeBaseFactory.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/KnowledgeSessionFactory.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/StatefulProcessSession.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/ProcessBuilder.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/process/ProcessEvent.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/knowledge/definitions/process/Process.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/ProcessInstance.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ChainedProperties.java
Log:
JBRULES-1734: Drools-API
- extended drools process API
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/KnowledgeBaseFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/KnowledgeBaseFactory.java 2008-09-11 14:36:39 UTC (rev 22685)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/KnowledgeBaseFactory.java 2008-09-11 14:44:13 UTC (rev 22686)
@@ -16,11 +16,12 @@
return provider.newKnowledgeBase();
}
- private static void loadProvider() {
+ @SuppressWarnings("unchecked")
+ private static void loadProvider() {
try {
ChainedProperties properties = new ChainedProperties( "drools-providers.conf" );
String className = properties.getProperty( "KnowledgeSessionProvider", null );
- if ( className != null || className.trim().length() > 0 ) {
+ if ( className != null && className.trim().length() > 0 ) {
Class<KnowledgeBaseProvider> cls = ( Class<KnowledgeBaseProvider> ) Class.forName( className );
setKnowledgeBaseProvider( cls.newInstance() );
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/KnowledgeSessionFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/KnowledgeSessionFactory.java 2008-09-11 14:36:39 UTC (rev 22685)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/KnowledgeSessionFactory.java 2008-09-11 14:44:13 UTC (rev 22686)
@@ -16,11 +16,12 @@
return provider.newStatefulKnowledgeSession();
}
- private static void loadProvider() {
+ @SuppressWarnings("unchecked")
+ private static void loadProvider() {
try {
ChainedProperties properties = new ChainedProperties( "drools-providers.conf" );
String className = properties.getProperty( "KnowledgeSessionProvider", null );
- if ( className != null || className.trim().length() > 0 ) {
+ if ( className != null && className.trim().length() > 0 ) {
Class<KnowledgeSessionProvider> cls = ( Class<KnowledgeSessionProvider> ) Class.forName( className );
setKnowledgeSessionProvider( cls.newInstance() );
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/StatefulProcessSession.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/StatefulProcessSession.java 2008-09-11 14:36:39 UTC (rev 22685)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/StatefulProcessSession.java 2008-09-11 14:44:13 UTC (rev 22686)
@@ -1,8 +1,21 @@
package org.drools;
+import java.util.Collection;
import java.util.Map;
+import org.drools.process.instance.ProcessInstance;
+import org.drools.process.instance.WorkItemManager;
+
public interface StatefulProcessSession {
- void startProcess(String processId);
- void startProcess(String processId, Map<String, Object> parameters);
+
+ ProcessInstance startProcess(String processId);
+
+ ProcessInstance startProcess(String processId, Map<String, Object> parameters);
+
+ Collection<ProcessInstance> getProcessInstances();
+
+ ProcessInstance getProcessInstance(long id);
+
+ WorkItemManager getWorkItemManager();
+
}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/ProcessBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/ProcessBuilder.java 2008-09-11 14:36:39 UTC (rev 22685)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/ProcessBuilder.java 2008-09-11 14:44:13 UTC (rev 22686)
@@ -3,5 +3,7 @@
import java.io.Reader;
public interface ProcessBuilder {
- public void addProcessFromXml(Reader reader);
+
+ void addProcessFromXml(Reader reader);
+
}
Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/process/NodeEvent.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/process/NodeEvent.java (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/process/NodeEvent.java 2008-09-11 14:44:13 UTC (rev 22686)
@@ -0,0 +1,9 @@
+package org.drools.event.process;
+
+import org.drools.process.instance.NodeInstance;
+
+public interface NodeEvent extends ProcessEvent {
+
+ NodeInstance getNodeInstance();
+
+}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/process/ProcessEvent.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/process/ProcessEvent.java 2008-09-11 14:36:39 UTC (rev 22685)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/process/ProcessEvent.java 2008-09-11 14:44:13 UTC (rev 22686)
@@ -19,6 +19,7 @@
import org.drools.process.instance.ProcessInstance;
public interface ProcessEvent {
- public ProcessInstance getProcessInstance();
+
+ ProcessInstance getProcessInstance();
}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/knowledge/definitions/process/Connection.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/knowledge/definitions/process/Connection.java (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/knowledge/definitions/process/Connection.java 2008-09-11 14:44:13 UTC (rev 22686)
@@ -0,0 +1,13 @@
+package org.drools.knowledge.definitions.process;
+
+public interface Connection {
+
+ Node getFrom();
+
+ Node getTo();
+
+ String getFromType();
+
+ String getToType();
+
+}
Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/knowledge/definitions/process/Node.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/knowledge/definitions/process/Node.java (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/knowledge/definitions/process/Node.java 2008-09-11 14:44:13 UTC (rev 22686)
@@ -0,0 +1,18 @@
+package org.drools.knowledge.definitions.process;
+
+import java.util.List;
+import java.util.Map;
+
+public interface Node {
+
+ long getId();
+
+ String getName();
+
+ Map<String, List<Connection>> getIncomingConnections();
+
+ Map<String, List<Connection>> getOutgoingConnections();
+
+ NodeContainer getNodeContainer();
+
+}
Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/knowledge/definitions/process/NodeContainer.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/knowledge/definitions/process/NodeContainer.java (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/knowledge/definitions/process/NodeContainer.java 2008-09-11 14:44:13 UTC (rev 22686)
@@ -0,0 +1,9 @@
+package org.drools.knowledge.definitions.process;
+
+public interface NodeContainer {
+
+ Node[] getNodes();
+
+ Node getNode(long id);
+
+}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/knowledge/definitions/process/Process.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/knowledge/definitions/process/Process.java 2008-09-11 14:36:39 UTC (rev 22685)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/knowledge/definitions/process/Process.java 2008-09-11 14:44:13 UTC (rev 22686)
@@ -1,5 +1,13 @@
package org.drools.knowledge.definitions.process;
public interface Process {
- String getProcessId();
+
+ String getId();
+
+ String getName();
+
+ String getVersion();
+
+ String getPackageName();
+
}
Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/knowledge/definitions/process/WorkflowProcess.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/knowledge/definitions/process/WorkflowProcess.java (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/knowledge/definitions/process/WorkflowProcess.java 2008-09-11 14:44:13 UTC (rev 22686)
@@ -0,0 +1,5 @@
+package org.drools.knowledge.definitions.process;
+
+public interface WorkflowProcess extends Process, NodeContainer {
+
+}
Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/NodeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/NodeInstance.java (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/NodeInstance.java 2008-09-11 14:44:13 UTC (rev 22686)
@@ -0,0 +1,13 @@
+package org.drools.process.instance;
+
+public interface NodeInstance {
+
+ long getId();
+
+ long getNodeId();
+
+ WorkflowProcessInstance getProcessInstance();
+
+ NodeInstanceContainer getNodeInstanceContainer();
+
+}
Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/NodeInstanceContainer.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/NodeInstanceContainer.java (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/NodeInstanceContainer.java 2008-09-11 14:44:13 UTC (rev 22686)
@@ -0,0 +1,9 @@
+package org.drools.process.instance;
+
+import java.util.Collection;
+
+public interface NodeInstanceContainer {
+
+ Collection<NodeInstance> getNodeInstances();
+
+}
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/ProcessInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/ProcessInstance.java 2008-09-11 14:36:39 UTC (rev 22685)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/ProcessInstance.java 2008-09-11 14:44:13 UTC (rev 22686)
@@ -1,22 +1,7 @@
package org.drools.process.instance;
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-public interface ProcessInstance {
+public interface ProcessInstance {
+
int STATE_PENDING = 0;
int STATE_ACTIVE = 1;
int STATE_COMPLETED = 2;
@@ -26,4 +11,7 @@
String getProcessId();
int getState();
+
+ void signalEvent(String type, Object event);
+
}
Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/WorkItem.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/WorkItem.java (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/WorkItem.java 2008-09-11 14:44:13 UTC (rev 22686)
@@ -0,0 +1,26 @@
+package org.drools.process.instance;
+
+import java.util.Map;
+
+public interface WorkItem {
+
+ int PENDING = 0;
+ int ACTIVE = 1;
+ int COMPLETED = 2;
+ int ABORTED = 3;
+
+ long getId();
+
+ String getName();
+
+ int getState();
+
+ Object getParameter(String name);
+ Map<String, Object> getParameters();
+
+ Object getResult(String name);
+ Map<String, Object> getResults();
+
+ long getProcessInstanceId();
+
+}
Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/WorkItemHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/WorkItemHandler.java (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/WorkItemHandler.java 2008-09-11 14:44:13 UTC (rev 22686)
@@ -0,0 +1,9 @@
+package org.drools.process.instance;
+
+public interface WorkItemHandler {
+
+ void executeWorkItem(WorkItem workItem, WorkItemManager manager);
+
+ void abortWorkItem(WorkItem workItem, WorkItemManager manager);
+
+}
Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/WorkItemManager.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/WorkItemManager.java (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/WorkItemManager.java 2008-09-11 14:44:13 UTC (rev 22686)
@@ -0,0 +1,13 @@
+package org.drools.process.instance;
+
+import java.util.Map;
+
+public interface WorkItemManager {
+
+ void completeWorkItem(long id, Map<String, Object> results);
+
+ void abortWorkItem(long id);
+
+ void registerWorkItemHandler(String workItemName, WorkItemHandler handler);
+
+}
Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/WorkflowProcessInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/WorkflowProcessInstance.java (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/process/instance/WorkflowProcessInstance.java 2008-09-11 14:44:13 UTC (rev 22686)
@@ -0,0 +1,5 @@
+package org.drools.process.instance;
+
+public interface WorkflowProcessInstance extends ProcessInstance, NodeInstanceContainer {
+
+}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ChainedProperties.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ChainedProperties.java 2008-09-11 14:36:39 UTC (rev 22685)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ChainedProperties.java 2008-09-11 14:44:13 UTC (rev 22686)
@@ -1,31 +1,24 @@
-/**
- *
- */
package org.drools.util;
+import java.io.Externalizable;
import java.io.File;
import java.io.IOException;
-import java.io.Serializable;
-import java.io.Externalizable;
-import java.io.ObjectOutput;
import java.io.ObjectInput;
+import java.io.ObjectOutput;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Enumeration;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
-public class ChainedProperties
- implements
- Externalizable {
- private List props;
- private List defaultProps;
+public class ChainedProperties implements Externalizable {
+
+ private List<Properties> props;
+ private List<Properties> defaultProps;
public ChainedProperties() {
-
}
public ChainedProperties(String confFileName) {
@@ -50,8 +43,8 @@
}
}
- this.props = new ArrayList();
- this.defaultProps = new ArrayList();
+ this.props = new ArrayList<Properties>();
+ this.defaultProps = new ArrayList<Properties>();
// Properties added in precedence order
@@ -133,9 +126,10 @@
}
}
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- props = (List)in.readObject();
- defaultProps = (List)in.readObject();
+ @SuppressWarnings("unchecked")
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ props = (List<Properties>) in.readObject();
+ defaultProps = (List<Properties>) in.readObject();
}
public void writeExternal(ObjectOutput out) throws IOException {
@@ -143,9 +137,8 @@
out.writeObject(defaultProps);
}
- private Enumeration getResources(String name,
- ClassLoader classLoader) {
- Enumeration enumeration = null;
+ private Enumeration<URL> getResources(String name, ClassLoader classLoader) {
+ Enumeration<URL> enumeration = null;
try {
enumeration = classLoader.getResources( name );
} catch ( IOException e ) {
@@ -161,16 +154,14 @@
public String getProperty(String key,
String defaultValue) {
String value = null;
- for ( Iterator it = this.props.iterator(); it.hasNext(); ) {
- Properties props = (Properties) it.next();
+ for ( Properties props: this.props ) {
value = props.getProperty( key );
if ( value != null ) {
break;
}
}
if ( value == null ) {
- for ( Iterator it = this.defaultProps.iterator(); it.hasNext(); ) {
- Properties props = (Properties) it.next();
+ for ( Properties props: this.defaultProps ) {
value = props.getProperty( key );
if ( value != null ) {
break;
@@ -180,19 +171,17 @@
return (value != null) ? value : defaultValue;
}
- public void mapStartsWith(Map map,
+ public void mapStartsWith(Map<String, String> map,
String startsWith,
boolean includeSubProperties) {
- for ( Iterator it = this.props.iterator(); it.hasNext(); ) {
- Properties props = (Properties) it.next();
+ for ( Properties props: this.props ) {
mapStartsWith( map,
props,
startsWith,
includeSubProperties );
}
- for ( Iterator it = this.defaultProps.iterator(); it.hasNext(); ) {
- Properties props = (Properties) it.next();
+ for ( Properties props: this.defaultProps ) {
mapStartsWith( map,
props,
startsWith,
@@ -200,11 +189,11 @@
}
}
- private void mapStartsWith(Map map,
+ private void mapStartsWith(Map<String, String> map,
Properties properties,
String startsWith,
boolean includeSubProperties) {
- Enumeration enumeration = properties.propertyNames();
+ Enumeration<?> enumeration = properties.propertyNames();
while ( enumeration.hasMoreElements() ) {
String key = (String) enumeration.nextElement();
if ( key.startsWith( startsWith ) ) {
@@ -222,8 +211,8 @@
}
}
- private void loadProperties(Enumeration enumeration,
- List chain) {
+ private void loadProperties(Enumeration<URL> enumeration,
+ List<Properties> chain) {
if ( enumeration == null ) {
return;
}
@@ -236,7 +225,7 @@
}
private void loadProperties(String fileName,
- List chain) {
+ List<Properties> chain) {
if ( fileName != null ) {
File file = new File( fileName );
if ( file != null && file.exists() ) {
@@ -253,7 +242,7 @@
}
private void loadProperties(URL confURL,
- List chain) {
+ List<Properties> chain) {
if ( confURL == null ) {
return;
}
More information about the jboss-svn-commits
mailing list