From 6e64651c9e21ca897a01bf2d92fea4d68a450a21 Mon Sep 17 00:00:00 2001 From: herodotus Date: Fri, 20 Aug 2021 13:04:44 +0800 Subject: [PATCH] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20v2.5.4.60=201.=20Spring=20?= =?UTF-8?q?Boot=20=E7=89=88=E6=9C=AC=E5=8D=87=E7=BA=A7=E8=87=B3=202.5.4=20?= =?UTF-8?q?2.=20Skywalking=20=E7=89=88=E6=9C=AC=E5=8D=87=E7=BA=A7=E8=87=B3?= =?UTF-8?q?=208.7.0=203.=20=E5=BE=AE=E6=9C=8D=E5=8A=A1=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E8=BE=93=E5=87=BA=E8=87=B3=E6=97=A5=E5=BF=97=E4=B8=AD=E5=BF=83?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E3=80=82=204.=20=E5=A2=9E=E5=8A=A0Swagger?= =?UTF-8?q?=E6=B3=A8=E5=85=A5=E6=9D=A1=E4=BB=B6=E6=B3=A8=E8=A7=A3=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=97=A5=E5=BF=97=E4=B8=AD=E5=BF=83=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E9=85=8D=E7=BD=AE=E9=87=87=E7=94=A8=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E5=B8=B8=E9=87=8F=E6=8E=A7=E5=88=B6=205.=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89Property"=E5=8A=A9=E6=89=8B"?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=BB=9F=E4=B8=80=E8=87=AA=E5=8A=A8=E7=BC=96?= =?UTF-8?q?=E8=AF=91=E7=94=9F=E6=88=90=E9=85=8D=E7=BD=AE=EF=BC=8C=E6=97=A0?= =?UTF-8?q?=E9=A1=BB=E9=A2=9D=E5=A4=96=E8=AE=BE=E7=BD=AE=EF=BC=8C=E5=9C=A8?= =?UTF-8?q?IDE=E4=B8=AD=E7=BC=96=E8=BE=91=E9=85=8D=E7=BD=AE=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E6=97=B6=E5=8F=AF=E8=87=AA=E5=8A=A8=E5=BC=B9=E5=87=BA?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=206.=20=E4=BF=AE=E5=A4=8DKafka=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E4=B8=8D=E7=94=9F=E6=95=88=E9=97=AE=E9=A2=98=E3=80=82?= =?UTF-8?q?=207.=20=E8=A7=A3=E5=86=B3=E5=8D=95=E4=BD=93=E7=89=88=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=90=AF=E5=8A=A8Kafka=E9=97=AE=E9=A2=98=E3=80=82=208?= =?UTF-8?q?.=20=E6=9A=82=E6=97=B6=E5=85=B3=E9=97=AD=E5=8D=95=E4=BD=93?= =?UTF-8?q?=E7=89=88Swagger=EF=BC=8C=E8=A7=84=E9=81=BFSwagger=E4=BC=9A?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=90=AF=E5=8A=A8Kafka=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dependencies/pom.xml | 7 +++ documents/readme/logo.jpg | Bin 55624 -> 55380 bytes .../annotation/ConditionalOnKafkaEnabled.java | 2 +- .../ConditionalOnLogCenterEnabled.java | 3 +- .../ConditionalOnSwaggerEnabled.java | 41 ++++++++++++++++++ .../constant/magic/PropertyConstants.java | 9 +++- .../data/configuration/DataConfiguration.java | 9 +++- packages/eurynome-cloud-kernel/pom.xml | 2 +- .../configuration/LogstashConfiguration.java | 7 +-- .../configuration/SwaggerConfiguration.java | 3 +- pom.xml | 18 ++++++++ .../rest/processor/ActIdGroupProcessor.java | 2 +- .../processor/ActIdMembershipProcessor.java | 2 +- .../processor/ActIdTenantMemberProcessor.java | 2 +- .../rest/processor/ActIdTenantProcessor.java | 2 +- .../rest/processor/ActIdUserProcessor.java | 2 +- .../entity/system/SysSecurityAttribute.java | 2 +- 17 files changed, 97 insertions(+), 16 deletions(-) create mode 100644 packages/eurynome-cloud-assistant/src/main/java/cn/herodotus/eurynome/assistant/annotation/ConditionalOnSwaggerEnabled.java diff --git a/dependencies/pom.xml b/dependencies/pom.xml index c85cafded..908574eb3 100644 --- a/dependencies/pom.xml +++ b/dependencies/pom.xml @@ -67,6 +67,7 @@ 0.36.1 5.0.0 + 1.4.2.Final 4.4 @@ -300,6 +301,12 @@ knife4j-spring-ui ${knife4j.version} + + + org.mapstruct + mapstruct-processor + ${mapstruct-processor.version} + diff --git a/documents/readme/logo.jpg b/documents/readme/logo.jpg index b82eba76abab956d183b63c221314466300aaf8d..9395a5e9241ac8cd050ca3eaae78a7651477b79f 100644 GIT binary patch literal 55380 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�sI4(t&K13Q@bY5uYx}<{p5A{)))0uekBVO8vgZq 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

