improve BPM engine Interface
Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/org.eclipse.osbp.bpm.api.feature/feature.xml b/org.eclipse.osbp.bpm.api.feature/feature.xml
index f79af98..09807e8 100644
--- a/org.eclipse.osbp.bpm.api.feature/feature.xml
+++ b/org.eclipse.osbp.bpm.api.feature/feature.xml
@@ -17,7 +17,7 @@
label="%featureName"
version="0.9.0.qualifier"
provider-name="%providerName"
- plugin="org.eclipse.osbp.bpm.api">
+ plugin="org.eclipse.osbp.license">
<description>
%description
diff --git a/org.eclipse.osbp.bpm.api/src/org/eclipse/osbp/bpm/api/IBPMEngine.java b/org.eclipse.osbp.bpm.api/src/org/eclipse/osbp/bpm/api/IBPMEngine.java
index 400d97f..969f40d 100644
--- a/org.eclipse.osbp.bpm.api/src/org/eclipse/osbp/bpm/api/IBPMEngine.java
+++ b/org.eclipse.osbp.bpm.api/src/org/eclipse/osbp/bpm/api/IBPMEngine.java
@@ -14,16 +14,84 @@
*/
package org.eclipse.osbp.bpm.api;
+import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.eclipse.osbp.ui.api.useraccess.IBlipProcessPermissions;
-
public interface IBPMEngine {
- void clearErrors();
- String getErrors();
- boolean registerProcess(IBlipBPMStartInfo startInfo, String resourceBundlePath, Class<?> bundleClass, IBlipProcessPermissions blipProcessPermissions);
- void startProcess(IBlipBPMStartInfo bpm, Map <String, Object> parameters);
+ static final String BPM_HUMANTASK_LOCALE = "en-US";
+
+ enum BPMResultSeverity {
+ ERROR, WARNING, INFO;
+ }
+ class BPMError {
+ private String resource;
+ private BPMResultSeverity severity;
+ private String message;
+ private int[] lines;
+
+ public BPMError(String resource, int [] lines, int severity, String message) {
+ this.resource = resource;
+ this.lines = lines;
+ this.severity = BPMResultSeverity.values()[severity];
+ this.message = message;
+ }
+
+ public BPMResultSeverity getSeverity() {
+ return severity;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public int[] getLines() {
+ return lines;
+ }
+
+ public String getResource() {
+ return resource;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if(this == obj) {
+ return true;
+ }
+ BPMError bpme = (BPMError)obj;
+ if(this.message.equals(bpme.getMessage()) &&
+ this.resource.equals(bpme.getResource()) &&
+ this.severity.equals(bpme.getSeverity()) &&
+ this.lines.length == bpme.getLines().length) {
+ return true;
+ }
+ return false;
+ }
+
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append(severity.toString());
+ sb.append(" in ");
+ sb.append(resource);
+ sb.append("\n");
+ if(lines.length > 0 && (lines.length != 1 || lines[0] != -1)) {
+ sb.append("in line ");
+ for(int i=0; i<lines.length; i++) {
+ sb.append(String.format("%d ", lines[i]));
+ }
+ sb.append("\n");
+ }
+ sb.append("\n");
+ sb.append(message);
+ return sb.toString();
+ }
+ }
+ void registerProcess(String processId);
+ boolean processHasErrors();
+ List<BPMError> getKnowledgeBuilderErrors();
+ void startProcess(String processId);
+ void signalEvent(String type, Object event);
+ void signalEvent(String type, Object event, long processInstanceId);
String getResourceName(String processId);
void initBPMUsers();
Set<String> getGroups();
@@ -65,13 +133,15 @@
* @param value new values of the variable
*/
void setProcessVariable(Object processInstanceObject, String variable, Object value);
- void disposeKsession(Object ksession);
+
+ void setProcessMetadata(Object processInstanceObject, String variable, Object value);
+
+ Object getProcessMetadata(Object processInstanceObject, String variable);
+
Object reCreateKnowledgeSession(Object taskInformationObject);
void beginTransaction();
void commitTransaction();
void rollbackTransaction();
Object getVariable(Object kcontext, String variable, Object defaultValue);
void setVariable(Object kcontext, String variable, Object value);
- void registerBlipFunctionProvider(IBlipBPMFunctionProvider blipFunctionProvider);
- void unregisterBlipFunctionProvider(IBlipBPMFunctionProvider blipFunctionProvider);
}
diff --git a/org.eclipse.osbp.bpm.api/src/org/eclipse/osbp/bpm/api/IBPMTaskClient.java b/org.eclipse.osbp.bpm.api/src/org/eclipse/osbp/bpm/api/IBPMTaskClient.java
index 1ae65c6..f7f7582 100644
--- a/org.eclipse.osbp.bpm.api/src/org/eclipse/osbp/bpm/api/IBPMTaskClient.java
+++ b/org.eclipse.osbp.bpm.api/src/org/eclipse/osbp/bpm/api/IBPMTaskClient.java
@@ -33,6 +33,7 @@
void unsubscribeTaskEventNotification(BPMTaskEventType type, IBPMTaskEventNotification notification);
IDto getWorkloadDto(Object taskInformationObject);
String getWorkloadDtoFqn(Object taskInformationObject);
+ void setWorkloadDtoFqn(Object taskInformationObject, String workloadDtoFqn);
void setWorkloadDto(Object taskInformationObject, IDto workloadDto);
String getProcessId(BPMTaskSummary taskSummary);
void registerPerspectiveListener(BPMTaskClientPerspectiveListener listener);
diff --git a/org.eclipse.osbp.bpm.api/src/org/eclipse/osbp/bpm/api/IBlipBPMFunctionProvider.java b/org.eclipse.osbp.bpm.api/src/org/eclipse/osbp/bpm/api/IBlipBPMFunctionProvider.java
index 919f30c..a5441b5 100644
--- a/org.eclipse.osbp.bpm.api/src/org/eclipse/osbp/bpm/api/IBlipBPMFunctionProvider.java
+++ b/org.eclipse.osbp.bpm.api/src/org/eclipse/osbp/bpm/api/IBlipBPMFunctionProvider.java
@@ -19,7 +19,5 @@
public interface IBlipBPMFunctionProvider extends IBlipBPMConstants {
Map<String, IBlipBPMStartInfo> getBpmns();
- void startProcess(String processName);
- void startProcess(String processName, Map<String, Object> map);
public IBlipBPMStartInfo getStartInfo(BPMTaskSummary taskSummary);
}