From 8998b36a02a4e45f6f59de1e8a53326cf34d53b3 Mon Sep 17 00:00:00 2001 From: Liu Ziming <448918299@qq.com> Date: Wed, 21 Dec 2022 17:52:43 +0800 Subject: [PATCH] fix: integrated example rocketmq streams upgrade to springboot 3.0 (#2992) * fix: integrated rocketmq streams upgrade to springboot 3.0 * refactor: remove unnecessary spring-boot-bootstrap dependency * fix: Update jdk version in Dockerfile --- .../config/integrated-consumer.yaml | 16 +++---- .../integrated-account/Dockerfile | 4 +- .../integrated-frontend/Dockerfile | 4 +- .../integrated-gateway/Dockerfile | 4 +- .../integrated-order/Dockerfile | 4 +- .../integrated-praise-consumer/Dockerfile | 4 +- .../consumer/PraiseConsumerApplication.java | 3 -- .../listener/ListenerAutoConfiguration.java | 20 +++++++++ .../consumer/listener/PraiseConsumer.java | 42 ------------------- .../consumer/message/PraiseSink.java | 35 ---------------- .../integrated-praise-provider/Dockerfile | 4 +- .../provider/PraiseProviderApplication.java | 4 -- .../provider/controller/PraiseController.java | 8 ++-- .../provider/message/PraiseSource.java | 30 ------------- .../integrated-storage/Dockerfile | 4 +- 15 files changed, 46 insertions(+), 140 deletions(-) create mode 100644 spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/src/main/java/com/alibaba/cloud/integration/consumer/listener/ListenerAutoConfiguration.java delete mode 100644 spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/src/main/java/com/alibaba/cloud/integration/consumer/listener/PraiseConsumer.java delete mode 100644 spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/src/main/java/com/alibaba/cloud/integration/consumer/message/PraiseSink.java delete mode 100644 spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/src/main/java/com/alibaba/cloud/integration/provider/message/PraiseSource.java diff --git a/spring-cloud-alibaba-examples/integrated-example/config/integrated-consumer.yaml b/spring-cloud-alibaba-examples/integrated-example/config/integrated-consumer.yaml index 5de702b32..fc12d59fa 100644 --- a/spring-cloud-alibaba-examples/integrated-example/config/integrated-consumer.yaml +++ b/spring-cloud-alibaba-examples/integrated-example/config/integrated-consumer.yaml @@ -3,16 +3,16 @@ spring: url: jdbc:mysql://integrated-mysql:3306/integrated_praise?useSSL=false&characterEncoding=utf8 cloud: stream: - bindings: - praise-input: - destination: PRAISE-TOPIC-01 - content-type: application/json - group: praise-consumer-group-PRAISE-TOPIC-01 + function: + definition: consumer; rocketmq: binder: name-server: rocketmq:9876 bindings: - praise-input: + consumer-in-0: consumer: - pullInterval: 4000 - pullBatchSize: 4 \ No newline at end of file + messageModel: CLUSTERING + bindings: + consumer-in-0: + destination: PRAISE-TOPIC-01 + group: praise-consumer \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-account/Dockerfile b/spring-cloud-alibaba-examples/integrated-example/integrated-account/Dockerfile index d1dc5fa4f..de931f931 100644 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-account/Dockerfile +++ b/spring-cloud-alibaba-examples/integrated-example/integrated-account/Dockerfile @@ -1,5 +1,5 @@ -FROM openjdk:8 -ADD /target/integrated-account-2.2.9-SNAPSHOT.jar /app.jar +FROM openjdk:17 +ADD /target/integrated-account-*.jar /app.jar RUN bash -c 'touch /app.jar' EXPOSE 8012 ENTRYPOINT ["java", "-jar","/app.jar"] \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-frontend/Dockerfile b/spring-cloud-alibaba-examples/integrated-example/integrated-frontend/Dockerfile index 04cfb39bb..bdcc2fed4 100644 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-frontend/Dockerfile +++ b/spring-cloud-alibaba-examples/integrated-example/integrated-frontend/Dockerfile @@ -1,5 +1,5 @@ -FROM openjdk:8 -ADD /target/integrated-frontend-2.2.9-SNAPSHOT.jar /app.jar +FROM openjdk:17 +ADD /target/integrated-frontend-*.jar /app.jar RUN bash -c 'touch /app.jar' EXPOSE 8080 ENTRYPOINT ["java", "-jar","/app.jar"] \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-gateway/Dockerfile b/spring-cloud-alibaba-examples/integrated-example/integrated-gateway/Dockerfile index 15a434d93..329662ee0 100644 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-gateway/Dockerfile +++ b/spring-cloud-alibaba-examples/integrated-example/integrated-gateway/Dockerfile @@ -1,5 +1,5 @@ -FROM openjdk:8 -ADD /target/integrated-gateway-2.2.9-SNAPSHOT.jar /app.jar +FROM openjdk:17 +ADD /target/integrated-gateway-*.jar /app.jar RUN bash -c 'touch /app.jar' EXPOSE 30010 ENTRYPOINT ["java", "-jar","/app.jar"] \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-order/Dockerfile b/spring-cloud-alibaba-examples/integrated-example/integrated-order/Dockerfile index 71d15a2d0..e9a3eeeab 100644 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-order/Dockerfile +++ b/spring-cloud-alibaba-examples/integrated-example/integrated-order/Dockerfile @@ -1,5 +1,5 @@ -FROM openjdk:8 -ADD /target/integrated-order-2.2.9-SNAPSHOT.jar /app.jar +FROM openjdk:17 +ADD /target/integrated-order-*.jar /app.jar RUN bash -c 'touch /app.jar' EXPOSE 8013 ENTRYPOINT ["java", "-jar","/app.jar"] \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/Dockerfile b/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/Dockerfile index 3af24fa78..118c23a56 100644 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/Dockerfile +++ b/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/Dockerfile @@ -1,5 +1,5 @@ -FROM openjdk:8 -ADD /target/integrated-praise-consumer-2.2.9-SNAPSHOT.jar /app.jar +FROM openjdk:17 +ADD /target/integrated-praise-consumer-*.jar /app.jar RUN bash -c 'touch /app.jar' EXPOSE 8014 ENTRYPOINT ["java", "-jar","/app.jar"] \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/src/main/java/com/alibaba/cloud/integration/consumer/PraiseConsumerApplication.java b/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/src/main/java/com/alibaba/cloud/integration/consumer/PraiseConsumerApplication.java index 6b06fceb1..eca8ed5ab 100644 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/src/main/java/com/alibaba/cloud/integration/consumer/PraiseConsumerApplication.java +++ b/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/src/main/java/com/alibaba/cloud/integration/consumer/PraiseConsumerApplication.java @@ -16,17 +16,14 @@ package com.alibaba.cloud.integration.consumer; -import com.alibaba.cloud.integration.consumer.message.PraiseSink; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.stream.annotation.EnableBinding; /** * @author TrevorLink */ @SpringBootApplication -@EnableBinding(PraiseSink.class) public class PraiseConsumerApplication { public static void main(String[] args) { diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/src/main/java/com/alibaba/cloud/integration/consumer/listener/ListenerAutoConfiguration.java b/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/src/main/java/com/alibaba/cloud/integration/consumer/listener/ListenerAutoConfiguration.java new file mode 100644 index 000000000..1c019d526 --- /dev/null +++ b/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/src/main/java/com/alibaba/cloud/integration/consumer/listener/ListenerAutoConfiguration.java @@ -0,0 +1,20 @@ +package com.alibaba.cloud.integration.consumer.listener; + +import java.util.function.Consumer; + +import com.alibaba.cloud.integration.consumer.message.PraiseMessage; +import com.alibaba.cloud.integration.consumer.service.PraiseService; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.messaging.Message; + +@Configuration +public class ListenerAutoConfiguration { + @Bean + public Consumer> consumer(PraiseService praiseService) { + return msg -> { + praiseService.praiseItem(msg.getPayload().getItemId()); + }; + } +} diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/src/main/java/com/alibaba/cloud/integration/consumer/listener/PraiseConsumer.java b/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/src/main/java/com/alibaba/cloud/integration/consumer/listener/PraiseConsumer.java deleted file mode 100644 index e1d3abad4..000000000 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/src/main/java/com/alibaba/cloud/integration/consumer/listener/PraiseConsumer.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * 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 - * - * https://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 com.alibaba.cloud.integration.consumer.listener; - -import com.alibaba.cloud.integration.consumer.message.PraiseMessage; -import com.alibaba.cloud.integration.consumer.message.PraiseSink; -import com.alibaba.cloud.integration.consumer.service.PraiseService; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cloud.stream.annotation.StreamListener; -import org.springframework.messaging.handler.annotation.Payload; -import org.springframework.stereotype.Component; - -/** - * @author TrevorLink - */ -@Component -public class PraiseConsumer { - - @Autowired - private PraiseService praiseService; - - @StreamListener(PraiseSink.PRAISE_INPUT) - public void onMessage(@Payload PraiseMessage message) { - praiseService.praiseItem(message.getItemId()); - } - -} diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/src/main/java/com/alibaba/cloud/integration/consumer/message/PraiseSink.java b/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/src/main/java/com/alibaba/cloud/integration/consumer/message/PraiseSink.java deleted file mode 100644 index f948c95bd..000000000 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer/src/main/java/com/alibaba/cloud/integration/consumer/message/PraiseSink.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * 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 - * - * https://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 com.alibaba.cloud.integration.consumer.message; - -import org.springframework.cloud.stream.annotation.Input; -import org.springframework.messaging.SubscribableChannel; - -/** - * @author TrevorLink - */ -public interface PraiseSink { - - /** - * rocketmq input name. - */ - String PRAISE_INPUT = "praise-input"; - - @Input(PRAISE_INPUT) - SubscribableChannel praiseInput(); - -} diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/Dockerfile b/spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/Dockerfile index 752d35a3b..a336ec623 100644 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/Dockerfile +++ b/spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/Dockerfile @@ -1,5 +1,5 @@ -FROM openjdk:8 -ADD /target/integrated-praise-provider-2.2.9-SNAPSHOT.jar /app.jar +FROM openjdk:17 +ADD /target/integrated-praise-provider-*.jar /app.jar RUN bash -c 'touch /app.jar' EXPOSE 8015 ENTRYPOINT ["java", "-jar","/app.jar"] \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/src/main/java/com/alibaba/cloud/integration/provider/PraiseProviderApplication.java b/spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/src/main/java/com/alibaba/cloud/integration/provider/PraiseProviderApplication.java index ce7176fe5..370d324bc 100644 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/src/main/java/com/alibaba/cloud/integration/provider/PraiseProviderApplication.java +++ b/spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/src/main/java/com/alibaba/cloud/integration/provider/PraiseProviderApplication.java @@ -16,17 +16,13 @@ package com.alibaba.cloud.integration.provider; -import com.alibaba.cloud.integration.provider.message.PraiseSource; - import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.stream.annotation.EnableBinding; /** * @author TrevorLink */ @SpringBootApplication -@EnableBinding(PraiseSource.class) public class PraiseProviderApplication { public static void main(String[] args) { diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/src/main/java/com/alibaba/cloud/integration/provider/controller/PraiseController.java b/spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/src/main/java/com/alibaba/cloud/integration/provider/controller/PraiseController.java index b15224cc9..ae3af5ec1 100644 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/src/main/java/com/alibaba/cloud/integration/provider/controller/PraiseController.java +++ b/spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/src/main/java/com/alibaba/cloud/integration/provider/controller/PraiseController.java @@ -17,9 +17,9 @@ package com.alibaba.cloud.integration.provider.controller; import com.alibaba.cloud.integration.provider.message.PraiseMessage; -import com.alibaba.cloud.integration.provider.message.PraiseSource; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.stream.function.StreamBridge; import org.springframework.messaging.Message; import org.springframework.messaging.support.MessageBuilder; import org.springframework.web.bind.annotation.GetMapping; @@ -33,9 +33,9 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/praise") public class PraiseController { - + private static final String BINDING_NAME = "praise-output"; @Autowired - private PraiseSource praiseSource; + private StreamBridge streamBridge; @GetMapping({ "/rocketmq", "/sentinel" }) public boolean praise(@RequestParam Integer itemId) { @@ -43,7 +43,7 @@ public class PraiseController { message.setItemId(itemId); Message praiseMessage = MessageBuilder.withPayload(message) .build(); - return praiseSource.praiseOutput().send(praiseMessage); + return streamBridge.send(BINDING_NAME, praiseMessage); } } diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/src/main/java/com/alibaba/cloud/integration/provider/message/PraiseSource.java b/spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/src/main/java/com/alibaba/cloud/integration/provider/message/PraiseSource.java deleted file mode 100644 index fa4fc9a1f..000000000 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider/src/main/java/com/alibaba/cloud/integration/provider/message/PraiseSource.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * 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 - * - * https://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 com.alibaba.cloud.integration.provider.message; - -import org.springframework.cloud.stream.annotation.Output; -import org.springframework.messaging.MessageChannel; - -/** - * @author TrevorLink - */ -public interface PraiseSource { - - @Output("praise-output") - MessageChannel praiseOutput(); - -} diff --git a/spring-cloud-alibaba-examples/integrated-example/integrated-storage/Dockerfile b/spring-cloud-alibaba-examples/integrated-example/integrated-storage/Dockerfile index 7fcb50712..4e7df9702 100644 --- a/spring-cloud-alibaba-examples/integrated-example/integrated-storage/Dockerfile +++ b/spring-cloud-alibaba-examples/integrated-example/integrated-storage/Dockerfile @@ -1,5 +1,5 @@ -FROM openjdk:8 -ADD /target/integrated-storage-2.2.9-SNAPSHOT.jar /app.jar +FROM openjdk:17 +ADD /target/integrated-storage-*.jar /app.jar RUN bash -c 'touch /app.jar' EXPOSE 8011 ENTRYPOINT ["java", "-jar","/app.jar"] \ No newline at end of file