|
|
@@ -18,25 +18,25 @@ public class Processing extends BaseProcessing {
|
|
|
|
|
|
private int loop = 0;
|
|
|
|
|
|
- protected ProcessingAttributes attributes;
|
|
|
+ protected ProcessingAttributes processingAttributes;
|
|
|
|
|
|
public EntityManagerContainer entityManagerContainer() {
|
|
|
return this.entityManagerContainer;
|
|
|
}
|
|
|
|
|
|
- public Processing(ProcessingAttributes attributes) throws Exception {
|
|
|
- if (null == attributes) {
|
|
|
- this.attributes = new ProcessingAttributes();
|
|
|
+ public Processing(ProcessingAttributes processingAttributes) throws Exception {
|
|
|
+ if (null == processingAttributes) {
|
|
|
+ this.processingAttributes = new ProcessingAttributes();
|
|
|
} else {
|
|
|
- this.attributes = attributes;
|
|
|
+ this.processingAttributes = processingAttributes;
|
|
|
}
|
|
|
this.entityManagerContainer = EntityManagerContainerFactory.instance().create();
|
|
|
}
|
|
|
|
|
|
- public Processing(Integer loop, ProcessingAttributes attributes, EntityManagerContainer entityManagerContainer)
|
|
|
- throws Exception {
|
|
|
+ public Processing(Integer loop, ProcessingAttributes processingAttributes,
|
|
|
+ EntityManagerContainer entityManagerContainer) throws Exception {
|
|
|
this.loop = ++loop;
|
|
|
- this.attributes = attributes;
|
|
|
+ this.processingAttributes = processingAttributes;
|
|
|
this.entityManagerContainer = entityManagerContainer;
|
|
|
if (this.loop > 32) {
|
|
|
throw new Exception("processing too many.");
|
|
|
@@ -54,7 +54,7 @@ public class Processing extends BaseProcessing {
|
|
|
if (null != work) {
|
|
|
switch (work.getWorkStatus()) {
|
|
|
case start:
|
|
|
- workId = this.begin().arrive(workId, processingConfigurator, attributes);
|
|
|
+ workId = this.begin().arrive(workId, processingConfigurator, processingAttributes);
|
|
|
break;
|
|
|
case hanging:
|
|
|
workId = null;
|
|
|
@@ -70,24 +70,24 @@ public class Processing extends BaseProcessing {
|
|
|
List<String> nextLoops = SetUniqueList.setUniqueList(new ArrayList<String>());
|
|
|
/* 强制从arrived开始 */
|
|
|
if (!processingConfigurator.getJoinAtExecute()) {
|
|
|
- workId = this.arrive(workId, processingConfigurator);
|
|
|
+ workId = this.arrive(workId, processingConfigurator, processingAttributes);
|
|
|
}
|
|
|
if (StringUtils.isEmpty(workId)) {
|
|
|
return;
|
|
|
}
|
|
|
- List<String> executed = this.execute(workId, processingConfigurator);
|
|
|
+ List<String> executed = this.execute(workId, processingConfigurator, processingAttributes);
|
|
|
for (String str : executed) {
|
|
|
if (StringUtils.isNotEmpty(str)) {
|
|
|
- List<String> inquired = inquire(str, processingConfigurator);
|
|
|
+ List<String> inquired = inquire(str, processingConfigurator, processingAttributes);
|
|
|
for (String o : inquired) {
|
|
|
- nextLoops.add(arrive(o, processingConfigurator));
|
|
|
+ nextLoops.add(arrive(o, processingConfigurator, processingAttributes));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
for (String str : nextLoops) {
|
|
|
if (StringUtils.isNotEmpty(str)) {
|
|
|
if (processingConfigurator.getContinueLoop()) {
|
|
|
- new Processing(this.loop, attributes, this.entityManagerContainer()).processing(str);
|
|
|
+ new Processing(this.loop, processingAttributes, this.entityManagerContainer()).processing(str);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -98,7 +98,8 @@ public class Processing extends BaseProcessing {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private String arrive(String workId, ProcessingConfigurator processingConfigurator) throws Exception {
|
|
|
+ private String arrive(String workId, ProcessingConfigurator processingConfigurator,
|
|
|
+ ProcessingAttributes processingAttributes) throws Exception {
|
|
|
try {
|
|
|
Work work = null;
|
|
|
work = this.entityManagerContainer().fetch(workId, Work.class,
|
|
|
@@ -109,46 +110,46 @@ public class Processing extends BaseProcessing {
|
|
|
String id = null;
|
|
|
switch (work.getDestinationActivityType()) {
|
|
|
case agent:
|
|
|
- id = this.agent().arrive(workId, processingConfigurator, attributes);
|
|
|
+ id = this.agent().arrive(workId, processingConfigurator, processingAttributes);
|
|
|
break;
|
|
|
case begin:
|
|
|
- id = this.begin().arrive(workId, processingConfigurator, attributes);
|
|
|
+ id = this.begin().arrive(workId, processingConfigurator, processingAttributes);
|
|
|
break;
|
|
|
case cancel:
|
|
|
- id = this.cancel().arrive(workId, processingConfigurator, attributes);
|
|
|
+ id = this.cancel().arrive(workId, processingConfigurator, processingAttributes);
|
|
|
break;
|
|
|
case choice:
|
|
|
- id = this.choice().arrive(workId, processingConfigurator, attributes);
|
|
|
+ id = this.choice().arrive(workId, processingConfigurator, processingAttributes);
|
|
|
break;
|
|
|
case delay:
|
|
|
- id = this.delay().arrive(workId, processingConfigurator, attributes);
|
|
|
+ id = this.delay().arrive(workId, processingConfigurator, processingAttributes);
|
|
|
break;
|
|
|
case embed:
|
|
|
- id = this.embed().arrive(workId, processingConfigurator, attributes);
|
|
|
+ id = this.embed().arrive(workId, processingConfigurator, processingAttributes);
|
|
|
break;
|
|
|
case end:
|
|
|
- id = this.end().arrive(workId, processingConfigurator, attributes);
|
|
|
+ id = this.end().arrive(workId, processingConfigurator, processingAttributes);
|
|
|
break;
|
|
|
case invoke:
|
|
|
- id = this.invoke().arrive(workId, processingConfigurator, attributes);
|
|
|
+ id = this.invoke().arrive(workId, processingConfigurator, processingAttributes);
|
|
|
break;
|
|
|
case manual:
|
|
|
- id = this.manual().arrive(workId, processingConfigurator, attributes);
|
|
|
+ id = this.manual().arrive(workId, processingConfigurator, processingAttributes);
|
|
|
break;
|
|
|
case merge:
|
|
|
- id = this.merge().arrive(workId, processingConfigurator, attributes);
|
|
|
+ id = this.merge().arrive(workId, processingConfigurator, processingAttributes);
|
|
|
break;
|
|
|
case message:
|
|
|
- id = this.message().arrive(workId, processingConfigurator, attributes);
|
|
|
+ id = this.message().arrive(workId, processingConfigurator, processingAttributes);
|
|
|
break;
|
|
|
case parallel:
|
|
|
- id = this.parallel().arrive(workId, processingConfigurator, attributes);
|
|
|
+ id = this.parallel().arrive(workId, processingConfigurator, processingAttributes);
|
|
|
break;
|
|
|
case service:
|
|
|
- id = this.service().arrive(workId, processingConfigurator, attributes);
|
|
|
+ id = this.service().arrive(workId, processingConfigurator, processingAttributes);
|
|
|
break;
|
|
|
case split:
|
|
|
- id = this.split().arrive(workId, processingConfigurator, attributes);
|
|
|
+ id = this.split().arrive(workId, processingConfigurator, processingAttributes);
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
@@ -161,7 +162,8 @@ public class Processing extends BaseProcessing {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private List<String> execute(String workId, ProcessingConfigurator processingConfigurator) throws Exception {
|
|
|
+ private List<String> execute(String workId, ProcessingConfigurator processingConfigurator,
|
|
|
+ ProcessingAttributes processingAttributes) throws Exception {
|
|
|
List<String> executed = new ArrayList<>();
|
|
|
try {
|
|
|
Work work = null;
|
|
|
@@ -172,46 +174,46 @@ public class Processing extends BaseProcessing {
|
|
|
}
|
|
|
switch (work.getActivityType()) {
|
|
|
case agent:
|
|
|
- executed.addAll(this.agent().execute(workId, processingConfigurator, attributes));
|
|
|
+ executed.addAll(this.agent().execute(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
case begin:
|
|
|
- executed.addAll(this.begin().execute(workId, processingConfigurator, attributes));
|
|
|
+ executed.addAll(this.begin().execute(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
case cancel:
|
|
|
- this.cancel().execute(workId, processingConfigurator, attributes);
|
|
|
+ this.cancel().execute(workId, processingConfigurator, processingAttributes);
|
|
|
break;
|
|
|
case choice:
|
|
|
- executed.addAll(this.choice().execute(workId, processingConfigurator, attributes));
|
|
|
+ executed.addAll(this.choice().execute(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
case delay:
|
|
|
- executed.addAll(this.delay().execute(workId, processingConfigurator, attributes));
|
|
|
+ executed.addAll(this.delay().execute(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
case embed:
|
|
|
- executed.addAll(this.embed().execute(workId, processingConfigurator, attributes));
|
|
|
+ executed.addAll(this.embed().execute(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
case end:
|
|
|
- this.end().execute(workId, processingConfigurator, attributes);
|
|
|
+ this.end().execute(workId, processingConfigurator, processingAttributes);
|
|
|
break;
|
|
|
case invoke:
|
|
|
- executed.addAll(this.invoke().execute(workId, processingConfigurator, attributes));
|
|
|
+ executed.addAll(this.invoke().execute(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
case manual:
|
|
|
- executed.addAll(this.manual().execute(workId, processingConfigurator, attributes));
|
|
|
+ executed.addAll(this.manual().execute(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
case merge:
|
|
|
- executed.addAll(this.merge().execute(workId, processingConfigurator, attributes));
|
|
|
+ executed.addAll(this.merge().execute(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
case message:
|
|
|
- executed.addAll(this.message().execute(workId, processingConfigurator, attributes));
|
|
|
+ executed.addAll(this.message().execute(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
case parallel:
|
|
|
- executed.addAll(this.parallel().execute(workId, processingConfigurator, attributes));
|
|
|
+ executed.addAll(this.parallel().execute(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
case service:
|
|
|
- executed.addAll(this.service().execute(workId, processingConfigurator, attributes));
|
|
|
+ executed.addAll(this.service().execute(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
case split:
|
|
|
- executed.addAll(this.split().execute(workId, processingConfigurator, attributes));
|
|
|
+ executed.addAll(this.split().execute(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
@@ -224,7 +226,8 @@ public class Processing extends BaseProcessing {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private List<String> inquire(String workId, ProcessingConfigurator processingConfigurator) throws Exception {
|
|
|
+ private List<String> inquire(String workId, ProcessingConfigurator processingConfigurator,
|
|
|
+ ProcessingAttributes processingAttributes) throws Exception {
|
|
|
try {
|
|
|
List<String> inquired = new ArrayList<>();
|
|
|
Work work = null;
|
|
|
@@ -235,44 +238,44 @@ public class Processing extends BaseProcessing {
|
|
|
}
|
|
|
switch (work.getActivityType()) {
|
|
|
case agent:
|
|
|
- inquired.addAll(this.agent().inquire(workId, processingConfigurator, attributes));
|
|
|
+ inquired.addAll(this.agent().inquire(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
case begin:
|
|
|
- inquired.addAll(this.begin().inquire(workId, processingConfigurator, attributes));
|
|
|
+ inquired.addAll(this.begin().inquire(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
case cancel:
|
|
|
break;
|
|
|
case choice:
|
|
|
- inquired.addAll(this.choice().inquire(workId, processingConfigurator, attributes));
|
|
|
+ inquired.addAll(this.choice().inquire(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
case delay:
|
|
|
- inquired.addAll(this.delay().inquire(workId, processingConfigurator, attributes));
|
|
|
+ inquired.addAll(this.delay().inquire(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
case embed:
|
|
|
- inquired.addAll(this.embed().inquire(workId, processingConfigurator, attributes));
|
|
|
+ inquired.addAll(this.embed().inquire(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
case end:
|
|
|
break;
|
|
|
case invoke:
|
|
|
- inquired.addAll(this.invoke().inquire(workId, processingConfigurator, attributes));
|
|
|
+ inquired.addAll(this.invoke().inquire(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
case manual:
|
|
|
- inquired.addAll(this.manual().inquire(workId, processingConfigurator, attributes));
|
|
|
+ inquired.addAll(this.manual().inquire(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
case merge:
|
|
|
- inquired.addAll(this.merge().inquire(workId, processingConfigurator, attributes));
|
|
|
+ inquired.addAll(this.merge().inquire(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
case message:
|
|
|
- inquired.addAll(this.message().inquire(workId, processingConfigurator, attributes));
|
|
|
+ inquired.addAll(this.message().inquire(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
case parallel:
|
|
|
- inquired.addAll(this.parallel().inquire(workId, processingConfigurator, attributes));
|
|
|
+ inquired.addAll(this.parallel().inquire(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
case service:
|
|
|
- inquired.addAll(this.service().inquire(workId, processingConfigurator, attributes));
|
|
|
+ inquired.addAll(this.service().inquire(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
case split:
|
|
|
- inquired.addAll(this.split().inquire(workId, processingConfigurator, attributes));
|
|
|
+ inquired.addAll(this.split().inquire(workId, processingConfigurator, processingAttributes));
|
|
|
break;
|
|
|
default:
|
|
|
break;
|