Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,19 +70,19 @@
"method": "Get",
"transfer": {
"judge": {
"compute": "{output}[id-search-weather][results][0][now][text]",
"computeWith": "晴天",
"variable": "{output}[id-search-weather][results][0][now][text]",
"compareTo": "晴天",
"type": "String",
"expression": "=",

"passTransfer":{
"thanTransfer":{
"input": [
{"name": "info", "value": "北京周边哪里好玩"},
{"name": "key", "value": ""}
],
"to": "id-outing"
},
"nopassTransfer":{
"elseTransfer":{
"input": [
{"name": "info", "value": "红烧肉怎么做"},
{"name": "key", "value": ""}
Expand Down
8 changes: 3 additions & 5 deletions WF-Core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -44,23 +44,21 @@
<artifactId>guava</artifactId>
<version>20.0</version>
</dependency>
<dependency>
<groupId>io.reactivex.rxjava2</groupId>
<artifactId>rxjava</artifactId>
<version>2.0.7</version>
</dependency>

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>

<!--deprecate-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>RELEASE</version>
</dependency>
<!--deprecate-->

</dependencies>

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package org.radrso.workflow.action;

import org.radrso.workflow.constant.WFStatusCode;
import org.radrso.workflow.entity.exception.WFException;
import org.radrso.workflow.function.Consumer;
import org.radrso.workflow.internal.model.Next;

import java.util.Date;

/**
* Created by Rao-Mengnan
* on 2017/10/24.
*/
public class BeforeStepStart implements Consumer<Next> {
@Override
public void accept(Next next) throws Exception {
Date deadline = next.getDeadline();
if (deadline.after(new Date())) {
String msg = String.format("%s - %s", WFStatusCode.INTERRUPT_EXCEPTION.info(), next.getProgress().getInstanceId());
throw new WFException(WFStatusCode.INTERRUPT_EXCEPTION.code(), msg);
}



}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package org.radrso.workflow.action;

import org.radrso.workflow.function.Action;

/**
* Created by Rao-Mengnan
* on 2017/10/24.
*/
public class InterruptAction implements Action {

@Override
public void run() throws Exception {

}
}
33 changes: 33 additions & 0 deletions WF-Core/src/main/java/org/radrso/workflow/action/OnCompletion.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package org.radrso.workflow.action;

import org.radrso.workflow.internal.function.Functions;
import org.radrso.workflow.internal.model.Next;
import org.radrso.workflow.internal.model.WorkflowInstanceInfo;
import org.radrso.workflow.function.Action;
import org.radrso.workflow.handler.FlowStepHandler;

import java.util.List;

/**
* Created by Rao-Mengnan
* on 2017/10/23.
*/
public class OnCompletion implements Action {

private FlowStepHandler handler;
private WorkflowInstanceInfo instance;

public OnCompletion(FlowStepHandler handler, WorkflowInstanceInfo instanceInfo) {
this.handler = handler;
this.instance = instanceInfo;
}

@Override
public void run() throws Exception {
List<String> cursors = handler.getCursor(instance);
for (String cursor : cursors) {
List<Next> nextList = handler.transferTo(cursor, instance);
Functions.submitNext().accept(nextList);
}
}
}
38 changes: 38 additions & 0 deletions WF-Core/src/main/java/org/radrso/workflow/action/OnStepAction.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package org.radrso.workflow.action;

import org.radrso.workflow.constant.WFStatusCode;
import org.radrso.workflow.entity.StatusEnum;
import org.radrso.workflow.entity.exception.WFException;
import org.radrso.workflow.entity.model.StepProgress;
import org.radrso.workflow.internal.model.Next;
import org.radrso.workflow.entity.model.WorkflowResult;
import org.radrso.workflow.entity.schema.items.Step;
import org.radrso.workflow.function.Consumer;
import org.radrso.workflow.handler.RequestHandler;

import java.util.List;
import java.util.Map;

/**
* Created by Rao-Mengnan
* on 2017/10/23.
*/
public class OnStepAction implements Consumer<Next> {

@Override
public void accept(Next next) throws Exception {
Step step = next.getStepInfo();

StepProgress progress = next.getProgress();
List<Map<String, Object>> params = next.getParams();
RequestHandler requestHandler = new RequestHandler(step, params);
WorkflowResult response = requestHandler.handle();

progress.setResult(response);
if (WFStatusCode.isOK(response.getCode())) {
progress.setStatus(StatusEnum.COMPLETED);
} else {
throw new WFException(response.getCode(), response.getMsg());
}
}
}
15 changes: 15 additions & 0 deletions WF-Core/src/main/java/org/radrso/workflow/action/OnStepError.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package org.radrso.workflow.action;

import org.radrso.workflow.function.Consumer;

/**
* Created by Rao-Mengnan
* on 2017/10/23.
*/
public class OnStepError implements Consumer<Throwable> {

@Override
public void accept(Throwable t) throws Exception {

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package org.radrso.workflow.action;

import org.radrso.workflow.function.Consumer;
import org.radrso.workflow.internal.model.Next;

/**
* Created by Rao-Mengnan
* on 2017/10/24.
*/
public class OnStepFinished implements Consumer<Next> {
@Override
public void accept(Next next) throws Exception {

}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.radrso.workflow.internal.actions;
package org.radrso.workflow.annotation;

/**
* Created by rao-mengnan on 2017/5/18.
Expand All @@ -8,5 +8,5 @@ public enum ActionEnum {
ON_STEP_ERROR,
ON_STEP_EXEC,
ON_EXEC_NEXT,
INTERRUPT_AND_CHECK;
INTERRUPT_AND_CHECK
}
40 changes: 0 additions & 40 deletions WF-Core/src/main/java/org/radrso/workflow/base/Commander.java

This file was deleted.

17 changes: 0 additions & 17 deletions WF-Core/src/main/java/org/radrso/workflow/base/Operations.java

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package org.radrso.workflow.constant;

import org.radrso.plugins.FileUtils;
import org.radrso.plugins.JsonUtils;
import org.radrso.workflow.entity.Properties;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
* Created by raomengnan on 17-1-20.
* 工作流引擎中用到的常量和静态方法
*/
public class EngineConstant {
private static final Properties properties;

static {
String path = EngineConstant.class.getResource("/engine-properties.json").getFile();
properties = JsonUtils.loadJsonFile(path, Properties.class);
}

public static final String DEFAULT_ENCODING = "utf-8";
public static final String CONTENT_TYPE_PARAM_NAME = "$content-type";

public static final String PROVIDER_JAR_HOME = FileUtils.getProjectHome() + File.separator + "provider-jars" + File.separator;
public static final String SERVICE_JAR_HOME = FileUtils.getProjectHome() + File.separator + "service-jars" + File.separator;

public static final String SCHEMA_START_SIGN = properties.getSchemaStartSign();
public static final String SCHEMA_FINISH_SIGN = properties.getSchemaFinishSign();
public static final String SCHEMA_INSTANCE_ID_VALUE = properties.getSchemaInstanceIdValue();

public static final String OUTPUT_VALUE = properties.getOutputValue();

public static final String HEADER_PARAMS_ESCAPE = properties.getHeaderParamsEscape();
public static final String VALUES_ESCAPE = properties.getValuesEscape();

private static final Pattern VALUES_ESCAPE_PATTERN = Pattern.compile(VALUES_ESCAPE);

public static String[] matcherValuesEscape(String str){
return matcherValuesEscape(str, 0);
}
public static String[] matcherValuesEscape(String str, int group){
Matcher matcher = VALUES_ESCAPE_PATTERN.matcher(str);
List<String> list = new ArrayList<>();
while (matcher.find())
list.add(matcher.group(group));
if(list.size() == 0)
return new String[]{};
String[] ret = new String[list.size()];
return list.toArray(ret);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public enum ExceptionCode implements Serializable {
INTERRUPT_EXCEPTION(5008, "Interrupt exception"),

NULL_PARAM_EXCEPTION(4031, "JSON object is null"),
CONFIG_PARSE_ERROR(4032, "Can not resolved the params in config "),
CONFIG_PARSE_ERROR(4032, "Can not resolved the params in schema "),

CLASS_NOT_FOUND(4041, "Class not found"),
CLASS_INSTANCE_EXCEPTION(4042, "Class instance exception"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
*/
public class RequestMethodMapping {
public static MethodEnum getMethod(String name) throws RequestException {
name = name.toLowerCase();
name = String.valueOf(name).toLowerCase();
switch (name){
case "get": return MethodEnum.GET;
case "post": return MethodEnum.POST;
Expand Down
Loading