phuVg6Ja`bMw6ZJv*or-LNNrIWjsfto4}#+g z(+MN?Uc8f=YUQ=?X%fjZd)7rm$ULOuml;ILHuB_AdR58#=2refseO@W@Kj+3V_-Q^ zL@nCGg8ZttA=7K#6$M72M<8-Zh+_a`z$Q;KUGH{69_Eh8)9z^uAs&X|+gfPd1rX~V zYki8-h3PP7dQbJJ`#(XAFS+bB-VlsH?>m~G8OFLWqlrIQVspU_S-QOH<7(8JpsEm0d?%Vp7$-G@OT{97i5|b{IFr z*^mX--_8d<=Sm3ueO6zdHU|(6S;n<;`SE8VLvLzF(F+Kuc|#@zsGu&UOZzcFL1w79 zkS`A6B;TZ7rC-iVSA@%_^0%|0s}&}_m*+!>zfJWHbl(O#gz?$-!BQh6s-V;o-?K?w z^T>E^QfRcLjD`bd*Z8FnYwTGT6B;Pr+k9%{_RKcVgu~Y1MxVF!ILJ09Y-zb%!7p05 z2_<;rX0-wpFyFGPQApszP?rjMR9v!ujySyX%raS&|C~Spc^*O1EF6S6^=hKWw@^P zG(?~R!31jxyoX7|j8Eg$m*`IBmlTidUIk#nPq)&NwX%>244HbhgrPsPJSdr?C-uJU ziz74y>_~`|l;n~f33FjWBopxt(+Qi+KYb?Nx?MGc5P^)dxPyMiHk3-`cjUhUBt=Bmcqaw~upc^)FANS<(Sc2MfO5`52 z=zg_pzESEug~!#7F>AWU*%xMErj^$Ff{rz2Lc72W~Nq=P6m~YkDGkNLT^8JZ4QIX*?z)BtaX?oW!xx zQV;LpP&1HN?5wwuEpDqB5VV;^9vYIm$qOiUa+kZSv!+|kVCc?DAGETU=jLJHb6$zh zi;iM6R)xxD*TpBvF9=N8xzj+~PK0fe9;jK(zJQ+$FZ@8YOn}`;`3-^*Yh=54OenHW zZ&$6l>jS1lClg36gYv6Z&$qV;G^pRwKeyJIG$@H9a~y_f2QSt3?93d_+mE#yaT>$! z7y8xDxETTb9hHm(K6d~=~9A5j<7%JTYaN!X2W>#TDD)UOc^Sm2{ z@&oBX_f5U?8GTs+2y|Ek`sHpw1#We2(CC@yDRxW8;|qCo2dZ%asL`$1 z+Dy#68`M(K;%aoapZhJ)-1G~*JJ={Wwh-eq&$+cblh<2Kr``G603`Y2zuq)cT+qPE z=I6+QWoEgEM{OWbFlFPiE7v&@#JiHKI<0Woq`r|`IEkjHD+wOhZJQ$4?|Tf$xG+sB z8eE`q4Cs3%m9%g_+OGj_gqj=R%y!Wf`~jzQVO3+Cl1dUsgXa|!5l05|$<1wEMT#9& z^WRp_oO zI^@k1((mF`1lruhZ}g9dg6B!jABzI$LB#Mi)~&$4>xAY#zzb>cUR~!&7U=M=6GkX`vrq{^sqeOcZuD({&o04#L#Z0 zV8#|RLjM+|)ASoDzd|nP*|c<>s8`XRh&DPeD88bP7oyv4;cbh4n!9RKkXh43Gff+a z%Gzo#AO2@*C{s63wnx-!vN!bLdAyV21xccz%$fGNj0u;i#(m8Vk=3(c#=OV8t8Fqg z=&}d%IE{e1K)1fu^#CV4t9JDCctUUUx9MB;)t##wRaQhtY{_XE5q>u#5-Mhvnb+_K z(8~I-KnpX{_Li!)-@RYl90KOh$zg*I9?H#%hs2=XMjlPFbN!wZ`oJm@j)Vh*2Z>6^b!^%q&!ltOY zbT3`e{S!D+aB`nuUxH2LhT9*zS=Y-nJTsO3dUVU7JZjHHZ8wc1xsB8>;K;b0P`_p>i_@% literal 55624 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: Swagger条件开启主机

+ * + * @author : gengwei.zheng + * @date : 2021/8/20 11:36 + */ +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.TYPE, ElementType.METHOD}) +@Documented +@ConditionalOnProperty(value = PropertyConstants.ITEM_PLATFORM_SWAGGER_ENABLED, havingValue = "true", matchIfMissing = true) +public @interface ConditionalOnSwaggerEnabled { +} diff --git a/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/magic/PropertyConstants.java b/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/magic/PropertyConstants.java index 4ac68c001..56a02d196 100644 --- a/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/magic/PropertyConstants.java +++ b/packages/eurynome-cloud-common/src/main/java/cn/herodotus/eurynome/common/constant/magic/PropertyConstants.java @@ -40,9 +40,11 @@ public class PropertyConstants { public static final String PROPERTY_PREFIX_CACHE = PROPERTY_PREFIX_PLATFORM + ".cache"; public static final String PROPERTY_PREFIX_REST = PROPERTY_PREFIX_PLATFORM + ".rest"; public static final String PROPERTY_PREFIX_SECURITY = PROPERTY_PREFIX_PLATFORM + ".security"; + public static final String PROPERTY_PREFIX_SWAGGER = PROPERTY_PREFIX_PLATFORM + ".swagger"; public static final String PROPERTY_PREFIX_MANAGEMENT_NACOS = PROPERTY_PREFIX_MANAGEMENT + ".nacos"; public static final String PROPERTY_PREFIX_MANAGEMENT_QUEUE = PROPERTY_PREFIX_MANAGEMENT + ".queue"; + public static final String PROPERTY_PREFIX_MANAGEMENT_LOG_CENTER = PROPERTY_PREFIX_MANAGEMENT + ".log-center"; public static final String PROPERTY_PREFIX_MANAGEMENT_SERVICE = PROPERTY_PREFIX_MANAGEMENT + ".service"; public static final String PROPERTY_PREFIX_SOCIAL_JUSTAUTH = PROPERTY_PREFIX_SOCIAL + ".justauth"; @@ -59,13 +61,16 @@ public class PropertyConstants { public static final String PROPERTY_PREFIX_AUDIT_BAIDU = PROPERTY_PREFIX_AUDIT + ".baidu"; public static final String PROPERTY_PREFIX_AUDIT_TIANYAN = PROPERTY_PREFIX_AUDIT + ".tianyan"; - public static final String ITEM_SPRING_APPLICATION_NAME = "spring.application.name"; public static final String ITEM_SPRING_JPA_HIBERNATE_DDL_AUTO = "spring.jpa.hibernate.ddl-auto"; public static final String ITEM_PLATFORM_DATA_ACCESS_STRATEGY = PROPERTY_PREFIX_PLATFORM + ".data-access-strategy"; public static final String ITEM_PLATFORM_ARCHITECTURE = PROPERTY_PREFIX_PLATFORM + ".architecture"; - public static final String ITEM_PLATFORM_KAFKA_ENABLED = PROPERTY_PREFIX_MANAGEMENT_QUEUE + ".kafka.enabled"; + public static final String ITEM_PLATFORM_SWAGGER_ENABLED = PROPERTY_PREFIX_SWAGGER + ".enabled"; + + public static final String ITEM_MANAGEMENT_KAFKA_ENABLED = PROPERTY_PREFIX_MANAGEMENT_QUEUE + ".kafka.enabled"; + public static final String ITEM_MANAGEMENT_LOG_CENTER_ENABLED = PROPERTY_PREFIX_MANAGEMENT_LOG_CENTER + ".server-addr"; + public static final String ANNOTATION_APPLICATION_NAME = "${" + ITEM_SPRING_APPLICATION_NAME + "}"; public static final String ANNOTATION_DEBEZIUM_ENABLED = "${herodotus.platform.debezium.enabled}"; } diff --git a/packages/eurynome-cloud-data/src/main/java/cn/herodotus/eurynome/data/configuration/DataConfiguration.java b/packages/eurynome-cloud-data/src/main/java/cn/herodotus/eurynome/data/configuration/DataConfiguration.java index dcb323a78..f6c1c6184 100644 --- a/packages/eurynome-cloud-data/src/main/java/cn/herodotus/eurynome/data/configuration/DataConfiguration.java +++ b/packages/eurynome-cloud-data/src/main/java/cn/herodotus/eurynome/data/configuration/DataConfiguration.java @@ -24,12 +24,14 @@ import cn.herodotus.eurynome.data.cache.layer.HerodotusCacheManager; import cn.herodotus.eurynome.data.properties.CacheProperties; +import cn.herodotus.eurynome.data.properties.QueueProperties; import cn.hutool.extra.spring.SpringUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration; +import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cache.caffeine.CaffeineCacheManager; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -67,7 +69,12 @@ @Configuration(proxyBeanMethods = false) @EnableJpaAuditing @AutoConfigureAfter(JpaRepositoriesAutoConfiguration.class) -@Import({SpringUtil.class, CaffeineConfiguration.class, KafkaConfiguration.class}) +@EnableConfigurationProperties({QueueProperties.class}) +@Import({ + SpringUtil.class, + CaffeineConfiguration.class, + KafkaConfiguration.class +}) public class DataConfiguration { private static final Logger log = LoggerFactory.getLogger(DataConfiguration.class); diff --git a/packages/eurynome-cloud-kernel/pom.xml b/packages/eurynome-cloud-kernel/pom.xml index 34a4ce066..1f05aa8b5 100644 --- a/packages/eurynome-cloud-kernel/pom.xml +++ b/packages/eurynome-cloud-kernel/pom.xml @@ -41,7 +41,7 @@ ${project.groupId} - eurynome-cloud-common + eurynome-cloud-assistant diff --git a/packages/eurynome-cloud-kernel/src/main/java/cn/herodotus/eurynome/kernel/configuration/LogstashConfiguration.java b/packages/eurynome-cloud-kernel/src/main/java/cn/herodotus/eurynome/kernel/configuration/LogstashConfiguration.java index ed0495ba3..8ed7c4591 100644 --- a/packages/eurynome-cloud-kernel/src/main/java/cn/herodotus/eurynome/kernel/configuration/LogstashConfiguration.java +++ b/packages/eurynome-cloud-kernel/src/main/java/cn/herodotus/eurynome/kernel/configuration/LogstashConfiguration.java @@ -26,6 +26,8 @@ import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.LoggerContext; import ch.qos.logback.classic.spi.ILoggingEvent; +import cn.herodotus.eurynome.assistant.annotation.ConditionalOnLogCenterEnabled; +import cn.herodotus.eurynome.common.constant.magic.PropertyConstants; import cn.herodotus.eurynome.kernel.logback.LogstashPattern; import cn.herodotus.eurynome.kernel.properties.ManagementProperties; import com.alibaba.fastjson.JSON; @@ -39,7 +41,6 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.logging.LogLevel; import org.springframework.context.annotation.Configuration; @@ -63,10 +64,10 @@ @EnableConfigurationProperties({ ManagementProperties.class }) -@ConditionalOnProperty(name = "herodotus.platform.management.log-center.server-addr") +@ConditionalOnLogCenterEnabled public class LogstashConfiguration { - @Value("${spring.application.name}") + @Value(PropertyConstants.ANNOTATION_APPLICATION_NAME) private String serviceName; @Autowired diff --git a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/SwaggerConfiguration.java b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/SwaggerConfiguration.java index 2882ab0c3..3dd06186a 100644 --- a/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/SwaggerConfiguration.java +++ b/packages/eurynome-cloud-rest/src/main/java/cn/herodotus/eurynome/rest/configuration/SwaggerConfiguration.java @@ -22,6 +22,7 @@ package cn.herodotus.eurynome.rest.configuration; +import cn.herodotus.eurynome.assistant.annotation.ConditionalOnSwaggerEnabled; import cn.herodotus.eurynome.common.constant.magic.SecurityConstants; import cn.herodotus.eurynome.common.constant.enums.Architecture; import cn.herodotus.eurynome.rest.properties.PlatformProperties; @@ -56,7 +57,7 @@ */ @Slf4j @Configuration -@ConditionalOnProperty(value = "herodotus.platform.swagger.enabled", havingValue = "true", matchIfMissing = true) +@ConditionalOnSwaggerEnabled @AutoConfigureAfter(ServiceConfiguration.class) @EnableSwagger2 public class SwaggerConfiguration { diff --git a/pom.xml b/pom.xml index 3c4a24607..2df1e4138 100644 --- a/pom.xml +++ b/pom.xml @@ -244,6 +244,24 @@ ${java.version} ${java.version} ${project.build.sourceEncoding} + true + + + org.projectlombok + lombok + ${lombok.version} + + + org.mapstruct + mapstruct-processor + ${mapstruct-processor.version} + + + org.springframework.boot + spring-boot-configuration-processor + ${spring-boot-dependencies.version} + + diff --git a/services/eurynome-cloud-bpmn-rest/src/main/java/cn/herodotus/eurynome/bpmn/rest/processor/ActIdGroupProcessor.java b/services/eurynome-cloud-bpmn-rest/src/main/java/cn/herodotus/eurynome/bpmn/rest/processor/ActIdGroupProcessor.java index 097c8f077..be2f5388f 100644 --- a/services/eurynome-cloud-bpmn-rest/src/main/java/cn/herodotus/eurynome/bpmn/rest/processor/ActIdGroupProcessor.java +++ b/services/eurynome-cloud-bpmn-rest/src/main/java/cn/herodotus/eurynome/bpmn/rest/processor/ActIdGroupProcessor.java @@ -48,7 +48,7 @@ public ActIdGroupProcessor(ActIdGroupService actIdGroupService) { this.actIdGroupService = actIdGroupService; } - @KafkaListener(topics = {"herodotus.public.sys_department"}, groupId = "herodotus.debezium") + @KafkaListener(topics = {"herodotus.public.sys_department"}, groupId = "herodotus.debezium", containerFactory = "concurrentKafkaListenerContainerFactory") public void received(String body) { log.info("[Eurynome] |- Recived Debezium event message from [sys_department], content is : [{}]", body); this.execute(body); diff --git a/services/eurynome-cloud-bpmn-rest/src/main/java/cn/herodotus/eurynome/bpmn/rest/processor/ActIdMembershipProcessor.java b/services/eurynome-cloud-bpmn-rest/src/main/java/cn/herodotus/eurynome/bpmn/rest/processor/ActIdMembershipProcessor.java index 7e5980440..9afd2dded 100644 --- a/services/eurynome-cloud-bpmn-rest/src/main/java/cn/herodotus/eurynome/bpmn/rest/processor/ActIdMembershipProcessor.java +++ b/services/eurynome-cloud-bpmn-rest/src/main/java/cn/herodotus/eurynome/bpmn/rest/processor/ActIdMembershipProcessor.java @@ -48,7 +48,7 @@ public ActIdMembershipProcessor(ActIdMembershipService actIdMembershipService) { this.actIdMembershipService = actIdMembershipService; } - @KafkaListener(topics = {"herodotus.public.sys_employee_department"}, groupId = "herodotus.debezium") + @KafkaListener(topics = {"herodotus.public.sys_employee_department"}, groupId = "herodotus.debezium", containerFactory = "concurrentKafkaListenerContainerFactory") public void received(String body) { log.info("[Eurynome] |- Recived Debezium event message from [sys_employee_department], content is : [{}]", body); this.execute(body); diff --git a/services/eurynome-cloud-bpmn-rest/src/main/java/cn/herodotus/eurynome/bpmn/rest/processor/ActIdTenantMemberProcessor.java b/services/eurynome-cloud-bpmn-rest/src/main/java/cn/herodotus/eurynome/bpmn/rest/processor/ActIdTenantMemberProcessor.java index cb31bb4af..53040aca4 100644 --- a/services/eurynome-cloud-bpmn-rest/src/main/java/cn/herodotus/eurynome/bpmn/rest/processor/ActIdTenantMemberProcessor.java +++ b/services/eurynome-cloud-bpmn-rest/src/main/java/cn/herodotus/eurynome/bpmn/rest/processor/ActIdTenantMemberProcessor.java @@ -48,7 +48,7 @@ public ActIdTenantMemberProcessor(ActIdTenantMemberService actIdTenantMemberServ this.actIdTenantMemberService = actIdTenantMemberService; } - @KafkaListener(topics = {"herodotus.public.sys_ownership"}, groupId = "herodotus.debezium") + @KafkaListener(topics = {"herodotus.public.sys_ownership"}, groupId = "herodotus.debezium", containerFactory = "concurrentKafkaListenerContainerFactory") public void received(String body) { log.info("[Eurynome] |- Recived Debezium event message from [sys_ownership], content is : [{}]", body); this.execute(body); diff --git a/services/eurynome-cloud-bpmn-rest/src/main/java/cn/herodotus/eurynome/bpmn/rest/processor/ActIdTenantProcessor.java b/services/eurynome-cloud-bpmn-rest/src/main/java/cn/herodotus/eurynome/bpmn/rest/processor/ActIdTenantProcessor.java index 44ae88dd2..488c36789 100644 --- a/services/eurynome-cloud-bpmn-rest/src/main/java/cn/herodotus/eurynome/bpmn/rest/processor/ActIdTenantProcessor.java +++ b/services/eurynome-cloud-bpmn-rest/src/main/java/cn/herodotus/eurynome/bpmn/rest/processor/ActIdTenantProcessor.java @@ -48,7 +48,7 @@ public ActIdTenantProcessor(ActIdTenantService actIdTenantService) { this.actIdTenantService = actIdTenantService; } - @KafkaListener(topics = {"herodotus.public.sys_department"}, groupId = "herodotus.debezium") + @KafkaListener(topics = {"herodotus.public.sys_department"}, groupId = "herodotus.debezium", containerFactory = "concurrentKafkaListenerContainerFactory") public void received(String body) { log.info("[Eurynome] |- Recived Debezium event message from [sys_department], content is : [{}]", body); this.execute(body); diff --git a/services/eurynome-cloud-bpmn-rest/src/main/java/cn/herodotus/eurynome/bpmn/rest/processor/ActIdUserProcessor.java b/services/eurynome-cloud-bpmn-rest/src/main/java/cn/herodotus/eurynome/bpmn/rest/processor/ActIdUserProcessor.java index 7245ae59d..1b0175642 100644 --- a/services/eurynome-cloud-bpmn-rest/src/main/java/cn/herodotus/eurynome/bpmn/rest/processor/ActIdUserProcessor.java +++ b/services/eurynome-cloud-bpmn-rest/src/main/java/cn/herodotus/eurynome/bpmn/rest/processor/ActIdUserProcessor.java @@ -48,7 +48,7 @@ public ActIdUserProcessor(ActIdUserService actIdUserService) { this.actIdUserService = actIdUserService; } - @KafkaListener(topics = {"herodotus.public.sys_employee"}, groupId = "herodotus.debezium") + @KafkaListener(topics = {"herodotus.public.sys_employee"}, groupId = "herodotus.debezium", containerFactory = "concurrentKafkaListenerContainerFactory") public void received(String body) { log.info("[Eurynome] |- Recived Debezium event message from [sys_employee], content is : [{}]", body); this.execute(body); diff --git a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysSecurityAttribute.java b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysSecurityAttribute.java index a981b0da3..aa7039619 100644 --- a/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysSecurityAttribute.java +++ b/services/eurynome-cloud-upms-api/src/main/java/cn/herodotus/eurynome/upms/api/entity/system/SysSecurityAttribute.java @@ -55,7 +55,7 @@ public class SysSecurityAttribute extends BaseSysEntity { @ApiModelProperty(value = "元数据ID") @Id @GeneratedValue(generator = "metadata-uuid") - @GenericGenerator(name = "metadata-uuid", strategy = "cn.herodotus.cloud.upms.api.generator.SysSecurityAttributeUUIDGenerator") + @GenericGenerator(name = "metadata-uuid", strategy = "cn.herodotus.eurynome.upms.api.generator.SysSecurityAttributeUUIDGenerator") @Column(name = "attribute_id", length = 64) private String attributeId;