提交 b76df494 编写于 作者: S Salaboy 提交者: Elias Ricken de Medeiros

Update Java API to use builders and payloads (#1947)

Now `ProcessRuntime` and `TaskRuntime` are the entry point for all the available actions and most of the methods are receiving payloads as parameters. I.e `ClaimTaskPayload`, `CompleteTaskPayload`. Payloads can be built by `ProcessPayoadBuilder` and `TaskPayLoadBuilder`.
上级 16a5e9ec
......@@ -21,10 +21,12 @@ import com.fasterxml.jackson.databind.BeanDescription;
import com.fasterxml.jackson.databind.DeserializationConfig;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.Module;
import com.fasterxml.jackson.databind.jsontype.NamedType;
import com.fasterxml.jackson.databind.module.SimpleAbstractTypeResolver;
import com.fasterxml.jackson.databind.module.SimpleModule;
import org.activiti.runtime.api.cmd.Command;
import org.activiti.runtime.api.cmd.result.CommandResult;
import org.activiti.runtime.api.EmptyResult;
import org.activiti.runtime.api.Payload;
import org.activiti.runtime.api.Result;
import org.activiti.runtime.api.model.VariableInstance;
import org.activiti.runtime.api.model.impl.VariableInstanceImpl;
import org.springframework.context.annotation.Bean;
......@@ -40,13 +42,14 @@ public class CommonModelAutoConfiguration {
public Module customizeCommonModelObjectMapper() {
SimpleModule module = new SimpleModule("mapCommonModelInterfaces",
Version.unknownVersion());
SimpleAbstractTypeResolver resolver = new SimpleAbstractTypeResolver(){
SimpleAbstractTypeResolver resolver = new SimpleAbstractTypeResolver() {
//this is a workaround for https://github.com/FasterXML/jackson-databind/issues/2019
//once version 2.9.6 is related we can remove this @override method
@Override
public JavaType resolveAbstractType(DeserializationConfig config,
BeanDescription typeDesc) {
return findTypeMapping(config, typeDesc.getType());
return findTypeMapping(config,
typeDesc.getType());
}
};
......@@ -54,9 +57,15 @@ public class CommonModelAutoConfiguration {
VariableInstanceImpl.class);
module.setAbstractTypes(resolver);
module.setMixInAnnotation(Command.class, CommandMixin.class);
module.setMixInAnnotation(CommandResult.class, CommandResultMixin.class);
module.setMixInAnnotation(Payload.class,
PayloadMixIn.class);
module.setMixInAnnotation(Result.class,
ResultMixIn.class);
module.registerSubtypes(new NamedType(EmptyResult.class,
EmptyResult.class.getSimpleName()));
return module;
}
}
......@@ -16,12 +16,17 @@
package org.activiti.runtime.conf;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import static com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY;
import static com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME;
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "command.commandType")
public class CommandResultMixin {
use = NAME,
include = PROPERTY,
property = "payloadType")
@JsonIgnoreProperties(ignoreUnknown = true)
public class PayloadMixIn {
}
......@@ -16,12 +16,17 @@
package org.activiti.runtime.conf;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import static com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY;
import static com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME;
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.EXISTING_PROPERTY,
property = "commandType")
public class CommandMixin {
use = NAME,
include = PROPERTY,
property = "resultType")
@JsonIgnoreProperties(ignoreUnknown = true)
public class ResultMixIn {
}
......@@ -14,14 +14,15 @@
* limitations under the License.
*/
package org.activiti.runtime.api.cmd.result;
package org.activiti.runtime.api;
import org.activiti.runtime.api.cmd.Command;
public class EmptyResult extends Result<Void> {
public interface CommandResult<T extends Command<?>> {
String getId();
T getCommand();
public EmptyResult() {
}
public EmptyResult(Payload payload) {
super(payload,
null);
}
}
package org.activiti.runtime.api;
public interface Payload {
String getId();
}
package org.activiti.runtime.api;
public abstract class Result<T> {
private Payload payload;
private T entity;
public Result() {
}
public Result(Payload payload,
T entity) {
this.payload = payload;
this.entity = entity;
}
public Payload getPayload() {
return payload;
}
public T getEntity() {
return entity;
}
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd;
public interface Command<COMMAND_TYPE extends Enum<?>> {
String getId();
COMMAND_TYPE getCommandType();
}
......@@ -16,13 +16,14 @@
package org.activiti.runtime.api.conf;
import java.util.Collections;
import java.util.List;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.delegate.event.ActivitiEventType;
import org.activiti.runtime.api.event.VariableEventListener;
import org.activiti.runtime.api.event.VariableCreated;
import org.activiti.runtime.api.event.VariableDeleted;
import org.activiti.runtime.api.event.VariableEventListener;
import org.activiti.runtime.api.event.VariableUpdated;
import org.activiti.runtime.api.event.impl.ToVariableCreatedConverter;
import org.activiti.runtime.api.event.impl.ToVariableDeletedConverter;
......@@ -48,19 +49,23 @@ public class CommonRuntimeAutoConfiguration {
@Bean
public InitializingBean registerVariableCreatedListenerDelegate(RuntimeService runtimeService,
@Autowired(required = false) List<VariableEventListener<VariableCreated>> listeners){
return () -> runtimeService.addEventListener(new VariableCreatedListenerDelegate(listeners, new ToVariableCreatedConverter()), ActivitiEventType.VARIABLE_CREATED);
return () -> runtimeService.addEventListener(new VariableCreatedListenerDelegate(getInitializedListeners(listeners), new ToVariableCreatedConverter()), ActivitiEventType.VARIABLE_CREATED);
}
private <T> List<T> getInitializedListeners(List<T> eventListeners) {
return eventListeners != null ? eventListeners : Collections.emptyList();
}
@Bean
public InitializingBean registerVariableUpdatedListenerDelegate(RuntimeService runtimeService,
@Autowired(required = false) List<VariableEventListener<VariableUpdated>> listeners){
return () -> runtimeService.addEventListener(new VariableUpdatedListenerDelegate(listeners, new ToVariableUpdatedConverter()), ActivitiEventType.VARIABLE_UPDATED);
return () -> runtimeService.addEventListener(new VariableUpdatedListenerDelegate(getInitializedListeners(listeners), new ToVariableUpdatedConverter()), ActivitiEventType.VARIABLE_UPDATED);
}
@Bean
public InitializingBean registerVariableDeletedListenerDelegate(RuntimeService runtimeService,
@Autowired(required = false) List<VariableEventListener<VariableDeleted>> listeners){
return () -> runtimeService.addEventListener(new VariableDeletedListenerDelegate(listeners, new ToVariableDeletedConverter()), ActivitiEventType.VARIABLE_DELETED);
return () -> runtimeService.addEventListener(new VariableDeletedListenerDelegate(getInitializedListeners(listeners), new ToVariableDeletedConverter()), ActivitiEventType.VARIABLE_DELETED);
}
}
......@@ -42,8 +42,10 @@ public class VariableCreatedListenerDelegate implements ActivitiEventListener {
if (event instanceof ActivitiVariableEvent) {
converter.from((ActivitiVariableEvent) event)
.ifPresent(convertedEvent -> {
for (VariableEventListener<VariableCreated> listener : listeners) {
listener.onEvent(convertedEvent);
if(listeners != null) {
for (VariableEventListener<VariableCreated> listener : listeners) {
listener.onEvent(convertedEvent);
}
}
});
}
......
......@@ -42,8 +42,10 @@ public class VariableDeletedListenerDelegate implements ActivitiEventListener {
if (event instanceof ActivitiVariableEvent) {
converter.from((ActivitiVariableEvent) event)
.ifPresent(convertedEvent -> {
for (VariableEventListener<VariableDeleted> listener : listeners) {
listener.onEvent(convertedEvent);
if(listeners != null) {
for (VariableEventListener<VariableDeleted> listener : listeners) {
listener.onEvent(convertedEvent);
}
}
});
}
......
......@@ -42,8 +42,10 @@ public class VariableUpdatedListenerDelegate implements ActivitiEventListener {
if (event instanceof ActivitiVariableEvent) {
converter.from((ActivitiVariableEvent) event)
.ifPresent(convertedEvent -> {
for (VariableEventListener<VariableUpdated> listener : listeners) {
listener.onEvent(convertedEvent);
if(listeners != null) {
for (VariableEventListener<VariableUpdated> listener : listeners) {
listener.onEvent(convertedEvent);
}
}
});
}
......
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd.impl;
import org.activiti.runtime.api.cmd.ProcessCommands;
import org.activiti.runtime.api.cmd.ResumeProcess;
public class ResumeProcessImpl extends CommandImpl<ProcessCommands> implements ResumeProcess {
private String processInstanceId;
private ProcessCommands commandType = ProcessCommands.RESUME_PROCESS;
public ResumeProcessImpl() {
super();
}
public ResumeProcessImpl(String processInstanceId) {
this.processInstanceId = processInstanceId;
}
@Override
public String getProcessInstanceId() {
return processInstanceId;
}
@Override
public ProcessCommands getCommandType() {
return commandType;
}
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd.impl;
import java.util.Map;
import org.activiti.runtime.api.cmd.ProcessCommands;
import org.activiti.runtime.api.cmd.RuntimeCommands;
import org.activiti.runtime.api.cmd.SendSignal;
public class SendSignalImpl extends CommandImpl<RuntimeCommands> implements SendSignal {
private String name;
private Map<String, Object> inputVariables;
private RuntimeCommands commandType = RuntimeCommands.SEND_SIGNAL;
public SendSignalImpl() {
}
public SendSignalImpl(String name) {
this.name = name;
}
public SendSignalImpl(String name,
Map<String, Object> inputVariables) {
this(name);
this.inputVariables = inputVariables;
}
@Override
public String getName() {
return name;
}
@Override
public Map<String, Object> getInputVariables() {
return inputVariables;
}
@Override
public RuntimeCommands getCommandType() {
return commandType;
}
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd.impl;
import java.util.Map;
import org.activiti.runtime.api.cmd.ProcessCommands;
import org.activiti.runtime.api.cmd.RuntimeCommands;
import org.activiti.runtime.api.cmd.SetProcessVariables;
public class SetProcessVariablesImpl extends CommandImpl<ProcessCommands> implements SetProcessVariables {
private String processInstanceId;
private Map<String, Object> variables;
private ProcessCommands commandType = ProcessCommands.SET_PROCESS_VARIABLES;
public SetProcessVariablesImpl() {
}
public SetProcessVariablesImpl(String processInstanceId,
Map<String, Object> variables) {
this.processInstanceId = processInstanceId;
this.variables = variables;
}
@Override
public Map<String, Object> getVariables() {
return variables;
}
@Override
public String getProcessInstanceId() {
return processInstanceId;
}
@Override
public ProcessCommands getCommandType() {
return commandType;
}
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd.result.impl;
import org.activiti.runtime.api.cmd.RemoveProcessVariables;
import org.activiti.runtime.api.cmd.result.RemoveProcessVariablesResult;
public class RemoveProcessVariablesResultImpl extends CommandResultImpl<RemoveProcessVariables> implements RemoveProcessVariablesResult {
public RemoveProcessVariablesResultImpl() {
}
public RemoveProcessVariablesResultImpl(RemoveProcessVariables command) {
super(command);
}
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd.result.impl;
import org.activiti.runtime.api.cmd.ResumeProcess;
import org.activiti.runtime.api.cmd.result.ResumeProcessResult;
public class ResumeProcessResultImpl extends CommandResultImpl<ResumeProcess> implements ResumeProcessResult {
public ResumeProcessResultImpl() {
super();
}
public ResumeProcessResultImpl(ResumeProcess command) {
super(command);
}
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd.result.impl;
import org.activiti.runtime.api.cmd.SendSignal;
import org.activiti.runtime.api.cmd.result.SendSignalResult;
public class SendSignalResultImpl extends CommandResultImpl<SendSignal> implements SendSignalResult {
public SendSignalResultImpl() {
}
public SendSignalResultImpl(SendSignal command) {
super(command);
}
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd.result.impl;
import org.activiti.runtime.api.cmd.SetProcessVariables;
import org.activiti.runtime.api.cmd.SetProcessVariablesResult;
public class SetProcessVariablesResultImpl extends CommandResultImpl<SetProcessVariables> implements SetProcessVariablesResult {
public SetProcessVariablesResultImpl() {
}
public SetProcessVariablesResultImpl(SetProcessVariables command) {
super(command);
}
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd.result.impl;
import org.activiti.runtime.api.cmd.StartProcess;
import org.activiti.runtime.api.cmd.result.StartProcessResult;
import org.activiti.runtime.api.model.ProcessInstance;
public class StartProcessResultImpl extends CommandResultImpl<StartProcess> implements StartProcessResult {
private ProcessInstance processInstance;
public StartProcessResultImpl() {
super();
}
public StartProcessResultImpl(StartProcess command, ProcessInstance processInstance) {
super(command);
this.processInstance = processInstance;
}
@Override
public ProcessInstance getProcessInstance() {
return processInstance;
}
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd.result.impl;
import org.activiti.runtime.api.cmd.SuspendProcess;
import org.activiti.runtime.api.cmd.result.SuspendProcessResult;
public class SuspendProcessResultImpl extends CommandResultImpl<SuspendProcess> implements SuspendProcessResult {
public SuspendProcessResultImpl() {
super();
}
public SuspendProcessResultImpl(SuspendProcess command) {
super(command);
}
}
......@@ -101,4 +101,15 @@ public class ProcessDefinitionImpl implements ProcessDefinition {
version,
key);
}
@Override
public String toString() {
return "ProcessDefinition{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", key='" + key + '\'' +
", description='" + description + '\'' +
", version=" + version +
'}';
}
}
......@@ -14,40 +14,27 @@
* limitations under the License.
*/
package org.activiti.runtime.api.cmd.impl;
package org.activiti.runtime.api.model.impl;
import java.util.Map;
import java.util.List;
import org.activiti.runtime.api.cmd.ProcessCommands;
import org.activiti.runtime.api.cmd.StartProcess;
import org.activiti.runtime.api.model.ProcessDefinitionMeta;
public class StartProcessImpl extends CommandImpl<ProcessCommands> implements StartProcess {
public class ProcessDefinitionMetaImpl implements ProcessDefinitionMeta {
private String processDefinitionKey;
private String processDefinitionId;
private Map<String, Object> variables;
private String businessKey;
private ProcessCommands commandType = ProcessCommands.START_PROCESS;
private List<String> usersIds;
private List<String> groupIds;
private List<String> connectorsIds;
public StartProcessImpl() {
super();
public ProcessDefinitionMetaImpl() {
}
public StartProcessImpl(String processDefinitionId) {
this.processDefinitionId = processDefinitionId;
}
public StartProcessImpl(String processDefinitionId,
Map<String, Object> variables) {
this(processDefinitionId);
this.variables = variables;
public ProcessDefinitionMetaImpl(String processDefinitionKey) {
this.processDefinitionKey = processDefinitionKey;
}
@Override
public String getProcessInstanceId() {
return null; // we don't need the process definition id for starting a new process
}
public String getProcessDefinitionKey() {
return processDefinitionKey;
}
......@@ -56,24 +43,27 @@ public class StartProcessImpl extends CommandImpl<ProcessCommands> implements St
this.processDefinitionKey = processDefinitionKey;
}
public String getProcessDefinitionId() {
return processDefinitionId;
public List<String> getUsersIds() {
return usersIds;
}
public Map<String, Object> getVariables() {
return variables;
public void setUsersIds(List<String> usersIds) {
this.usersIds = usersIds;
}
public String getBusinessKey() {
return businessKey;
public List<String> getGroupIds() {
return groupIds;
}
public void setBusinessKey(String businessKey) {
this.businessKey = businessKey;
public void setGroupIds(List<String> groupIds) {
this.groupIds = groupIds;
}
@Override
public ProcessCommands getCommandType() {
return commandType;
public List<String> getConnectorsIds() {
return connectorsIds;
}
public void setConnectorsIds(List<String> connectorsIds) {
this.connectorsIds = connectorsIds;
}
}
......@@ -153,4 +153,19 @@ public class ProcessInstanceImpl implements ProcessInstance {
businessKey,
status);
}
@Override
public String toString() {
return "ProcessInstance{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", description='" + description + '\'' +
", processDefinitionId='" + processDefinitionId + '\'' +
", processDefinitionKey='" + processDefinitionKey + '\'' +
", initiator='" + initiator + '\'' +
", startDate=" + startDate +
", businessKey='" + businessKey + '\'' +
", status=" + status +
'}';
}
}
......@@ -14,21 +14,21 @@
* limitations under the License.
*/
package org.activiti.runtime.api.cmd.impl;
package org.activiti.runtime.api.model.impl;
import org.activiti.runtime.api.cmd.ProcessCommands;
import org.activiti.runtime.api.cmd.SuspendProcess;
import java.util.List;
public class SuspendProcessImpl extends CommandImpl<ProcessCommands> implements SuspendProcess {
import org.activiti.runtime.api.model.ProcessInstanceMeta;
public class ProcessInstanceMetaImpl implements ProcessInstanceMeta {
private String processInstanceId;
private ProcessCommands commandType = ProcessCommands.SUSPEND_PROCESS;
private List<String> activeActivitiesIds;
public SuspendProcessImpl() {
super();
public ProcessInstanceMetaImpl() {
}
public SuspendProcessImpl(String processInstanceId) {
public ProcessInstanceMetaImpl(String processInstanceId) {
this.processInstanceId = processInstanceId;
}
......@@ -37,8 +37,16 @@ public class SuspendProcessImpl extends CommandImpl<ProcessCommands> implements
return processInstanceId;
}
public void setProcessInstanceId(String processInstanceId) {
this.processInstanceId = processInstanceId;
}
@Override
public ProcessCommands getCommandType() {
return commandType;
public List<String> getActiveActivitiesIds() {
return activeActivitiesIds;
}
public void setActiveActivitiesIds(List<String> activeActivitiesIds) {
this.activeActivitiesIds = activeActivitiesIds;
}
}
......@@ -24,20 +24,6 @@ import com.fasterxml.jackson.databind.Module;
import com.fasterxml.jackson.databind.jsontype.NamedType;
import com.fasterxml.jackson.databind.module.SimpleAbstractTypeResolver;
import com.fasterxml.jackson.databind.module.SimpleModule;
import org.activiti.runtime.api.cmd.ProcessCommands;
import org.activiti.runtime.api.cmd.RuntimeCommands;
import org.activiti.runtime.api.cmd.impl.RemoveProcessVariablesImpl;
import org.activiti.runtime.api.cmd.impl.ResumeProcessImpl;
import org.activiti.runtime.api.cmd.impl.SendSignalImpl;
import org.activiti.runtime.api.cmd.impl.SetProcessVariablesImpl;
import org.activiti.runtime.api.cmd.impl.StartProcessImpl;
import org.activiti.runtime.api.cmd.impl.SuspendProcessImpl;
import org.activiti.runtime.api.cmd.result.impl.RemoveProcessVariablesResultImpl;
import org.activiti.runtime.api.cmd.result.impl.ResumeProcessResultImpl;
import org.activiti.runtime.api.cmd.result.impl.SendSignalResultImpl;
import org.activiti.runtime.api.cmd.result.impl.SetProcessVariablesResultImpl;
import org.activiti.runtime.api.cmd.result.impl.StartProcessResultImpl;
import org.activiti.runtime.api.cmd.result.impl.SuspendProcessResultImpl;
import org.activiti.runtime.api.model.BPMNActivity;
import org.activiti.runtime.api.model.IntegrationContext;
import org.activiti.runtime.api.model.ProcessDefinition;
......@@ -48,6 +34,17 @@ import org.activiti.runtime.api.model.impl.IntegrationContextImpl;
import org.activiti.runtime.api.model.impl.ProcessDefinitionImpl;
import org.activiti.runtime.api.model.impl.ProcessInstanceImpl;
import org.activiti.runtime.api.model.impl.SequenceFlowImpl;
import org.activiti.runtime.api.model.payloads.DeleteProcessPayload;
import org.activiti.runtime.api.model.payloads.GetProcessDefinitionsPayload;
import org.activiti.runtime.api.model.payloads.GetProcessInstancesPayload;
import org.activiti.runtime.api.model.payloads.GetVariablesPayload;
import org.activiti.runtime.api.model.payloads.RemoveProcessVariablesPayload;
import org.activiti.runtime.api.model.payloads.ResumeProcessPayload;
import org.activiti.runtime.api.model.payloads.SetProcessVariablesPayload;
import org.activiti.runtime.api.model.payloads.SignalPayload;
import org.activiti.runtime.api.model.payloads.StartProcessPayload;
import org.activiti.runtime.api.model.payloads.SuspendProcessPayload;
import org.activiti.runtime.api.model.results.ProcessInstanceResult;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
import org.springframework.context.annotation.Bean;
......@@ -81,39 +78,32 @@ public class ProcessModelAutoConfiguration {
ProcessDefinitionImpl.class);
resolver.addMapping(SequenceFlow.class,
SequenceFlowImpl.class);
resolver.addMapping(IntegrationContext.class,
IntegrationContextImpl.class);
module.registerSubtypes(new NamedType(StartProcessImpl.class,
ProcessCommands.START_PROCESS.name()));
module.registerSubtypes(new NamedType(StartProcessResultImpl.class,
ProcessCommands.START_PROCESS.name()));
module.registerSubtypes(new NamedType(SuspendProcessImpl.class,
ProcessCommands.SUSPEND_PROCESS.name()));
module.registerSubtypes(new NamedType(SuspendProcessResultImpl.class,
ProcessCommands.SUSPEND_PROCESS.name()));
module.registerSubtypes(new NamedType(ResumeProcessImpl.class,
ProcessCommands.RESUME_PROCESS.name()));
module.registerSubtypes(new NamedType(ResumeProcessResultImpl.class,
ProcessCommands.RESUME_PROCESS.name()));
module.registerSubtypes(new NamedType(SetProcessVariablesImpl.class,
ProcessCommands.SET_PROCESS_VARIABLES.name()));
module.registerSubtypes(new NamedType(SetProcessVariablesResultImpl.class,
ProcessCommands.SET_PROCESS_VARIABLES.name()));
module.registerSubtypes(new NamedType(RemoveProcessVariablesImpl.class,
ProcessCommands.REMOVE_PROCESS_VARIABLES.name()));
module.registerSubtypes(new NamedType(RemoveProcessVariablesResultImpl.class,
ProcessCommands.REMOVE_PROCESS_VARIABLES.name()));
module.registerSubtypes(new NamedType(ProcessInstanceResult.class,
ProcessInstanceResult.class.getSimpleName()));
module.registerSubtypes(new NamedType(SendSignalImpl.class,
RuntimeCommands.SEND_SIGNAL.name()));
module.registerSubtypes(new NamedType(SendSignalResultImpl.class,
RuntimeCommands.SEND_SIGNAL.name()));
module.registerSubtypes(new NamedType(DeleteProcessPayload.class,
DeleteProcessPayload.class.getSimpleName()));
module.registerSubtypes(new NamedType(GetProcessDefinitionsPayload.class,
GetProcessDefinitionsPayload.class.getSimpleName()));
module.registerSubtypes(new NamedType(GetProcessInstancesPayload.class,
GetProcessInstancesPayload.class.getSimpleName()));
module.registerSubtypes(new NamedType(GetVariablesPayload.class,
GetVariablesPayload.class.getSimpleName()));
module.registerSubtypes(new NamedType(RemoveProcessVariablesPayload.class,
RemoveProcessVariablesPayload.class.getSimpleName()));
module.registerSubtypes(new NamedType(SetProcessVariablesPayload.class,
SetProcessVariablesPayload.class.getSimpleName()));
module.registerSubtypes(new NamedType(SignalPayload.class,
SignalPayload.class.getSimpleName()));
module.registerSubtypes(new NamedType(StartProcessPayload.class,
StartProcessPayload.class.getSimpleName()));
module.registerSubtypes(new NamedType(SuspendProcessPayload.class,
SuspendProcessPayload.class.getSimpleName()));
module.registerSubtypes(new NamedType(ResumeProcessPayload.class,
ResumeProcessPayload.class.getSimpleName()));
module.setAbstractTypes(resolver);
return module;
......
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd;
public enum ProcessCommands {
START_PROCESS,
SUSPEND_PROCESS,
RESUME_PROCESS,
SET_PROCESS_VARIABLES,
REMOVE_PROCESS_VARIABLES
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd;
import java.util.List;
public interface RemoveProcessVariables extends ProcessCommand{
List<String> getVariableNames();
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd;
public interface ResumeProcess extends ProcessCommand {
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd;
public enum RuntimeCommands {
SEND_SIGNAL
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd;
import java.util.Map;
public interface SendSignal extends Command<RuntimeCommands> {
String getName();
Map<String, Object> getInputVariables();
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd;
import java.util.Map;
public interface SetProcessVariables extends ProcessCommand {
Map<String, Object> getVariables();
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd;
import org.activiti.runtime.api.cmd.result.CommandResult;
public interface SetProcessVariablesResult extends CommandResult<SetProcessVariables> {
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd;
import java.util.Map;
public interface StartProcess extends ProcessCommand {
String getProcessDefinitionKey();
String getProcessDefinitionId();
Map<String, Object> getVariables();
String getBusinessKey();
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd;
public interface SuspendProcess extends ProcessCommand {
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd.result;
import org.activiti.runtime.api.cmd.RemoveProcessVariables;
public interface RemoveProcessVariablesResult extends CommandResult<RemoveProcessVariables> {
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd.result;
import org.activiti.runtime.api.cmd.ResumeProcess;
public interface ResumeProcessResult extends CommandResult<ResumeProcess> {
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd.result;
import org.activiti.runtime.api.cmd.SendSignal;
public interface SendSignalResult extends CommandResult<SendSignal> {
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd.result;
import org.activiti.runtime.api.cmd.StartProcess;
import org.activiti.runtime.api.model.ProcessInstance;
public interface StartProcessResult extends CommandResult<StartProcess> {
ProcessInstance getProcessInstance();
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd.result;
import org.activiti.runtime.api.cmd.SuspendProcess;
public interface SuspendProcessResult extends CommandResult<SuspendProcess> {
}
......@@ -14,9 +14,12 @@
* limitations under the License.
*/
package org.activiti.runtime.api.cmd;
package org.activiti.runtime.api.model;
public interface ReleaseTask extends TaskCommand {
public interface ProcessDefinitionMeta {
String getProcessDefinitionKey();
}
}
\ No newline at end of file
......@@ -14,8 +14,13 @@
* limitations under the License.
*/
package org.activiti.runtime.api.cmd;
package org.activiti.runtime.api.model;
import java.util.List;
public interface ProcessInstanceMeta {
public interface ProcessCommand extends Command<ProcessCommands> {
String getProcessInstanceId();
List<String> getActiveActivitiesIds();
}
package org.activiti.runtime.api.model.builders;
import org.activiti.runtime.api.model.ProcessInstance;
import org.activiti.runtime.api.model.payloads.DeleteProcessPayload;
public class DeleteProcessPayloadBuilder {
private String processInstanceId;
private String reason;
public DeleteProcessPayloadBuilder withProcessInstanceId(String processDefinitionId) {
this.processInstanceId = processDefinitionId;
return this;
}
public DeleteProcessPayloadBuilder withReason(String reason) {
this.reason = reason;
return this;
}
public DeleteProcessPayloadBuilder withProcessInstance(ProcessInstance processInstance) {
this.processInstanceId = processInstance.getId();
return this;
}
public DeleteProcessPayload build() {
return new DeleteProcessPayload(processInstanceId,
reason);
}
}
package org.activiti.runtime.api.model.builders;
import java.util.HashSet;
import java.util.Set;
import org.activiti.runtime.api.model.payloads.GetProcessDefinitionsPayload;
public class GetProcessDefinitionsPayloadBuilder {
private String processDefinitionId;
private Set<String> processDefinitionKeys;
public GetProcessDefinitionsPayloadBuilder withProcessDefinitionKeys(Set<String> processDefinitionKeys) {
this.processDefinitionKeys = processDefinitionKeys;
return this;
}
public GetProcessDefinitionsPayloadBuilder withProcessDefinitionId(String processDefinitionId) {
this.processDefinitionId = processDefinitionId;
return this;
}
public GetProcessDefinitionsPayloadBuilder withProcessDefinitionKey(String processDefinitionKey) {
if (processDefinitionKeys == null) {
processDefinitionKeys = new HashSet<>();
}
processDefinitionKeys.add(processDefinitionKey);
return this;
}
public GetProcessDefinitionsPayload build() {
return new GetProcessDefinitionsPayload(processDefinitionId, processDefinitionKeys);
}
}
package org.activiti.runtime.api.model.builders;
import java.util.HashSet;
import java.util.Set;
import org.activiti.runtime.api.model.payloads.GetProcessInstancesPayload;
public class GetProcessInstancesPayloadBuilder {
private String businessKey;
private Set<String> processDefinitionKeys;
public GetProcessInstancesPayloadBuilder withBusinessKey(String businessKey) {
this.businessKey = businessKey;
return this;
}
public GetProcessInstancesPayloadBuilder withProcessDefinitionKeys(Set<String> processDefinitionKeys) {
this.processDefinitionKeys = processDefinitionKeys;
return this;
}
public GetProcessInstancesPayloadBuilder withProcessDefinitionKey(String processDefinitionKey) {
if (processDefinitionKeys == null) {
processDefinitionKeys = new HashSet<>();
}
processDefinitionKeys.add(processDefinitionKey);
return this;
}
public GetProcessInstancesPayload build() {
GetProcessInstancesPayload getProcessInstancesPayload = new GetProcessInstancesPayload();
getProcessInstancesPayload.setBusinessKey(businessKey);
getProcessInstancesPayload.setProcessDefinitionKeys(processDefinitionKeys);
return getProcessInstancesPayload;
}
}
package org.activiti.runtime.api.model.builders;
import org.activiti.runtime.api.model.ProcessInstance;
import org.activiti.runtime.api.model.payloads.GetVariablesPayload;
public class GetVariablesPayloadBuilder {
private String processInstanceId;
private boolean localOnly = false;
public GetVariablesPayloadBuilder withProcessInstanceId(String processInstanceId) {
this.processInstanceId = processInstanceId;
return this;
}
public GetVariablesPayloadBuilder withProcessInstance(ProcessInstance processInstance) {
this.processInstanceId = processInstance.getId();
return this;
}
public GetVariablesPayloadBuilder localOnly() {
this.localOnly = true;
return this;
}
public GetVariablesPayload build() {
return new GetVariablesPayload(processInstanceId, localOnly);
}
}
package org.activiti.runtime.api.model.builders;
import org.activiti.runtime.api.model.ProcessInstance;
import org.activiti.runtime.api.model.payloads.DeleteProcessPayload;
import org.activiti.runtime.api.model.payloads.ResumeProcessPayload;
import org.activiti.runtime.api.model.payloads.SuspendProcessPayload;
public class ProcessPayloadBuilder {
public static StartProcessPayloadBuilder start() {
return new StartProcessPayloadBuilder();
}
public static DeleteProcessPayloadBuilder delete() {
return new DeleteProcessPayloadBuilder();
}
public static SuspendProcessPayloadBuilder suspend() {
return new SuspendProcessPayloadBuilder();
}
public static ResumeProcessPayloadBuilder resume() {
return new ResumeProcessPayloadBuilder();
}
public static GetVariablesPayloadBuilder variables() {
return new GetVariablesPayloadBuilder();
}
public static SetVariablesPayloadBuilder setVariables() {
return new SetVariablesPayloadBuilder();
}
public static RemoveVariablesPayloadBuilder removeVariables() {
return new RemoveVariablesPayloadBuilder();
}
public static SignalPayloadBuilder signal() {
return new SignalPayloadBuilder();
}
public static GetProcessDefinitionsPayloadBuilder processDefinitions() {
return new GetProcessDefinitionsPayloadBuilder();
}
public static GetProcessInstancesPayloadBuilder processInstances() {
return new GetProcessInstancesPayloadBuilder();
}
/* shortcuts - This needs to be justified and validated before adding any new one*/
public static SuspendProcessPayload suspend(String processInstanceId) {
return new SuspendProcessPayloadBuilder().withProcessInstanceId(processInstanceId).build();
}
public static SuspendProcessPayload suspend(ProcessInstance processInstance) {
return new SuspendProcessPayloadBuilder().withProcessInstance(processInstance).build();
}
public static ResumeProcessPayload resume(String processInstanceId) {
return new ResumeProcessPayloadBuilder().withProcessInstanceId(processInstanceId).build();
}
public static ResumeProcessPayload resume(ProcessInstance processInstance) {
return new ResumeProcessPayloadBuilder().withProcessInstance(processInstance).build();
}
public static DeleteProcessPayload delete(String processInstanceId) {
return new DeleteProcessPayloadBuilder().withProcessInstanceId(processInstanceId).build();
}
public static DeleteProcessPayload delete(ProcessInstance processInstance) {
return new DeleteProcessPayloadBuilder().withProcessInstance(processInstance).build();
}
}
package org.activiti.runtime.api.model.builders;
import java.util.ArrayList;
import java.util.List;
import org.activiti.runtime.api.model.ProcessInstance;
import org.activiti.runtime.api.model.payloads.RemoveProcessVariablesPayload;
public class RemoveVariablesPayloadBuilder {
private String processInstanceId;
private List<String> variableNames = new ArrayList<>();
private boolean localOnly = false;
public RemoveVariablesPayloadBuilder withProcessInstanceId(String processDefinitionId) {
this.processInstanceId = processDefinitionId;
return this;
}
public RemoveVariablesPayloadBuilder withProcessInstance(ProcessInstance processInstance) {
this.processInstanceId = processInstance.getId();
return this;
}
public RemoveVariablesPayloadBuilder withVariableNames(String variableName) {
if (variableNames == null) {
variableNames = new ArrayList<>();
}
variableNames.add(variableName);
return this;
}
public RemoveVariablesPayloadBuilder localOnly() {
this.localOnly = true;
return this;
}
public RemoveVariablesPayloadBuilder withVariableNames(List<String> variableNames) {
this.variableNames = variableNames;
return this;
}
public RemoveProcessVariablesPayload build() {
return new RemoveProcessVariablesPayload(processInstanceId,
variableNames,
localOnly);
}
}
package org.activiti.runtime.api.model.builders;
import org.activiti.runtime.api.model.ProcessInstance;
import org.activiti.runtime.api.model.payloads.ResumeProcessPayload;
public class ResumeProcessPayloadBuilder {
private String processInstanceId;
public ResumeProcessPayloadBuilder withProcessInstanceId(String processDefinitionId) {
this.processInstanceId = processDefinitionId;
return this;
}
public ResumeProcessPayloadBuilder withProcessInstance(ProcessInstance processInstance) {
this.processInstanceId = processInstance.getId();
return this;
}
public ResumeProcessPayload build() {
return new ResumeProcessPayload(processInstanceId);
}
}
package org.activiti.runtime.api.model.builders;
import java.util.HashMap;
import java.util.Map;
import org.activiti.runtime.api.model.ProcessInstance;
import org.activiti.runtime.api.model.payloads.SetProcessVariablesPayload;
public class SetVariablesPayloadBuilder {
private String processInstanceId;
private boolean localOnly = false;
private Map<String, Object> variables = new HashMap<>();
public SetVariablesPayloadBuilder withProcessInstanceId(String processInstanceId) {
this.processInstanceId = processInstanceId;
return this;
}
public SetVariablesPayloadBuilder withProcessInstance(ProcessInstance processInstance) {
this.processInstanceId = processInstance.getId();
return this;
}
public SetVariablesPayloadBuilder withVariables(Map<String, Object> variables) {
this.variables = variables;
return this;
}
public SetVariablesPayloadBuilder withVariable(String name,
Object value) {
if (this.variables == null) {
this.variables = new HashMap<>();
}
this.variables.put(name,
value);
return this;
}
public SetVariablesPayloadBuilder localOnly() {
this.localOnly = true;
return this;
}
public SetProcessVariablesPayload build() {
return new SetProcessVariablesPayload(processInstanceId,
variables,
localOnly);
}
}
package org.activiti.runtime.api.model.builders;
import java.util.HashMap;
import java.util.Map;
import org.activiti.runtime.api.model.payloads.SignalPayload;
public class SignalPayloadBuilder {
private String name;
private Map<String, Object> variables;
public SignalPayloadBuilder withName(String name) {
this.name = name;
return this;
}
public SignalPayloadBuilder withVariables(Map<String, Object> variables) {
this.variables = variables;
return this;
}
public SignalPayloadBuilder withVariable(String name,
Object value) {
if (this.variables == null) {
this.variables = new HashMap<>();
}
this.variables.put(name,
value);
return this;
}
public SignalPayload build() {
return new SignalPayload(name,
this.variables);
}
}
package org.activiti.runtime.api.model.builders;
import java.util.HashMap;
import java.util.Map;
import org.activiti.runtime.api.model.payloads.StartProcessPayload;
public class StartProcessPayloadBuilder {
private String processDefinitionId;
private String processDefinitionKey;
private String businessKey;
private Map<String, Object> variables = new HashMap<>();
public StartProcessPayloadBuilder withVariables(Map<String, Object> variables) {
this.variables = variables;
return this;
}
public StartProcessPayloadBuilder withVariable(String name,
Object value) {
if (this.variables == null) {
this.variables = new HashMap<>();
}
this.variables.put(name,
value);
return this;
}
public StartProcessPayloadBuilder withBusinessKey(String businessKey) {
this.businessKey = businessKey;
return this;
}
public StartProcessPayloadBuilder withProcessDefinitionId(String processDefinitionId) {
this.processDefinitionId = processDefinitionId;
return this;
}
public StartProcessPayloadBuilder withProcessDefinitionKey(String processDefinitionKey) {
this.processDefinitionKey = processDefinitionKey;
return this;
}
public StartProcessPayload build() {
return new StartProcessPayload(processDefinitionId,
processDefinitionKey,
businessKey,
variables);
}
}
package org.activiti.runtime.api.model.builders;
import org.activiti.runtime.api.model.ProcessInstance;
import org.activiti.runtime.api.model.payloads.SuspendProcessPayload;
public class SuspendProcessPayloadBuilder {
private String processInstanceId;
public SuspendProcessPayloadBuilder withProcessInstanceId(String processDefinitionId) {
this.processInstanceId = processDefinitionId;
return this;
}
public SuspendProcessPayloadBuilder withProcessInstance(ProcessInstance processInstance) {
this.processInstanceId = processInstance.getId();
return this;
}
public SuspendProcessPayload build() {
return new SuspendProcessPayload(processInstanceId);
}
}
package org.activiti.runtime.api.model.payloads;
import java.util.UUID;
import org.activiti.runtime.api.Payload;
public class DeleteProcessPayload implements Payload {
private String id;
private String processInstanceId;
private String reason;
public DeleteProcessPayload() {
this.id = UUID.randomUUID().toString();
}
public DeleteProcessPayload(String processInstanceId,
String reason) {
this();
this.processInstanceId = processInstanceId;
this.reason = reason;
}
@Override
public String getId() {
return id;
}
public String getProcessInstanceId() {
return processInstanceId;
}
public void setProcessInstanceId(String processInstanceId) {
this.processInstanceId = processInstanceId;
}
public String getReason() {
return reason;
}
public void setReason(String reason) {
this.reason = reason;
}
}
package org.activiti.runtime.api.model.payloads;
import java.util.Set;
import java.util.UUID;
import org.activiti.runtime.api.Payload;
public class GetProcessDefinitionsPayload implements Payload {
private String id;
private String processDefinitionId;
private Set<String> processDefinitionKeys;
public GetProcessDefinitionsPayload() {
this.id = UUID.randomUUID().toString();
}
public GetProcessDefinitionsPayload(String processDefinitionId,
Set<String> processDefinitionKeys) {
this();
this.processDefinitionId = processDefinitionId;
this.processDefinitionKeys = processDefinitionKeys;
}
@Override
public String getId() {
return id;
}
public String getProcessDefinitionId() {
return processDefinitionId;
}
public Set<String> getProcessDefinitionKeys() {
return processDefinitionKeys;
}
public void setProcessDefinitionKeys(Set<String> processDefinitionKeys) {
this.processDefinitionKeys = processDefinitionKeys;
}
}
package org.activiti.runtime.api.model.payloads;
import java.util.Set;
import java.util.UUID;
import org.activiti.runtime.api.Payload;
public class GetProcessInstancesPayload implements Payload {
private String id;
private Set<String> processDefinitionKeys;
private String businessKey;
public GetProcessInstancesPayload() {
this.id = UUID.randomUUID().toString();
}
@Override
public String getId() {
return id;
}
public String getBusinessKey() {
return businessKey;
}
public void setBusinessKey(String businessKey) {
this.businessKey = businessKey;
}
public Set<String> getProcessDefinitionKeys() {
return processDefinitionKeys;
}
public void setProcessDefinitionKeys(Set<String> processDefinitionKeys) {
this.processDefinitionKeys = processDefinitionKeys;
}
}
package org.activiti.runtime.api.model.payloads;
import java.util.UUID;
import org.activiti.runtime.api.Payload;
public class GetVariablesPayload implements Payload {
private String id;
private String processInstanceId;
private boolean localOnly = false;
public GetVariablesPayload() {
this.id = UUID.randomUUID().toString();
}
public GetVariablesPayload(String processInstanceId) {
this();
this.processInstanceId = processInstanceId;
}
public GetVariablesPayload(String processInstanceId,
boolean localOnly) {
this(processInstanceId);
this.localOnly = localOnly;
}
@Override
public String getId() {
return id;
}
public String getProcessInstanceId() {
return processInstanceId;
}
public void setProcessInstanceId(String processInstanceId) {
this.processInstanceId = processInstanceId;
}
public boolean isLocalOnly() {
return localOnly;
}
public void setLocalOnly(boolean localOnly) {
this.localOnly = localOnly;
}
}
package org.activiti.runtime.api.model.payloads;
import java.util.List;
import java.util.UUID;
import org.activiti.runtime.api.Payload;
public class RemoveProcessVariablesPayload implements Payload {
private String id;
private String processInstanceId;
private List<String> variableNames;
private boolean localOnly;
public RemoveProcessVariablesPayload() {
this.id = UUID.randomUUID().toString();
}
public RemoveProcessVariablesPayload(String processInstanceId,
List<String> variableNames,
boolean localOnly) {
this();
this.processInstanceId = processInstanceId;
this.variableNames = variableNames;
this.localOnly = localOnly;
}
@Override
public String getId() {
return id;
}
public String getProcessInstanceId() {
return processInstanceId;
}
public void setProcessInstanceId(String processInstanceId) {
this.processInstanceId = processInstanceId;
}
public List<String> getVariableNames() {
return variableNames;
}
public void setVariableNames(List<String> variableNames) {
this.variableNames = variableNames;
}
public boolean isLocalOnly() {
return localOnly;
}
public void setLocalOnly(boolean localOnly) {
this.localOnly = localOnly;
}
}
package org.activiti.runtime.api.model.payloads;
import java.util.UUID;
import org.activiti.runtime.api.Payload;
public class ResumeProcessPayload implements Payload {
private String id;
private String processInstanceId;
public ResumeProcessPayload() {
this.id = UUID.randomUUID().toString();
}
@Override
public String getId() {
return id;
}
public ResumeProcessPayload(String processInstanceId) {
this.processInstanceId = processInstanceId;
}
public String getProcessInstanceId() {
return processInstanceId;
}
public void setProcessInstanceId(String processInstanceId) {
this.processInstanceId = processInstanceId;
}
}
package org.activiti.runtime.api.model.payloads;
import java.util.Map;
import java.util.UUID;
import org.activiti.runtime.api.Payload;
public class SetProcessVariablesPayload implements Payload {
private String id;
private String processInstanceId;
private Map<String, Object> variables;
private boolean localOnly = false;
public SetProcessVariablesPayload() {
this.id = UUID.randomUUID().toString();
}
public SetProcessVariablesPayload(String processInstanceId,
Map<String, Object> variables,
boolean localOnly) {
this();
this.processInstanceId = processInstanceId;
this.variables = variables;
this.localOnly = localOnly;
}
@Override
public String getId() {
return id;
}
public String getProcessInstanceId() {
return processInstanceId;
}
public void setProcessInstanceId(String processInstanceId) {
this.processInstanceId = processInstanceId;
}
public boolean isLocalOnly() {
return localOnly;
}
public void setLocalOnly(boolean localOnly) {
this.localOnly = localOnly;
}
public Map<String, Object> getVariables() {
return variables;
}
public void setVariables(Map<String, Object> variables) {
this.variables = variables;
}
}
package org.activiti.runtime.api.model.payloads;
import java.util.Map;
import java.util.UUID;
import org.activiti.runtime.api.Payload;
public class SignalPayload implements Payload {
private String id;
private String name;
private Map<String, Object> variables;
public SignalPayload() {
this.id = UUID.randomUUID().toString();
}
public SignalPayload(String name,
Map<String, Object> variables) {
this();
this.name = name;
this.variables = variables;
}
@Override
public String getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Map<String, Object> getVariables() {
return variables;
}
public void setVariables(Map<String, Object> variables) {
this.variables = variables;
}
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.model.builder.impl;
import java.util.HashMap;
package org.activiti.runtime.api.model.payloads;
import java.util.Map;
import java.util.UUID;
import org.activiti.runtime.api.Payload;
public class StartProcessPayloadImpl {
public class StartProcessPayload implements Payload {
private String id;
private String processDefinitionId;
private Map<String, Object> variables;
private String processDefinitionKey;
private String businessKey;
private Map<String, Object> variables;
public StartProcessPayloadImpl(String processDefinitionId) {
this.processDefinitionId = processDefinitionId;
}
public String getProcessDefinitionId() {
return processDefinitionId;
public StartProcessPayload() {
this.id = UUID.randomUUID().toString();
}
public void setProcessDefinitionId(String processDefinitionId) {
public StartProcessPayload(String processDefinitionId,
String processDefinitionKey,
String businessKey,
Map<String, Object> variables) {
this();
this.processDefinitionId = processDefinitionId;
this.processDefinitionKey = processDefinitionKey;
this.businessKey = businessKey;
this.variables = variables;
}
public Map<String, Object> getVariables() {
return variables;
@Override
public String getId() {
return id;
}
public void setVariables(Map<String, Object> variables) {
this.variables = variables;
public String getProcessDefinitionId() {
return processDefinitionId;
}
public <T> void addVariable(String key, T value) {
if (variables == null) {
variables = new HashMap<>();
}
variables.put(key, value);
public String getProcessDefinitionKey() {
return processDefinitionKey;
}
public String getBusinessKey() {
return businessKey;
}
public void setBusinessKey(String businessKey) {
this.businessKey = businessKey;
public Map<String, Object> getVariables() {
return variables;
}
}
package org.activiti.runtime.api.model.payloads;
import java.util.UUID;
import org.activiti.runtime.api.Payload;
public class SuspendProcessPayload implements Payload {
private String id;
private String processInstanceId;
public SuspendProcessPayload() {
this.id = UUID.randomUUID().toString();
}
@Override
public String getId() {
return id;
}
public SuspendProcessPayload(String processInstanceId) {
this.processInstanceId = processInstanceId;
}
public String getProcessInstanceId() {
return processInstanceId;
}
public void setProcessInstanceId(String processInstanceId) {
this.processInstanceId = processInstanceId;
}
}
package org.activiti.runtime.api.model.results;
import org.activiti.runtime.api.Payload;
import org.activiti.runtime.api.Result;
import org.activiti.runtime.api.model.ProcessInstance;
public class ProcessInstanceResult extends Result<ProcessInstance> {
public ProcessInstanceResult() {
}
public ProcessInstanceResult(Payload payload,
ProcessInstance entity) {
super(payload,
entity);
}
}
......@@ -43,4 +43,9 @@ public class ProcessRuntimeConfigurationImpl implements ProcessRuntimeConfigurat
public List<VariableEventListener<?>> variableEventListeners() {
return Collections.unmodifiableList(variableEventListeners);
}
@Override
public int maxPagedResults() {
return 100;
}
}
......@@ -18,12 +18,12 @@ package org.activiti.runtime.api.event.impl;
import org.activiti.runtime.api.event.ProcessCompleted;
import org.activiti.runtime.api.event.ProcessRuntimeEvent;
import org.activiti.runtime.api.model.FluentProcessInstance;
import org.activiti.runtime.api.model.ProcessInstance;
public class ProcessCompletedImpl extends RuntimeEventImpl<FluentProcessInstance, ProcessRuntimeEvent.ProcessEvents>
public class ProcessCompletedImpl extends RuntimeEventImpl<ProcessInstance, ProcessRuntimeEvent.ProcessEvents>
implements ProcessCompleted {
public ProcessCompletedImpl(FluentProcessInstance entity) {
public ProcessCompletedImpl(ProcessInstance entity) {
super(entity);
}
......@@ -31,5 +31,4 @@ public class ProcessCompletedImpl extends RuntimeEventImpl<FluentProcessInstance
public ProcessEvents getEventType() {
return ProcessEvents.PROCESS_COMPLETED;
}
}
......@@ -18,12 +18,12 @@ package org.activiti.runtime.api.event.impl;
import org.activiti.runtime.api.event.ProcessCreated;
import org.activiti.runtime.api.event.ProcessRuntimeEvent;
import org.activiti.runtime.api.model.FluentProcessInstance;
import org.activiti.runtime.api.model.ProcessInstance;
public class ProcessCreatedEventImpl extends RuntimeEventImpl<FluentProcessInstance, ProcessRuntimeEvent.ProcessEvents>
public class ProcessCreatedEventImpl extends RuntimeEventImpl<ProcessInstance, ProcessRuntimeEvent.ProcessEvents>
implements ProcessCreated {
public ProcessCreatedEventImpl(FluentProcessInstance entity) {
public ProcessCreatedEventImpl(ProcessInstance entity) {
super(entity);
}
......@@ -31,5 +31,4 @@ public class ProcessCreatedEventImpl extends RuntimeEventImpl<FluentProcessInsta
public ProcessEvents getEventType() {
return ProcessEvents.PROCESS_CREATED;
}
}
......@@ -18,12 +18,12 @@ package org.activiti.runtime.api.event.impl;
import org.activiti.runtime.api.event.ProcessResumed;
import org.activiti.runtime.api.event.ProcessRuntimeEvent;
import org.activiti.runtime.api.model.FluentProcessInstance;
import org.activiti.runtime.api.model.ProcessInstance;
public class ProcessResumedEventImpl extends RuntimeEventImpl<FluentProcessInstance, ProcessRuntimeEvent.ProcessEvents>
public class ProcessResumedEventImpl extends RuntimeEventImpl<ProcessInstance, ProcessRuntimeEvent.ProcessEvents>
implements ProcessResumed {
public ProcessResumedEventImpl(FluentProcessInstance entity) {
public ProcessResumedEventImpl(ProcessInstance entity) {
super(entity);
}
......@@ -31,5 +31,4 @@ public class ProcessResumedEventImpl extends RuntimeEventImpl<FluentProcessInsta
public ProcessEvents getEventType() {
return ProcessEvents.PROCESS_RESUMED;
}
}
......@@ -18,15 +18,15 @@ package org.activiti.runtime.api.event.impl;
import org.activiti.runtime.api.event.ProcessRuntimeEvent;
import org.activiti.runtime.api.event.ProcessStarted;
import org.activiti.runtime.api.model.FluentProcessInstance;
import org.activiti.runtime.api.model.ProcessInstance;
public class ProcessStartedEventImpl extends RuntimeEventImpl<FluentProcessInstance, ProcessRuntimeEvent.ProcessEvents>
public class ProcessStartedEventImpl extends RuntimeEventImpl<ProcessInstance, ProcessRuntimeEvent.ProcessEvents>
implements ProcessStarted {
private String nestedProcessDefinitionId;
private String nestedProcessInstanceId;
public ProcessStartedEventImpl(FluentProcessInstance entity) {
public ProcessStartedEventImpl(ProcessInstance entity) {
super(entity);
}
......@@ -52,5 +52,4 @@ public class ProcessStartedEventImpl extends RuntimeEventImpl<FluentProcessInsta
public ProcessEvents getEventType() {
return ProcessEvents.PROCESS_STARTED;
}
}
......@@ -18,12 +18,12 @@ package org.activiti.runtime.api.event.impl;
import org.activiti.runtime.api.event.ProcessRuntimeEvent;
import org.activiti.runtime.api.event.ProcessSuspended;
import org.activiti.runtime.api.model.FluentProcessInstance;
import org.activiti.runtime.api.model.ProcessInstance;
public class ProcessSuspendedEventImpl extends RuntimeEventImpl<FluentProcessInstance, ProcessRuntimeEvent.ProcessEvents>
public class ProcessSuspendedEventImpl extends RuntimeEventImpl<ProcessInstance, ProcessRuntimeEvent.ProcessEvents>
implements ProcessSuspended {
public ProcessSuspendedEventImpl(FluentProcessInstance entity) {
public ProcessSuspendedEventImpl(ProcessInstance entity) {
super(entity);
}
......@@ -31,5 +31,4 @@ public class ProcessSuspendedEventImpl extends RuntimeEventImpl<FluentProcessIns
public ProcessEvents getEventType() {
return ProcessEvents.PROCESS_SUSPENDED;
}
}
......@@ -17,27 +17,40 @@
package org.activiti.runtime.api.impl;
import java.util.List;
import java.util.Map;
import org.activiti.engine.ActivitiObjectNotFoundException;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.repository.ProcessDefinitionQuery;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.runtime.api.NotFoundException;
import org.activiti.runtime.api.ProcessRuntime;
import org.activiti.runtime.api.conf.ProcessRuntimeConfiguration;
import org.activiti.runtime.api.model.FluentProcessDefinition;
import org.activiti.runtime.api.model.FluentProcessInstance;
import org.activiti.runtime.api.model.builder.SignalPayload;
import org.activiti.runtime.api.model.builder.impl.SignalPayloadImpl;
import org.activiti.runtime.api.model.ProcessDefinition;
import org.activiti.runtime.api.model.ProcessDefinitionMeta;
import org.activiti.runtime.api.model.ProcessInstance;
import org.activiti.runtime.api.model.ProcessInstanceMeta;
import org.activiti.runtime.api.model.VariableInstance;
import org.activiti.runtime.api.model.impl.APIProcessDefinitionConverter;
import org.activiti.runtime.api.model.impl.APIProcessInstanceConverter;
import org.activiti.runtime.api.model.impl.APIVariableInstanceConverter;
import org.activiti.runtime.api.model.impl.ProcessDefinitionMetaImpl;
import org.activiti.runtime.api.model.impl.ProcessInstanceMetaImpl;
import org.activiti.runtime.api.model.payloads.DeleteProcessPayload;
import org.activiti.runtime.api.model.payloads.GetProcessDefinitionsPayload;
import org.activiti.runtime.api.model.payloads.GetProcessInstancesPayload;
import org.activiti.runtime.api.model.payloads.GetVariablesPayload;
import org.activiti.runtime.api.model.payloads.RemoveProcessVariablesPayload;
import org.activiti.runtime.api.model.payloads.ResumeProcessPayload;
import org.activiti.runtime.api.model.payloads.SetProcessVariablesPayload;
import org.activiti.runtime.api.model.payloads.SignalPayload;
import org.activiti.runtime.api.model.payloads.StartProcessPayload;
import org.activiti.runtime.api.model.payloads.SuspendProcessPayload;
import org.activiti.runtime.api.query.Page;
import org.activiti.runtime.api.query.Pageable;
import org.activiti.runtime.api.query.ProcessDefinitionFilter;
import org.activiti.runtime.api.query.ProcessInstanceFilter;
import org.activiti.runtime.api.query.impl.PageImpl;
public class ProcessRuntimeImpl implements ProcessRuntime {
public class ProcessRuntimeImpl implements ProcessRuntime {
private final RepositoryService repositoryService;
......@@ -47,100 +60,192 @@ public class ProcessRuntimeImpl implements ProcessRuntime {
private final APIProcessInstanceConverter processInstanceConverter;
private final APIVariableInstanceConverter variableInstanceConverter;
private final ProcessRuntimeConfiguration configuration;
public ProcessRuntimeImpl(RepositoryService repositoryService,
APIProcessDefinitionConverter processDefinitionConverter,
RuntimeService runtimeService,
APIProcessInstanceConverter processInstanceConverter,
APIVariableInstanceConverter variableInstanceConverter,
ProcessRuntimeConfiguration configuration) {
this.repositoryService = repositoryService;
this.processDefinitionConverter = processDefinitionConverter;
this.runtimeService = runtimeService;
this.processInstanceConverter = processInstanceConverter;
this.variableInstanceConverter = variableInstanceConverter;
this.configuration = configuration;
}
@Override
public Page<FluentProcessDefinition> processDefinitions(Pageable pageable) {
return processDefinitions(pageable, null);
public Page<ProcessDefinition> processDefinitions(Pageable pageable) {
return processDefinitions(pageable,
null);
}
@Override
public Page<FluentProcessDefinition> processDefinitions(Pageable pageable,
ProcessDefinitionFilter filter) {
ProcessDefinitionQuery processDefinitionQuery = repositoryService
.createProcessDefinitionQuery();
if (filter != null && filter.hasProcessDefinitionKeys()) {
processDefinitionQuery.processDefinitionKeys(filter.getProcessDefinitionKeys());
public ProcessInstance processInstance(String processInstanceId) {
org.activiti.engine.runtime.ProcessInstance internalProcessInstance = runtimeService
.createProcessInstanceQuery()
.processInstanceId(processInstanceId)
.singleResult();
if (internalProcessInstance == null) {
throw new NotFoundException("Unable to find process instance for the given id:'" + processInstanceId + "'");
}
return new PageImpl<>(processDefinitionConverter.from(processDefinitionQuery.list()),
Math.toIntExact(processDefinitionQuery.count()));
return processInstanceConverter.from(internalProcessInstance);
}
@Override
public FluentProcessDefinition processDefinitionByKey(String processDefinitionKey) {
List<org.activiti.engine.repository.ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery().processDefinitionKey(processDefinitionKey).list();
public Page<ProcessInstance> processInstances(Pageable pageable) {
return processInstances(pageable,
null);
}
if (processDefinitions == null || processDefinitions.isEmpty()) {
throw new NotFoundException("Unable to find process definition for the given key:'" + processDefinitionKey + "'");
}
return processDefinitionConverter.from(processDefinitions.get(0));
@Override
public ProcessRuntimeConfiguration configuration() {
return configuration;
}
@Override
public FluentProcessDefinition processDefinitionById(String processDefinitionId) {
org.activiti.engine.repository.ProcessDefinition definition = repositoryService.getProcessDefinition(processDefinitionId);
if (definition == null) {
throw new NotFoundException("Unable to find process definition for the given id:'" + processDefinitionId + "'");
}
return processDefinitionConverter.from(definition);
}
@Override
public ProcessInstance start(StartProcessPayload startProcessPayload) {
return processInstanceConverter.from(runtimeService
.createProcessInstanceBuilder()
.processDefinitionId(startProcessPayload.getProcessDefinitionId())
.processDefinitionKey(startProcessPayload.getProcessDefinitionKey())
.businessKey(startProcessPayload.getBusinessKey())
.variables(startProcessPayload.getVariables())
.start());
}
@Override
public ProcessInstance suspend(SuspendProcessPayload suspendProcessPayload) {
runtimeService.suspendProcessInstanceById(suspendProcessPayload.getProcessInstanceId());
return processInstanceConverter.from(runtimeService.createProcessInstanceQuery().processInstanceId(suspendProcessPayload.getProcessInstanceId()).singleResult());
}
@Override
public FluentProcessInstance processInstance(String processInstanceId) {
ProcessInstance internalProcessInstance = runtimeService
.createProcessInstanceQuery()
.processInstanceId(processInstanceId)
.singleResult();
if (internalProcessInstance == null) {
throw new NotFoundException("Unable to find process instance for the given id:'" + processInstanceId + "'");
public ProcessInstance resume(ResumeProcessPayload resumeProcessPayload) {
runtimeService.activateProcessInstanceById(resumeProcessPayload.getProcessInstanceId());
return processInstanceConverter.from(runtimeService.createProcessInstanceQuery()
.processInstanceId(resumeProcessPayload.getProcessInstanceId()).singleResult());
}
@Override
public ProcessInstance delete(DeleteProcessPayload deleteProcessPayload) {
org.activiti.engine.runtime.ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
.processInstanceId(deleteProcessPayload.getProcessInstanceId()).singleResult();
runtimeService.deleteProcessInstance(deleteProcessPayload.getProcessInstanceId(),
deleteProcessPayload.getReason());
if (processInstance != null) {
return processInstanceConverter.from(processInstance);
}
return processInstanceConverter.from(
internalProcessInstance);
return null;
}
@Override
public Page<FluentProcessInstance> processInstances(Pageable pageable) {
return processInstances(pageable,
null);
public List<VariableInstance> variables(GetVariablesPayload getVariablesPayload) {
Map<String, org.activiti.engine.impl.persistence.entity.VariableInstance> variables = null;
if (getVariablesPayload.isLocalOnly()) {
variables = runtimeService.getVariableInstancesLocal(getVariablesPayload.getProcessInstanceId());
} else {
variables = runtimeService.getVariableInstances(getVariablesPayload.getProcessInstanceId());
}
return variableInstanceConverter.from(variables.values());
}
@Override
public Page<FluentProcessInstance> processInstances(Pageable pageable,
ProcessInstanceFilter filter) {
org.activiti.engine.runtime.ProcessInstanceQuery internalQuery = runtimeService.createProcessInstanceQuery();
if (filter != null && filter.hasProcessDefinitionKeys()) {
internalQuery.processDefinitionKeys(filter.getProcessDefinitionKeys());
public void removeVariables(RemoveProcessVariablesPayload removeProcessVariablesPayload) {
if (removeProcessVariablesPayload.isLocalOnly()) {
runtimeService.removeVariablesLocal(removeProcessVariablesPayload.getProcessInstanceId(),
removeProcessVariablesPayload.getVariableNames());
} else {
runtimeService.removeVariables(removeProcessVariablesPayload.getProcessInstanceId(),
removeProcessVariablesPayload.getVariableNames());
}
return new PageImpl<>(processInstanceConverter.from(internalQuery.listPage(pageable.getStartIndex(),
pageable.getMaxItems())),
Math.toIntExact(internalQuery.count()));
}
@Override
public SignalPayload sendSignalWith() {
return new SignalPayloadImpl(runtimeService);
public void signal(SignalPayload signalPayload) {
runtimeService.signalEventReceived(signalPayload.getName(),
signalPayload.getVariables());
}
@Override
public void sendSignal(String name) {
sendSignalWith().name(name).doIt();
public void setVariables(SetProcessVariablesPayload setProcessVariablesPayload) {
if (setProcessVariablesPayload.isLocalOnly()) {
runtimeService.setVariablesLocal(setProcessVariablesPayload.getProcessInstanceId(),
setProcessVariablesPayload.getVariables());
} else {
runtimeService.setVariables(setProcessVariablesPayload.getProcessInstanceId(),
setProcessVariablesPayload.getVariables());
}
}
@Override
public ProcessRuntimeConfiguration configuration() {
return configuration;
public ProcessDefinition processDefinition(String processDefinitionId) {
org.activiti.engine.repository.ProcessDefinition processDefinition = null;
try {
processDefinition = repositoryService.getProcessDefinition(processDefinitionId);
}catch(ActivitiObjectNotFoundException internalEx){
}
if (processDefinition == null) {
// try searching by Key if there is matching ID
List<org.activiti.engine.repository.ProcessDefinition> list = repositoryService.createProcessDefinitionQuery().processDefinitionKey(processDefinitionId).list();
if (!list.isEmpty()) {
processDefinition = list.get(0);
} else {
throw new NotFoundException("Unable to find process definition for the given key:'" + processDefinitionId + "'");
}
}
return processDefinitionConverter.from(processDefinition);
}
@Override
public ProcessDefinitionMeta processDefinitionMeta(String processDefinitionKey) {
return new ProcessDefinitionMetaImpl(processDefinitionKey);
}
@Override
public ProcessInstanceMeta processInstanceMeta(String processInstanceId) {
ProcessInstanceMetaImpl processInstanceMeta = new ProcessInstanceMetaImpl(processInstanceId);
processInstanceMeta.setActiveActivitiesIds(runtimeService.getActiveActivityIds(processInstanceId));
return processInstanceMeta;
}
@Override
public Page<ProcessDefinition> processDefinitions(Pageable pageable,
GetProcessDefinitionsPayload getProcessDefinitionsPayload) {
ProcessDefinitionQuery processDefinitionQuery = repositoryService
.createProcessDefinitionQuery();
if (getProcessDefinitionsPayload != null &&
getProcessDefinitionsPayload.getProcessDefinitionKeys() != null &&
!getProcessDefinitionsPayload.getProcessDefinitionKeys().isEmpty()) {
processDefinitionQuery.processDefinitionKeys(getProcessDefinitionsPayload.getProcessDefinitionKeys());
}
return new PageImpl<>(processDefinitionConverter.from(processDefinitionQuery.list()),
Math.toIntExact(processDefinitionQuery.count()));
}
@Override
public Page<ProcessInstance> processInstances(Pageable pageable,
GetProcessInstancesPayload getProcessInstancesPayload) {
org.activiti.engine.runtime.ProcessInstanceQuery internalQuery = runtimeService.createProcessInstanceQuery();
if (getProcessInstancesPayload != null) {
if (getProcessInstancesPayload.getProcessDefinitionKeys() != null &&
!getProcessInstancesPayload.getProcessDefinitionKeys().isEmpty()) {
internalQuery.processDefinitionKeys(getProcessInstancesPayload.getProcessDefinitionKeys());
}
if (getProcessInstancesPayload.getBusinessKey() != null &&
!getProcessInstancesPayload.getBusinessKey().isEmpty()) {
internalQuery.processInstanceBusinessKey(getProcessInstancesPayload.getBusinessKey());
}
}
return new PageImpl<>(processInstanceConverter.from(internalQuery.listPage(pageable.getStartIndex(),
pageable.getMaxItems())),
Math.toIntExact(internalQuery.count()));
}
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.model.builder.impl;
import org.activiti.engine.RuntimeService;
import org.activiti.runtime.api.model.builder.ProcessStarter;
import org.activiti.runtime.api.model.impl.APIProcessInstanceConverter;
public class ProcessStarterFactory {
private final RuntimeService runtimeService;
private final APIProcessInstanceConverter processInstanceConverter;
public ProcessStarterFactory(RuntimeService runtimeService,
APIProcessInstanceConverter processInstanceConverter) {
this.runtimeService = runtimeService;
this.processInstanceConverter = processInstanceConverter;
}
public ProcessStarter createNewInstance(String processDefinitionId) {
return new ProcessStarterImpl(processDefinitionId, runtimeService, processInstanceConverter);
}
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.model.builder.impl;
import java.util.Map;
import org.activiti.engine.RuntimeService;
import org.activiti.runtime.api.model.FluentProcessInstance;
import org.activiti.runtime.api.model.builder.ProcessStarter;
import org.activiti.runtime.api.model.impl.APIProcessInstanceConverter;
public class ProcessStarterImpl implements ProcessStarter {
private final StartProcessPayloadImpl payload;
private final RuntimeService runtimeService;
private final APIProcessInstanceConverter processInstanceConverter;
public ProcessStarterImpl(String processDefinitionId,
RuntimeService runtimeService,
APIProcessInstanceConverter processInstanceConverter) {
this.runtimeService = runtimeService;
this.processInstanceConverter = processInstanceConverter;
payload = new StartProcessPayloadImpl(processDefinitionId);
}
public ProcessStarterImpl processDefinitionId(String processDefinitionId){
payload.setProcessDefinitionId(processDefinitionId);
return this;
}
public ProcessStarterImpl variables(Map<String, Object> variables){
payload.setVariables(variables);
return this;
}
@Override
public ProcessStarter variable(String key,
Object value) {
payload.addVariable(key, value);
return this;
}
public ProcessStarterImpl businessKey(String businessKey){
payload.setBusinessKey(businessKey);
return this;
}
@Override
public FluentProcessInstance doIt() {
return processInstanceConverter.from(runtimeService
.createProcessInstanceBuilder()
.processDefinitionId(payload.getProcessDefinitionId())
.businessKey(payload.getBusinessKey())
.variables(payload.getVariables())
.start());
}
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.model.builder.impl;
import java.util.HashMap;
import java.util.Map;
import org.activiti.engine.RuntimeService;
import org.activiti.runtime.api.model.builder.SignalPayload;
public class SignalPayloadImpl implements SignalPayload {
private final RuntimeService runtimeService;
private String name;
private Map<String, Object> variables = new HashMap<>();
public SignalPayloadImpl(RuntimeService runtimeService) {
this.runtimeService = runtimeService;
}
@Override
public SignalPayload name(String name) {
this.name = name;
return this;
}
@Override
public SignalPayload variable(String key,
Object value) {
variables.put(key,
value);
return this;
}
@Override
public SignalPayload variables(Map<String, Object> variables) {
if (variables != null) {
this.variables.putAll(variables);
}
return this;
}
@Override
public Void doIt() {
runtimeService.signalEventReceived(name,
variables);
return null;
}
}
......@@ -16,30 +16,13 @@
package org.activiti.runtime.api.model.impl;
import org.activiti.engine.RuntimeService;
import org.activiti.runtime.api.model.FluentProcessDefinition;
import org.activiti.runtime.api.model.builder.impl.ProcessStarterFactory;
import org.activiti.runtime.api.model.ProcessDefinition;
public class APIProcessDefinitionConverter extends ListConverter<org.activiti.engine.repository.ProcessDefinition, FluentProcessDefinition>
implements ModelConverter<org.activiti.engine.repository.ProcessDefinition, FluentProcessDefinition> {
private final ProcessStarterFactory processStarterFactory;
private final RuntimeService runtimeService;
private final APIProcessInstanceConverter processInstanceConverter;
public APIProcessDefinitionConverter(ProcessStarterFactory processStarterFactory,
RuntimeService runtimeService,
APIProcessInstanceConverter processInstanceConverter) {
this.processStarterFactory = processStarterFactory;
this.runtimeService = runtimeService;
this.processInstanceConverter = processInstanceConverter;
}
public FluentProcessDefinition from(org.activiti.engine.repository.ProcessDefinition internalProcessDefinition) {
FluentProcessDefinitionImpl processDefinition = new FluentProcessDefinitionImpl(processStarterFactory,
runtimeService,
processInstanceConverter);
public class APIProcessDefinitionConverter extends ListConverter<org.activiti.engine.repository.ProcessDefinition, ProcessDefinition>
implements ModelConverter<org.activiti.engine.repository.ProcessDefinition, ProcessDefinition> {
public ProcessDefinition from(org.activiti.engine.repository.ProcessDefinition internalProcessDefinition) {
ProcessDefinitionImpl processDefinition = new ProcessDefinitionImpl();
processDefinition.setId(internalProcessDefinition.getId());
processDefinition.setName(internalProcessDefinition.getName());
processDefinition.setDescription(internalProcessDefinition.getDescription());
......
......@@ -16,26 +16,14 @@
package org.activiti.runtime.api.model.impl;
import org.activiti.engine.RuntimeService;
import org.activiti.runtime.api.model.FluentProcessInstance;
import org.activiti.runtime.api.model.ProcessInstance;
public class APIProcessInstanceConverter extends ListConverter<org.activiti.engine.runtime.ProcessInstance, FluentProcessInstance>
implements ModelConverter<org.activiti.engine.runtime.ProcessInstance, FluentProcessInstance> {
private final RuntimeService runtimeService;
private final APIVariableInstanceConverter variableInstanceConverter;
public APIProcessInstanceConverter(RuntimeService runtimeService,
APIVariableInstanceConverter variableInstanceConverter) {
this.runtimeService = runtimeService;
this.variableInstanceConverter = variableInstanceConverter;
}
public class APIProcessInstanceConverter extends ListConverter<org.activiti.engine.runtime.ProcessInstance, ProcessInstance>
implements ModelConverter<org.activiti.engine.runtime.ProcessInstance, ProcessInstance> {
@Override
public FluentProcessInstance from(org.activiti.engine.runtime.ProcessInstance internalProcessInstance) {
FluentProcessInstanceImpl processInstance = new FluentProcessInstanceImpl(runtimeService,
variableInstanceConverter);
public ProcessInstance from(org.activiti.engine.runtime.ProcessInstance internalProcessInstance) {
ProcessInstanceImpl processInstance = new ProcessInstanceImpl();
processInstance.setId(internalProcessInstance.getId());
processInstance.setName(internalProcessInstance.getName());
processInstance.setDescription(internalProcessInstance.getDescription());
......
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.model.impl;
import java.util.List;
import org.activiti.engine.RuntimeService;
import org.activiti.runtime.api.model.FluentProcessDefinition;
import org.activiti.runtime.api.model.FluentProcessInstance;
import org.activiti.runtime.api.model.builder.ProcessStarter;
import org.activiti.runtime.api.model.builder.impl.ProcessStarterFactory;
public class FluentProcessDefinitionImpl extends ProcessDefinitionImpl implements FluentProcessDefinition {
private final ProcessStarterFactory processStarterFactory;
private final RuntimeService runtimeService;
private final APIProcessInstanceConverter processInstanceConverter;
public FluentProcessDefinitionImpl(ProcessStarterFactory processStarterFactory,
RuntimeService runtimeService,
APIProcessInstanceConverter processInstanceConverter) {
this.processStarterFactory = processStarterFactory;
this.runtimeService = runtimeService;
this.processInstanceConverter = processInstanceConverter;
}
@Override
public ProcessStarter startProcessWith() {
return processStarterFactory.createNewInstance(getId());
}
@Override
public FluentProcessInstance start() {
return startProcessWith().doIt();
}
@Override
public List<FluentProcessInstance> processInstances(int startIndex,
int maxResults) {
return processInstanceConverter.from(runtimeService
.createProcessInstanceQuery()
.processDefinitionId(getId())
.listPage(startIndex, maxResults));
}
}
\ No newline at end of file
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.model.impl;
import java.util.List;
import java.util.Map;
import org.activiti.engine.RuntimeService;
import org.activiti.runtime.api.model.FluentProcessInstance;
import org.activiti.runtime.api.model.VariableInstance;
public class FluentProcessInstanceImpl extends ProcessInstanceImpl implements FluentProcessInstance {
private final RuntimeService runtimeService;
private final APIVariableInstanceConverter variableInstanceConverter;
public FluentProcessInstanceImpl(RuntimeService runtimeService,
APIVariableInstanceConverter variableInstanceConverter) {
this.runtimeService = runtimeService;
this.variableInstanceConverter = variableInstanceConverter;
}
@Override
public List<VariableInstance> variables() {
return variableInstanceConverter.from(runtimeService.getVariableInstances(getId()).values());
}
@Override
public void variables(Map<String, Object> variables) {
runtimeService.setVariables(getId(), variables);
}
@Override
public void removeVariables(List<String> variableNames) {
runtimeService.removeVariables(getId(), variableNames);
}
@Override
public List<VariableInstance> localVariables() {
Map<String, org.activiti.engine.impl.persistence.entity.VariableInstance> variableInstancesLocal = runtimeService.getVariableInstancesLocal(getId());
return variableInstanceConverter.from(variableInstancesLocal.values());
}
@Override
public void suspend() {
runtimeService.suspendProcessInstanceById(getId());
}
@Override
public void resume() {
runtimeService.activateProcessInstanceById(getId());
}
@Override
public void delete(String reason) {
runtimeService.deleteProcessInstance(getId(), reason);
}
@Override
public List<String> activeActivityIds() {
return runtimeService.getActiveActivityIds(getId());
}
}
......@@ -58,7 +58,6 @@ import org.activiti.runtime.api.event.internal.ProcessSuspendedListenerDelegate;
import org.activiti.runtime.api.event.internal.SequenceFlowTakenListenerDelegate;
import org.activiti.runtime.api.event.listener.ProcessRuntimeEventListener;
import org.activiti.runtime.api.impl.ProcessRuntimeImpl;
import org.activiti.runtime.api.model.builder.impl.ProcessStarterFactory;
import org.activiti.runtime.api.model.impl.APIProcessDefinitionConverter;
import org.activiti.runtime.api.model.impl.APIProcessInstanceConverter;
import org.activiti.runtime.api.model.impl.APIVariableInstanceConverter;
......@@ -78,41 +77,36 @@ public class ProcessRuntimeAutoConfiguration {
APIProcessDefinitionConverter processDefinitionConverter,
RuntimeService runtimeService,
APIProcessInstanceConverter processInstanceConverter,
APIVariableInstanceConverter variableInstanceConverter,
ProcessRuntimeConfiguration processRuntimeConfiguration) {
return new ProcessRuntimeImpl(repositoryService,
processDefinitionConverter,
runtimeService,
processInstanceConverter,
variableInstanceConverter,
processRuntimeConfiguration);
}
@Bean
public APIProcessDefinitionConverter apiProcessDefinitionConverter(ProcessStarterFactory processStarterFactory,
RuntimeService runtimeService,
APIProcessInstanceConverter processInstanceConverter) {
return new APIProcessDefinitionConverter(processStarterFactory,
runtimeService,
processInstanceConverter);
public APIProcessDefinitionConverter apiProcessDefinitionConverter() {
return new APIProcessDefinitionConverter();
}
@Bean
public ProcessStarterFactory processStarterFactory(RuntimeService runtimeService,
APIProcessInstanceConverter processInstanceConverter) {
return new ProcessStarterFactory(runtimeService,
processInstanceConverter);
public APIProcessInstanceConverter apiProcessInstanceConverter() {
return new APIProcessInstanceConverter();
}
@Bean
public APIProcessInstanceConverter apiProcessInstanceConverter(RuntimeService runtimeService,
APIVariableInstanceConverter variableInstanceConverter) {
return new APIProcessInstanceConverter(runtimeService,
variableInstanceConverter);
public APIVariableInstanceConverter apiVariableInstanceConverter() {
return new APIVariableInstanceConverter();
}
@Bean
public ProcessRuntimeConfiguration processRuntimeConfiguration(@Autowired(required = false) List<ProcessRuntimeEventListener<?>> processRuntimeEventListeners,
@Autowired(required = false)List<VariableEventListener<?>> variableEventListeners) {
return new ProcessRuntimeConfigurationImpl(getInitializedListeners(processRuntimeEventListeners), getInitializedListeners(variableEventListeners));
@Autowired(required = false) List<VariableEventListener<?>> variableEventListeners) {
return new ProcessRuntimeConfigurationImpl(getInitializedListeners(processRuntimeEventListeners),
getInitializedListeners(variableEventListeners));
}
@Bean
......
......@@ -18,10 +18,6 @@
<groupId>org.activiti</groupId>
<artifactId>activiti-common-runtime-api</artifactId>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-cloud-common-model-api</artifactId>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-process-model-api</artifactId>
......
......@@ -16,36 +16,63 @@
package org.activiti.runtime.api;
import java.util.List;
import org.activiti.runtime.api.conf.ProcessRuntimeConfiguration;
import org.activiti.runtime.api.model.FluentProcessDefinition;
import org.activiti.runtime.api.model.FluentProcessInstance;
import org.activiti.runtime.api.model.builder.SignalPayload;
import org.activiti.runtime.api.model.ProcessDefinition;
import org.activiti.runtime.api.model.ProcessDefinitionMeta;
import org.activiti.runtime.api.model.ProcessInstance;
import org.activiti.runtime.api.model.ProcessInstanceMeta;
import org.activiti.runtime.api.model.VariableInstance;
import org.activiti.runtime.api.model.payloads.DeleteProcessPayload;
import org.activiti.runtime.api.model.payloads.GetProcessDefinitionsPayload;
import org.activiti.runtime.api.model.payloads.GetProcessInstancesPayload;
import org.activiti.runtime.api.model.payloads.GetVariablesPayload;
import org.activiti.runtime.api.model.payloads.RemoveProcessVariablesPayload;
import org.activiti.runtime.api.model.payloads.ResumeProcessPayload;
import org.activiti.runtime.api.model.payloads.SetProcessVariablesPayload;
import org.activiti.runtime.api.model.payloads.SignalPayload;
import org.activiti.runtime.api.model.payloads.StartProcessPayload;
import org.activiti.runtime.api.model.payloads.SuspendProcessPayload;
import org.activiti.runtime.api.query.Page;
import org.activiti.runtime.api.query.Pageable;
import org.activiti.runtime.api.query.ProcessDefinitionFilter;
import org.activiti.runtime.api.query.ProcessInstanceFilter;
public interface ProcessRuntime {
ProcessRuntimeConfiguration configuration();
Page<FluentProcessDefinition> processDefinitions(Pageable pageable);
ProcessDefinition processDefinition(String processDefinitionKey);
ProcessDefinitionMeta processDefinitionMeta(String processDefinitionKey);
Page<ProcessDefinition> processDefinitions(Pageable pageable);
Page<ProcessDefinition> processDefinitions(Pageable pageable,
GetProcessDefinitionsPayload getProcessDefinitionsPayload);
ProcessInstance processInstance(String processInstanceId);
ProcessInstanceMeta processInstanceMeta(String processInstanceId);
Page<ProcessInstance> processInstances(Pageable pageable);
Page<ProcessInstance> processInstances(Pageable pageable,
GetProcessInstancesPayload getProcessInstancesPayload);
Page<FluentProcessDefinition> processDefinitions(Pageable pageable,
ProcessDefinitionFilter filter);
ProcessInstance start(StartProcessPayload startProcessPayload);
FluentProcessDefinition processDefinitionByKey(String processDefinitionKey);
ProcessInstance suspend(SuspendProcessPayload suspendProcessPayload);
FluentProcessDefinition processDefinitionById(String processDefinitionId);
ProcessInstance resume(ResumeProcessPayload resumeProcessPayload);
FluentProcessInstance processInstance(String processInstanceId);
ProcessInstance delete(DeleteProcessPayload deleteProcessPayload);
Page<FluentProcessInstance> processInstances(Pageable pageable);
List<VariableInstance> variables(GetVariablesPayload getVariablesPayload); //I want to rename VariableInstance to Variable and it needs to be paged
Page<FluentProcessInstance> processInstances(Pageable pageable, ProcessInstanceFilter filter);
void removeVariables(RemoveProcessVariablesPayload removeProcessVariablesPayload); // review if we need to return removed variables// DO WE NEED THIS?>
SignalPayload sendSignalWith();
void signal(SignalPayload signalPayload);
void sendSignal(String name);
void setVariables(SetProcessVariablesPayload setProcessVariablesPayload); // review if we need to return set variables
}
......@@ -27,4 +27,6 @@ public interface ProcessRuntimeConfiguration {
List<VariableEventListener<?>> variableEventListeners();
int maxPagedResults();
}
......@@ -16,8 +16,8 @@
package org.activiti.runtime.api.event;
import org.activiti.runtime.api.model.FluentProcessInstance;
import org.activiti.runtime.api.model.ProcessInstance;
public interface ProcessCompleted extends ProcessRuntimeEvent<FluentProcessInstance> {
public interface ProcessCompleted extends ProcessRuntimeEvent<ProcessInstance> {
}
......@@ -16,8 +16,8 @@
package org.activiti.runtime.api.event;
import org.activiti.runtime.api.model.FluentProcessInstance;
import org.activiti.runtime.api.model.ProcessInstance;
public interface ProcessCreated extends ProcessRuntimeEvent<FluentProcessInstance> {
public interface ProcessCreated extends ProcessRuntimeEvent<ProcessInstance> {
}
......@@ -16,8 +16,8 @@
package org.activiti.runtime.api.event;
import org.activiti.runtime.api.model.FluentProcessInstance;
import org.activiti.runtime.api.model.ProcessInstance;
public interface ProcessResumed extends ProcessRuntimeEvent<FluentProcessInstance> {
public interface ProcessResumed extends ProcessRuntimeEvent<ProcessInstance> {
}
......@@ -16,8 +16,8 @@
package org.activiti.runtime.api.event;
import org.activiti.runtime.api.model.FluentProcessInstance;
import org.activiti.runtime.api.model.ProcessInstance;
public interface ProcessStarted extends ExtendedProcessRuntimeEvent<FluentProcessInstance> {
public interface ProcessStarted extends ExtendedProcessRuntimeEvent<ProcessInstance> {
}
......@@ -16,8 +16,8 @@
package org.activiti.runtime.api.event;
import org.activiti.runtime.api.model.FluentProcessInstance;
import org.activiti.runtime.api.model.ProcessInstance;
public interface ProcessSuspended extends ProcessRuntimeEvent<FluentProcessInstance> {
public interface ProcessSuspended extends ProcessRuntimeEvent<ProcessInstance> {
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.model;
import java.util.List;
import org.activiti.runtime.api.model.builder.ProcessStarter;
public interface FluentProcessDefinition extends ProcessDefinition {
FluentProcessInstance start();
ProcessStarter startProcessWith();
//TODO move to page
List<FluentProcessInstance> processInstances(int startIndex,
int maxResults);
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.model;
import java.util.List;
import java.util.Map;
public interface FluentProcessInstance extends ProcessInstance {
void suspend();
void resume();
void delete(String reason);
List<VariableInstance> variables();
void variables(Map<String, Object> variables);
void removeVariables(List<String> variableNames);
List<VariableInstance> localVariables();
List<String> activeActivityIds();
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.model.builder;
import java.util.List;
import org.activiti.runtime.api.model.ProcessDefinition;
public interface ProcessDefinitionQuery {
ProcessDefinitionQuery processDefinitionKey(String processDefinitionKey);
List<ProcessDefinition> list();
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.model.builder;
import java.util.Map;
import org.activiti.runtime.api.model.FluentProcessInstance;
public interface ProcessStarter extends VariableContainer<ProcessStarter>,
ActionExecutor<FluentProcessInstance> {
ProcessStarter variables(Map<String, Object> variables);
ProcessStarter businessKey(String businessKey);
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.model.builder;
public interface SignalPayload extends VariableContainer<SignalPayload>,
ActionExecutor<Void> {
SignalPayload name(String name);
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.query;
import java.util.Collections;
import java.util.Set;
public class ProcessDefinitionFilter {
public static String ID = "id";
public static String PROCESS_DEFINITION_ID = "processDefinitionId";
private Set<String> processDefinitionKeys;
private ProcessDefinitionFilter(Set<String> processDefinitionKeys) {
this.processDefinitionKeys = processDefinitionKeys;
}
public static ProcessDefinitionFilter filterOnKeys(Set<String> processDefinitionKeys) {
return new ProcessDefinitionFilter(processDefinitionKeys);
}
public static ProcessDefinitionFilter filterOnKey(String processDefinitionKey) {
return new ProcessDefinitionFilter(Collections.singleton(processDefinitionKey));
}
public static ProcessDefinitionFilter unfiltered() {
return new ProcessDefinitionFilter(Collections.emptySet());
}
public Set<String> getProcessDefinitionKeys() {
return processDefinitionKeys;
}
public boolean hasProcessDefinitionKeys() {
return processDefinitionKeys != null && !processDefinitionKeys.isEmpty();
}
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.query;
import java.util.Collections;
import java.util.Set;
public class ProcessInstanceFilter {
public static final String ID = "id";
private Set<String> processDefinitionKeys;
private ProcessInstanceFilter(Set<String> processDefinitionKeys) {
this.processDefinitionKeys = processDefinitionKeys;
}
public static ProcessInstanceFilter filteredOnKeys(Set<String> processDefinitionKeys) {
return new ProcessInstanceFilter(processDefinitionKeys);
}
public static ProcessInstanceFilter filteredOnKey(String processDefinitionKey) {
return new ProcessInstanceFilter(Collections.singleton(processDefinitionKey));
}
public static ProcessInstanceFilter unfiltered() {
return new ProcessInstanceFilter(Collections.emptySet());
}
public Set<String> getProcessDefinitionKeys() {
return processDefinitionKeys;
}
public boolean hasProcessDefinitionKeys() {
return processDefinitionKeys != null && !processDefinitionKeys.isEmpty();
}
}
......@@ -34,5 +34,9 @@
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
</dependencies>
</project>
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd.impl;
import org.activiti.runtime.api.cmd.ClaimTask;
import org.activiti.runtime.api.cmd.TaskCommands;
public class ClaimTaskImpl extends CommandImpl<TaskCommands> implements ClaimTask {
private String taskId;
private String assignee;
private TaskCommands commandType = TaskCommands.CLAIM_TASK;
public ClaimTaskImpl() {
}
public ClaimTaskImpl(String taskId,
String assignee) {
this.taskId = taskId;
this.assignee = assignee;
}
@Override
public TaskCommands getCommandType() {
return commandType;
}
@Override
public String getTaskId() {
return taskId;
}
@Override
public String getAssignee() {
return assignee;
}
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd.impl;
import java.util.Map;
import org.activiti.runtime.api.cmd.CompleteTask;
import org.activiti.runtime.api.cmd.TaskCommands;
public class CompleteTaskImpl extends CommandImpl<TaskCommands> implements CompleteTask {
private String taskId;
private Map<String,Object> outputVariables;
private TaskCommands commandType = TaskCommands.COMPLETE_TASK;
public CompleteTaskImpl() {
}
public CompleteTaskImpl(String taskId,
Map<String, Object> outputVariables) {
this.taskId = taskId;
this.outputVariables = outputVariables;
}
@Override
public String getTaskId() {
return taskId;
}
@Override
public Map<String, Object> getOutputVariables() {
return outputVariables;
}
@Override
public TaskCommands getCommandType() {
return commandType;
}
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd.impl;
import java.util.Date;
import org.activiti.runtime.api.cmd.CreateTask;
import org.activiti.runtime.api.cmd.TaskCommands;
public class CreateTaskImpl extends CommandImpl<TaskCommands> implements CreateTask {
private String name;
private String description;
private Date dueDate;
private Integer priority;
private String assignee;
private String parentTaskId;
private TaskCommands commandType = TaskCommands.CREATE_TASK;
public CreateTaskImpl() {
}
public CreateTaskImpl(String name,
String description) {
this.name = name;
this.description = description;
}
@Override
public String getTaskId() {
return null; // not needed for creating a new task
}
@Override
public TaskCommands getCommandType() {
return commandType;
}
@Override
public String getName() {
return name;
}
@Override
public String getDescription() {
return description;
}
@Override
public Date getDueDate() {
return dueDate;
}
public void setDueDate(Date dueDate) {
this.dueDate = dueDate;
}
@Override
public Integer getPriority() {
return priority;
}
public void setPriority(Integer priority) {
this.priority = priority;
}
@Override
public String getAssignee() {
return assignee;
}
public void setAssignee(String assignee) {
this.assignee = assignee;
}
@Override
public String getParentTaskId() {
return parentTaskId;
}
public void setParentTaskId(String parentTaskId) {
this.parentTaskId = parentTaskId;
}
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd.impl;
import java.util.Map;
import org.activiti.runtime.api.cmd.SetTaskVariables;
import org.activiti.runtime.api.cmd.TaskCommands;
public class SetTaskVariablesImpl extends CommandImpl<TaskCommands> implements SetTaskVariables {
private String taskId;
private Map<String, Object> variables;
private TaskCommands commandType = TaskCommands.SET_TASK_VARIABLES;
public SetTaskVariablesImpl() {
}
public SetTaskVariablesImpl(String taskId,
Map<String, Object> variables) {
this.taskId = taskId;
this.variables = variables;
}
@Override
public String getTaskId() {
return taskId;
}
@Override
public TaskCommands getCommandType() {
return commandType;
}
@Override
public Map<String, Object> getVariables() {
return variables;
}
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd.result.impl;
import org.activiti.runtime.api.cmd.ClaimTask;
import org.activiti.runtime.api.cmd.result.ClaimTaskResult;
public class ClaimTaskResultImpl extends CommandResultImpl<ClaimTask> implements ClaimTaskResult {
public ClaimTaskResultImpl() {
}
public ClaimTaskResultImpl(ClaimTask command) {
super(command);
}
}
/*
* Copyright 2018 Alfresco, Inc. and/or its affiliates.
*
* 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.
*/
package org.activiti.runtime.api.cmd.result.impl;
import org.activiti.runtime.api.cmd.CompleteTask;
import org.activiti.runtime.api.cmd.result.CompleteTaskResult;
public class CompleteTaskResultImpl extends CommandResultImpl<CompleteTask> implements CompleteTaskResult {
public CompleteTaskResultImpl() {
}
public CompleteTaskResultImpl(CompleteTask command) {
super(command);
}
}
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册