package com.webank.wecube.platform.core.service.workflow;
import static com.webank.wecube.platform.core.utils.Constants.ASYNC_SERVICE_SYMBOL;
import static com.webank.wecube.platform.core.utils.Constants.FIELD_REQUIRED;
import static com.webank.wecube.platform.core.utils.Constants.MAPPING_TYPE_CONSTANT;
import static com.webank.wecube.platform.core.utils.Constants.MAPPING_TYPE_CONTEXT;
import static com.webank.wecube.platform.core.utils.Constants.MAPPING_TYPE_ENTITY;
import static com.webank.wecube.platform.core.utils.Constants.MAPPING_TYPE_OBJECT;
import static com.webank.wecube.platform.core.utils.Constants.MAPPING_TYPE_SYSTEM_VARIABLE;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.webank.wecube.platform.core.commons.WecubeCoreException;
import com.webank.wecube.platform.core.dto.plugin.ItsDangerConfirmResultDto;
import com.webank.wecube.platform.core.entity.plugin.CoreObjectMeta;
import com.webank.wecube.platform.core.entity.plugin.CoreObjectPropertyMeta;
import com.webank.wecube.platform.core.entity.plugin.CoreObjectVar;
import com.webank.wecube.platform.core.entity.plugin.PluginConfigInterfaceParameters;
import com.webank.wecube.platform.core.entity.plugin.PluginConfigInterfaces;
import com.webank.wecube.platform.core.entity.plugin.PluginConfigs;
import com.webank.wecube.platform.core.entity.plugin.PluginInstances;
import com.webank.wecube.platform.core.entity.plugin.PluginPackageAttributes;
import com.webank.wecube.platform.core.entity.plugin.PluginPackages;
import com.webank.wecube.platform.core.entity.plugin.SystemVariables;
import com.webank.wecube.platform.core.entity.workflow.ExtraTaskEntity;
import com.webank.wecube.platform.core.entity.workflow.ProcDefInfoEntity;
import com.webank.wecube.platform.core.entity.workflow.ProcExecBindingEntity;
import com.webank.wecube.platform.core.entity.workflow.ProcExecContextEntity;
import com.webank.wecube.platform.core.entity.workflow.ProcInstInfoEntity;
import com.webank.wecube.platform.core.entity.workflow.TaskNodeDefInfoEntity;
import com.webank.wecube.platform.core.entity.workflow.TaskNodeExecParamEntity;
import com.webank.wecube.platform.core.entity.workflow.TaskNodeExecRequestEntity;
import com.webank.wecube.platform.core.entity.workflow.TaskNodeInstInfoEntity;
import com.webank.wecube.platform.core.entity.workflow.TaskNodeParamEntity;
import com.webank.wecube.platform.core.model.workflow.BoundTaskNodeExecParamWrapper;
import com.webank.wecube.platform.core.model.workflow.ContextCalculationParam;
import com.webank.wecube.platform.core.model.workflow.ContextCalculationParamCollection;
import com.webank.wecube.platform.core.model.workflow.DmeOutputParamAttr;
import com.webank.wecube.platform.core.model.workflow.InputParamAttr;
import com.webank.wecube.platform.core.model.workflow.InputParamObject;
import com.webank.wecube.platform.core.model.workflow.PluginInvocationCommand;
import com.webank.wecube.platform.core.model.workflow.PluginInvocationResult;
import com.webank.wecube.platform.core.model.workflow.ProcExecBindingKey;
import com.webank.wecube.platform.core.model.workflow.ProcExecBindingKeyLink;
import com.webank.wecube.platform.core.model.workflow.WorkflowInstCreationContext;
import com.webank.wecube.platform.core.service.dme.EntityDataAttr;
import com.webank.wecube.platform.core.service.dme.EntityDataRecord;
import com.webank.wecube.platform.core.service.dme.EntityOperationRootCondition;
import com.webank.wecube.platform.core.service.dme.EntityQueryExprNodeInfo;
import com.webank.wecube.platform.core.service.dme.EntityRouteDescription;
import com.webank.wecube.platform.core.service.dme.EntityTreeNodesOverview;
import com.webank.wecube.platform.core.service.dme.StandardEntityDataNode;
import com.webank.wecube.platform.core.service.dme.StandardEntityOperationResponseDto;
import com.webank.wecube.platform.core.service.dme.StandardEntityOperationRestClient;
import com.webank.wecube.platform.core.service.plugin.CoreObjectVarCalculationContext;
import com.webank.wecube.platform.core.service.plugin.PluginPackageDataModelService;
import com.webank.wecube.platform.core.service.plugin.PluginParamObject;
import com.webank.wecube.platform.core.service.plugin.PluginParamObjectVarStorage;
import com.webank.wecube.platform.core.service.workflow.PluginInvocationProcessor.PluginInterfaceInvocationContext;
import com.webank.wecube.platform.core.service.workflow.PluginInvocationProcessor.PluginInterfaceInvocationResult;
import com.webank.wecube.platform.core.service.workflow.PluginInvocationProcessor.PluginInvocationOperation;
import com.webank.wecube.platform.core.support.plugin.dto.DynamicEntityAttrValueDto;
import com.webank.wecube.platform.core.support.plugin.dto.DynamicEntityValueDto;
import com.webank.wecube.platform.core.support.plugin.dto.TaskFormDataEntityDto;
import com.webank.wecube.platform.core.support.plugin.dto.TaskFormItemMetaDto;
import com.webank.wecube.platform.core.support.plugin.dto.TaskFormItemValueDto;
import com.webank.wecube.platform.core.support.plugin.dto.TaskFormMetaDto;
import com.webank.wecube.platform.core.support.plugin.dto.TaskFormValueDto;
import com.webank.wecube.platform.core.utils.Constants;
import com.webank.wecube.platform.core.utils.JsonUtils;
import com.webank.wecube.platform.workflow.WorkflowConstants;
import com.webank.wecube.platform.workflow.commons.LocalIdGenerator;
/**
*
* @author gavin
*
*/
@Service
public class PluginInvocationService extends AbstractPluginInvocationService {
@Autowired
protected PluginParamObjectVarStorage pluginParamObjectVarStorageService;
@Autowired
protected PluginPackageDataModelService pluginPackageDataModelService;
/**
*
* @param cmd
*/
public void invokePluginInterface(PluginInvocationCommand cmd) {
if (log.isInfoEnabled()) {
log.info("invoke plugin interface with:{}", cmd);
}
ProcInstInfoEntity procInstEntity = null;
TaskNodeInstInfoEntity taskNodeInstEntity = null;
try {
procInstEntity = retrieveProcInstInfoEntity(cmd);
taskNodeInstEntity = retrieveTaskNodeInstInfoEntity(procInstEntity.getId(), cmd.getNodeId());
doInvokePluginInterface(procInstEntity, taskNodeInstEntity, cmd);
} catch (Exception e) {
log.warn("errors while processing {} {}", cmd.getClass().getSimpleName(), cmd, e);
pluginInvocationResultService.responsePluginInterfaceInvocation(
new PluginInvocationResult().parsePluginInvocationCommand(cmd).withResultCode(RESULT_CODE_ERR));
updateTaskNodeInstInfoEntityFaulted(taskNodeInstEntity, e);
}
}
/**
* handle results of plugin interface invocation.
*
* @param pluginInvocationResult
* @param ctx
*/
public void handlePluginInterfaceInvocationResult(PluginInterfaceInvocationResult pluginInvocationResult,
PluginInterfaceInvocationContext ctx) {
if (log.isDebugEnabled()) {
log.debug("handle plugin interface invocation result");
}
if (!pluginInvocationResult.isSuccess() || pluginInvocationResult.hasErrors()) {
handleErrorInvocationResult(pluginInvocationResult, ctx);
return;
}
PluginConfigInterfaces pci = ctx.getPluginConfigInterface();
if (ASYNC_SERVICE_SYMBOL.equalsIgnoreCase(pci.getIsAsyncProcessing())) {
log.debug("such interface is asynchronous service : {} ", pci.getServiceName());
return;
}
List<Object> resultData = pluginInvocationResult.getResul
没有合适的资源?快使用搜索试试~ 我知道了~
wecube-platform-master.zip
共1313个文件
java:822个
png:205个
xml:92个
0 下载量 139 浏览量
2023-03-21
10:07:48
上传
评论
收藏 19.75MB ZIP 举报
温馨提示
WeCube是一套开源的,一站式IT架构管理和运维管理工具,主要用于简化分布式架构IT管理,并可以通过插件进行功能扩展。 暂无标签
资源推荐
资源详情
资源评论
收起资源包目录
wecube-platform-master.zip (1313个子文件)
wecube.cfg 444B
Dockerfile 417B
Dockerfile 322B
Dockerfile 302B
Dockerfile 296B
Dockerfile 190B
.editorconfig 147B
.eslintignore 30B
.gitignore 371B
.gitignore 199B
.gitignore 9B
.gitignore 9B
.gitignore 9B
init_cmdb.go 1KB
index.html 2KB
favicon.ico 22KB
version.inf 13B
version.inf 13B
init_cmdb 4.7MB
PluginInvocationService.java 185KB
PluginConfigMigrationService.java 88KB
StandardEntityOperationServiceTestsMockers.java 84KB
PluginConfigMgmtService.java 78KB
PluginPackageMgmtService.java 63KB
PluginArtifactsMgmtService.java 63KB
PluginInstanceMgmtService.java 60KB
BatchExecutionService.java 56KB
WorkflowProcDefDeploymentService.java 49KB
WorkflowDataService.java 48KB
PluginPackageDataModelService.java 47KB
WorkflowProcInstService.java 45KB
PluginParamObjectVarCalculator.java 42KB
ResourceServerExample.java 39KB
ResourceItemExample.java 36KB
WorkflowPublicAccessService.java 35KB
RootlessExpressionServiceMocker.java 30KB
WorkflowEngineService.java 30KB
UserScheduledTaskService.java 29KB
StandardEntityQueryExecutor.java 28KB
WorkflowStatisticsService.java 28KB
SystemVariablesExample.java 26KB
AsyncPluginInvocationService.java 26KB
AbstractPluginInvocationService.java 25KB
CustomBpmnParse.java 22KB
RoleManagementService.java 22KB
UserManagementService.java 22KB
MysqlDatabaseInitializer.java 21KB
MysqlDatabaseInitializer.java 21KB
DynamicRouteConfigurationService.java 21KB
BpmnProcessModelCustomizer.java 19KB
ResourceManagementService.java 19KB
UserManagementServiceImpl.java 18KB
StandardEntityOperationServiceTests.java 17KB
PluginInvocationProcessor.java 17KB
DataServiceControllerTest.java 16KB
EntityDataCenterService.java 16KB
ResourceDataQueryService.java 16KB
PluginParamObjectVarMarshaller.java 14KB
RoleFavoritesServiceImpl.java 14KB
WorkflowProcDefService.java 14KB
DataModelServiceStub.java 14KB
SystemVariableService.java 14KB
WorkflowProcessDefinitionController.java 14KB
AbstractWorkflowProcDefService.java 14KB
UmAuthenticationChecker.java 14KB
MenuService.java 13KB
ExRetryGatewayFilterFactory.java 13KB
PluginParamObjectMetaStorage.java 12KB
ProcessRoleServiceImpl.java 12KB
SubSystemManagementService.java 11KB
WorkflowProcDefMigrationService.java 11KB
ApplicationProperties.java 11KB
DockerContainerManagementService.java 11KB
AbstractDatabaseInitializer.java 11KB
AbstractDatabaseInitializer.java 11KB
AuthServerRestClient.java 11KB
RoleMenuService.java 10KB
PluginRouteItemService.java 10KB
PluginParamObjectMetaRegister.java 10KB
JwtSsoBasedRefreshTokenFilter.java 10KB
HttpClientConfig.java 9KB
PluginParamObjectVarStorage.java 9KB
EntityQueryExpressionParserTests.java 9KB
ResourceItemDto.java 9KB
EntityQueryExpressionParser.java 9KB
StandardEntityOperationRestClient.java 9KB
ResourceServerDto.java 9KB
AuthServerRestClientProperties.java 9KB
PluginCertificationController.java 9KB
EncryptionUtils.java 8KB
RsaKeyPairDetector.java 8KB
RsaKeyPairDetector.java 8KB
RootlessExpressionServiceTest.java 8KB
StandardEntityOperationService.java 8KB
OperationEventsExecutor.java 8KB
OperationEventProcStarter.java 8KB
PluginPackageController.java 8KB
DynamicRouteItemInfoHolder.java 8KB
PackageType.java 8KB
MvcContextRouteConfig.java 8KB
共 1313 条
- 1
- 2
- 3
- 4
- 5
- 6
- 14
资源评论
m0_72731342
- 粉丝: 2
- 资源: 1832
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功