diff --git a/.idea/CopilotChatHistory.xml b/.idea/CopilotChatHistory.xml
index 73977210..907f6b3d 100644
--- a/.idea/CopilotChatHistory.xml
+++ b/.idea/CopilotChatHistory.xml
@@ -3,6 +3,12 @@
diff --git a/.idea/misc.xml b/.idea/misc.xml
index de0d1b3b..56f82a53 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -50,6 +50,8 @@
+
+
diff --git a/dependencies/.flattened-pom.xml b/dependencies/.flattened-pom.xml
index 807e307a..a095a902 100644
--- a/dependencies/.flattened-pom.xml
+++ b/dependencies/.flattened-pom.xml
@@ -22,7 +22,6 @@
20250107
8.6.0
1.27.1
- 2.3.1
2.7.0
4.3.1
3.36.0
@@ -35,7 +34,6 @@
1.12
2.2.7
2.17.0
- 1.2.11
2.6.10
6.0.0-M16
2.3.0
@@ -45,7 +43,6 @@
1.18.34
9.0.0
5.2.0
- 1.2.11
1.4.0
2.4
0.10.2
@@ -190,6 +187,16 @@
module-system-biz
${revision}
+
+ cd.casic.boot
+ module-ci-process-api
+ ${revision}
+
+
+ cd.casic.boot
+ module-ci-process-biz
+ ${revision}
+
io.github.mouzt
bizlog-sdk
@@ -560,16 +567,6 @@
apk-parser
${apk-parser.version}
-
- ch.qos.logback
- logback-core
- ${logback-core.version}
-
-
- ch.qos.logback
- logback-classic
- ${logback-classic.version}
-
com.github.ben-manes.caffeine
caffeine
diff --git a/framework/spring-boot-starter-biz-tenant/src/main/java/cd/casic/framework/tenant/core/mq/rocketmq/TenantRocketMQConsumeMessageHook.java b/framework/spring-boot-starter-biz-tenant/src/main/java/cd/casic/framework/tenant/core/mq/rocketmq/TenantRocketMQConsumeMessageHook.java
deleted file mode 100644
index 958a7c73..00000000
--- a/framework/spring-boot-starter-biz-tenant/src/main/java/cd/casic/framework/tenant/core/mq/rocketmq/TenantRocketMQConsumeMessageHook.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package cd.casic.framework.tenant.core.mq.rocketmq;
-
-import cd.casic.framework.tenant.core.context.TenantContextHolder;
-import cn.hutool.core.lang.Assert;
-import cn.hutool.core.util.StrUtil;
-import org.apache.rocketmq.client.hook.ConsumeMessageContext;
-import org.apache.rocketmq.client.hook.ConsumeMessageHook;
-import org.apache.rocketmq.common.message.MessageExt;
-import org.springframework.messaging.handler.invocation.InvocableHandlerMethod;
-
-import java.util.List;
-
-import static cd.casic.framework.web.core.util.WebFrameworkUtils.HEADER_TENANT_ID;
-
-/**
- * RocketMQ 消息队列的多租户 {@link ConsumeMessageHook} 实现类
- *
- * Consumer 消费消息时,将消息的 Header 的租户编号,添加到 {@link TenantContextHolder} 中,通过 {@link InvocableHandlerMethod} 实现
- *
- * @author mianbin modified from yudao
- */
-public class TenantRocketMQConsumeMessageHook implements ConsumeMessageHook {
-
- @Override
- public String hookName() {
- return getClass().getSimpleName();
- }
-
- @Override
- public void consumeMessageBefore(ConsumeMessageContext context) {
- // 校验,消息必须是单条,不然设置租户可能不正确
- List messages = context.getMsgList();
- Assert.isTrue(messages.size() == 1, "消息条数({})不正确", messages.size());
- // 设置租户编号
- String tenantId = messages.get(0).getUserProperty(HEADER_TENANT_ID);
- if (StrUtil.isNotEmpty(tenantId)) {
- TenantContextHolder.setTenantId(Long.parseLong(tenantId));
- }
- }
-
- @Override
- public void consumeMessageAfter(ConsumeMessageContext context) {
- TenantContextHolder.clear();
- }
-
-}
diff --git a/framework/spring-boot-starter-biz-tenant/src/main/java/cd/casic/framework/tenant/core/mq/rocketmq/TenantRocketMQInitializer.java b/framework/spring-boot-starter-biz-tenant/src/main/java/cd/casic/framework/tenant/core/mq/rocketmq/TenantRocketMQInitializer.java
deleted file mode 100644
index 5fa39a75..00000000
--- a/framework/spring-boot-starter-biz-tenant/src/main/java/cd/casic/framework/tenant/core/mq/rocketmq/TenantRocketMQInitializer.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package cd.casic.framework.tenant.core.mq.rocketmq;
-
-import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
-import org.apache.rocketmq.client.impl.consumer.DefaultMQPushConsumerImpl;
-import org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl;
-import org.apache.rocketmq.client.producer.DefaultMQProducer;
-import org.apache.rocketmq.spring.core.RocketMQTemplate;
-import org.apache.rocketmq.spring.support.DefaultRocketMQListenerContainer;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.config.BeanPostProcessor;
-
-/**
- * 多租户的 RocketMQ 初始化器
- *
- * @author mianbin modified from yudao
- */
-public class TenantRocketMQInitializer implements BeanPostProcessor {
-
- @Override
- public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
- if (bean instanceof DefaultRocketMQListenerContainer) {
- DefaultRocketMQListenerContainer container = (DefaultRocketMQListenerContainer) bean;
- initTenantConsumer(container.getConsumer());
- } else if (bean instanceof RocketMQTemplate) {
- RocketMQTemplate template = (RocketMQTemplate) bean;
- initTenantProducer(template.getProducer());
- }
- return bean;
- }
-
- private void initTenantProducer(DefaultMQProducer producer) {
- if (producer == null) {
- return;
- }
- DefaultMQProducerImpl producerImpl = producer.getDefaultMQProducerImpl();
- if (producerImpl == null) {
- return;
- }
- producerImpl.registerSendMessageHook(new TenantRocketMQSendMessageHook());
- }
-
- private void initTenantConsumer(DefaultMQPushConsumer consumer) {
- if (consumer == null) {
- return;
- }
- DefaultMQPushConsumerImpl consumerImpl = consumer.getDefaultMQPushConsumerImpl();
- if (consumerImpl == null) {
- return;
- }
- consumerImpl.registerConsumeMessageHook(new TenantRocketMQConsumeMessageHook());
- }
-
-}
\ No newline at end of file
diff --git a/framework/spring-boot-starter-biz-tenant/src/main/java/cd/casic/framework/tenant/core/mq/rocketmq/TenantRocketMQSendMessageHook.java b/framework/spring-boot-starter-biz-tenant/src/main/java/cd/casic/framework/tenant/core/mq/rocketmq/TenantRocketMQSendMessageHook.java
deleted file mode 100644
index 540d58b2..00000000
--- a/framework/spring-boot-starter-biz-tenant/src/main/java/cd/casic/framework/tenant/core/mq/rocketmq/TenantRocketMQSendMessageHook.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package cd.casic.framework.tenant.core.mq.rocketmq;
-
-import cd.casic.framework.tenant.core.context.TenantContextHolder;
-import org.apache.rocketmq.client.hook.SendMessageContext;
-import org.apache.rocketmq.client.hook.SendMessageHook;
-
-import static cd.casic.framework.web.core.util.WebFrameworkUtils.HEADER_TENANT_ID;
-
-/**
- * RocketMQ 消息队列的多租户 {@link SendMessageHook} 实现类
- *
- * Producer 发送消息时,将 {@link TenantContextHolder} 租户编号,添加到消息的 Header 中
- *
- * @author mianbin modified from yudao
- */
-public class TenantRocketMQSendMessageHook implements SendMessageHook {
-
- @Override
- public String hookName() {
- return getClass().getSimpleName();
- }
-
- @Override
- public void sendMessageBefore(SendMessageContext sendMessageContext) {
- Long tenantId = TenantContextHolder.getTenantId();
- if (tenantId == null) {
- return;
- }
- sendMessageContext.getMessage().putUserProperty(HEADER_TENANT_ID, tenantId.toString());
- }
-
- @Override
- public void sendMessageAfter(SendMessageContext sendMessageContext) {
- }
-
-}
diff --git a/framework/spring-boot-starter-websocket/src/main/java/cd/casic/framework/websocket/config/OpsWebSocketAutoConfiguration.java b/framework/spring-boot-starter-websocket/src/main/java/cd/casic/framework/websocket/config/OpsWebSocketAutoConfiguration.java
index 397d5b37..f8b42738 100644
--- a/framework/spring-boot-starter-websocket/src/main/java/cd/casic/framework/websocket/config/OpsWebSocketAutoConfiguration.java
+++ b/framework/spring-boot-starter-websocket/src/main/java/cd/casic/framework/websocket/config/OpsWebSocketAutoConfiguration.java
@@ -10,19 +10,11 @@ import cd.casic.framework.websocket.core.security.WebSocketAuthorizeRequestsCust
import cd.casic.framework.websocket.core.sender.kafka.KafkaWebSocketMessageConsumer;
import cd.casic.framework.websocket.core.sender.kafka.KafkaWebSocketMessageSender;
import cd.casic.framework.websocket.core.sender.local.LocalWebSocketMessageSender;
-import cd.casic.framework.websocket.core.sender.rabbitmq.RabbitMQWebSocketMessageConsumer;
-import cd.casic.framework.websocket.core.sender.rabbitmq.RabbitMQWebSocketMessageSender;
import cd.casic.framework.websocket.core.sender.redis.RedisWebSocketMessageConsumer;
import cd.casic.framework.websocket.core.sender.redis.RedisWebSocketMessageSender;
-import cd.casic.framework.websocket.core.sender.rocketmq.RocketMQWebSocketMessageConsumer;
-import cd.casic.framework.websocket.core.sender.rocketmq.RocketMQWebSocketMessageSender;
import cd.casic.framework.websocket.core.session.WebSocketSessionHandlerDecorator;
import cd.casic.framework.websocket.core.session.WebSocketSessionManager;
import cd.casic.framework.websocket.core.session.WebSocketSessionManagerImpl;
-
-import org.apache.rocketmq.spring.core.RocketMQTemplate;
-import org.springframework.amqp.core.TopicExchange;
-import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -115,54 +107,6 @@ public class OpsWebSocketAutoConfiguration {
}
- @Configuration
- @ConditionalOnProperty(prefix = "ops.websocket", name = "sender-type", havingValue = "rocketmq")
- public class RocketMQWebSocketMessageSenderConfiguration {
-
- @Bean
- public RocketMQWebSocketMessageSender rocketMQWebSocketMessageSender(
- WebSocketSessionManager sessionManager, RocketMQTemplate rocketMQTemplate,
- @Value("${ops.websocket.sender-rocketmq.topic}") String topic) {
- return new RocketMQWebSocketMessageSender(sessionManager, rocketMQTemplate, topic);
- }
-
- @Bean
- public RocketMQWebSocketMessageConsumer rocketMQWebSocketMessageConsumer(
- RocketMQWebSocketMessageSender rocketMQWebSocketMessageSender) {
- return new RocketMQWebSocketMessageConsumer(rocketMQWebSocketMessageSender);
- }
-
- }
-
- @Configuration
- @ConditionalOnProperty(prefix = "ops.websocket", name = "sender-type", havingValue = "rabbitmq")
- public class RabbitMQWebSocketMessageSenderConfiguration {
-
- @Bean
- public RabbitMQWebSocketMessageSender rabbitMQWebSocketMessageSender(
- WebSocketSessionManager sessionManager, RabbitTemplate rabbitTemplate,
- TopicExchange websocketTopicExchange) {
- return new RabbitMQWebSocketMessageSender(sessionManager, rabbitTemplate, websocketTopicExchange);
- }
-
- @Bean
- public RabbitMQWebSocketMessageConsumer rabbitMQWebSocketMessageConsumer(
- RabbitMQWebSocketMessageSender rabbitMQWebSocketMessageSender) {
- return new RabbitMQWebSocketMessageConsumer(rabbitMQWebSocketMessageSender);
- }
-
- /**
- * 创建 Topic Exchange
- */
- @Bean
- public TopicExchange websocketTopicExchange(@Value("${ops.websocket.sender-rabbitmq.exchange}") String exchange) {
- return new TopicExchange(exchange,
- true, // durable: 是否持久化
- false); // exclusive: 是否排它
- }
-
- }
-
@Configuration
@ConditionalOnProperty(prefix = "ops.websocket", name = "sender-type", havingValue = "kafka")
public class KafkaWebSocketMessageSenderConfiguration {
diff --git a/framework/spring-boot-starter-websocket/src/main/java/cd/casic/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessage.java b/framework/spring-boot-starter-websocket/src/main/java/cd/casic/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessage.java
deleted file mode 100644
index e1206663..00000000
--- a/framework/spring-boot-starter-websocket/src/main/java/cd/casic/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessage.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package cd.casic.framework.websocket.core.sender.rocketmq;
-
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-/**
- * RocketMQ 广播 WebSocket 的消息
- *
- * @author mianbin modified from yudao
- */
-@Data
-@Accessors(chain = true)
-public class RocketMQWebSocketMessage {
-
- /**
- * Session 编号
- */
- private String sessionId;
- /**
- * 用户类型
- */
- private Integer userType;
- /**
- * 用户编号
- */
- private Long userId;
-
- /**
- * 消息类型
- */
- private String messageType;
- /**
- * 消息内容
- */
- private String messageContent;
-
-}
diff --git a/framework/spring-boot-starter-websocket/src/main/java/cd/casic/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessageConsumer.java b/framework/spring-boot-starter-websocket/src/main/java/cd/casic/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessageConsumer.java
deleted file mode 100644
index 87b28e8b..00000000
--- a/framework/spring-boot-starter-websocket/src/main/java/cd/casic/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessageConsumer.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package cd.casic.framework.websocket.core.sender.rocketmq;
-
-import lombok.RequiredArgsConstructor;
-import org.apache.rocketmq.spring.annotation.MessageModel;
-import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
-import org.apache.rocketmq.spring.core.RocketMQListener;
-
-/**
- * {@link RocketMQWebSocketMessage} 广播消息的消费者,真正把消息发送出去
- *
- * @author mianbin modified from yudao
- */
-@RocketMQMessageListener( // 重点:添加 @RocketMQMessageListener 注解,声明消费的 topic
- topic = "${ops.websocket.sender-rocketmq.topic}",
- consumerGroup = "${ops.websocket.sender-rocketmq.consumer-group}",
- messageModel = MessageModel.BROADCASTING // 设置为广播模式,保证每个实例都能收到消息
-)
-@RequiredArgsConstructor
-public class RocketMQWebSocketMessageConsumer implements RocketMQListener {
-
- private final RocketMQWebSocketMessageSender rocketMQWebSocketMessageSender;
-
- @Override
- public void onMessage(RocketMQWebSocketMessage message) {
- rocketMQWebSocketMessageSender.send(message.getSessionId(),
- message.getUserType(), message.getUserId(),
- message.getMessageType(), message.getMessageContent());
- }
-
-}
diff --git a/framework/spring-boot-starter-websocket/src/main/java/cd/casic/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessageSender.java b/framework/spring-boot-starter-websocket/src/main/java/cd/casic/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessageSender.java
deleted file mode 100644
index 405899fd..00000000
--- a/framework/spring-boot-starter-websocket/src/main/java/cd/casic/framework/websocket/core/sender/rocketmq/RocketMQWebSocketMessageSender.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package cd.casic.framework.websocket.core.sender.rocketmq;
-
-import cd.casic.framework.websocket.core.sender.AbstractWebSocketMessageSender;
-import cd.casic.framework.websocket.core.sender.WebSocketMessageSender;
-import cd.casic.framework.websocket.core.session.WebSocketSessionManager;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.rocketmq.spring.core.RocketMQTemplate;
-
-/**
- * 基于 RocketMQ 的 {@link WebSocketMessageSender} 实现类
- *
- * @author mianbin modified from yudao
- */
-@Slf4j
-public class RocketMQWebSocketMessageSender extends AbstractWebSocketMessageSender {
-
- private final RocketMQTemplate rocketMQTemplate;
-
- private final String topic;
-
- public RocketMQWebSocketMessageSender(WebSocketSessionManager sessionManager,
- RocketMQTemplate rocketMQTemplate,
- String topic) {
- super(sessionManager);
- this.rocketMQTemplate = rocketMQTemplate;
- this.topic = topic;
- }
-
- @Override
- public void send(Integer userType, Long userId, String messageType, String messageContent) {
- sendRocketMQMessage(null, userId, userType, messageType, messageContent);
- }
-
- @Override
- public void send(Integer userType, String messageType, String messageContent) {
- sendRocketMQMessage(null, null, userType, messageType, messageContent);
- }
-
- @Override
- public void send(String sessionId, String messageType, String messageContent) {
- sendRocketMQMessage(sessionId, null, null, messageType, messageContent);
- }
-
- /**
- * 通过 RocketMQ 广播消息
- *
- * @param sessionId Session 编号
- * @param userId 用户编号
- * @param userType 用户类型
- * @param messageType 消息类型
- * @param messageContent 消息内容
- */
- private void sendRocketMQMessage(String sessionId, Long userId, Integer userType,
- String messageType, String messageContent) {
- RocketMQWebSocketMessage mqMessage = new RocketMQWebSocketMessage()
- .setSessionId(sessionId).setUserId(userId).setUserType(userType)
- .setMessageType(messageType).setMessageContent(messageContent);
- rocketMQTemplate.syncSend(topic, mqMessage);
- }
-
-}
diff --git a/pom.xml b/pom.xml
index 84aa23e4..b75a703a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,6 @@
modules/module-ci-store
modules/module-ci-process-api
modules/module-ci-process-biz
- modules/module-ci-process-biz