diff --git a/start-site/src/main/java/io/spring/start/site/extension/dependency/springintegration/SpringIntegrationModuleRegistry.java b/start-site/src/main/java/io/spring/start/site/extension/dependency/springintegration/SpringIntegrationModuleRegistry.java index cee0e7aa03a..9dedd005a9c 100644 --- a/start-site/src/main/java/io/spring/start/site/extension/dependency/springintegration/SpringIntegrationModuleRegistry.java +++ b/start-site/src/main/java/io/spring/start/site/extension/dependency/springintegration/SpringIntegrationModuleRegistry.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2023 the original author or authors. + * Copyright 2012-2024 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. @@ -39,7 +39,7 @@ static Iterable create() { return create( onDependencies("activemq", "artemis").customizeBuild(addDependency("jms")) .customizeHelpDocument(addReferenceLink("JMS Module", "jms")), - onDependencies("amqp").customizeBuild(addDependency("amqp")) + onDependencies("amqp", "amqp-streams").customizeBuild(addDependency("amqp")) .customizeHelpDocument(addReferenceLink("AMQP Module", "amqp")), onDependencies("data-jdbc", "jdbc").customizeBuild(addDependency("jdbc")) .customizeHelpDocument(addReferenceLink("JDBC Module", "jdbc")), diff --git a/start-site/src/main/java/io/spring/start/site/extension/dependency/testcontainers/TestcontainersModuleRegistry.java b/start-site/src/main/java/io/spring/start/site/extension/dependency/testcontainers/TestcontainersModuleRegistry.java index 41582d2f967..8e7b7edc9bc 100644 --- a/start-site/src/main/java/io/spring/start/site/extension/dependency/testcontainers/TestcontainersModuleRegistry.java +++ b/start-site/src/main/java/io/spring/start/site/extension/dependency/testcontainers/TestcontainersModuleRegistry.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2023 the original author or authors. + * Copyright 2012-2024 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. @@ -44,7 +44,7 @@ abstract class TestcontainersModuleRegistry { static Iterable create(Version platformVersion) { List builders = new ArrayList<>(); - builders.add(onDependencies("amqp").customizeBuild(addModule("rabbitmq")) + builders.add(onDependencies("amqp", "amqp-streams").customizeBuild(addModule("rabbitmq")) .customizeHelpDocument(addReferenceLink("RabbitMQ Module", "rabbitmq/"))); builders.add(onDependencies("cloud-gcp", "cloud-gcp-pubsub").customizeBuild(addModule("gcloud")) .customizeHelpDocument(addReferenceLink("GCloud Module", "gcloud/"))); diff --git a/start-site/src/main/resources/application.yml b/start-site/src/main/resources/application.yml index 04251ece64c..45244a2602d 100644 --- a/start-site/src/main/resources/application.yml +++ b/start-site/src/main/resources/application.yml @@ -719,6 +719,15 @@ initializr: description: Messaging with RabbitMQ - rel: reference href: https://docs.spring.io/spring-boot/docs/{bootVersion}/reference/htmlsingle/index.html#messaging.amqp + - name: Spring for RabbitMQ Streams + id: amqp-streams + description: Building stream processing applications with RabbitMQ. + groupId: org.springframework.amqp + artifactId: spring-rabbit-stream + starter: false + links: + - rel: reference + href: https://docs.spring.io/spring-amqp/reference/stream.html - name: Spring for Apache Kafka id: kafka description: Publish, subscribe, store, and process streams of records. diff --git a/start-site/src/test/java/io/spring/start/site/extension/dependency/springintegration/SpringIntegrationProjectGenerationConfigurationTests.java b/start-site/src/test/java/io/spring/start/site/extension/dependency/springintegration/SpringIntegrationProjectGenerationConfigurationTests.java index 08fcd72808b..0cecbd417f7 100644 --- a/start-site/src/test/java/io/spring/start/site/extension/dependency/springintegration/SpringIntegrationProjectGenerationConfigurationTests.java +++ b/start-site/src/test/java/io/spring/start/site/extension/dependency/springintegration/SpringIntegrationProjectGenerationConfigurationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2023 the original author or authors. + * Copyright 2012-2024 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. @@ -60,15 +60,16 @@ void buildWithSupportedEntries(String springBootDependencyId, String integration static Stream supportedEntries() { return Stream.of(Arguments.arguments("artemis", "jms"), Arguments.arguments("amqp", "amqp"), - Arguments.arguments("data-jdbc", "jdbc"), Arguments.arguments("jdbc", "jdbc"), - Arguments.arguments("data-jpa", "jpa"), Arguments.arguments("data-mongodb", "mongodb"), - Arguments.arguments("data-mongodb-reactive", "mongodb"), Arguments.arguments("data-r2dbc", "r2dbc"), - Arguments.arguments("data-redis", "redis"), Arguments.arguments("data-redis-reactive", "redis"), - Arguments.arguments("kafka", "kafka"), Arguments.arguments("kafka-streams", "kafka"), - Arguments.arguments("mail", "mail"), Arguments.arguments("rsocket", "rsocket"), - Arguments.arguments("security", "security"), Arguments.arguments("web", "http"), - Arguments.arguments("webflux", "webflux"), Arguments.arguments("websocket", "websocket"), - Arguments.arguments("websocket", "stomp"), Arguments.arguments("web-services", "ws")); + Arguments.arguments("amqp-streams", "amqp"), Arguments.arguments("data-jdbc", "jdbc"), + Arguments.arguments("jdbc", "jdbc"), Arguments.arguments("data-jpa", "jpa"), + Arguments.arguments("data-mongodb", "mongodb"), Arguments.arguments("data-mongodb-reactive", "mongodb"), + Arguments.arguments("data-r2dbc", "r2dbc"), Arguments.arguments("data-redis", "redis"), + Arguments.arguments("data-redis-reactive", "redis"), Arguments.arguments("kafka", "kafka"), + Arguments.arguments("kafka-streams", "kafka"), Arguments.arguments("mail", "mail"), + Arguments.arguments("rsocket", "rsocket"), Arguments.arguments("security", "security"), + Arguments.arguments("web", "http"), Arguments.arguments("webflux", "webflux"), + Arguments.arguments("websocket", "websocket"), Arguments.arguments("websocket", "stomp"), + Arguments.arguments("web-services", "ws")); } @ParameterizedTest @@ -87,15 +88,16 @@ void linkToSupportedEntriesWhenSpringIntegrationIsNotPresentIsNotAdded(String de static Stream referenceLinks() { return Stream.of(Arguments.arguments("artemis", "jms"), Arguments.arguments("amqp", "amqp"), - Arguments.arguments("data-jdbc", "jdbc"), Arguments.arguments("jdbc", "jdbc"), - Arguments.arguments("data-jpa", "jpa"), Arguments.arguments("data-mongodb", "mongodb"), - Arguments.arguments("data-mongodb-reactive", "mongodb"), Arguments.arguments("data-r2dbc", "r2dbc"), - Arguments.arguments("data-redis", "redis"), Arguments.arguments("data-redis-reactive", "redis"), - Arguments.arguments("kafka", "kafka"), Arguments.arguments("kafka-streams", "kafka"), - Arguments.arguments("mail", "mail"), Arguments.arguments("rsocket", "rsocket"), - Arguments.arguments("security", "security"), Arguments.arguments("web", "http"), - Arguments.arguments("webflux", "webflux"), Arguments.arguments("websocket", "web-sockets"), - Arguments.arguments("websocket", "stomp"), Arguments.arguments("web-services", "ws")); + Arguments.arguments("amqp-streams", "amqp"), Arguments.arguments("data-jdbc", "jdbc"), + Arguments.arguments("jdbc", "jdbc"), Arguments.arguments("data-jpa", "jpa"), + Arguments.arguments("data-mongodb", "mongodb"), Arguments.arguments("data-mongodb-reactive", "mongodb"), + Arguments.arguments("data-r2dbc", "r2dbc"), Arguments.arguments("data-redis", "redis"), + Arguments.arguments("data-redis-reactive", "redis"), Arguments.arguments("kafka", "kafka"), + Arguments.arguments("kafka-streams", "kafka"), Arguments.arguments("mail", "mail"), + Arguments.arguments("rsocket", "rsocket"), Arguments.arguments("security", "security"), + Arguments.arguments("web", "http"), Arguments.arguments("webflux", "webflux"), + Arguments.arguments("websocket", "web-sockets"), Arguments.arguments("websocket", "stomp"), + Arguments.arguments("web-services", "ws")); } @Test diff --git a/start-site/src/test/java/io/spring/start/site/extension/dependency/testcontainers/TestcontainersProjectGenerationConfigurationTests.java b/start-site/src/test/java/io/spring/start/site/extension/dependency/testcontainers/TestcontainersProjectGenerationConfigurationTests.java index d9edb8e6981..929ff8a9b78 100644 --- a/start-site/src/test/java/io/spring/start/site/extension/dependency/testcontainers/TestcontainersProjectGenerationConfigurationTests.java +++ b/start-site/src/test/java/io/spring/start/site/extension/dependency/testcontainers/TestcontainersProjectGenerationConfigurationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2023 the original author or authors. + * Copyright 2012-2024 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. @@ -66,8 +66,9 @@ void buildWithSpringBoot32AndOracleJdbcDriverUsesOracleFree() { } static Stream supportedEntriesBuild() { - return Stream.of(Arguments.arguments("amqp", "rabbitmq"), Arguments.arguments("cloud-gcp", "gcloud"), - Arguments.arguments("cloud-gcp-pubsub", "gcloud"), Arguments.arguments("data-cassandra", "cassandra"), + return Stream.of(Arguments.arguments("amqp", "rabbitmq"), Arguments.of("amqp-streams", "rabbitmq"), + Arguments.arguments("cloud-gcp", "gcloud"), Arguments.arguments("cloud-gcp-pubsub", "gcloud"), + Arguments.arguments("data-cassandra", "cassandra"), Arguments.arguments("data-cassandra-reactive", "cassandra"), Arguments.arguments("data-couchbase", "couchbase"), Arguments.arguments("data-couchbase-reactive", "couchbase"), @@ -96,8 +97,8 @@ void linkToSupportedEntriesWhenTestContainerIsNotPresentIsNotAdded(String depend } static Stream supportedEntriesHelpDocument() { - return Stream.of(Arguments.arguments("amqp", "rabbitmq/"), Arguments.arguments("cloud-gcp", "gcloud/"), - Arguments.arguments("cloud-gcp-pubsub", "gcloud/"), + return Stream.of(Arguments.arguments("amqp", "rabbitmq/"), Arguments.arguments("amqp-streams", "rabbitmq/"), + Arguments.arguments("cloud-gcp", "gcloud/"), Arguments.arguments("cloud-gcp-pubsub", "gcloud/"), Arguments.arguments("cloud-starter-consul-config", "consul/"), Arguments.arguments("cloud-starter-vault-config", "vault/"), Arguments.arguments("data-cassandra", "databases/cassandra/"),