• activiti-api


    Survive by day and develop by night.
    talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
    happy for hardess to solve denpendies.

    目录

    在这里插入图片描述

    概述

    activiti-api的是一个非常常见的需求。

    需求:

    设计思路

    实现思路分析

    1.VariableEvent

    public interface VariableCreatedEvent extends VariableEvent {
    
    }
    
    • 1
    • 2
    • 3

    2.EmptyResult

    public class EmptyResult extends Result<Void> {
    
        public EmptyResult() {
        }
    
        public EmptyResult(Payload payload) {
            super(payload,
                  null);
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    3.BPMNElement

    public interface BPMNElement {
    
        String getElementId();
    
        String getProcessInstanceId();
    
        String getProcessDefinitionId();
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    4.BPMNError

    
    public interface BPMNError extends BPMNActivity {
    
        String getErrorCode();
    
        String getErrorId();
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    5.Connector

    public interface Connector extends Function<IntegrationContext, IntegrationContext> {
    
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    AbstractSecurityManager

    public abstract class AbstractSecurityManager implements SecurityManager {
    
        private static final String INVALID_AUTHENTICATED_PRINCIPAL = "Invalid authenticated principal";
    
        private final SecurityContextPrincipalProvider securityContextPrincipalProvider;
        private final PrincipalIdentityProvider principalIdentityProvider;
        private final PrincipalGroupsProvider principalGroupsProvider;
        private final PrincipalRolesProvider principalRolesProvider;
    
        public AbstractSecurityManager(SecurityContextPrincipalProvider securityContextPrincipalProvider,
                                       PrincipalIdentityProvider principalIdentityProvider,
                                       PrincipalGroupsProvider principalGroupsProvider,
                                       PrincipalRolesProvider principalRolesProvider) {
            this.securityContextPrincipalProvider = securityContextPrincipalProvider;
            this.principalIdentityProvider = principalIdentityProvider;
            this.principalGroupsProvider = principalGroupsProvider;
            this.principalRolesProvider = principalRolesProvider;
        }
    
        @Override
        public String getAuthenticatedUserId() {
            return securityContextPrincipalProvider.getCurrentPrincipal()
                                                   .map(principalIdentityProvider::getUserId)
                                                   .orElseThrow(this::securityException);
        }
    
        @Override
        public List<String> getAuthenticatedUserGroups() {
            return securityContextPrincipalProvider.getCurrentPrincipal()
                                                   .map(principalGroupsProvider::getGroups)
                                                   .orElseThrow(this::securityException);
        }
    
        @Override
        public List<String> getAuthenticatedUserRoles() {
            return securityContextPrincipalProvider.getCurrentPrincipal()
                                                   .map(principalRolesProvider::getRoles)
                                                   .orElseThrow(this::securityException);
        }
    
        protected SecurityException securityException() {
            return new SecurityException(INVALID_AUTHENTICATED_PRINCIPAL);
        }
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46

    参考资料和推荐阅读

    [1]. https://www.activiti.org/

    欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!~

  • 相关阅读:
    第六章认识Node.js服务器开发
    flowable-ui部署
    在Domino上部署运行在Web浏览器中的Notes客户机
    11-zinx-Golang-MMO服务器-AOI算法实现
    513.找树左下角的值
    Flink中序列化RoaringBitmap不同方式的对比
    《web课程设计》用HTML CSS做一个简洁、漂亮的个人博客网站
    按区间反转文章片段
    Fiddler抓http数据
    690条中医疾病疾病知识问答ACCESS\EXCEL数据库
  • 原文地址:https://blog.csdn.net/xiamaocheng/article/details/128089792