From 2934a2c1b07b159596dac778c353debd7ecf5ebb Mon Sep 17 00:00:00 2001 From: parthiv39731 <70740707+parthiv39731@users.noreply.github.com> Date: Mon, 2 Oct 2023 23:42:50 +0530 Subject: [PATCH 1/9] BAEL-6910, Spring Boot 3.1's ConnectionDetails abstraction --- spring-boot-modules/spring-boot-3/pom.xml | 70 ++++++++++++ .../ConnectionDetailsApplication.java | 16 +++ .../adapter/VaultAdapter.java | 107 ++++++++++++++++++ .../CustomCassandraConnectionDetails.java | 32 ++++++ ...ssandraConnectionDetailsConfiguration.java | 17 +++ .../CustomElasticsearchConnectionDetails.java | 29 +++++ ...csearchConnectionDetailsConfiguration.java | 17 +++ .../CustomNeo4jConnectionDetails.java | 24 ++++ ...omNeo4jConnectionDetailsConfiguration.java | 17 +++ .../JdbcConnectionDetailsConfiguration.java | 17 +++ .../MongoDBConnectionDetails.java | 14 +++ ...MongoDBConnectionDetailsConfiguration.java | 17 +++ .../PostgresConnectionDetails.java | 21 ++++ .../R2dbcPostgresConnectionDetails.java | 22 ++++ ...ostgresConnectionDetailsConfiguration.java | 17 +++ .../RabbitMQConnectionDetails.java | 34 ++++++ ...abbitMQConnectionDetailsConfiguration.java | 17 +++ .../RedisCacheConnectionDetails.java | 26 +++++ .../RedisConnectionDetailsConfiguration.java | 17 +++ .../entity/elastic/Person.java | 27 +++++ .../entity/neo4j/Person.java | 27 +++++ .../resources/application-docker-compose.yml | 7 -- .../src/main/resources/application.yml | 2 +- .../application-cassandra.properties | 11 ++ .../application-elastic.properties | 7 ++ .../application-jdbc.properties | 7 ++ .../application-mongo.properties | 8 ++ .../application-neo4j.properties | 7 ++ .../application-r2dbc.properties | 7 ++ .../application-rabbitmq.properties | 7 ++ .../application-redis.properties | 7 ++ ...ssandra-connection-details-class-diag.puml | 27 +++++ .../connection-details-sequence-design.puml | 16 +++ .../docker-compose-cassandra.yml | 9 ++ .../docker-compose-elastic.yml | 12 ++ .../connectiondetails/docker-compose-jdbc.yml | 10 ++ .../docker-compose-mongo.yml | 10 ++ .../docker-compose-neo4j.yml | 8 ++ .../docker-compose-rabbitmq.yml | 9 ++ .../docker-compose-redis.yml | 8 ++ .../docker-connectiondetails-compose.yml | 39 +++++++ ...csearch-connection-details-class-diag.puml | 25 ++++ .../jdbcconnection-details-class-diag.puml | 25 ++++ ...mongodb-connection-details-class-diag.puml | 19 ++++ .../r2dbcconnection-details-class-diag.puml | 21 ++++ ...abbitmq-connection-details-class-diag.puml | 27 +++++ ...edis-connection-details-class-diagram.puml | 23 ++++ ...andraConnectionDetailsIntegrationTest.java | 37 ++++++ ...earchConnectionDetailsIntegrationTest.java | 45 ++++++++ .../JdbcConnectionDetailsIntegrationTest.java | 38 +++++++ ...ngoDBConnectionDetailsIntegrationTest.java | 47 ++++++++ ...Neo4jConnectionDetailsIntegrationTest.java | 43 +++++++ ...R2dbcConnectionDetailsIntegrationTest.java | 40 +++++++ ...bitmqConnectionDetailsIntegrationTest.java | 62 ++++++++++ ...acheConnnectionDetailsIntegrationTest.java | 34 ++++++ 55 files changed, 1281 insertions(+), 8 deletions(-) create mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/ConnectionDetailsApplication.java create mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/adapter/VaultAdapter.java create mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetails.java create mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetailsConfiguration.java create mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetails.java create mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetailsConfiguration.java create mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetails.java create mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetailsConfiguration.java create mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/JdbcConnectionDetailsConfiguration.java create mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetails.java create mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetailsConfiguration.java create mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/PostgresConnectionDetails.java create mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetails.java create mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetailsConfiguration.java create mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetails.java create mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetailsConfiguration.java create mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RedisCacheConnectionDetails.java create mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RedisConnectionDetailsConfiguration.java create mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/entity/elastic/Person.java create mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/entity/neo4j/Person.java delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/application-docker-compose.yml create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-cassandra.properties create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-elastic.properties create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-jdbc.properties create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-mongo.properties create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-neo4j.properties create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-r2dbc.properties create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-rabbitmq.properties create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-redis.properties create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/cassandra-connection-details-class-diag.puml create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/connection-details-sequence-design.puml create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-cassandra.yml create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-elastic.yml create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-jdbc.yml create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-mongo.yml create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-neo4j.yml create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-rabbitmq.yml create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-redis.yml create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-connectiondetails-compose.yml create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/elasticsearch-connection-details-class-diag.puml create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/jdbcconnection-details-class-diag.puml create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/mongodb-connection-details-class-diag.puml create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/r2dbcconnection-details-class-diag.puml create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/rabbitmq-connection-details-class-diag.puml create mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/redis-connection-details-class-diagram.puml create mode 100644 spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/CassandraConnectionDetailsIntegrationTest.java create mode 100644 spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/ElasticsearchConnectionDetailsIntegrationTest.java create mode 100644 spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/JdbcConnectionDetailsIntegrationTest.java create mode 100644 spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/MongoDBConnectionDetailsIntegrationTest.java create mode 100644 spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/Neo4jConnectionDetailsIntegrationTest.java create mode 100644 spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/R2dbcConnectionDetailsIntegrationTest.java create mode 100644 spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/RabbitmqConnectionDetailsIntegrationTest.java create mode 100644 spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/RedisCacheConnnectionDetailsIntegrationTest.java diff --git a/spring-boot-modules/spring-boot-3/pom.xml b/spring-boot-modules/spring-boot-3/pom.xml index 7e61ca18af..a1f3ee6203 100644 --- a/spring-boot-modules/spring-boot-3/pom.xml +++ b/spring-boot-modules/spring-boot-3/pom.xml @@ -94,6 +94,75 @@ org.springframework.boot spring-boot-starter-test + + org.springframework.boot + spring-boot-testcontainers + test + + + org.testcontainers + postgresql + test + + + org.testcontainers + junit-jupiter + ${testcontainers.version} + test + + + org.postgresql + postgresql + runtime + + + org.springframework.boot + spring-boot-starter-amqp + + + org.springframework.amqp + spring-rabbit-test + test + + + org.springframework.data + spring-data-redis + + + redis.clients + jedis + jar + + + org.springframework.boot + spring-boot-starter-data-redis + + + org.postgresql + r2dbc-postgresql + runtime + + + org.springframework.boot + spring-boot-starter-data-r2dbc + + + io.projectreactor + reactor-test + test + + + org.springframework.boot + spring-boot-starter-data-elasticsearch + + + org.springframework.boot + spring-boot-starter-data-cassandra + + + org.springframework.boot + spring-boot-starter-data-neo4j + @@ -189,6 +258,7 @@ 5.14.0 3.1.0 0.2.0 + 1.18.3 \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/ConnectionDetailsApplication.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/ConnectionDetailsApplication.java new file mode 100644 index 0000000000..a9b49e24e3 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/ConnectionDetailsApplication.java @@ -0,0 +1,16 @@ +package com.baeldung.connectiondetails; + + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +@SpringBootApplication +@ComponentScan(basePackages = "com.baeldung.connectiondetails") +public class ConnectionDetailsApplication { + + public static void main(String[] args) { + SpringApplication.run(ConnectionDetailsApplication.class, args); + } + +} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/adapter/VaultAdapter.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/adapter/VaultAdapter.java new file mode 100644 index 0000000000..1c9449ad00 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/adapter/VaultAdapter.java @@ -0,0 +1,107 @@ +package com.baeldung.connectiondetails.adapter; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class VaultAdapter { + private static final Logger logger = LoggerFactory.getLogger(VaultAdapter.class); + public static String getSecret(String secretKey) { + logger.info("call vault to get the secret of key: " + secretKey); + + //Postgres keys + if (secretKey.equalsIgnoreCase("postgres_secret_key")) { + return "postgres"; + } + if (secretKey.equalsIgnoreCase("postgres_user_key")) { + return "postgres"; + } + if (secretKey.equalsIgnoreCase("postgres_jdbc_url")) { + return "jdbc:postgresql://localhost:15432/postgresdb"; + } + //RabbitMQ Server Keys + if (secretKey.equalsIgnoreCase("rabbitmq_username")) { + return "rabbitmquser"; + } + if (secretKey.equalsIgnoreCase("rabbitmq_password")) { + return "rabbitmq"; + } + if (secretKey.equalsIgnoreCase("rabbitmq_port")) { + return "5672"; + } + if (secretKey.equalsIgnoreCase("rabbitmq_host")) { + return "localhost"; + } + //Redis Server Keys + if (secretKey.equalsIgnoreCase("redis_username")) { + return null; + } + if (secretKey.equalsIgnoreCase("redis_password")) { + return "redis"; + } + if (secretKey.equalsIgnoreCase("redis_port")) { + return "6379"; + } + if (secretKey.equalsIgnoreCase("redis_host")) { + return "localhost"; + } + //Mongo DB Keys + if (secretKey.equalsIgnoreCase("mongo_connection_string")) { + return "mongodb://localhost:27017/demodb"; + } + + //r2dbc Keys + if (secretKey.equalsIgnoreCase("r2dbc_postgres_user")) { + return "postgres"; + } + if (secretKey.equalsIgnoreCase("r2dbc_postgres_secret")) { + return "postgres"; + } + if (secretKey.equalsIgnoreCase("r2dbc_postgres_host")) { + return "localhost"; + } + if (secretKey.equalsIgnoreCase("r2dbc_postgres_port")) { + return "15432"; + } + if (secretKey.equalsIgnoreCase("r2dbc_postgres_database")) { + return "postgresdb"; + } + //Elastic Search Keys + if (secretKey.equalsIgnoreCase("elastic_user")) { + return "elastic"; + } + if (secretKey.equalsIgnoreCase("elastic_secret")) { + return "secret"; + } + if (secretKey.equalsIgnoreCase("elastic_host")) { + return "localhost"; + } + if (secretKey.equalsIgnoreCase("elastic_port1")) { + return "19200"; + } + if (secretKey.equalsIgnoreCase("elastic_port2")) { + return "19300"; + } + //Cassandra keys + if (secretKey.equalsIgnoreCase("cassandra_user")) { + return "cassandra"; + } + if (secretKey.equalsIgnoreCase("cassandra_secret")) { + return "secret"; + } + if (secretKey.equalsIgnoreCase("cassandra_host")) { + return "localhost"; + } + if (secretKey.equalsIgnoreCase("cassandra_port")) { + return "19042"; + } + //Neo4j Keys + if (secretKey.equalsIgnoreCase("neo4j_secret")) { + return "neo4j123"; + } + if (secretKey.equalsIgnoreCase("neo4j_uri")) { + return "bolt://localhost:17687"; + } + + return "secretVal"; + } +} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetails.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetails.java new file mode 100644 index 0000000000..6a246cd9fc --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetails.java @@ -0,0 +1,32 @@ +package com.baeldung.connectiondetails.configuration; + +import com.baeldung.connectiondetails.adapter.VaultAdapter; +import org.springframework.boot.autoconfigure.cassandra.CassandraConnectionDetails; + +import java.util.List; + +public class CustomCassandraConnectionDetails implements CassandraConnectionDetails { + @Override + public List getContactPoints() { + Node node = new Node( + VaultAdapter.getSecret("cassandra_host"), + Integer.parseInt(VaultAdapter.getSecret("cassandra_port")) + ); + return List.of(node); + } + + @Override + public String getUsername() { + return VaultAdapter.getSecret("cassandra_user"); + } + + @Override + public String getPassword() { + return VaultAdapter.getSecret("cassandra_secret"); + } + + @Override + public String getLocalDatacenter() { + return "datacenter-1"; + } +} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetailsConfiguration.java new file mode 100644 index 0000000000..02ed8c0051 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetailsConfiguration.java @@ -0,0 +1,17 @@ +package com.baeldung.connectiondetails.configuration; + +import org.springframework.boot.autoconfigure.cassandra.CassandraConnectionDetails; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.Profile; + +@Configuration(proxyBeanMethods = false) +@Profile("cassandra") +public class CustomCassandraConnectionDetailsConfiguration { + @Bean + @Primary + public CassandraConnectionDetails getCustomCassandraConnectionDetails() { + return new CustomCassandraConnectionDetails(); + } +} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetails.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetails.java new file mode 100644 index 0000000000..0b45878bc9 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetails.java @@ -0,0 +1,29 @@ +package com.baeldung.connectiondetails.configuration; + +import com.baeldung.connectiondetails.adapter.VaultAdapter; +import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchConnectionDetails; + +import java.util.List; + +public class CustomElasticsearchConnectionDetails implements ElasticsearchConnectionDetails { + @Override + public List getNodes() { + Node node1 = new Node( + VaultAdapter.getSecret("elastic_host"), + Integer.parseInt(VaultAdapter.getSecret("elastic_port1")), + Node.Protocol.HTTP + ); + return List.of(node1); + } + + @Override + public String getUsername() { + return VaultAdapter.getSecret("elastic_user"); + } + + @Override + public String getPassword() { + return VaultAdapter.getSecret("elastic_secret"); + } + +} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetailsConfiguration.java new file mode 100644 index 0000000000..a9b3da44fa --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetailsConfiguration.java @@ -0,0 +1,17 @@ +package com.baeldung.connectiondetails.configuration; + +import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchConnectionDetails; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.Profile; + +@Configuration(proxyBeanMethods = false) +@Profile("elastic") +public class CustomElasticsearchConnectionDetailsConfiguration { + @Bean + @Primary + public ElasticsearchConnectionDetails getCustomElasticConnectionDetails() { + return new CustomElasticsearchConnectionDetails(); + } +} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetails.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetails.java new file mode 100644 index 0000000000..c0412fbb21 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetails.java @@ -0,0 +1,24 @@ +package com.baeldung.connectiondetails.configuration; + +import com.baeldung.connectiondetails.adapter.VaultAdapter; +import org.neo4j.driver.AuthToken; +import org.neo4j.driver.AuthTokens; +import org.springframework.boot.autoconfigure.neo4j.Neo4jConnectionDetails; + +import java.net.URI; +import java.net.URISyntaxException; + +public class CustomNeo4jConnectionDetails implements Neo4jConnectionDetails { + @Override + public URI getUri() { + try { + return new URI(VaultAdapter.getSecret("neo4j_uri")); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + } + @Override + public AuthToken getAuthToken() { + return AuthTokens.basic("neo4j", VaultAdapter.getSecret("neo4j_secret")); + } +} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetailsConfiguration.java new file mode 100644 index 0000000000..aec8908c7d --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetailsConfiguration.java @@ -0,0 +1,17 @@ +package com.baeldung.connectiondetails.configuration; + +import org.springframework.boot.autoconfigure.neo4j.Neo4jConnectionDetails; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.Profile; + +@Configuration(proxyBeanMethods = false) +@Profile("neo4j") +public class CustomNeo4jConnectionDetailsConfiguration { + @Bean + @Primary + public Neo4jConnectionDetails getNeo4jConnectionDetails() { + return new CustomNeo4jConnectionDetails(); + } +} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/JdbcConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/JdbcConnectionDetailsConfiguration.java new file mode 100644 index 0000000000..3387356366 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/JdbcConnectionDetailsConfiguration.java @@ -0,0 +1,17 @@ +package com.baeldung.connectiondetails.configuration; + +import org.springframework.boot.autoconfigure.jdbc.JdbcConnectionDetails; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.Profile; + +@Configuration(proxyBeanMethods = false) +@Profile("jdbc") +public class JdbcConnectionDetailsConfiguration { + @Bean + @Primary + public JdbcConnectionDetails getPostgresConnection() { + return new PostgresConnectionDetails(); + } +} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetails.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetails.java new file mode 100644 index 0000000000..df689d81b6 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetails.java @@ -0,0 +1,14 @@ +package com.baeldung.connectiondetails.configuration; + + +import com.baeldung.connectiondetails.adapter.VaultAdapter; +import com.mongodb.ConnectionString; +import org.springframework.boot.autoconfigure.mongo.MongoConnectionDetails; + +public class MongoDBConnectionDetails implements MongoConnectionDetails { + @Override + public ConnectionString getConnectionString() { + return new ConnectionString(VaultAdapter.getSecret("mongo_connection_string")); + } +} + diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetailsConfiguration.java new file mode 100644 index 0000000000..d455991d08 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetailsConfiguration.java @@ -0,0 +1,17 @@ +package com.baeldung.connectiondetails.configuration; + +import org.springframework.boot.autoconfigure.mongo.MongoConnectionDetails; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.Profile; + +@Configuration(proxyBeanMethods = false) +@Profile("mongo") +public class MongoDBConnectionDetailsConfiguration { + @Bean + @Primary + public MongoConnectionDetails getMongoConnectionDetails() { + return new MongoDBConnectionDetails(); + } +} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/PostgresConnectionDetails.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/PostgresConnectionDetails.java new file mode 100644 index 0000000000..c9b213a8d3 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/PostgresConnectionDetails.java @@ -0,0 +1,21 @@ +package com.baeldung.connectiondetails.configuration; + +import com.baeldung.connectiondetails.adapter.VaultAdapter; +import org.springframework.boot.autoconfigure.jdbc.JdbcConnectionDetails; + +public class PostgresConnectionDetails implements JdbcConnectionDetails { + @Override + public String getUsername() { + return VaultAdapter.getSecret("postgres_user_key"); + } + + @Override + public String getPassword() { + return VaultAdapter.getSecret("postgres_secret_key"); + } + + @Override + public String getJdbcUrl() { + return VaultAdapter.getSecret("postgres_jdbc_url"); + } +} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetails.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetails.java new file mode 100644 index 0000000000..4ce6abc9d5 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetails.java @@ -0,0 +1,22 @@ +package com.baeldung.connectiondetails.configuration; + +import com.baeldung.connectiondetails.adapter.VaultAdapter; +import io.r2dbc.spi.ConnectionFactoryOptions; +import org.springframework.boot.autoconfigure.r2dbc.R2dbcConnectionDetails; + +public class R2dbcPostgresConnectionDetails implements R2dbcConnectionDetails { + @Override + public ConnectionFactoryOptions getConnectionFactoryOptions() { + + ConnectionFactoryOptions options = ConnectionFactoryOptions.builder() + .option(ConnectionFactoryOptions.DRIVER, "postgresql") + .option(ConnectionFactoryOptions.HOST, VaultAdapter.getSecret("r2dbc_postgres_host")) + .option(ConnectionFactoryOptions.PORT, Integer.valueOf(VaultAdapter.getSecret("r2dbc_postgres_port"))) + .option(ConnectionFactoryOptions.USER, VaultAdapter.getSecret("r2dbc_postgres_user")) + .option(ConnectionFactoryOptions.PASSWORD, VaultAdapter.getSecret("r2dbc_postgres_secret")) + .option(ConnectionFactoryOptions.DATABASE, VaultAdapter.getSecret("r2dbc_postgres_database")) + .build(); + + return options; + } +} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetailsConfiguration.java new file mode 100644 index 0000000000..144355dce4 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetailsConfiguration.java @@ -0,0 +1,17 @@ +package com.baeldung.connectiondetails.configuration; + +import org.springframework.boot.autoconfigure.r2dbc.R2dbcConnectionDetails; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.Profile; + +@Configuration(proxyBeanMethods = false) +@Profile("r2dbc") +public class R2dbcPostgresConnectionDetailsConfiguration { + @Bean + @Primary + public R2dbcConnectionDetails getR2dbcPostgresConnectionDetails() { + return new R2dbcPostgresConnectionDetails(); + } +} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetails.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetails.java new file mode 100644 index 0000000000..9dc4bdf33b --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetails.java @@ -0,0 +1,34 @@ +package com.baeldung.connectiondetails.configuration; + +import com.baeldung.connectiondetails.adapter.VaultAdapter; +import org.springframework.boot.autoconfigure.amqp.RabbitConnectionDetails; + +import java.util.List; + +public class RabbitMQConnectionDetails implements RabbitConnectionDetails { + @Override + public String getUsername() { + return VaultAdapter.getSecret("rabbitmq_username"); + } + + @Override + public String getPassword() { + return VaultAdapter.getSecret("rabbitmq_password"); + } + + @Override + public String getVirtualHost() { + return "/"; + } + + @Override + public List
getAddresses() { + return List.of(this.getFirstAddress()); + } + + @Override + public Address getFirstAddress() { + return new Address(VaultAdapter.getSecret("rabbitmq_host"), + Integer.parseInt(VaultAdapter.getSecret("rabbitmq_port"))); + } +} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetailsConfiguration.java new file mode 100644 index 0000000000..237bec3fc4 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetailsConfiguration.java @@ -0,0 +1,17 @@ +package com.baeldung.connectiondetails.configuration; + +import org.springframework.boot.autoconfigure.amqp.RabbitConnectionDetails; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.Profile; + +@Configuration(proxyBeanMethods = false) +@Profile("rabbitmq") +public class RabbitMQConnectionDetailsConfiguration { + @Primary + @Bean + public RabbitConnectionDetails getRabbitmqConnection() { + return new RabbitMQConnectionDetails(); + } +} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RedisCacheConnectionDetails.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RedisCacheConnectionDetails.java new file mode 100644 index 0000000000..9485f22240 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RedisCacheConnectionDetails.java @@ -0,0 +1,26 @@ +package com.baeldung.connectiondetails.configuration; + +import com.baeldung.connectiondetails.adapter.VaultAdapter; +import org.springframework.boot.autoconfigure.data.redis.RedisConnectionDetails; + +public class RedisCacheConnectionDetails implements RedisConnectionDetails { + @Override + public String getPassword() { + return VaultAdapter.getSecret("redis_password"); + } + + @Override + public Standalone getStandalone() { + return new Standalone() { + @Override + public String getHost() { + return VaultAdapter.getSecret("redis_host"); + } + + @Override + public int getPort() { + return Integer.parseInt(VaultAdapter.getSecret("redis_port")); + } + }; + } +} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RedisConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RedisConnectionDetailsConfiguration.java new file mode 100644 index 0000000000..31816ff0b4 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RedisConnectionDetailsConfiguration.java @@ -0,0 +1,17 @@ +package com.baeldung.connectiondetails.configuration; + +import org.springframework.boot.autoconfigure.data.redis.RedisConnectionDetails; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.Profile; + +@Configuration(proxyBeanMethods = false) +@Profile("redis") +public class RedisConnectionDetailsConfiguration { + @Bean + @Primary + public RedisConnectionDetails getRedisCacheConnection() { + return new RedisCacheConnectionDetails(); + } +} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/entity/elastic/Person.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/entity/elastic/Person.java new file mode 100644 index 0000000000..851dbb7c90 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/entity/elastic/Person.java @@ -0,0 +1,27 @@ +package com.baeldung.connectiondetails.entity.elastic; + +import org.springframework.data.annotation.Id; +import org.springframework.data.elasticsearch.annotations.Document; + +@Document(indexName = "person") +public class Person { + String name; + @Id + String ssn; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getSsn() { + return ssn; + } + + public void setSsn(String ssn) { + this.ssn = ssn; + } +} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/entity/neo4j/Person.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/entity/neo4j/Person.java new file mode 100644 index 0000000000..63e88d0a41 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/entity/neo4j/Person.java @@ -0,0 +1,27 @@ +package com.baeldung.connectiondetails.entity.neo4j; + +import org.springframework.data.neo4j.core.schema.Id; +import org.springframework.data.neo4j.core.schema.Node; + +@Node +public class Person { + @Id + String name; + String zipcode; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getZipcode() { + return zipcode; + } + + public void setZipcode(String zipcode) { + this.zipcode = zipcode; + } +} \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/application-docker-compose.yml b/spring-boot-modules/spring-boot-3/src/main/resources/application-docker-compose.yml deleted file mode 100644 index bce67fa400..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/application-docker-compose.yml +++ /dev/null @@ -1,7 +0,0 @@ -spring: - docker: - compose: - enabled: true - file: docker-compose.yml - autoconfigure: - exclude: org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration, org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/application.yml b/spring-boot-modules/spring-boot-3/src/main/resources/application.yml index 3885e59a61..b1e79ca17e 100644 --- a/spring-boot-modules/spring-boot-3/src/main/resources/application.yml +++ b/spring-boot-modules/spring-boot-3/src/main/resources/application.yml @@ -19,7 +19,7 @@ spring: compose: enabled: false autoconfigure: - exclude: org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration + exclude: org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration cors: allow: diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-cassandra.properties b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-cassandra.properties new file mode 100644 index 0000000000..ea2619bada --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-cassandra.properties @@ -0,0 +1,11 @@ +spring.docker.compose.enabled=true +spring.docker.compose.file=./connectiondetails/docker-compose-cassandra.yml +spring.docker.compose.skip.in-tests=false +spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true +spring.mustache.check-template-location=false +spring.profiles.active=cassandra +spring.cassandra.local-datacenter=dc1 +#spring.cassandra.keyspace-name=spring_cassandra +#spring.cassandra.schema-action=CREATE_IF_NOT_EXISTS +spring.data.cassandra.request.timeout=20000 # Set your desired timeout in milliseconds +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-elastic.properties b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-elastic.properties new file mode 100644 index 0000000000..e9f32c252b --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-elastic.properties @@ -0,0 +1,7 @@ +spring.docker.compose.enabled=true +spring.docker.compose.file=./connectiondetails/docker-compose-elastic.yml +spring.docker.compose.skip.in-tests=false +spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true +spring.mustache.check-template-location=false +spring.profiles.active=elastic +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-jdbc.properties b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-jdbc.properties new file mode 100644 index 0000000000..40f9d1fd68 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-jdbc.properties @@ -0,0 +1,7 @@ +spring.docker.compose.enabled=true +spring.docker.compose.file=./connectiondetails/docker-compose-jdbc.yml +spring.docker.compose.skip.in-tests=false +spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true +spring.mustache.check-template-location=false +spring.profiles.active=jdbc +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-mongo.properties b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-mongo.properties new file mode 100644 index 0000000000..4dd355bbed --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-mongo.properties @@ -0,0 +1,8 @@ +spring.docker.compose.enabled=true +spring.docker.compose.file=./connectiondetails/docker-compose-mongo.yml +spring.docker.compose.skip.in-tests=false +spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true +spring.mustache.check-template-location=false +spring.profiles.active=mongo +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration +spring.data.mongodb.database=demodb \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-neo4j.properties b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-neo4j.properties new file mode 100644 index 0000000000..9e6c9c0f11 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-neo4j.properties @@ -0,0 +1,7 @@ +spring.docker.compose.enabled=true +spring.docker.compose.file=./connectiondetails/docker-compose-neo4j.yml +spring.docker.compose.skip.in-tests=false +spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true +spring.mustache.check-template-location=false +spring.profiles.active=neo4j +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-r2dbc.properties b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-r2dbc.properties new file mode 100644 index 0000000000..91d2fba818 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-r2dbc.properties @@ -0,0 +1,7 @@ +spring.docker.compose.enabled=true +spring.docker.compose.file=./connectiondetails/docker-compose-jdbc.yml +spring.docker.compose.skip.in-tests=false +spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true +spring.mustache.check-template-location=false +spring.profiles.active=r2dbc +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.jdbc.JdbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-rabbitmq.properties b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-rabbitmq.properties new file mode 100644 index 0000000000..fe9bfa3ecb --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-rabbitmq.properties @@ -0,0 +1,7 @@ +spring.docker.compose.enabled=true +spring.docker.compose.file=./connectiondetails/docker-compose-rabbitmq.yml +spring.docker.compose.skip.in-tests=false +spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true +spring.mustache.check-template-location=false +spring.profiles.active=rabbitmq +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-redis.properties b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-redis.properties new file mode 100644 index 0000000000..9e4973164e --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-redis.properties @@ -0,0 +1,7 @@ +spring.docker.compose.enabled=true +spring.docker.compose.file=./connectiondetails/docker-compose-redis.yml +spring.docker.compose.skip.in-tests=false +spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true +spring.mustache.check-template-location=false +spring.profiles.active=redis +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/cassandra-connection-details-class-diag.puml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/cassandra-connection-details-class-diag.puml new file mode 100644 index 0000000000..339f658e1a --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/cassandra-connection-details-class-diag.puml @@ -0,0 +1,27 @@ +@startuml +'https://plantuml.com/class-diagram + +interface CassandraConnectionDetails { + +getUsername():String + +getPassword():String + +getContactPoints():List + +getLocalDatacenter():String +} +class CustomCassandraConnectionDetails { + +getUsername():String + +getPassword():String + +getContactPoints():List + +getLocalDatacenter():String +} +class VaultAdapter { + +getSecret(String secretKey):String +} +class CustomCassandraConnectionDetailsConfiguration { + +getCustomCassandraConnectionDetails():CassandraConnectionDetails +} +CustomCassandraConnectionDetails -left-> VaultAdapter:uses +CustomCassandraConnectionDetails -right-|> CassandraConnectionDetails : implements +CustomCassandraConnectionDetailsConfiguration -up-> CustomCassandraConnectionDetails:uses + + +@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/connection-details-sequence-design.puml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/connection-details-sequence-design.puml new file mode 100644 index 0000000000..a2a917eea0 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/connection-details-sequence-design.puml @@ -0,0 +1,16 @@ +@startuml +'https://plantuml.com/sequence-diagram +skinparam sequenceMessageAlign direction +skinparam handwritten true +skinparam sequence { +ParticipantBackgroundColor beige +ParticipantPadding 50 +} +autonumber + +"Spring Boot" -[#63b175]> "Hashicorp Vault": Secret Request +"Hashicorp Vault" -[#63b175]-> "Spring Boot": Secret Response +"Spring Boot" -[#63b175]> "Remote Service": Connection Request + +"Remote Service" -[#63b175]-> "Spring Boot": Connection Response +@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-cassandra.yml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-cassandra.yml new file mode 100644 index 0000000000..c593cbc73b --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-cassandra.yml @@ -0,0 +1,9 @@ +version: '3.8' +services: + cassandra: + image: 'cassandra:latest' + environment: + - 'CASSANDRA_DC=datacenter-1' + - 'CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch' + ports: + - '19042:9042' \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-elastic.yml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-elastic.yml new file mode 100644 index 0000000000..a6e51ee1a0 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-elastic.yml @@ -0,0 +1,12 @@ +version: '3.8' +services: + elasticsearch: + image: 'docker.elastic.co/elasticsearch/elasticsearch:7.17.10' + environment: + - 'ELASTIC_USERNAME=elastic' + - 'ELASTIC_PASSWORD=secret' + - 'discovery.type=single-node' + - 'xpack.security.enabled=false' + ports: + - '19200:9200' +# - '19300:9300' \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-jdbc.yml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-jdbc.yml new file mode 100644 index 0000000000..65a8f135e8 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-jdbc.yml @@ -0,0 +1,10 @@ +version: '3.8' +services: + database: + image: 'postgres:13.1-alpine' + ports: + - '15432:5432' + environment: + - 'POSTGRES_USER=postgres' + - 'POSTGRES_DB=postgresdb' + - 'POSTGRES_PASSWORD=postgres' \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-mongo.yml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-mongo.yml new file mode 100644 index 0000000000..f12f5c3aa7 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-mongo.yml @@ -0,0 +1,10 @@ +version: '3.8' +services: + mongodb: + image: 'mongo:latest' + environment: + - 'MONGO_INITDB_DATABASE=demodb' +# - 'MONGO_INITDB_ROOT_PASSWORD=Mongo123' +# - 'MONGO_INITDB_ROOT_USERNAME=mongouser' + ports: + - '27017:27017' \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-neo4j.yml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-neo4j.yml new file mode 100644 index 0000000000..611951e755 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-neo4j.yml @@ -0,0 +1,8 @@ +version: '3.8' +services: + neo4j: + image: 'neo4j:latest' + ports: + - '17687:7687' + environment: + NEO4J_AUTH: neo4j/neo4j123 \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-rabbitmq.yml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-rabbitmq.yml new file mode 100644 index 0000000000..8abf19bd19 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-rabbitmq.yml @@ -0,0 +1,9 @@ +version: '3.8' +services: + rabbitmq: + image: 'rabbitmq:latest' + environment: + - 'RABBITMQ_DEFAULT_PASS=rabbitmq' + - 'RABBITMQ_DEFAULT_USER=rabbitmquser' + ports: + - '5672:5672' \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-redis.yml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-redis.yml new file mode 100644 index 0000000000..c218cef998 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-redis.yml @@ -0,0 +1,8 @@ +version: '3.8' +services: + redis: + image: 'redis:latest' + ports: + - '6379:6379' + environment: + - 'REDIS_REQUIREPASS=redis' \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-connectiondetails-compose.yml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-connectiondetails-compose.yml new file mode 100644 index 0000000000..4d2bded9eb --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-connectiondetails-compose.yml @@ -0,0 +1,39 @@ +version: '3.8' +services: + database: + profiles: + - 'jdbc' + image: 'postgres:13.1-alpine' + ports: + - '15432:5432' + environment: + - 'POSTGRES_USER=postgres' + - 'POSTGRES_DB=postgresdb' + - 'POSTGRES_PASSWORD=postgres' + rabbitmq: + profiles: + - 'rabbitmq' + image: 'rabbitmq:latest' + environment: + - 'RABBITMQ_DEFAULT_PASS=rabbitmq' + - 'RABBITMQ_DEFAULT_USER=rabbitmquser' + ports: + - '5672:5672' + redis: + profiles: + - 'redis' + image: 'redis:latest' + ports: + - '6379:6379' + environment: + - 'REDIS_REQUIREPASS=redis' +# mongodb: +# profiles: +# - 'mongo-test' +# image: 'mongo:latest' +# environment: +# - 'MONGO_INITDB_DATABASE=demodb' +# - 'MONGO_INITDB_ROOT_PASSWORD=mongo' +# - 'MONGO_INITDB_ROOT_USERNAME=mongouser' +# ports: +# - '27017:27017' \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/elasticsearch-connection-details-class-diag.puml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/elasticsearch-connection-details-class-diag.puml new file mode 100644 index 0000000000..48db0bcc4f --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/elasticsearch-connection-details-class-diag.puml @@ -0,0 +1,25 @@ +@startuml +'https://plantuml.com/class-diagram + +interface ElasticsearchConnectionDetails { + +getUsername():String + +getPassword():String + +getNodes():List +} +class CustomElasticsearchConnectionDetails { + +getUsername():String + +getPassword():String + +getNodes():List +} +class VaultAdapter { + +getSecret(String secretKey):String +} +class CustomElasticsearchConnectionDetailsConfiguration { + +getCustomElasticConnectionDetails():ElasticsearchConnectionDetails +} +CustomElasticsearchConnectionDetails -left-> VaultAdapter:uses +CustomElasticsearchConnectionDetails -right-|> ElasticsearchConnectionDetails : implements +CustomElasticsearchConnectionDetailsConfiguration -up-> CustomElasticsearchConnectionDetails:uses + + +@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/jdbcconnection-details-class-diag.puml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/jdbcconnection-details-class-diag.puml new file mode 100644 index 0000000000..88de5d607f --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/jdbcconnection-details-class-diag.puml @@ -0,0 +1,25 @@ +@startuml +'https://plantuml.com/class-diagram + +interface JdbcConnectionDetails { + +getUsername():String + +getPassword():String + +getJdbcUrl():String +} +class PostgresConnectionDetails { + +getUsername():String + +getPassword():String + +getJdbcUrl():String +} +class VaultAdapter { + +getSecret(String secretKey):String +} +class JdbcConnectonDetailsConfiguration { + +getPostgresConnection():JdbcConnectionDetails +} +PostgresConnectionDetails -left-> VaultAdapter:uses +PostgresConnectionDetails -right-|> JdbcConnectionDetails : implements +JdbcConnectonDetailsConfiguration -up-> PostgresConnectionDetails:uses + + +@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/mongodb-connection-details-class-diag.puml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/mongodb-connection-details-class-diag.puml new file mode 100644 index 0000000000..974c6de601 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/mongodb-connection-details-class-diag.puml @@ -0,0 +1,19 @@ +@startuml +'https://plantuml.com/class-diagram + +interface MongoConnectionDetails { + getConnectionString():ConnectionString +} +class MongoDBConnectionDetails { + getConnectionString():ConnectionString +} +class VaultAdapter { + +getSecret(String secretKey):String +} +class MongoDBConnectionDetailsConfiguration { + +getMongoConnectionDetails() : MongoConnectionDetails +} +MongoDBConnectionDetails -left-> VaultAdapter:uses +MongoDBConnectionDetails -right-|> MongoConnectionDetails : implements +MongoDBConnectionDetailsConfiguration -up-> MongoDBConnectionDetails:uses +@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/r2dbcconnection-details-class-diag.puml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/r2dbcconnection-details-class-diag.puml new file mode 100644 index 0000000000..ec69587ab9 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/r2dbcconnection-details-class-diag.puml @@ -0,0 +1,21 @@ +@startuml +'https://plantuml.com/class-diagram + +interface R2dbcConnectionDetails { + +getConnectionFactoryOptions():ConnectionFactoryOptions +} +class R2dbcPostgresConnectionDetails { + +getConnectionFactoryOptions():ConnectionFactoryOptions +} +class VaultAdapter { + +getSecret(String secretKey):String +} +class R2dbcPostgresConnectionDetailsConfiguration { + +getR2dbcPostgresConnectionDetails():R2dbcConnectionDetails +} +R2dbcPostgresConnectionDetails -right-> VaultAdapter:uses +R2dbcPostgresConnectionDetails -up-|> R2dbcConnectionDetails:implements +R2dbcPostgresConnectionDetailsConfiguration -up-> R2dbcPostgresConnectionDetails:uses + + +@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/rabbitmq-connection-details-class-diag.puml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/rabbitmq-connection-details-class-diag.puml new file mode 100644 index 0000000000..0541e12915 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/rabbitmq-connection-details-class-diag.puml @@ -0,0 +1,27 @@ +@startuml +'https://plantuml.com/class-diagram + +interface RabbitConnectionDetails { + +getUsername():String + +getPassword():String + +getFirstAddress():Address + +getAddresses():List
+} +class RabbitMQConnectionDetails { + +getUsername():String + +getPassword():String + +getFirstAddress():Address + +getAddresses():List
+} +class VaultAdapter { + +getSecret(String secretKey):String +} +class RabbitMQConnectionDetailsConfiguration { + +getRabbitmqConnection() : RabbitConnectionDetails +} +RabbitMQConnectionDetails -left-> VaultAdapter:uses +RabbitMQConnectionDetails -right-|> RabbitConnectionDetails : implements +RabbitMQConnectionDetailsConfiguration -up-> RabbitMQConnectionDetails:uses + + +@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/redis-connection-details-class-diagram.puml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/redis-connection-details-class-diagram.puml new file mode 100644 index 0000000000..a18c83a8be --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/redis-connection-details-class-diagram.puml @@ -0,0 +1,23 @@ +@startuml +'https://plantuml.com/class-diagram + +interface RedisConnectionDetails { + +getPassword():String + +getStandalone():Standalone +} +class RedisCacheConnectionDetails { + +getPassword():String + +getStandalone():Standalone +} +class VaultAdapter { + +getSecret(String secretKey):String +} +class RedisConnectonDetailsConfiguration { + +getRedisCacheConnection():RedisConnectionDetails +} +RedisCacheConnectionDetails -left-> VaultAdapter:uses +RedisCacheConnectionDetails -right-|> RedisConnectionDetails : implements +RedisConnectonDetailsConfiguration -up-> RedisCacheConnectionDetails:uses + + +@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/CassandraConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/CassandraConnectionDetailsIntegrationTest.java new file mode 100644 index 0000000000..6380f6375f --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/CassandraConnectionDetailsIntegrationTest.java @@ -0,0 +1,37 @@ +package com.baeldung.connectiondetails; + +import com.baeldung.connectiondetails.configuration.CustomCassandraConnectionDetailsConfiguration; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Import; +import org.springframework.data.cassandra.core.CassandraTemplate; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = ConnectionDetailsApplication.class) +@Import(CustomCassandraConnectionDetailsConfiguration.class) +@ComponentScan(basePackages = "com.baeldung.connectiondetails") +@TestPropertySource(locations = {"classpath:connectiondetails/application-cassandra.properties"}) +@ActiveProfiles("cassandra") +public class CassandraConnectionDetailsIntegrationTest { + private static final Logger logger = LoggerFactory.getLogger(CassandraConnectionDetailsIntegrationTest.class); + @Autowired + private CassandraTemplate cassandraTemplate; + @Test + public void givenHashicorpVault_whenRunQuery_thenSuccess() { + Boolean result = cassandraTemplate.getCqlOperations() + .execute("CREATE KEYSPACE IF NOT EXISTS spring_cassandra" + + " WITH replication = {'class':'SimpleStrategy', 'replication_factor':3}"); + logger.info("the result -" + result); + assertTrue(result); + } +} diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/ElasticsearchConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/ElasticsearchConnectionDetailsIntegrationTest.java new file mode 100644 index 0000000000..ad4110c7e5 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/ElasticsearchConnectionDetailsIntegrationTest.java @@ -0,0 +1,45 @@ +package com.baeldung.connectiondetails; + +import com.baeldung.connectiondetails.configuration.CustomElasticsearchConnectionDetailsConfiguration; +import com.baeldung.connectiondetails.entity.elastic.Person; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Import; +import org.springframework.data.elasticsearch.client.elc.ElasticsearchTemplate; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = ConnectionDetailsApplication.class) +@Import(CustomElasticsearchConnectionDetailsConfiguration.class) +@ComponentScan(basePackages = "com.baeldung.connectiondetails") +@TestPropertySource(locations = {"classpath:connectiondetails/application-elastic.properties"}) +@ActiveProfiles("elastic") +public class ElasticsearchConnectionDetailsIntegrationTest { + private static final Logger logger = LoggerFactory.getLogger(ElasticsearchConnectionDetailsIntegrationTest.class); + @Autowired + private ElasticsearchTemplate elasticsearchTemplate; + + @Before + public void prepare() { + if (elasticsearchTemplate.indexOps(Person.class).exists()) { + elasticsearchTemplate.indexOps(Person.class).delete(); + } + } + @Test + public void givenHashicorpVault_whenCreateIndexInElastic_thenSuccess() { + + Boolean result = elasticsearchTemplate.indexOps(Person.class).create(); + logger.info("index created:" + result); + assertTrue(result); + } +} diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/JdbcConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/JdbcConnectionDetailsIntegrationTest.java new file mode 100644 index 0000000000..748bc27b0b --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/JdbcConnectionDetailsIntegrationTest.java @@ -0,0 +1,38 @@ +package com.baeldung.connectiondetails; + +import com.baeldung.connectiondetails.configuration.JdbcConnectionDetailsConfiguration; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Import; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import java.sql.Date; +import java.time.LocalDate; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = ConnectionDetailsApplication.class) +@Import(JdbcConnectionDetailsConfiguration.class) +@ComponentScan(basePackages = "com.baeldung.connectiondetails") +@TestPropertySource(locations = {"classpath:connectiondetails/application-jdbc.properties"}) +@ActiveProfiles("jdbc") +public class JdbcConnectionDetailsIntegrationTest { + private static final Logger logger = LoggerFactory.getLogger(JdbcConnectionDetailsIntegrationTest.class); + @Autowired + private JdbcTemplate jdbcTemplate; + @Test + public void givenSecretVault_whenIntegrateWithPostgres_thenConnectionSuccessful() { + String sql = "select current_date;"; + Date date = jdbcTemplate.queryForObject(sql, Date.class); + assertEquals(LocalDate.now().toString(), date.toString()); + } +} diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/MongoDBConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/MongoDBConnectionDetailsIntegrationTest.java new file mode 100644 index 0000000000..edd6da3448 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/MongoDBConnectionDetailsIntegrationTest.java @@ -0,0 +1,47 @@ +package com.baeldung.connectiondetails; + +import com.baeldung.connectiondetails.configuration.MongoDBConnectionDetailsConfiguration; +import org.json.JSONException; +import org.json.JSONObject; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration; +import org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration; +import org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Import; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = ConnectionDetailsApplication.class) +@Import(MongoDBConnectionDetailsConfiguration.class) +@ComponentScan(basePackages = "com.baeldung.connectiondetails") +@TestPropertySource(locations = {"classpath:connectiondetails/application-mongo.properties"}) +@ActiveProfiles("mongo") +public class MongoDBConnectionDetailsIntegrationTest { + + @Autowired + private MongoTemplate mongoTemplate; + @Test + public void givenMongoDB_whenExecuteQuery_ReturnResult() throws JSONException { + mongoTemplate.insert("{\"msg\":\"My First Entry in MongoDB\"}", "myDemoCollection"); + String result = mongoTemplate.find(new Query(), String.class, "myDemoCollection").get(0); + + JSONObject jsonObject = new JSONObject(result); + result = jsonObject.get("msg").toString(); + R2dbcAutoConfiguration r2dbcAutoConfiguration; + R2dbcDataAutoConfiguration r2dbcDataAutoConfiguration; + R2dbcRepositoriesAutoConfiguration r2dbcRepositoriesAutoConfiguration; + + assertEquals("My First Entry in MongoDB", result); + } +} + diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/Neo4jConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/Neo4jConnectionDetailsIntegrationTest.java new file mode 100644 index 0000000000..88a9529822 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/Neo4jConnectionDetailsIntegrationTest.java @@ -0,0 +1,43 @@ +package com.baeldung.connectiondetails; + +import com.baeldung.connectiondetails.configuration.CustomNeo4jConnectionDetailsConfiguration; +import com.baeldung.connectiondetails.entity.neo4j.Person; +import org.junit.After; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Import; +import org.springframework.data.neo4j.core.Neo4jTemplate; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = ConnectionDetailsApplication.class) +@Import(CustomNeo4jConnectionDetailsConfiguration.class) +@ComponentScan(basePackages = "com.baeldung.connectiondetails") +@TestPropertySource(locations = {"classpath:connectiondetails/application-neo4j.properties"}) +@ActiveProfiles("neo4j") +public class Neo4jConnectionDetailsIntegrationTest { + @Autowired + private Neo4jTemplate neo4jTemplate; + + @After + public void cleanup() { + neo4jTemplate.deleteAll(Person.class); + } + @Test + public void giveHashicorpVault_whenRunQuery_thenSuccess() { + Person person = new Person(); + person.setName("James"); + person.setZipcode("751003"); + + Person data = neo4jTemplate.save(person); + assertEquals("James", data.getName()); + } + +} diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/R2dbcConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/R2dbcConnectionDetailsIntegrationTest.java new file mode 100644 index 0000000000..b24071a1f1 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/R2dbcConnectionDetailsIntegrationTest.java @@ -0,0 +1,40 @@ +package com.baeldung.connectiondetails; + +import com.baeldung.connectiondetails.configuration.R2dbcPostgresConnectionDetailsConfiguration; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.data.r2dbc.core.R2dbcEntityTemplate; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import java.util.List; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = ConnectionDetailsApplication.class) +@Import(R2dbcPostgresConnectionDetailsConfiguration.class) +@TestPropertySource(locations = {"classpath:connectiondetails/application-r2dbc.properties"}) +@ActiveProfiles("r2dbc") +public class R2dbcConnectionDetailsIntegrationTest { + Logger logger = LoggerFactory.getLogger(R2dbcConnectionDetailsIntegrationTest.class); + @Autowired + private R2dbcEntityTemplate r2dbcEntityTemplate; + + @Test + public void givenHashicorpVault_whenQueryPostgresReactive_thenSuccess() { + + String sql = "select * from information_schema.tables"; + + List result = r2dbcEntityTemplate.getDatabaseClient().sql(sql).fetch().all() + .map(r -> { + return "hello " + r.get("table_name").toString(); + + }).collectList().block(); + logger.info("count ------" + result.size()); + } +} diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/RabbitmqConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/RabbitmqConnectionDetailsIntegrationTest.java new file mode 100644 index 0000000000..2793ac0126 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/RabbitmqConnectionDetailsIntegrationTest.java @@ -0,0 +1,62 @@ +package com.baeldung.connectiondetails; + +import com.baeldung.connectiondetails.configuration.RabbitMQConnectionDetailsConfiguration; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.amqp.core.Queue; +import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; +import org.springframework.amqp.rabbit.core.RabbitAdmin; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = ConnectionDetailsApplication.class) +@Import(RabbitMQConnectionDetailsConfiguration.class) +@TestPropertySource(locations = {"classpath:connectiondetails/application-rabbitmq.properties"}) +@ActiveProfiles("rabbitmq") +public class RabbitmqConnectionDetailsIntegrationTest { + + private static final Logger logger = LoggerFactory.getLogger(RabbitmqConnectionDetailsIntegrationTest.class); + + @Autowired + private RabbitTemplate rabbitTemplate; + + @Autowired + private CachingConnectionFactory connectionFactory; + + private final static String queueName = "Test_Queue"; + + RabbitAdmin rabbitAdmin; + + @Before + public void setup() { + logger.info("create new queue"); + rabbitAdmin = new RabbitAdmin(connectionFactory); + logger.info("creating queue: " + rabbitAdmin.declareQueue(new Queue(queueName))); + connectionFactory.destroy(); + } + + @After + public void cleanup() { + logger.info("delete queue"); + this.rabbitAdmin.deleteQueue(queueName, false, true); + } + @Test + public void givenRabbitmq_whenPublishMessage_thenSuccess() { + logger.info("sending message to queue " + queueName); + final String MSG = "this is a test message"; + this.rabbitTemplate.convertAndSend(queueName, MSG); + assertEquals(MSG, this.rabbitTemplate.receiveAndConvert(queueName)); + } +} diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/RedisCacheConnnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/RedisCacheConnnectionDetailsIntegrationTest.java new file mode 100644 index 0000000000..6ca963a261 --- /dev/null +++ b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/RedisCacheConnnectionDetailsIntegrationTest.java @@ -0,0 +1,34 @@ +package com.baeldung.connectiondetails; + +import com.baeldung.connectiondetails.configuration.RedisConnectionDetailsConfiguration; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = ConnectionDetailsApplication.class) +@Import(RedisConnectionDetailsConfiguration.class) +@TestPropertySource(locations = {"classpath:connectiondetails/application-redis.properties"}) +@ActiveProfiles("redis") +public class RedisCacheConnnectionDetailsIntegrationTest { + private static final Logger logger = LoggerFactory.getLogger(RedisCacheConnnectionDetailsIntegrationTest.class); + + @Autowired + RedisTemplate redisTemplate; + + @Test + public void giveRedisCache_whenKeyVal_storeInCache() { + redisTemplate.opsForValue().set("City", "New York"); + assertEquals("New York", redisTemplate.opsForValue().get("City")); + } +} From e85d088d17be113be8c4ee948b94e896122283c4 Mon Sep 17 00:00:00 2001 From: parthiv39731 <70740707+parthiv39731@users.noreply.github.com> Date: Wed, 11 Oct 2023 00:03:46 +0530 Subject: [PATCH 2/9] BAEL-6910 Spring Boot 3.1's ConnectionDetails abstraction --- spring-boot-modules/spring-boot-3-1/pom.xml | 263 ++++++++++++++++++ .../ConnectionDetailsApplication.java | 15 + .../adapter/VaultAdapter.java | 124 +++++++++ .../CustomCassandraConnectionDetails.java | 32 +++ ...ssandraConnectionDetailsConfiguration.java | 17 ++ .../CustomCouchBaseConnectionDetails.java | 21 ++ ...uchBaseConnectionDetailsConfiguration.java | 16 ++ .../CustomElasticsearchConnectionDetails.java | 29 ++ ...csearchConnectionDetailsConfiguration.java | 17 ++ .../CustomKafkaConnectionDetails.java | 13 + ...omKafkaConnectionDetailsConfiguration.java | 15 + .../CustomNeo4jConnectionDetails.java | 24 ++ ...omNeo4jConnectionDetailsConfiguration.java | 17 ++ .../CustomZipkinConnectionDetails.java | 11 + ...mZipkinConnectionDetailsConfiguration.java | 17 ++ .../JdbcConnectionDetailsConfiguration.java | 17 ++ .../MongoDBConnectionDetails.java | 14 + ...MongoDBConnectionDetailsConfiguration.java | 17 ++ .../PostgresConnectionDetails.java | 21 ++ .../R2dbcPostgresConnectionDetails.java | 22 ++ ...ostgresConnectionDetailsConfiguration.java | 17 ++ .../RabbitMQConnectionDetails.java | 34 +++ ...abbitMQConnectionDetailsConfiguration.java | 17 ++ .../RedisCacheConnectionDetails.java | 26 ++ .../RedisConnectionDetailsConfiguration.java | 17 ++ .../controller/ZipkinDemoController.java | 19 ++ .../entity/elastic/Person.java | 27 ++ .../entity/neo4j/Person.java | 27 ++ .../application-cassandra.properties | 11 + .../application-couch.properties | 8 + .../application-elastic.properties | 7 + .../application-jdbc.properties | 7 + .../application-kafka.properties | 7 + .../application-mongo.properties | 8 + .../application-neo4j.properties | 7 + .../application-r2dbc.properties | 7 + .../application-rabbitmq.properties | 7 + .../application-redis.properties | 7 + .../application-zipkin.properties | 9 + .../docker/docker-compose-cassandra.yml | 9 + .../docker/docker-compose-couch.yml | 12 + .../docker/docker-compose-elastic.yml | 12 + .../docker/docker-compose-jdbc.yml | 10 + .../docker/docker-compose-kafka.yml | 38 +++ .../docker/docker-compose-mongo.yml | 10 + .../docker/docker-compose-neo4j.yml | 8 + .../docker/docker-compose-rabbitmq.yml | 9 + .../docker/docker-compose-redis.yml | 8 + .../docker/docker-compose-zipkin.yml | 10 + ...ssandra-connection-details-class-diag.puml | 27 ++ .../connection-details-sequence-design.puml | 16 ++ .../couch_connection_details_class_diag.puml | 25 ++ ...csearch-connection-details-class-diag.puml | 25 ++ .../jdbcconnection-details-class-diag.puml | 25 ++ .../kafka-connectiondetails-class-diag.puml | 21 ++ ...mongodb-connection-details-class-diag.puml | 19 ++ .../neo4j-connection-details-class-diag.puml | 23 ++ .../r2dbcconnection-details-class-diag.puml | 21 ++ ...abbitmq-connection-details-class-diag.puml | 27 ++ ...edis-connection-details-class-diagram.puml | 23 ++ .../zipkin-connection-details-class-diag.puml | 21 ++ ...andraConnectionDetailsIntegrationTest.java | 37 +++ ...hbaseConnectionDetailsIntegrationTest.java | 30 ++ ...earchConnectionDetailsIntegrationTest.java | 45 +++ .../JdbcConnectionDetailsIntegrationTest.java | 38 +++ ...KafkaConnectionDetailsIntegrationTest.java | 32 +++ ...ngoDBConnectionDetailsIntegrationTest.java | 47 ++++ ...Neo4jConnectionDetailsIntegrationTest.java | 43 +++ ...R2dbcConnectionDetailsIntegrationTest.java | 39 +++ ...bitmqConnectionDetailsIntegrationTest.java | 62 +++++ ...acheConnnectionDetailsIntegrationTest.java | 34 +++ 71 files changed, 1797 insertions(+) create mode 100644 spring-boot-modules/spring-boot-3-1/pom.xml create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/ConnectionDetailsApplication.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/adapter/VaultAdapter.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetails.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetailsConfiguration.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCouchBaseConnectionDetails.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCouchBaseConnectionDetailsConfiguration.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetails.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetailsConfiguration.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomKafkaConnectionDetails.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomKafkaConnectionDetailsConfiguration.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetails.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetailsConfiguration.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomZipkinConnectionDetails.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomZipkinConnectionDetailsConfiguration.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/JdbcConnectionDetailsConfiguration.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetails.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetailsConfiguration.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/PostgresConnectionDetails.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetails.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetailsConfiguration.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetails.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetailsConfiguration.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RedisCacheConnectionDetails.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RedisConnectionDetailsConfiguration.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/controller/ZipkinDemoController.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/entity/elastic/Person.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/entity/neo4j/Person.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-cassandra.properties create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-couch.properties create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-elastic.properties create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-jdbc.properties create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-kafka.properties create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-mongo.properties create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-neo4j.properties create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-r2dbc.properties create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-rabbitmq.properties create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-redis.properties create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-zipkin.properties create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-cassandra.yml create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-couch.yml create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-elastic.yml create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-jdbc.yml create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-kafka.yml create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-mongo.yml create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-neo4j.yml create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-rabbitmq.yml create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-redis.yml create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-zipkin.yml create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/cassandra-connection-details-class-diag.puml create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/connection-details-sequence-design.puml create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/couch_connection_details_class_diag.puml create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/elasticsearch-connection-details-class-diag.puml create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/jdbcconnection-details-class-diag.puml create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/kafka-connectiondetails-class-diag.puml create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/mongodb-connection-details-class-diag.puml create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/neo4j-connection-details-class-diag.puml create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/r2dbcconnection-details-class-diag.puml create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/rabbitmq-connection-details-class-diag.puml create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/redis-connection-details-class-diagram.puml create mode 100644 spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/zipkin-connection-details-class-diag.puml create mode 100644 spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/CassandraConnectionDetailsIntegrationTest.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/CouchbaseConnectionDetailsIntegrationTest.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/ElasticsearchConnectionDetailsIntegrationTest.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/JdbcConnectionDetailsIntegrationTest.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/KafkaConnectionDetailsIntegrationTest.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/MongoDBConnectionDetailsIntegrationTest.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/Neo4jConnectionDetailsIntegrationTest.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/R2dbcConnectionDetailsIntegrationTest.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/RabbitmqConnectionDetailsIntegrationTest.java create mode 100644 spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/RedisCacheConnnectionDetailsIntegrationTest.java diff --git a/spring-boot-modules/spring-boot-3-1/pom.xml b/spring-boot-modules/spring-boot-3-1/pom.xml new file mode 100644 index 0000000000..597f384ed8 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/pom.xml @@ -0,0 +1,263 @@ + + + 4.0.0 + spring-boot-3-1 + 0.0.1-SNAPSHOT + spring-boot-3-1 + Demo project for Spring Boot + + + com.baeldung + parent-boot-3 + 0.0.1-SNAPSHOT + ../../parent-boot-3 + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-hateoas + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-data-jpa + + + org.springframework.boot + spring-boot-starter-webflux + + + org.mock-server + mockserver-netty + ${mockserver.version} + + + + org.mock-server + mockserver-client-java + ${mockserver.version} + + + com.h2database + h2 + runtime + + + org.springframework.boot + spring-boot-devtools + runtime + true + + + org.springframework.boot + spring-boot-configuration-processor + true + + + org.springdoc + springdoc-openapi-starter-webmvc-ui + ${springdoc.version} + + + org.projectlombok + lombok + true + + + org.mapstruct + mapstruct + ${mapstruct.version} + true + + + org.springframework.boot + spring-boot-docker-compose + + + org.springframework.boot + spring-boot-starter-data-mongodb + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-starter-test + + + org.postgresql + postgresql + runtime + + + org.springframework.boot + spring-boot-starter-amqp + + + org.springframework.amqp + spring-rabbit-test + test + + + org.springframework.data + spring-data-redis + + + redis.clients + jedis + jar + + + org.springframework.boot + spring-boot-starter-data-redis + + + org.postgresql + r2dbc-postgresql + runtime + + + org.springframework.boot + spring-boot-starter-data-r2dbc + + + io.projectreactor + reactor-test + test + + + org.springframework.boot + spring-boot-starter-data-elasticsearch + + + org.springframework.boot + spring-boot-starter-data-cassandra + + + org.springframework.boot + spring-boot-starter-data-neo4j + + + org.springframework.kafka + spring-kafka + + + org.springframework.kafka + spring-kafka-test + test + + + org.springframework.boot + spring-boot-starter-data-couchbase + + + io.micrometer + micrometer-tracing-bridge-brave + + + io.zipkin.reporter2 + zipkin-reporter-brave + + + io.zipkin.reporter2 + zipkin-sender-urlconnection + + + + + + + docker-compose + + + + org.springframework.boot + spring-boot-maven-plugin + + com.baeldung.dockercompose.DockerComposeApplication + + + + + + + connection-details + + + + org.springframework.boot + spring-boot-maven-plugin + + com.baeldung.connectiondetails.ConnectionDetailsApplication + + + + + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + org.mapstruct + mapstruct-processor + ${mapstruct.version} + + + org.projectlombok + lombok + ${lombok.version} + + + + org.projectlombok + lombok-mapstruct-binding + ${lombok-mapstruct-binding.version} + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + org.apache.maven.plugins + maven-compiler-plugin + + --enable-preview + + + + + + + 19 + 1.5.2.Final + 2.0.0 + 3.0.0-M7 + 5.14.0 + 0.2.0 + + + \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/ConnectionDetailsApplication.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/ConnectionDetailsApplication.java new file mode 100644 index 0000000000..d32ae8c4fb --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/ConnectionDetailsApplication.java @@ -0,0 +1,15 @@ +package com.baeldung.connectiondetails; + + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +//@ComponentScan(basePackages = "com.baeldung.connectiondetails") +public class ConnectionDetailsApplication { + + public static void main(String[] args) { + SpringApplication.run(ConnectionDetailsApplication.class, args); + } + +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/adapter/VaultAdapter.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/adapter/VaultAdapter.java new file mode 100644 index 0000000000..e8319c7735 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/adapter/VaultAdapter.java @@ -0,0 +1,124 @@ +package com.baeldung.connectiondetails.adapter; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class VaultAdapter { + private static final Logger logger = LoggerFactory.getLogger(VaultAdapter.class); + public static String getSecret(String secretKey) { + logger.info("call vault to get the secret of key: " + secretKey); + + //Postgres keys + if (secretKey.equalsIgnoreCase("postgres_secret_key")) { + return "postgres"; + } + if (secretKey.equalsIgnoreCase("postgres_user_key")) { + return "postgres"; + } + if (secretKey.equalsIgnoreCase("postgres_jdbc_url")) { + return "jdbc:postgresql://localhost:15432/postgresdb"; + } + //RabbitMQ Server Keys + if (secretKey.equalsIgnoreCase("rabbitmq_username")) { + return "rabbitmquser"; + } + if (secretKey.equalsIgnoreCase("rabbitmq_password")) { + return "rabbitmq"; + } + if (secretKey.equalsIgnoreCase("rabbitmq_port")) { + return "5672"; + } + if (secretKey.equalsIgnoreCase("rabbitmq_host")) { + return "localhost"; + } + //Redis Server Keys + if (secretKey.equalsIgnoreCase("redis_username")) { + return null; + } + if (secretKey.equalsIgnoreCase("redis_password")) { + return "redis"; + } + if (secretKey.equalsIgnoreCase("redis_port")) { + return "6379"; + } + if (secretKey.equalsIgnoreCase("redis_host")) { + return "localhost"; + } + //Mongo DB Keys + if (secretKey.equalsIgnoreCase("mongo_connection_string")) { + return "mongodb://localhost:27017/demodb"; + } + + //r2dbc Keys + if (secretKey.equalsIgnoreCase("r2dbc_postgres_user")) { + return "postgres"; + } + if (secretKey.equalsIgnoreCase("r2dbc_postgres_secret")) { + return "postgres"; + } + if (secretKey.equalsIgnoreCase("r2dbc_postgres_host")) { + return "localhost"; + } + if (secretKey.equalsIgnoreCase("r2dbc_postgres_port")) { + return "15432"; + } + if (secretKey.equalsIgnoreCase("r2dbc_postgres_database")) { + return "postgresdb"; + } + //Elastic Search Keys + if (secretKey.equalsIgnoreCase("elastic_user")) { + return "elastic"; + } + if (secretKey.equalsIgnoreCase("elastic_secret")) { + return "secret"; + } + if (secretKey.equalsIgnoreCase("elastic_host")) { + return "localhost"; + } + if (secretKey.equalsIgnoreCase("elastic_port1")) { + return "19200"; + } + if (secretKey.equalsIgnoreCase("elastic_port2")) { + return "19300"; + } + //Cassandra keys + if (secretKey.equalsIgnoreCase("cassandra_user")) { + return "cassandra"; + } + if (secretKey.equalsIgnoreCase("cassandra_secret")) { + return "secret"; + } + if (secretKey.equalsIgnoreCase("cassandra_host")) { + return "localhost"; + } + if (secretKey.equalsIgnoreCase("cassandra_port")) { + return "19042"; + } + //Neo4j Keys + if (secretKey.equalsIgnoreCase("neo4j_secret")) { + return "neo4j123"; + } + if (secretKey.equalsIgnoreCase("neo4j_uri")) { + return "bolt://localhost:17687"; + } + //Kafka Keys + if (secretKey.equalsIgnoreCase("kafka_servers")) { + return "localhost:19092"; + } + //Couchbase Keys + if(secretKey.equalsIgnoreCase("couch_user")) { + return "Administrator"; + } + if(secretKey.equalsIgnoreCase("couch_secret")) { + return "password"; + } + if(secretKey.equalsIgnoreCase("couch_connection_string")) { + return "couchbase://127.0.0.1:8092"; + } + //Zipkin Keys + if(secretKey.equalsIgnoreCase("zipkin_span_endpoint")) { + return "http://localhost:9411/api/v2/spans"; + } + return "secretVal"; + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetails.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetails.java new file mode 100644 index 0000000000..6a246cd9fc --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetails.java @@ -0,0 +1,32 @@ +package com.baeldung.connectiondetails.configuration; + +import com.baeldung.connectiondetails.adapter.VaultAdapter; +import org.springframework.boot.autoconfigure.cassandra.CassandraConnectionDetails; + +import java.util.List; + +public class CustomCassandraConnectionDetails implements CassandraConnectionDetails { + @Override + public List getContactPoints() { + Node node = new Node( + VaultAdapter.getSecret("cassandra_host"), + Integer.parseInt(VaultAdapter.getSecret("cassandra_port")) + ); + return List.of(node); + } + + @Override + public String getUsername() { + return VaultAdapter.getSecret("cassandra_user"); + } + + @Override + public String getPassword() { + return VaultAdapter.getSecret("cassandra_secret"); + } + + @Override + public String getLocalDatacenter() { + return "datacenter-1"; + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetailsConfiguration.java new file mode 100644 index 0000000000..02ed8c0051 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetailsConfiguration.java @@ -0,0 +1,17 @@ +package com.baeldung.connectiondetails.configuration; + +import org.springframework.boot.autoconfigure.cassandra.CassandraConnectionDetails; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.Profile; + +@Configuration(proxyBeanMethods = false) +@Profile("cassandra") +public class CustomCassandraConnectionDetailsConfiguration { + @Bean + @Primary + public CassandraConnectionDetails getCustomCassandraConnectionDetails() { + return new CustomCassandraConnectionDetails(); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCouchBaseConnectionDetails.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCouchBaseConnectionDetails.java new file mode 100644 index 0000000000..4fa0605cac --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCouchBaseConnectionDetails.java @@ -0,0 +1,21 @@ +package com.baeldung.connectiondetails.configuration; + +import com.baeldung.connectiondetails.adapter.VaultAdapter; +import org.springframework.boot.autoconfigure.couchbase.CouchbaseConnectionDetails; + +public class CustomCouchBaseConnectionDetails implements CouchbaseConnectionDetails { + @Override + public String getConnectionString() { + return VaultAdapter.getSecret("couch_connection_string"); + } + + @Override + public String getUsername() { + return VaultAdapter.getSecret("couch_user"); + } + + @Override + public String getPassword() { + return VaultAdapter.getSecret("couch_secret"); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCouchBaseConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCouchBaseConnectionDetailsConfiguration.java new file mode 100644 index 0000000000..96cc34f92e --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCouchBaseConnectionDetailsConfiguration.java @@ -0,0 +1,16 @@ +package com.baeldung.connectiondetails.configuration; + +import org.springframework.boot.autoconfigure.couchbase.CouchbaseConnectionDetails; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; + +@Configuration(proxyBeanMethods = false) +@Profile("couch") + +public class CustomCouchBaseConnectionDetailsConfiguration { + @Bean + public CouchbaseConnectionDetails getCouchBaseConnectionDetails() { + return new CustomCouchBaseConnectionDetails(); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetails.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetails.java new file mode 100644 index 0000000000..0b45878bc9 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetails.java @@ -0,0 +1,29 @@ +package com.baeldung.connectiondetails.configuration; + +import com.baeldung.connectiondetails.adapter.VaultAdapter; +import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchConnectionDetails; + +import java.util.List; + +public class CustomElasticsearchConnectionDetails implements ElasticsearchConnectionDetails { + @Override + public List getNodes() { + Node node1 = new Node( + VaultAdapter.getSecret("elastic_host"), + Integer.parseInt(VaultAdapter.getSecret("elastic_port1")), + Node.Protocol.HTTP + ); + return List.of(node1); + } + + @Override + public String getUsername() { + return VaultAdapter.getSecret("elastic_user"); + } + + @Override + public String getPassword() { + return VaultAdapter.getSecret("elastic_secret"); + } + +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetailsConfiguration.java new file mode 100644 index 0000000000..a9b3da44fa --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetailsConfiguration.java @@ -0,0 +1,17 @@ +package com.baeldung.connectiondetails.configuration; + +import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchConnectionDetails; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.Profile; + +@Configuration(proxyBeanMethods = false) +@Profile("elastic") +public class CustomElasticsearchConnectionDetailsConfiguration { + @Bean + @Primary + public ElasticsearchConnectionDetails getCustomElasticConnectionDetails() { + return new CustomElasticsearchConnectionDetails(); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomKafkaConnectionDetails.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomKafkaConnectionDetails.java new file mode 100644 index 0000000000..6791ee6408 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomKafkaConnectionDetails.java @@ -0,0 +1,13 @@ +package com.baeldung.connectiondetails.configuration; + +import com.baeldung.connectiondetails.adapter.VaultAdapter; +import org.springframework.boot.autoconfigure.kafka.KafkaConnectionDetails; + +import java.util.List; + +public class CustomKafkaConnectionDetails implements KafkaConnectionDetails { + @Override + public List getBootstrapServers() { + return List.of(VaultAdapter.getSecret("kafka_servers")); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomKafkaConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomKafkaConnectionDetailsConfiguration.java new file mode 100644 index 0000000000..068281741a --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomKafkaConnectionDetailsConfiguration.java @@ -0,0 +1,15 @@ +package com.baeldung.connectiondetails.configuration; + +import org.springframework.boot.autoconfigure.kafka.KafkaConnectionDetails; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; + +@Configuration(proxyBeanMethods = false) +@Profile("kafka") +public class CustomKafkaConnectionDetailsConfiguration { + @Bean + public KafkaConnectionDetails getKafkaConnectionDetails() { + return new CustomKafkaConnectionDetails(); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetails.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetails.java new file mode 100644 index 0000000000..c0412fbb21 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetails.java @@ -0,0 +1,24 @@ +package com.baeldung.connectiondetails.configuration; + +import com.baeldung.connectiondetails.adapter.VaultAdapter; +import org.neo4j.driver.AuthToken; +import org.neo4j.driver.AuthTokens; +import org.springframework.boot.autoconfigure.neo4j.Neo4jConnectionDetails; + +import java.net.URI; +import java.net.URISyntaxException; + +public class CustomNeo4jConnectionDetails implements Neo4jConnectionDetails { + @Override + public URI getUri() { + try { + return new URI(VaultAdapter.getSecret("neo4j_uri")); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + } + @Override + public AuthToken getAuthToken() { + return AuthTokens.basic("neo4j", VaultAdapter.getSecret("neo4j_secret")); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetailsConfiguration.java new file mode 100644 index 0000000000..aec8908c7d --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetailsConfiguration.java @@ -0,0 +1,17 @@ +package com.baeldung.connectiondetails.configuration; + +import org.springframework.boot.autoconfigure.neo4j.Neo4jConnectionDetails; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.Profile; + +@Configuration(proxyBeanMethods = false) +@Profile("neo4j") +public class CustomNeo4jConnectionDetailsConfiguration { + @Bean + @Primary + public Neo4jConnectionDetails getNeo4jConnectionDetails() { + return new CustomNeo4jConnectionDetails(); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomZipkinConnectionDetails.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomZipkinConnectionDetails.java new file mode 100644 index 0000000000..c29408992a --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomZipkinConnectionDetails.java @@ -0,0 +1,11 @@ +package com.baeldung.connectiondetails.configuration; + +import com.baeldung.connectiondetails.adapter.VaultAdapter; +import org.springframework.boot.actuate.autoconfigure.tracing.zipkin.ZipkinConnectionDetails; + +public class CustomZipkinConnectionDetails implements ZipkinConnectionDetails { + @Override + public String getSpanEndpoint() { + return VaultAdapter.getSecret("zipkin_span_endpoint"); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomZipkinConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomZipkinConnectionDetailsConfiguration.java new file mode 100644 index 0000000000..2f451a3850 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomZipkinConnectionDetailsConfiguration.java @@ -0,0 +1,17 @@ +package com.baeldung.connectiondetails.configuration; + +import org.springframework.boot.actuate.autoconfigure.tracing.zipkin.ZipkinConnectionDetails; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.Profile; + +@Configuration(proxyBeanMethods = false) +@Profile("zipkin") +public class CustomZipkinConnectionDetailsConfiguration { + @Bean + @Primary + public ZipkinConnectionDetails getZipkinConnectionDetails() { + return new CustomZipkinConnectionDetails(); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/JdbcConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/JdbcConnectionDetailsConfiguration.java new file mode 100644 index 0000000000..3387356366 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/JdbcConnectionDetailsConfiguration.java @@ -0,0 +1,17 @@ +package com.baeldung.connectiondetails.configuration; + +import org.springframework.boot.autoconfigure.jdbc.JdbcConnectionDetails; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.Profile; + +@Configuration(proxyBeanMethods = false) +@Profile("jdbc") +public class JdbcConnectionDetailsConfiguration { + @Bean + @Primary + public JdbcConnectionDetails getPostgresConnection() { + return new PostgresConnectionDetails(); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetails.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetails.java new file mode 100644 index 0000000000..df689d81b6 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetails.java @@ -0,0 +1,14 @@ +package com.baeldung.connectiondetails.configuration; + + +import com.baeldung.connectiondetails.adapter.VaultAdapter; +import com.mongodb.ConnectionString; +import org.springframework.boot.autoconfigure.mongo.MongoConnectionDetails; + +public class MongoDBConnectionDetails implements MongoConnectionDetails { + @Override + public ConnectionString getConnectionString() { + return new ConnectionString(VaultAdapter.getSecret("mongo_connection_string")); + } +} + diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetailsConfiguration.java new file mode 100644 index 0000000000..d455991d08 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetailsConfiguration.java @@ -0,0 +1,17 @@ +package com.baeldung.connectiondetails.configuration; + +import org.springframework.boot.autoconfigure.mongo.MongoConnectionDetails; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.Profile; + +@Configuration(proxyBeanMethods = false) +@Profile("mongo") +public class MongoDBConnectionDetailsConfiguration { + @Bean + @Primary + public MongoConnectionDetails getMongoConnectionDetails() { + return new MongoDBConnectionDetails(); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/PostgresConnectionDetails.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/PostgresConnectionDetails.java new file mode 100644 index 0000000000..c9b213a8d3 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/PostgresConnectionDetails.java @@ -0,0 +1,21 @@ +package com.baeldung.connectiondetails.configuration; + +import com.baeldung.connectiondetails.adapter.VaultAdapter; +import org.springframework.boot.autoconfigure.jdbc.JdbcConnectionDetails; + +public class PostgresConnectionDetails implements JdbcConnectionDetails { + @Override + public String getUsername() { + return VaultAdapter.getSecret("postgres_user_key"); + } + + @Override + public String getPassword() { + return VaultAdapter.getSecret("postgres_secret_key"); + } + + @Override + public String getJdbcUrl() { + return VaultAdapter.getSecret("postgres_jdbc_url"); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetails.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetails.java new file mode 100644 index 0000000000..4ce6abc9d5 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetails.java @@ -0,0 +1,22 @@ +package com.baeldung.connectiondetails.configuration; + +import com.baeldung.connectiondetails.adapter.VaultAdapter; +import io.r2dbc.spi.ConnectionFactoryOptions; +import org.springframework.boot.autoconfigure.r2dbc.R2dbcConnectionDetails; + +public class R2dbcPostgresConnectionDetails implements R2dbcConnectionDetails { + @Override + public ConnectionFactoryOptions getConnectionFactoryOptions() { + + ConnectionFactoryOptions options = ConnectionFactoryOptions.builder() + .option(ConnectionFactoryOptions.DRIVER, "postgresql") + .option(ConnectionFactoryOptions.HOST, VaultAdapter.getSecret("r2dbc_postgres_host")) + .option(ConnectionFactoryOptions.PORT, Integer.valueOf(VaultAdapter.getSecret("r2dbc_postgres_port"))) + .option(ConnectionFactoryOptions.USER, VaultAdapter.getSecret("r2dbc_postgres_user")) + .option(ConnectionFactoryOptions.PASSWORD, VaultAdapter.getSecret("r2dbc_postgres_secret")) + .option(ConnectionFactoryOptions.DATABASE, VaultAdapter.getSecret("r2dbc_postgres_database")) + .build(); + + return options; + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetailsConfiguration.java new file mode 100644 index 0000000000..144355dce4 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetailsConfiguration.java @@ -0,0 +1,17 @@ +package com.baeldung.connectiondetails.configuration; + +import org.springframework.boot.autoconfigure.r2dbc.R2dbcConnectionDetails; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.Profile; + +@Configuration(proxyBeanMethods = false) +@Profile("r2dbc") +public class R2dbcPostgresConnectionDetailsConfiguration { + @Bean + @Primary + public R2dbcConnectionDetails getR2dbcPostgresConnectionDetails() { + return new R2dbcPostgresConnectionDetails(); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetails.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetails.java new file mode 100644 index 0000000000..9dc4bdf33b --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetails.java @@ -0,0 +1,34 @@ +package com.baeldung.connectiondetails.configuration; + +import com.baeldung.connectiondetails.adapter.VaultAdapter; +import org.springframework.boot.autoconfigure.amqp.RabbitConnectionDetails; + +import java.util.List; + +public class RabbitMQConnectionDetails implements RabbitConnectionDetails { + @Override + public String getUsername() { + return VaultAdapter.getSecret("rabbitmq_username"); + } + + @Override + public String getPassword() { + return VaultAdapter.getSecret("rabbitmq_password"); + } + + @Override + public String getVirtualHost() { + return "/"; + } + + @Override + public List
getAddresses() { + return List.of(this.getFirstAddress()); + } + + @Override + public Address getFirstAddress() { + return new Address(VaultAdapter.getSecret("rabbitmq_host"), + Integer.parseInt(VaultAdapter.getSecret("rabbitmq_port"))); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetailsConfiguration.java new file mode 100644 index 0000000000..237bec3fc4 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetailsConfiguration.java @@ -0,0 +1,17 @@ +package com.baeldung.connectiondetails.configuration; + +import org.springframework.boot.autoconfigure.amqp.RabbitConnectionDetails; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.Profile; + +@Configuration(proxyBeanMethods = false) +@Profile("rabbitmq") +public class RabbitMQConnectionDetailsConfiguration { + @Primary + @Bean + public RabbitConnectionDetails getRabbitmqConnection() { + return new RabbitMQConnectionDetails(); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RedisCacheConnectionDetails.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RedisCacheConnectionDetails.java new file mode 100644 index 0000000000..9485f22240 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RedisCacheConnectionDetails.java @@ -0,0 +1,26 @@ +package com.baeldung.connectiondetails.configuration; + +import com.baeldung.connectiondetails.adapter.VaultAdapter; +import org.springframework.boot.autoconfigure.data.redis.RedisConnectionDetails; + +public class RedisCacheConnectionDetails implements RedisConnectionDetails { + @Override + public String getPassword() { + return VaultAdapter.getSecret("redis_password"); + } + + @Override + public Standalone getStandalone() { + return new Standalone() { + @Override + public String getHost() { + return VaultAdapter.getSecret("redis_host"); + } + + @Override + public int getPort() { + return Integer.parseInt(VaultAdapter.getSecret("redis_port")); + } + }; + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RedisConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RedisConnectionDetailsConfiguration.java new file mode 100644 index 0000000000..31816ff0b4 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RedisConnectionDetailsConfiguration.java @@ -0,0 +1,17 @@ +package com.baeldung.connectiondetails.configuration; + +import org.springframework.boot.autoconfigure.data.redis.RedisConnectionDetails; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.Profile; + +@Configuration(proxyBeanMethods = false) +@Profile("redis") +public class RedisConnectionDetailsConfiguration { + @Bean + @Primary + public RedisConnectionDetails getRedisCacheConnection() { + return new RedisCacheConnectionDetails(); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/controller/ZipkinDemoController.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/controller/ZipkinDemoController.java new file mode 100644 index 0000000000..bba5607ccd --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/controller/ZipkinDemoController.java @@ -0,0 +1,19 @@ +package com.baeldung.connectiondetails.controller; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class ZipkinDemoController { + + Logger logger = LoggerFactory.getLogger(ZipkinDemoController.class); + + @GetMapping("/zipkin/test") + public @ResponseBody String testMethod() { + logger.info("This is a test"); + return "This is a test"; + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/entity/elastic/Person.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/entity/elastic/Person.java new file mode 100644 index 0000000000..851dbb7c90 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/entity/elastic/Person.java @@ -0,0 +1,27 @@ +package com.baeldung.connectiondetails.entity.elastic; + +import org.springframework.data.annotation.Id; +import org.springframework.data.elasticsearch.annotations.Document; + +@Document(indexName = "person") +public class Person { + String name; + @Id + String ssn; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getSsn() { + return ssn; + } + + public void setSsn(String ssn) { + this.ssn = ssn; + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/entity/neo4j/Person.java b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/entity/neo4j/Person.java new file mode 100644 index 0000000000..63e88d0a41 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/entity/neo4j/Person.java @@ -0,0 +1,27 @@ +package com.baeldung.connectiondetails.entity.neo4j; + +import org.springframework.data.neo4j.core.schema.Id; +import org.springframework.data.neo4j.core.schema.Node; + +@Node +public class Person { + @Id + String name; + String zipcode; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getZipcode() { + return zipcode; + } + + public void setZipcode(String zipcode) { + this.zipcode = zipcode; + } +} \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-cassandra.properties b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-cassandra.properties new file mode 100644 index 0000000000..4098206d21 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-cassandra.properties @@ -0,0 +1,11 @@ +spring.docker.compose.enabled=true +spring.docker.compose.file=./connectiondetails/docker/docker-compose-cassandra.yml +spring.docker.compose.skip.in-tests=false +spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true +spring.mustache.check-template-location=false +spring.profiles.active=cassandra +spring.cassandra.local-datacenter=dc1 +#spring.cassandra.keyspace-name=spring_cassandra +#spring.cassandra.schema-action=CREATE_IF_NOT_EXISTS +spring.data.cassandra.request.timeout=20000 # Set your desired timeout in milliseconds +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration, org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration, org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration, org.springframework.boot.autoconfigure.data.couchbase.CouchbaseDataAutoConfiguration, org.springframework.boot.autoconfigure.data.couchbase.CouchbaseRepositoriesAutoConfiguration \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-couch.properties b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-couch.properties new file mode 100644 index 0000000000..ccce04c0b5 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-couch.properties @@ -0,0 +1,8 @@ +spring.profiles.active=couch +spring.docker.compose.enabled=false +spring.docker.compose.file=./connectiondetails/docker/docker-compose-couch.yml +spring.docker.compose.skip.in-tests=false +spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true +spring.mustache.check-template-location=false +spring.couchbase.bucket.name=travel-sample +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration, org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ReactiveElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.elasticsearch.ReactiveElasticsearchClientAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraReactiveDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraReactiveRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jReactiveDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jReactiveRepositoriesAutoConfiguration diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-elastic.properties b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-elastic.properties new file mode 100644 index 0000000000..2149730517 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-elastic.properties @@ -0,0 +1,7 @@ +spring.docker.compose.enabled=true +spring.docker.compose.file=./connectiondetails/docker/docker-compose-elastic.yml +spring.docker.compose.skip.in-tests=false +spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true +spring.mustache.check-template-location=false +spring.profiles.active=elastic +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration, org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration, org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration, org.springframework.boot.autoconfigure.data.couchbase.CouchbaseDataAutoConfiguration, org.springframework.boot.autoconfigure.data.couchbase.CouchbaseRepositoriesAutoConfiguration \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-jdbc.properties b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-jdbc.properties new file mode 100644 index 0000000000..b5a8a73bcf --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-jdbc.properties @@ -0,0 +1,7 @@ +spring.docker.compose.enabled=true +spring.docker.compose.file=./connectiondetails/docker/docker-compose-jdbc.yml +spring.docker.compose.skip.in-tests=false +spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true +spring.mustache.check-template-location=false +spring.profiles.active=jdbc +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration, org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration, org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration, org.springframework.boot.autoconfigure.data.couchbase.CouchbaseDataAutoConfiguration, org.springframework.boot.autoconfigure.data.couchbase.CouchbaseRepositoriesAutoConfiguration \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-kafka.properties b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-kafka.properties new file mode 100644 index 0000000000..9f756cfaf1 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-kafka.properties @@ -0,0 +1,7 @@ +spring.docker.compose.enabled=true +spring.docker.compose.file=./connectiondetails/docker/docker-compose-kafka.yml +spring.docker.compose.skip.in-tests=false +spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true +spring.mustache.check-template-location=false +spring.profiles.active=kafka +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration, org.springframework.boot.autoconfigure.data.couchbase.CouchbaseDataAutoConfiguration, org.springframework.boot.autoconfigure.data.couchbase.CouchbaseRepositoriesAutoConfiguration \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-mongo.properties b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-mongo.properties new file mode 100644 index 0000000000..31d828c5c9 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-mongo.properties @@ -0,0 +1,8 @@ +spring.docker.compose.enabled=true +spring.docker.compose.file=./connectiondetails/docker/docker-compose-mongo.yml +spring.docker.compose.skip.in-tests=false +spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true +spring.mustache.check-template-location=false +spring.profiles.active=mongo +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration, org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration, org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration, org.springframework.boot.autoconfigure.data.couchbase.CouchbaseDataAutoConfiguration, org.springframework.boot.autoconfigure.data.couchbase.CouchbaseRepositoriesAutoConfiguration +spring.data.mongodb.database=demodb \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-neo4j.properties b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-neo4j.properties new file mode 100644 index 0000000000..e2dc9e20bf --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-neo4j.properties @@ -0,0 +1,7 @@ +spring.docker.compose.enabled=true +spring.docker.compose.file=./connectiondetails/docker/docker-compose-neo4j.yml +spring.docker.compose.skip.in-tests=false +spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true +spring.mustache.check-template-location=false +spring.profiles.active=neo4j +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration, org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration, org.springframework.boot.autoconfigure.data.couchbase.CouchbaseDataAutoConfiguration, org.springframework.boot.autoconfigure.data.couchbase.CouchbaseRepositoriesAutoConfiguration \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-r2dbc.properties b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-r2dbc.properties new file mode 100644 index 0000000000..3fcaa4f746 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-r2dbc.properties @@ -0,0 +1,7 @@ +spring.docker.compose.enabled=true +spring.docker.compose.file=./connectiondetails/docker/docker-compose-jdbc.yml +spring.docker.compose.skip.in-tests=false +spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true +spring.mustache.check-template-location=false +spring.profiles.active=r2dbc +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.jdbc.JdbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration, org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration, org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration, org.springframework.boot.autoconfigure.data.couchbase.CouchbaseDataAutoConfiguration, org.springframework.boot.autoconfigure.data.couchbase.CouchbaseRepositoriesAutoConfiguration \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-rabbitmq.properties b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-rabbitmq.properties new file mode 100644 index 0000000000..fa6b3f6608 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-rabbitmq.properties @@ -0,0 +1,7 @@ +spring.docker.compose.enabled=true +spring.docker.compose.file=./connectiondetails/docker/docker-compose-rabbitmq.yml +spring.docker.compose.skip.in-tests=false +spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true +spring.mustache.check-template-location=false +spring.profiles.active=rabbitmq +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration, org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration, org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration, org.springframework.boot.autoconfigure.data.couchbase.CouchbaseDataAutoConfiguration, org.springframework.boot.autoconfigure.data.couchbase.CouchbaseRepositoriesAutoConfiguration \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-redis.properties b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-redis.properties new file mode 100644 index 0000000000..c12f20c773 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-redis.properties @@ -0,0 +1,7 @@ +spring.docker.compose.enabled=true +spring.docker.compose.file=./connectiondetails/docker/docker-compose-redis.yml +spring.docker.compose.skip.in-tests=false +spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true +spring.mustache.check-template-location=false +spring.profiles.active=redis +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration, org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration, org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration, org.springframework.boot.autoconfigure.data.couchbase.CouchbaseDataAutoConfiguration, org.springframework.boot.autoconfigure.data.couchbase.CouchbaseRepositoriesAutoConfiguration \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-zipkin.properties b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-zipkin.properties new file mode 100644 index 0000000000..544a3c07b6 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-zipkin.properties @@ -0,0 +1,9 @@ +spring.profiles.active=zipkin +spring.docker.compose.enabled=false +spring.docker.compose.file=./connectiondetails/docker/docker-compose-zipkin.yml +spring.docker.compose.skip.in-tests=false +spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true +spring.mustache.check-template-location=false +spring.application.name=baeldung +management.tracing.sampling.probability=1.0 +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration, org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ReactiveElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.elasticsearch.ReactiveElasticsearchClientAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraReactiveDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraReactiveRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jReactiveDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jReactiveRepositoriesAutoConfiguration diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-cassandra.yml b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-cassandra.yml new file mode 100644 index 0000000000..c593cbc73b --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-cassandra.yml @@ -0,0 +1,9 @@ +version: '3.8' +services: + cassandra: + image: 'cassandra:latest' + environment: + - 'CASSANDRA_DC=datacenter-1' + - 'CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch' + ports: + - '19042:9042' \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-couch.yml b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-couch.yml new file mode 100644 index 0000000000..edcf8e2e08 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-couch.yml @@ -0,0 +1,12 @@ +version: '3.8' +services: + couchbase: + image: couchbase/server-sandbox:7.0.0 + ports: + - "8091-8095:8091-8095" + - "9102:9102" + - "11210:11210" + expose: + - "8091" + - "8094" + container_name: couchbase-sandbox-7.0.0-mm \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-elastic.yml b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-elastic.yml new file mode 100644 index 0000000000..a6e51ee1a0 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-elastic.yml @@ -0,0 +1,12 @@ +version: '3.8' +services: + elasticsearch: + image: 'docker.elastic.co/elasticsearch/elasticsearch:7.17.10' + environment: + - 'ELASTIC_USERNAME=elastic' + - 'ELASTIC_PASSWORD=secret' + - 'discovery.type=single-node' + - 'xpack.security.enabled=false' + ports: + - '19200:9200' +# - '19300:9300' \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-jdbc.yml b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-jdbc.yml new file mode 100644 index 0000000000..65a8f135e8 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-jdbc.yml @@ -0,0 +1,10 @@ +version: '3.8' +services: + database: + image: 'postgres:13.1-alpine' + ports: + - '15432:5432' + environment: + - 'POSTGRES_USER=postgres' + - 'POSTGRES_DB=postgresdb' + - 'POSTGRES_PASSWORD=postgres' \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-kafka.yml b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-kafka.yml new file mode 100644 index 0000000000..5d13e6d6cc --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-kafka.yml @@ -0,0 +1,38 @@ +version: '3' +services: + zookeeper: + image: confluentinc/cp-zookeeper:latest + container_name: zookeeper + environment: + ZOOKEEPER_CLIENT_PORT: 2181 + ZOOKEEPER_TICK_TIME: 2000 + ports: + - "2181:2181" + + schema-registry: + image: confluentinc/cp-schema-registry:latest + hostname: schema-registry + depends_on: + - kafka-broker-1 + ports: + - "8081:8081" + environment: + SCHEMA_REGISTRY_HOST_NAME: schema-registry + SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL: 'zookeeper:2181' + SCHEMA_REGISTRY_LISTENERS: http://schema-registry:8081 + SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: PLAINTEXT://kafka-broker-1:9092,PLAINTEXT_INTERNAL://localhost:19092 + SCHEMA_REGISTRY_DEBUG: 'true' + + kafka-broker-1: + image: confluentinc/cp-kafka:latest + hostname: kafka-broker-1 + ports: + - "19092:19092" + depends_on: + - zookeeper + environment: + KAFKA_BROKER_ID: 1 + KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181' + KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_INTERNAL:PLAINTEXT + KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-broker-1:9092,PLAINTEXT_INTERNAL://localhost:19092 + KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-mongo.yml b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-mongo.yml new file mode 100644 index 0000000000..f12f5c3aa7 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-mongo.yml @@ -0,0 +1,10 @@ +version: '3.8' +services: + mongodb: + image: 'mongo:latest' + environment: + - 'MONGO_INITDB_DATABASE=demodb' +# - 'MONGO_INITDB_ROOT_PASSWORD=Mongo123' +# - 'MONGO_INITDB_ROOT_USERNAME=mongouser' + ports: + - '27017:27017' \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-neo4j.yml b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-neo4j.yml new file mode 100644 index 0000000000..611951e755 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-neo4j.yml @@ -0,0 +1,8 @@ +version: '3.8' +services: + neo4j: + image: 'neo4j:latest' + ports: + - '17687:7687' + environment: + NEO4J_AUTH: neo4j/neo4j123 \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-rabbitmq.yml b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-rabbitmq.yml new file mode 100644 index 0000000000..8abf19bd19 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-rabbitmq.yml @@ -0,0 +1,9 @@ +version: '3.8' +services: + rabbitmq: + image: 'rabbitmq:latest' + environment: + - 'RABBITMQ_DEFAULT_PASS=rabbitmq' + - 'RABBITMQ_DEFAULT_USER=rabbitmquser' + ports: + - '5672:5672' \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-redis.yml b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-redis.yml new file mode 100644 index 0000000000..c218cef998 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-redis.yml @@ -0,0 +1,8 @@ +version: '3.8' +services: + redis: + image: 'redis:latest' + ports: + - '6379:6379' + environment: + - 'REDIS_REQUIREPASS=redis' \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-zipkin.yml b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-zipkin.yml new file mode 100644 index 0000000000..363dd24a2b --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-zipkin.yml @@ -0,0 +1,10 @@ +version: '3' +services: + zipkin: + image: 'openzipkin/zipkin:latest' + ports: + - "9411:9411" +# environment: +# - ZIPKIN_AUTH_USERNAME=your-username +# - ZIPKIN_AUTH_PASSWORD=your-password + # Add other necessary configurations here diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/cassandra-connection-details-class-diag.puml b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/cassandra-connection-details-class-diag.puml new file mode 100644 index 0000000000..b16ef4d56e --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/cassandra-connection-details-class-diag.puml @@ -0,0 +1,27 @@ +@startuml +'https://plantuml.com/class-diagram + +interface CassandraConnectionDetails { + +getUsername():String + +getPassword():String + +getContactPoints():List + +getLocalDatacenter():String +} +class CustomCouchBaseConnectionDetails { + +getUsername():String + +getPassword():String + +getContactPoints():List + +getLocalDatacenter():String +} +class VaultAdapter { + +getSecret(String secretKey):String +} +class CustomCassandraConnectionDetailsConfiguration { + +getCustomCassandraConnectionDetails():CassandraConnectionDetails +} +CustomCouchBaseConnectionDetails -left-> VaultAdapter:uses +CustomCouchBaseConnectionDetails -right-|> CassandraConnectionDetails : implements +CustomCassandraConnectionDetailsConfiguration -up-> CustomCassandraConnectionDetails:uses + + +@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/connection-details-sequence-design.puml b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/connection-details-sequence-design.puml new file mode 100644 index 0000000000..a2a917eea0 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/connection-details-sequence-design.puml @@ -0,0 +1,16 @@ +@startuml +'https://plantuml.com/sequence-diagram +skinparam sequenceMessageAlign direction +skinparam handwritten true +skinparam sequence { +ParticipantBackgroundColor beige +ParticipantPadding 50 +} +autonumber + +"Spring Boot" -[#63b175]> "Hashicorp Vault": Secret Request +"Hashicorp Vault" -[#63b175]-> "Spring Boot": Secret Response +"Spring Boot" -[#63b175]> "Remote Service": Connection Request + +"Remote Service" -[#63b175]-> "Spring Boot": Connection Response +@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/couch_connection_details_class_diag.puml b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/couch_connection_details_class_diag.puml new file mode 100644 index 0000000000..fd8dbd094b --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/couch_connection_details_class_diag.puml @@ -0,0 +1,25 @@ +@startuml +'https://plantuml.com/class-diagram + +interface CouchbaseConnectionDetails { + +getUsername():String + +getPassword():String + +getConnectionString():String +} +class CustomCouchBaseConnectionDetails { + +getUsername():String + +getPassword():String + +getConnectionString():String +} +class VaultAdapter { + +getSecret(String secretKey):String +} +class CustomCouchBaseConnectionDetailsConfiguration { + +getCouchBaseConnectionDetails():CouchbaseConnectionDetails +} +CustomCouchBaseConnectionDetails -left-> VaultAdapter:uses +CustomCouchBaseConnectionDetails -right-|> CouchbaseConnectionDetails : implements +CustomCouchBaseConnectionDetailsConfiguration -up-> CustomCouchBaseConnectionDetails:uses + + +@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/elasticsearch-connection-details-class-diag.puml b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/elasticsearch-connection-details-class-diag.puml new file mode 100644 index 0000000000..48db0bcc4f --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/elasticsearch-connection-details-class-diag.puml @@ -0,0 +1,25 @@ +@startuml +'https://plantuml.com/class-diagram + +interface ElasticsearchConnectionDetails { + +getUsername():String + +getPassword():String + +getNodes():List +} +class CustomElasticsearchConnectionDetails { + +getUsername():String + +getPassword():String + +getNodes():List +} +class VaultAdapter { + +getSecret(String secretKey):String +} +class CustomElasticsearchConnectionDetailsConfiguration { + +getCustomElasticConnectionDetails():ElasticsearchConnectionDetails +} +CustomElasticsearchConnectionDetails -left-> VaultAdapter:uses +CustomElasticsearchConnectionDetails -right-|> ElasticsearchConnectionDetails : implements +CustomElasticsearchConnectionDetailsConfiguration -up-> CustomElasticsearchConnectionDetails:uses + + +@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/jdbcconnection-details-class-diag.puml b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/jdbcconnection-details-class-diag.puml new file mode 100644 index 0000000000..88de5d607f --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/jdbcconnection-details-class-diag.puml @@ -0,0 +1,25 @@ +@startuml +'https://plantuml.com/class-diagram + +interface JdbcConnectionDetails { + +getUsername():String + +getPassword():String + +getJdbcUrl():String +} +class PostgresConnectionDetails { + +getUsername():String + +getPassword():String + +getJdbcUrl():String +} +class VaultAdapter { + +getSecret(String secretKey):String +} +class JdbcConnectonDetailsConfiguration { + +getPostgresConnection():JdbcConnectionDetails +} +PostgresConnectionDetails -left-> VaultAdapter:uses +PostgresConnectionDetails -right-|> JdbcConnectionDetails : implements +JdbcConnectonDetailsConfiguration -up-> PostgresConnectionDetails:uses + + +@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/kafka-connectiondetails-class-diag.puml b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/kafka-connectiondetails-class-diag.puml new file mode 100644 index 0000000000..57df331bb2 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/kafka-connectiondetails-class-diag.puml @@ -0,0 +1,21 @@ +@startuml +'https://plantuml.com/class-diagram + +interface KafkaConnectionDetails { + +getBootstrapServers():List +} +class CustomKafkaConnectionDetails { ++getBootstrapServers():List +} +class VaultAdapter { + +getSecret(String secretKey):String +} +class CustomKafkaConnectionDetailsConfiguration { + +getKafkaConnectionDetails():KafkaConnectionDetails +} +CustomKafkaConnectionDetails -left-> VaultAdapter:uses +CustomKafkaConnectionDetails -right-|> KafkaConnectionDetails:implements +CustomKafkaConnectionDetailsConfiguration -up-> CustomKafkaConnectionDetails:uses + + +@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/mongodb-connection-details-class-diag.puml b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/mongodb-connection-details-class-diag.puml new file mode 100644 index 0000000000..974c6de601 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/mongodb-connection-details-class-diag.puml @@ -0,0 +1,19 @@ +@startuml +'https://plantuml.com/class-diagram + +interface MongoConnectionDetails { + getConnectionString():ConnectionString +} +class MongoDBConnectionDetails { + getConnectionString():ConnectionString +} +class VaultAdapter { + +getSecret(String secretKey):String +} +class MongoDBConnectionDetailsConfiguration { + +getMongoConnectionDetails() : MongoConnectionDetails +} +MongoDBConnectionDetails -left-> VaultAdapter:uses +MongoDBConnectionDetails -right-|> MongoConnectionDetails : implements +MongoDBConnectionDetailsConfiguration -up-> MongoDBConnectionDetails:uses +@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/neo4j-connection-details-class-diag.puml b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/neo4j-connection-details-class-diag.puml new file mode 100644 index 0000000000..5a3e8812f6 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/neo4j-connection-details-class-diag.puml @@ -0,0 +1,23 @@ +@startuml +'https://plantuml.com/class-diagram + +interface Neo4jConnectionDetails { + +getUri():URI + +getAuthToken():AuthToken +} +class CustomNeo4jConnectionDetails { + +getUri():URI + +getAuthToken():AuthToken +} +class VaultAdapter { + +getSecret(String secretKey):String +} +class CustomNeo4jConnectionDetailsConfiguration { + +getNeo4jConnectionDetails():Neo4jConnectionDetails +} +CustomNeo4jConnectionDetails -left-> VaultAdapter:uses +CustomNeo4jConnectionDetails -right-|> Neo4jConnectionDetails:implements +CustomNeo4jConnectionDetailsConfiguration -up-> CustomNeo4jConnectionDetails:uses + + +@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/r2dbcconnection-details-class-diag.puml b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/r2dbcconnection-details-class-diag.puml new file mode 100644 index 0000000000..ec69587ab9 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/r2dbcconnection-details-class-diag.puml @@ -0,0 +1,21 @@ +@startuml +'https://plantuml.com/class-diagram + +interface R2dbcConnectionDetails { + +getConnectionFactoryOptions():ConnectionFactoryOptions +} +class R2dbcPostgresConnectionDetails { + +getConnectionFactoryOptions():ConnectionFactoryOptions +} +class VaultAdapter { + +getSecret(String secretKey):String +} +class R2dbcPostgresConnectionDetailsConfiguration { + +getR2dbcPostgresConnectionDetails():R2dbcConnectionDetails +} +R2dbcPostgresConnectionDetails -right-> VaultAdapter:uses +R2dbcPostgresConnectionDetails -up-|> R2dbcConnectionDetails:implements +R2dbcPostgresConnectionDetailsConfiguration -up-> R2dbcPostgresConnectionDetails:uses + + +@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/rabbitmq-connection-details-class-diag.puml b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/rabbitmq-connection-details-class-diag.puml new file mode 100644 index 0000000000..0541e12915 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/rabbitmq-connection-details-class-diag.puml @@ -0,0 +1,27 @@ +@startuml +'https://plantuml.com/class-diagram + +interface RabbitConnectionDetails { + +getUsername():String + +getPassword():String + +getFirstAddress():Address + +getAddresses():List
+} +class RabbitMQConnectionDetails { + +getUsername():String + +getPassword():String + +getFirstAddress():Address + +getAddresses():List
+} +class VaultAdapter { + +getSecret(String secretKey):String +} +class RabbitMQConnectionDetailsConfiguration { + +getRabbitmqConnection() : RabbitConnectionDetails +} +RabbitMQConnectionDetails -left-> VaultAdapter:uses +RabbitMQConnectionDetails -right-|> RabbitConnectionDetails : implements +RabbitMQConnectionDetailsConfiguration -up-> RabbitMQConnectionDetails:uses + + +@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/redis-connection-details-class-diagram.puml b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/redis-connection-details-class-diagram.puml new file mode 100644 index 0000000000..a18c83a8be --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/redis-connection-details-class-diagram.puml @@ -0,0 +1,23 @@ +@startuml +'https://plantuml.com/class-diagram + +interface RedisConnectionDetails { + +getPassword():String + +getStandalone():Standalone +} +class RedisCacheConnectionDetails { + +getPassword():String + +getStandalone():Standalone +} +class VaultAdapter { + +getSecret(String secretKey):String +} +class RedisConnectonDetailsConfiguration { + +getRedisCacheConnection():RedisConnectionDetails +} +RedisCacheConnectionDetails -left-> VaultAdapter:uses +RedisCacheConnectionDetails -right-|> RedisConnectionDetails : implements +RedisConnectonDetailsConfiguration -up-> RedisCacheConnectionDetails:uses + + +@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/zipkin-connection-details-class-diag.puml b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/zipkin-connection-details-class-diag.puml new file mode 100644 index 0000000000..0f185f9c12 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/zipkin-connection-details-class-diag.puml @@ -0,0 +1,21 @@ +@startuml +'https://plantuml.com/class-diagram + +interface ZipkinConnectionDetails { + +getSpanEndpoint():String +} +class CustomZipkinConnectionDetails { + +getSpanEndpoint():String +} +class VaultAdapter { + +getSecret(String secretKey):String +} +class CustomZipkinConnectionDetailsConfiguration { + +getZipkinConnectionDetails():ZipkinConnectionDetails +} +CustomZipkinConnectionDetails -left-> VaultAdapter:uses +CustomZipkinConnectionDetails -right-|> ZipkinConnectionDetails:implements +CustomZipkinConnectionDetailsConfiguration -up-> CustomZipkinConnectionDetails:uses + + +@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/CassandraConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/CassandraConnectionDetailsIntegrationTest.java new file mode 100644 index 0000000000..4130b6cb6b --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/CassandraConnectionDetailsIntegrationTest.java @@ -0,0 +1,37 @@ +package com.baeldung.connectiondetails; + +import com.baeldung.connectiondetails.configuration.CustomCassandraConnectionDetailsConfiguration; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Import; +import org.springframework.data.cassandra.core.CassandraTemplate; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = ConnectionDetailsApplication.class) +@Import(CustomCassandraConnectionDetailsConfiguration.class) +@ComponentScan(basePackages = "com.baeldung.connectiondetails") +@TestPropertySource(locations = {"classpath:connectiondetails/application-cassandra.properties"}) +@ActiveProfiles("cassandra") +public class CassandraConnectionDetailsIntegrationTest { + private static final Logger logger = LoggerFactory.getLogger(CassandraConnectionDetailsIntegrationTest.class); + @Autowired + private CassandraTemplate cassandraTemplate; + @Test + public void givenHashicorpVault_whenRunQuery_thenSuccess() { + boolean result = cassandraTemplate.getCqlOperations() + .execute("CREATE KEYSPACE IF NOT EXISTS spring_cassandra" + + " WITH replication = {'class':'SimpleStrategy', 'replication_factor':3}"); + logger.info("the result -" + result); + assertTrue(result); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/CouchbaseConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/CouchbaseConnectionDetailsIntegrationTest.java new file mode 100644 index 0000000000..454aad4c6c --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/CouchbaseConnectionDetailsIntegrationTest.java @@ -0,0 +1,30 @@ +package com.baeldung.connectiondetails; + +import com.baeldung.connectiondetails.configuration.CustomCouchBaseConnectionDetailsConfiguration; +import com.couchbase.client.java.Cluster; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Import; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = ConnectionDetailsApplication.class) +@Import(CustomCouchBaseConnectionDetailsConfiguration.class) +@ComponentScan(basePackages = "com.baeldung.connectiondetails") +@TestPropertySource(locations = {"classpath:connectiondetails/application-couch.properties"}) +@ActiveProfiles("couch") +public class CouchbaseConnectionDetailsIntegrationTest { + @Autowired + private Cluster cluster; + @Test + public void givenSecretVault_whenConnectWithCouch_thenSuccess() { + assertDoesNotThrow(cluster.ping()::version); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/ElasticsearchConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/ElasticsearchConnectionDetailsIntegrationTest.java new file mode 100644 index 0000000000..ee698cd6ea --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/ElasticsearchConnectionDetailsIntegrationTest.java @@ -0,0 +1,45 @@ +package com.baeldung.connectiondetails; + +import com.baeldung.connectiondetails.configuration.CustomElasticsearchConnectionDetailsConfiguration; +import com.baeldung.connectiondetails.entity.elastic.Person; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Import; +import org.springframework.data.elasticsearch.client.elc.ElasticsearchTemplate; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = ConnectionDetailsApplication.class) +@Import(CustomElasticsearchConnectionDetailsConfiguration.class) +@ComponentScan(basePackages = "com.baeldung.connectiondetails") +@TestPropertySource(locations = {"classpath:connectiondetails/application-elastic.properties"}) +@ActiveProfiles("elastic") +public class ElasticsearchConnectionDetailsIntegrationTest { + private static final Logger logger = LoggerFactory.getLogger(ElasticsearchConnectionDetailsIntegrationTest.class); + @Autowired + private ElasticsearchTemplate elasticsearchTemplate; + + @Before + public void prepare() { + if (elasticsearchTemplate.indexOps(Person.class).exists()) { + elasticsearchTemplate.indexOps(Person.class).delete(); + } + } + @Test + public void givenHashicorpVault_whenCreateIndexInElastic_thenSuccess() { + + boolean result = elasticsearchTemplate.indexOps(Person.class).create(); + logger.info("index created:" + result); + assertTrue(result); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/JdbcConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/JdbcConnectionDetailsIntegrationTest.java new file mode 100644 index 0000000000..748bc27b0b --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/JdbcConnectionDetailsIntegrationTest.java @@ -0,0 +1,38 @@ +package com.baeldung.connectiondetails; + +import com.baeldung.connectiondetails.configuration.JdbcConnectionDetailsConfiguration; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Import; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import java.sql.Date; +import java.time.LocalDate; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = ConnectionDetailsApplication.class) +@Import(JdbcConnectionDetailsConfiguration.class) +@ComponentScan(basePackages = "com.baeldung.connectiondetails") +@TestPropertySource(locations = {"classpath:connectiondetails/application-jdbc.properties"}) +@ActiveProfiles("jdbc") +public class JdbcConnectionDetailsIntegrationTest { + private static final Logger logger = LoggerFactory.getLogger(JdbcConnectionDetailsIntegrationTest.class); + @Autowired + private JdbcTemplate jdbcTemplate; + @Test + public void givenSecretVault_whenIntegrateWithPostgres_thenConnectionSuccessful() { + String sql = "select current_date;"; + Date date = jdbcTemplate.queryForObject(sql, Date.class); + assertEquals(LocalDate.now().toString(), date.toString()); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/KafkaConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/KafkaConnectionDetailsIntegrationTest.java new file mode 100644 index 0000000000..bc0e174b3f --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/KafkaConnectionDetailsIntegrationTest.java @@ -0,0 +1,32 @@ +package com.baeldung.connectiondetails; + +import com.baeldung.connectiondetails.configuration.CustomKafkaConnectionDetailsConfiguration; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Import; +import org.springframework.kafka.core.KafkaTemplate; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; + + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = ConnectionDetailsApplication.class) +@Import(CustomKafkaConnectionDetailsConfiguration.class) +@ComponentScan(basePackages = "com.baeldung.connectiondetails") +@TestPropertySource(locations = {"classpath:connectiondetails/application-kafka.properties"}) +@ActiveProfiles("kafka") +public class KafkaConnectionDetailsIntegrationTest { + @Autowired + private KafkaTemplate kafkaTemplate; + + @Test + public void givenSecretVault_whenPublishMsgToKafkaQueue_thenSuccess() { + assertDoesNotThrow(kafkaTemplate::getDefaultTopic); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/MongoDBConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/MongoDBConnectionDetailsIntegrationTest.java new file mode 100644 index 0000000000..868ebfea98 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/MongoDBConnectionDetailsIntegrationTest.java @@ -0,0 +1,47 @@ +package com.baeldung.connectiondetails; + +import com.baeldung.connectiondetails.configuration.MongoDBConnectionDetailsConfiguration; +import org.json.JSONException; +import org.json.JSONObject; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration; +import org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration; +import org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Import; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = ConnectionDetailsApplication.class) +@Import(MongoDBConnectionDetailsConfiguration.class) +@ComponentScan(basePackages = "com.baeldung.connectiondetails") +@TestPropertySource(locations = {"classpath:connectiondetails/application-mongo.properties"}) +@ActiveProfiles("mongo") +public class MongoDBConnectionDetailsIntegrationTest { + + @Autowired + private MongoTemplate mongoTemplate; + @Test + public void givenSecretVault_whenExecuteQueryOnMongoDB_ReturnResult() throws JSONException { + mongoTemplate.insert("{\"msg\":\"My First Entry in MongoDB\"}", "myDemoCollection"); + String result = mongoTemplate.find(new Query(), String.class, "myDemoCollection").get(0); + + JSONObject jsonObject = new JSONObject(result); + result = jsonObject.get("msg").toString(); + R2dbcAutoConfiguration r2dbcAutoConfiguration; + R2dbcDataAutoConfiguration r2dbcDataAutoConfiguration; + R2dbcRepositoriesAutoConfiguration r2dbcRepositoriesAutoConfiguration; + + assertEquals("My First Entry in MongoDB", result); + } +} + diff --git a/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/Neo4jConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/Neo4jConnectionDetailsIntegrationTest.java new file mode 100644 index 0000000000..943ed7bdea --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/Neo4jConnectionDetailsIntegrationTest.java @@ -0,0 +1,43 @@ +package com.baeldung.connectiondetails; + +import com.baeldung.connectiondetails.configuration.CustomNeo4jConnectionDetailsConfiguration; +import com.baeldung.connectiondetails.entity.neo4j.Person; +import org.junit.After; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Import; +import org.springframework.data.neo4j.core.Neo4jTemplate; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = ConnectionDetailsApplication.class) +@Import(CustomNeo4jConnectionDetailsConfiguration.class) +@ComponentScan(basePackages = "com.baeldung.connectiondetails") +@TestPropertySource(locations = {"classpath:connectiondetails/application-neo4j.properties"}) +@ActiveProfiles("neo4j") +public class Neo4jConnectionDetailsIntegrationTest { + @Autowired + private Neo4jTemplate neo4jTemplate; + + @After + public void cleanup() { + neo4jTemplate.deleteAll(Person.class); + } + @Test + public void giveSecretVault_whenRunQuery_thenSuccess() { + Person person = new Person(); + person.setName("James"); + person.setZipcode("751003"); + + Person data = neo4jTemplate.save(person); + assertEquals("James", data.getName()); + } + +} diff --git a/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/R2dbcConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/R2dbcConnectionDetailsIntegrationTest.java new file mode 100644 index 0000000000..5f8c8349fb --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/R2dbcConnectionDetailsIntegrationTest.java @@ -0,0 +1,39 @@ +package com.baeldung.connectiondetails; + +import com.baeldung.connectiondetails.configuration.R2dbcPostgresConnectionDetailsConfiguration; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.data.r2dbc.core.R2dbcEntityTemplate; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import java.util.List; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = ConnectionDetailsApplication.class) +@Import(R2dbcPostgresConnectionDetailsConfiguration.class) +@TestPropertySource(locations = {"classpath:connectiondetails/application-r2dbc.properties"}) +@ActiveProfiles("r2dbc") +public class R2dbcConnectionDetailsIntegrationTest { + Logger logger = LoggerFactory.getLogger(R2dbcConnectionDetailsIntegrationTest.class); + @Autowired + private R2dbcEntityTemplate r2dbcEntityTemplate; + + @Test + public void givenSecretVault_whenQueryPostgresReactive_thenSuccess() { + + String sql = "select * from information_schema.tables"; + + List result = r2dbcEntityTemplate.getDatabaseClient().sql(sql).fetch().all() + .map(r -> { + return "hello " + r.get("table_name").toString(); + }).collectList().block(); + logger.info("count ------" + result.size()); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/RabbitmqConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/RabbitmqConnectionDetailsIntegrationTest.java new file mode 100644 index 0000000000..9e10973ed7 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/RabbitmqConnectionDetailsIntegrationTest.java @@ -0,0 +1,62 @@ +package com.baeldung.connectiondetails; + +import com.baeldung.connectiondetails.configuration.RabbitMQConnectionDetailsConfiguration; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.amqp.core.Queue; +import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; +import org.springframework.amqp.rabbit.core.RabbitAdmin; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = ConnectionDetailsApplication.class) +@Import(RabbitMQConnectionDetailsConfiguration.class) +@TestPropertySource(locations = {"classpath:connectiondetails/application-rabbitmq.properties"}) +@ActiveProfiles("rabbitmq") +public class RabbitmqConnectionDetailsIntegrationTest { + + private static final Logger logger = LoggerFactory.getLogger(RabbitmqConnectionDetailsIntegrationTest.class); + + @Autowired + private RabbitTemplate rabbitTemplate; + + @Autowired + private CachingConnectionFactory connectionFactory; + + private final static String queueName = "Test_Queue"; + + RabbitAdmin rabbitAdmin; + + @Before + public void setup() { + logger.info("create new queue"); + rabbitAdmin = new RabbitAdmin(connectionFactory); + logger.info("creating queue: " + rabbitAdmin.declareQueue(new Queue(queueName))); + connectionFactory.destroy(); + } + + @After + public void cleanup() { + logger.info("delete queue"); + this.rabbitAdmin.deleteQueue(queueName, false, true); + } + @Test + public void givenSecretVault_whenPublishMessageToRabbitmq_thenSuccess() { + logger.info("sending message to queue " + queueName); + final String MSG = "this is a test message"; + this.rabbitTemplate.convertAndSend(queueName, MSG); + assertEquals(MSG, this.rabbitTemplate.receiveAndConvert(queueName)); + } +} diff --git a/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/RedisCacheConnnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/RedisCacheConnnectionDetailsIntegrationTest.java new file mode 100644 index 0000000000..5dbd2d6c03 --- /dev/null +++ b/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/RedisCacheConnnectionDetailsIntegrationTest.java @@ -0,0 +1,34 @@ +package com.baeldung.connectiondetails; + +import com.baeldung.connectiondetails.configuration.RedisConnectionDetailsConfiguration; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = ConnectionDetailsApplication.class) +@Import(RedisConnectionDetailsConfiguration.class) +@TestPropertySource(locations = {"classpath:connectiondetails/application-redis.properties"}) +@ActiveProfiles("redis") +public class RedisCacheConnnectionDetailsIntegrationTest { + private static final Logger logger = LoggerFactory.getLogger(RedisCacheConnnectionDetailsIntegrationTest.class); + + @Autowired + RedisTemplate redisTemplate; + + @Test + public void giveSecretVault_whenStoreInRedisCache_thenSuccess() { + redisTemplate.opsForValue().set("City", "New York"); + assertEquals("New York", redisTemplate.opsForValue().get("City")); + } +} From 28ecebc3acb3522b9ee176863925c184b61f0f97 Mon Sep 17 00:00:00 2001 From: parthiv39731 <70740707+parthiv39731@users.noreply.github.com> Date: Wed, 11 Oct 2023 22:55:22 +0530 Subject: [PATCH 3/9] BAEL-7005 Moving the article to a new project because the old project had reached it's limit --- .../{spring-boot-3-1 => spring-boot-3-2}/pom.xml | 2 +- .../connectiondetails/ConnectionDetailsApplication.java | 0 .../com/baeldung/connectiondetails/adapter/VaultAdapter.java | 0 .../configuration/CustomCassandraConnectionDetails.java | 0 .../CustomCassandraConnectionDetailsConfiguration.java | 0 .../configuration/CustomCouchBaseConnectionDetails.java | 0 .../CustomCouchBaseConnectionDetailsConfiguration.java | 0 .../configuration/CustomElasticsearchConnectionDetails.java | 0 .../CustomElasticsearchConnectionDetailsConfiguration.java | 0 .../configuration/CustomKafkaConnectionDetails.java | 0 .../CustomKafkaConnectionDetailsConfiguration.java | 0 .../configuration/CustomNeo4jConnectionDetails.java | 0 .../CustomNeo4jConnectionDetailsConfiguration.java | 0 .../configuration/CustomZipkinConnectionDetails.java | 0 .../CustomZipkinConnectionDetailsConfiguration.java | 0 .../configuration/JdbcConnectionDetailsConfiguration.java | 0 .../configuration/MongoDBConnectionDetails.java | 0 .../configuration/MongoDBConnectionDetailsConfiguration.java | 0 .../configuration/PostgresConnectionDetails.java | 0 .../configuration/R2dbcPostgresConnectionDetails.java | 0 .../R2dbcPostgresConnectionDetailsConfiguration.java | 0 .../configuration/RabbitMQConnectionDetails.java | 0 .../configuration/RabbitMQConnectionDetailsConfiguration.java | 0 .../configuration/RedisCacheConnectionDetails.java | 0 .../configuration/RedisConnectionDetailsConfiguration.java | 0 .../connectiondetails/controller/ZipkinDemoController.java | 0 .../com/baeldung/connectiondetails/entity/elastic/Person.java | 0 .../com/baeldung/connectiondetails/entity/neo4j/Person.java | 0 .../connectiondetails/application-cassandra.properties | 0 .../resources/connectiondetails/application-couch.properties | 0 .../resources/connectiondetails/application-elastic.properties | 0 .../resources/connectiondetails/application-jdbc.properties | 0 .../resources/connectiondetails/application-kafka.properties | 0 .../resources/connectiondetails/application-mongo.properties | 0 .../resources/connectiondetails/application-neo4j.properties | 0 .../resources/connectiondetails/application-r2dbc.properties | 0 .../resources/connectiondetails/application-rabbitmq.properties | 0 .../resources/connectiondetails/application-redis.properties | 0 .../resources/connectiondetails/application-zipkin.properties | 0 .../connectiondetails/docker/docker-compose-cassandra.yml | 0 .../resources/connectiondetails/docker/docker-compose-couch.yml | 0 .../connectiondetails/docker/docker-compose-elastic.yml | 0 .../resources/connectiondetails/docker/docker-compose-jdbc.yml | 0 .../resources/connectiondetails/docker/docker-compose-kafka.yml | 0 .../resources/connectiondetails/docker/docker-compose-mongo.yml | 0 .../resources/connectiondetails/docker/docker-compose-neo4j.yml | 0 .../connectiondetails/docker/docker-compose-rabbitmq.yml | 0 .../resources/connectiondetails/docker/docker-compose-redis.yml | 0 .../connectiondetails/docker/docker-compose-zipkin.yml | 0 .../plantuml/cassandra-connection-details-class-diag.puml | 0 .../plantuml/connection-details-sequence-design.puml | 0 .../plantuml/couch_connection_details_class_diag.puml | 0 .../plantuml/elasticsearch-connection-details-class-diag.puml | 0 .../plantuml/jdbcconnection-details-class-diag.puml | 0 .../plantuml/kafka-connectiondetails-class-diag.puml | 0 .../plantuml/mongodb-connection-details-class-diag.puml | 0 .../plantuml/neo4j-connection-details-class-diag.puml | 0 .../plantuml/r2dbcconnection-details-class-diag.puml | 0 .../plantuml/rabbitmq-connection-details-class-diag.puml | 0 .../plantuml/redis-connection-details-class-diagram.puml | 0 .../plantuml/zipkin-connection-details-class-diag.puml | 0 .../CassandraConnectionDetailsIntegrationTest.java | 0 .../CouchbaseConnectionDetailsIntegrationTest.java | 0 .../ElasticsearchConnectionDetailsIntegrationTest.java | 0 .../connectiondetails/JdbcConnectionDetailsIntegrationTest.java | 0 .../KafkaConnectionDetailsIntegrationTest.java | 0 .../MongoDBConnectionDetailsIntegrationTest.java | 0 .../Neo4jConnectionDetailsIntegrationTest.java | 0 .../R2dbcConnectionDetailsIntegrationTest.java | 0 .../RabbitmqConnectionDetailsIntegrationTest.java | 0 .../RedisCacheConnnectionDetailsIntegrationTest.java | 0 71 files changed, 1 insertion(+), 1 deletion(-) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/pom.xml (99%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/ConnectionDetailsApplication.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/adapter/VaultAdapter.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetails.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetailsConfiguration.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/configuration/CustomCouchBaseConnectionDetails.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/configuration/CustomCouchBaseConnectionDetailsConfiguration.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetails.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetailsConfiguration.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/configuration/CustomKafkaConnectionDetails.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/configuration/CustomKafkaConnectionDetailsConfiguration.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetails.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetailsConfiguration.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/configuration/CustomZipkinConnectionDetails.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/configuration/CustomZipkinConnectionDetailsConfiguration.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/configuration/JdbcConnectionDetailsConfiguration.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetails.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetailsConfiguration.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/configuration/PostgresConnectionDetails.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetails.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetailsConfiguration.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetails.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetailsConfiguration.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/configuration/RedisCacheConnectionDetails.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/configuration/RedisConnectionDetailsConfiguration.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/controller/ZipkinDemoController.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/entity/elastic/Person.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/java/com/baeldung/connectiondetails/entity/neo4j/Person.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/application-cassandra.properties (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/application-couch.properties (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/application-elastic.properties (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/application-jdbc.properties (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/application-kafka.properties (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/application-mongo.properties (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/application-neo4j.properties (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/application-r2dbc.properties (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/application-rabbitmq.properties (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/application-redis.properties (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/application-zipkin.properties (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/docker/docker-compose-cassandra.yml (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/docker/docker-compose-couch.yml (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/docker/docker-compose-elastic.yml (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/docker/docker-compose-jdbc.yml (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/docker/docker-compose-kafka.yml (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/docker/docker-compose-mongo.yml (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/docker/docker-compose-neo4j.yml (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/docker/docker-compose-rabbitmq.yml (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/docker/docker-compose-redis.yml (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/docker/docker-compose-zipkin.yml (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/plantuml/cassandra-connection-details-class-diag.puml (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/plantuml/connection-details-sequence-design.puml (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/plantuml/couch_connection_details_class_diag.puml (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/plantuml/elasticsearch-connection-details-class-diag.puml (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/plantuml/jdbcconnection-details-class-diag.puml (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/plantuml/kafka-connectiondetails-class-diag.puml (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/plantuml/mongodb-connection-details-class-diag.puml (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/plantuml/neo4j-connection-details-class-diag.puml (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/plantuml/r2dbcconnection-details-class-diag.puml (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/plantuml/rabbitmq-connection-details-class-diag.puml (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/plantuml/redis-connection-details-class-diagram.puml (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/main/resources/connectiondetails/plantuml/zipkin-connection-details-class-diag.puml (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/test/java/com/baeldung/connectiondetails/CassandraConnectionDetailsIntegrationTest.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/test/java/com/baeldung/connectiondetails/CouchbaseConnectionDetailsIntegrationTest.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/test/java/com/baeldung/connectiondetails/ElasticsearchConnectionDetailsIntegrationTest.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/test/java/com/baeldung/connectiondetails/JdbcConnectionDetailsIntegrationTest.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/test/java/com/baeldung/connectiondetails/KafkaConnectionDetailsIntegrationTest.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/test/java/com/baeldung/connectiondetails/MongoDBConnectionDetailsIntegrationTest.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/test/java/com/baeldung/connectiondetails/Neo4jConnectionDetailsIntegrationTest.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/test/java/com/baeldung/connectiondetails/R2dbcConnectionDetailsIntegrationTest.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/test/java/com/baeldung/connectiondetails/RabbitmqConnectionDetailsIntegrationTest.java (100%) rename spring-boot-modules/{spring-boot-3-1 => spring-boot-3-2}/src/test/java/com/baeldung/connectiondetails/RedisCacheConnnectionDetailsIntegrationTest.java (100%) diff --git a/spring-boot-modules/spring-boot-3-1/pom.xml b/spring-boot-modules/spring-boot-3-2/pom.xml similarity index 99% rename from spring-boot-modules/spring-boot-3-1/pom.xml rename to spring-boot-modules/spring-boot-3-2/pom.xml index 597f384ed8..88a60bf881 100644 --- a/spring-boot-modules/spring-boot-3-1/pom.xml +++ b/spring-boot-modules/spring-boot-3-2/pom.xml @@ -3,7 +3,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - spring-boot-3-1 + spring-boot-3-2 0.0.1-SNAPSHOT spring-boot-3-1 Demo project for Spring Boot diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/ConnectionDetailsApplication.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/ConnectionDetailsApplication.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/ConnectionDetailsApplication.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/ConnectionDetailsApplication.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/adapter/VaultAdapter.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/adapter/VaultAdapter.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/adapter/VaultAdapter.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/adapter/VaultAdapter.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetails.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetails.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetails.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetails.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetailsConfiguration.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetailsConfiguration.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetailsConfiguration.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCouchBaseConnectionDetails.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomCouchBaseConnectionDetails.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCouchBaseConnectionDetails.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomCouchBaseConnectionDetails.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCouchBaseConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomCouchBaseConnectionDetailsConfiguration.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomCouchBaseConnectionDetailsConfiguration.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomCouchBaseConnectionDetailsConfiguration.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetails.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetails.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetails.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetails.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetailsConfiguration.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetailsConfiguration.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetailsConfiguration.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomKafkaConnectionDetails.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomKafkaConnectionDetails.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomKafkaConnectionDetails.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomKafkaConnectionDetails.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomKafkaConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomKafkaConnectionDetailsConfiguration.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomKafkaConnectionDetailsConfiguration.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomKafkaConnectionDetailsConfiguration.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetails.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetails.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetails.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetails.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetailsConfiguration.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetailsConfiguration.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetailsConfiguration.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomZipkinConnectionDetails.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomZipkinConnectionDetails.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomZipkinConnectionDetails.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomZipkinConnectionDetails.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomZipkinConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomZipkinConnectionDetailsConfiguration.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/CustomZipkinConnectionDetailsConfiguration.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/CustomZipkinConnectionDetailsConfiguration.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/JdbcConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/JdbcConnectionDetailsConfiguration.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/JdbcConnectionDetailsConfiguration.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/JdbcConnectionDetailsConfiguration.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetails.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetails.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetails.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetails.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetailsConfiguration.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetailsConfiguration.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetailsConfiguration.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/PostgresConnectionDetails.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/PostgresConnectionDetails.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/PostgresConnectionDetails.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/PostgresConnectionDetails.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetails.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetails.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetails.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetails.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetailsConfiguration.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetailsConfiguration.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetailsConfiguration.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetails.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetails.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetails.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetails.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetailsConfiguration.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetailsConfiguration.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetailsConfiguration.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RedisCacheConnectionDetails.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/RedisCacheConnectionDetails.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RedisCacheConnectionDetails.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/RedisCacheConnectionDetails.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RedisConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/RedisConnectionDetailsConfiguration.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/configuration/RedisConnectionDetailsConfiguration.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/RedisConnectionDetailsConfiguration.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/controller/ZipkinDemoController.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/controller/ZipkinDemoController.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/controller/ZipkinDemoController.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/controller/ZipkinDemoController.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/entity/elastic/Person.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/entity/elastic/Person.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/entity/elastic/Person.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/entity/elastic/Person.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/entity/neo4j/Person.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/entity/neo4j/Person.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/java/com/baeldung/connectiondetails/entity/neo4j/Person.java rename to spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/entity/neo4j/Person.java diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-cassandra.properties b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/application-cassandra.properties similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-cassandra.properties rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/application-cassandra.properties diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-couch.properties b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/application-couch.properties similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-couch.properties rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/application-couch.properties diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-elastic.properties b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/application-elastic.properties similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-elastic.properties rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/application-elastic.properties diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-jdbc.properties b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/application-jdbc.properties similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-jdbc.properties rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/application-jdbc.properties diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-kafka.properties b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/application-kafka.properties similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-kafka.properties rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/application-kafka.properties diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-mongo.properties b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/application-mongo.properties similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-mongo.properties rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/application-mongo.properties diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-neo4j.properties b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/application-neo4j.properties similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-neo4j.properties rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/application-neo4j.properties diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-r2dbc.properties b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/application-r2dbc.properties similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-r2dbc.properties rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/application-r2dbc.properties diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-rabbitmq.properties b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/application-rabbitmq.properties similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-rabbitmq.properties rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/application-rabbitmq.properties diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-redis.properties b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/application-redis.properties similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-redis.properties rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/application-redis.properties diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-zipkin.properties b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/application-zipkin.properties similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/application-zipkin.properties rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/application-zipkin.properties diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-cassandra.yml b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/docker/docker-compose-cassandra.yml similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-cassandra.yml rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/docker/docker-compose-cassandra.yml diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-couch.yml b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/docker/docker-compose-couch.yml similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-couch.yml rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/docker/docker-compose-couch.yml diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-elastic.yml b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/docker/docker-compose-elastic.yml similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-elastic.yml rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/docker/docker-compose-elastic.yml diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-jdbc.yml b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/docker/docker-compose-jdbc.yml similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-jdbc.yml rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/docker/docker-compose-jdbc.yml diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-kafka.yml b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/docker/docker-compose-kafka.yml similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-kafka.yml rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/docker/docker-compose-kafka.yml diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-mongo.yml b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/docker/docker-compose-mongo.yml similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-mongo.yml rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/docker/docker-compose-mongo.yml diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-neo4j.yml b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/docker/docker-compose-neo4j.yml similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-neo4j.yml rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/docker/docker-compose-neo4j.yml diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-rabbitmq.yml b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/docker/docker-compose-rabbitmq.yml similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-rabbitmq.yml rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/docker/docker-compose-rabbitmq.yml diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-redis.yml b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/docker/docker-compose-redis.yml similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-redis.yml rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/docker/docker-compose-redis.yml diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-zipkin.yml b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/docker/docker-compose-zipkin.yml similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/docker/docker-compose-zipkin.yml rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/docker/docker-compose-zipkin.yml diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/cassandra-connection-details-class-diag.puml b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/cassandra-connection-details-class-diag.puml similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/cassandra-connection-details-class-diag.puml rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/cassandra-connection-details-class-diag.puml diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/connection-details-sequence-design.puml b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/connection-details-sequence-design.puml similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/connection-details-sequence-design.puml rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/connection-details-sequence-design.puml diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/couch_connection_details_class_diag.puml b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/couch_connection_details_class_diag.puml similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/couch_connection_details_class_diag.puml rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/couch_connection_details_class_diag.puml diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/elasticsearch-connection-details-class-diag.puml b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/elasticsearch-connection-details-class-diag.puml similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/elasticsearch-connection-details-class-diag.puml rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/elasticsearch-connection-details-class-diag.puml diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/jdbcconnection-details-class-diag.puml b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/jdbcconnection-details-class-diag.puml similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/jdbcconnection-details-class-diag.puml rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/jdbcconnection-details-class-diag.puml diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/kafka-connectiondetails-class-diag.puml b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/kafka-connectiondetails-class-diag.puml similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/kafka-connectiondetails-class-diag.puml rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/kafka-connectiondetails-class-diag.puml diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/mongodb-connection-details-class-diag.puml b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/mongodb-connection-details-class-diag.puml similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/mongodb-connection-details-class-diag.puml rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/mongodb-connection-details-class-diag.puml diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/neo4j-connection-details-class-diag.puml b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/neo4j-connection-details-class-diag.puml similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/neo4j-connection-details-class-diag.puml rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/neo4j-connection-details-class-diag.puml diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/r2dbcconnection-details-class-diag.puml b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/r2dbcconnection-details-class-diag.puml similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/r2dbcconnection-details-class-diag.puml rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/r2dbcconnection-details-class-diag.puml diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/rabbitmq-connection-details-class-diag.puml b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/rabbitmq-connection-details-class-diag.puml similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/rabbitmq-connection-details-class-diag.puml rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/rabbitmq-connection-details-class-diag.puml diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/redis-connection-details-class-diagram.puml b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/redis-connection-details-class-diagram.puml similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/redis-connection-details-class-diagram.puml rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/redis-connection-details-class-diagram.puml diff --git a/spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/zipkin-connection-details-class-diag.puml b/spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/zipkin-connection-details-class-diag.puml similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/main/resources/connectiondetails/plantuml/zipkin-connection-details-class-diag.puml rename to spring-boot-modules/spring-boot-3-2/src/main/resources/connectiondetails/plantuml/zipkin-connection-details-class-diag.puml diff --git a/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/CassandraConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3-2/src/test/java/com/baeldung/connectiondetails/CassandraConnectionDetailsIntegrationTest.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/CassandraConnectionDetailsIntegrationTest.java rename to spring-boot-modules/spring-boot-3-2/src/test/java/com/baeldung/connectiondetails/CassandraConnectionDetailsIntegrationTest.java diff --git a/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/CouchbaseConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3-2/src/test/java/com/baeldung/connectiondetails/CouchbaseConnectionDetailsIntegrationTest.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/CouchbaseConnectionDetailsIntegrationTest.java rename to spring-boot-modules/spring-boot-3-2/src/test/java/com/baeldung/connectiondetails/CouchbaseConnectionDetailsIntegrationTest.java diff --git a/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/ElasticsearchConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3-2/src/test/java/com/baeldung/connectiondetails/ElasticsearchConnectionDetailsIntegrationTest.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/ElasticsearchConnectionDetailsIntegrationTest.java rename to spring-boot-modules/spring-boot-3-2/src/test/java/com/baeldung/connectiondetails/ElasticsearchConnectionDetailsIntegrationTest.java diff --git a/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/JdbcConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3-2/src/test/java/com/baeldung/connectiondetails/JdbcConnectionDetailsIntegrationTest.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/JdbcConnectionDetailsIntegrationTest.java rename to spring-boot-modules/spring-boot-3-2/src/test/java/com/baeldung/connectiondetails/JdbcConnectionDetailsIntegrationTest.java diff --git a/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/KafkaConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3-2/src/test/java/com/baeldung/connectiondetails/KafkaConnectionDetailsIntegrationTest.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/KafkaConnectionDetailsIntegrationTest.java rename to spring-boot-modules/spring-boot-3-2/src/test/java/com/baeldung/connectiondetails/KafkaConnectionDetailsIntegrationTest.java diff --git a/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/MongoDBConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3-2/src/test/java/com/baeldung/connectiondetails/MongoDBConnectionDetailsIntegrationTest.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/MongoDBConnectionDetailsIntegrationTest.java rename to spring-boot-modules/spring-boot-3-2/src/test/java/com/baeldung/connectiondetails/MongoDBConnectionDetailsIntegrationTest.java diff --git a/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/Neo4jConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3-2/src/test/java/com/baeldung/connectiondetails/Neo4jConnectionDetailsIntegrationTest.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/Neo4jConnectionDetailsIntegrationTest.java rename to spring-boot-modules/spring-boot-3-2/src/test/java/com/baeldung/connectiondetails/Neo4jConnectionDetailsIntegrationTest.java diff --git a/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/R2dbcConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3-2/src/test/java/com/baeldung/connectiondetails/R2dbcConnectionDetailsIntegrationTest.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/R2dbcConnectionDetailsIntegrationTest.java rename to spring-boot-modules/spring-boot-3-2/src/test/java/com/baeldung/connectiondetails/R2dbcConnectionDetailsIntegrationTest.java diff --git a/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/RabbitmqConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3-2/src/test/java/com/baeldung/connectiondetails/RabbitmqConnectionDetailsIntegrationTest.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/RabbitmqConnectionDetailsIntegrationTest.java rename to spring-boot-modules/spring-boot-3-2/src/test/java/com/baeldung/connectiondetails/RabbitmqConnectionDetailsIntegrationTest.java diff --git a/spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/RedisCacheConnnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3-2/src/test/java/com/baeldung/connectiondetails/RedisCacheConnnectionDetailsIntegrationTest.java similarity index 100% rename from spring-boot-modules/spring-boot-3-1/src/test/java/com/baeldung/connectiondetails/RedisCacheConnnectionDetailsIntegrationTest.java rename to spring-boot-modules/spring-boot-3-2/src/test/java/com/baeldung/connectiondetails/RedisCacheConnnectionDetailsIntegrationTest.java From c97860452f0b9c41e5a5e165fae8490c6840b72b Mon Sep 17 00:00:00 2001 From: parthiv39731 <70740707+parthiv39731@users.noreply.github.com> Date: Sat, 14 Oct 2023 21:59:02 +0530 Subject: [PATCH 4/9] BAEL-6910 revert back changes from spring-boot-3 --- spring-boot-modules/spring-boot-3/pom.xml | 70 ------------ .../ConnectionDetailsApplication.java | 16 --- .../adapter/VaultAdapter.java | 107 ------------------ .../CustomCassandraConnectionDetails.java | 32 ------ ...ssandraConnectionDetailsConfiguration.java | 17 --- .../CustomElasticsearchConnectionDetails.java | 29 ----- ...csearchConnectionDetailsConfiguration.java | 17 --- .../CustomNeo4jConnectionDetails.java | 24 ---- ...omNeo4jConnectionDetailsConfiguration.java | 17 --- .../JdbcConnectionDetailsConfiguration.java | 17 --- .../MongoDBConnectionDetails.java | 14 --- ...MongoDBConnectionDetailsConfiguration.java | 17 --- .../PostgresConnectionDetails.java | 21 ---- .../R2dbcPostgresConnectionDetails.java | 22 ---- ...ostgresConnectionDetailsConfiguration.java | 17 --- .../RabbitMQConnectionDetails.java | 34 ------ ...abbitMQConnectionDetailsConfiguration.java | 17 --- .../RedisCacheConnectionDetails.java | 26 ----- .../RedisConnectionDetailsConfiguration.java | 17 --- .../entity/elastic/Person.java | 27 ----- .../entity/neo4j/Person.java | 27 ----- .../src/main/resources/application.yml | 2 +- .../application-cassandra.properties | 11 -- .../application-elastic.properties | 7 -- .../application-jdbc.properties | 7 -- .../application-mongo.properties | 8 -- .../application-neo4j.properties | 7 -- .../application-r2dbc.properties | 7 -- .../application-rabbitmq.properties | 7 -- .../application-redis.properties | 7 -- ...ssandra-connection-details-class-diag.puml | 27 ----- .../connection-details-sequence-design.puml | 16 --- .../docker-compose-cassandra.yml | 9 -- .../docker-compose-elastic.yml | 12 -- .../connectiondetails/docker-compose-jdbc.yml | 10 -- .../docker-compose-mongo.yml | 10 -- .../docker-compose-neo4j.yml | 8 -- .../docker-compose-rabbitmq.yml | 9 -- .../docker-compose-redis.yml | 8 -- .../docker-connectiondetails-compose.yml | 39 ------- ...csearch-connection-details-class-diag.puml | 25 ---- .../jdbcconnection-details-class-diag.puml | 25 ---- ...mongodb-connection-details-class-diag.puml | 19 ---- .../r2dbcconnection-details-class-diag.puml | 21 ---- ...abbitmq-connection-details-class-diag.puml | 27 ----- ...edis-connection-details-class-diagram.puml | 23 ---- ...andraConnectionDetailsIntegrationTest.java | 37 ------ ...earchConnectionDetailsIntegrationTest.java | 45 -------- .../JdbcConnectionDetailsIntegrationTest.java | 38 ------- ...ngoDBConnectionDetailsIntegrationTest.java | 47 -------- ...Neo4jConnectionDetailsIntegrationTest.java | 43 ------- ...R2dbcConnectionDetailsIntegrationTest.java | 40 ------- ...bitmqConnectionDetailsIntegrationTest.java | 62 ---------- ...acheConnnectionDetailsIntegrationTest.java | 34 ------ 54 files changed, 1 insertion(+), 1281 deletions(-) delete mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/ConnectionDetailsApplication.java delete mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/adapter/VaultAdapter.java delete mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetails.java delete mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetailsConfiguration.java delete mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetails.java delete mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetailsConfiguration.java delete mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetails.java delete mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetailsConfiguration.java delete mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/JdbcConnectionDetailsConfiguration.java delete mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetails.java delete mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetailsConfiguration.java delete mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/PostgresConnectionDetails.java delete mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetails.java delete mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetailsConfiguration.java delete mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetails.java delete mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetailsConfiguration.java delete mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RedisCacheConnectionDetails.java delete mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RedisConnectionDetailsConfiguration.java delete mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/entity/elastic/Person.java delete mode 100644 spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/entity/neo4j/Person.java delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-cassandra.properties delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-elastic.properties delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-jdbc.properties delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-mongo.properties delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-neo4j.properties delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-r2dbc.properties delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-rabbitmq.properties delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-redis.properties delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/cassandra-connection-details-class-diag.puml delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/connection-details-sequence-design.puml delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-cassandra.yml delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-elastic.yml delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-jdbc.yml delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-mongo.yml delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-neo4j.yml delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-rabbitmq.yml delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-redis.yml delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-connectiondetails-compose.yml delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/elasticsearch-connection-details-class-diag.puml delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/jdbcconnection-details-class-diag.puml delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/mongodb-connection-details-class-diag.puml delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/r2dbcconnection-details-class-diag.puml delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/rabbitmq-connection-details-class-diag.puml delete mode 100644 spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/redis-connection-details-class-diagram.puml delete mode 100644 spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/CassandraConnectionDetailsIntegrationTest.java delete mode 100644 spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/ElasticsearchConnectionDetailsIntegrationTest.java delete mode 100644 spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/JdbcConnectionDetailsIntegrationTest.java delete mode 100644 spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/MongoDBConnectionDetailsIntegrationTest.java delete mode 100644 spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/Neo4jConnectionDetailsIntegrationTest.java delete mode 100644 spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/R2dbcConnectionDetailsIntegrationTest.java delete mode 100644 spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/RabbitmqConnectionDetailsIntegrationTest.java delete mode 100644 spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/RedisCacheConnnectionDetailsIntegrationTest.java diff --git a/spring-boot-modules/spring-boot-3/pom.xml b/spring-boot-modules/spring-boot-3/pom.xml index 25927cc37b..bb8c5dd53c 100644 --- a/spring-boot-modules/spring-boot-3/pom.xml +++ b/spring-boot-modules/spring-boot-3/pom.xml @@ -119,75 +119,6 @@ org.springframework.boot spring-boot-starter-test - - org.springframework.boot - spring-boot-testcontainers - test - - - org.testcontainers - postgresql - test - - - org.testcontainers - junit-jupiter - ${testcontainers.version} - test - - - org.postgresql - postgresql - runtime - - - org.springframework.boot - spring-boot-starter-amqp - - - org.springframework.amqp - spring-rabbit-test - test - - - org.springframework.data - spring-data-redis - - - redis.clients - jedis - jar - - - org.springframework.boot - spring-boot-starter-data-redis - - - org.postgresql - r2dbc-postgresql - runtime - - - org.springframework.boot - spring-boot-starter-data-r2dbc - - - io.projectreactor - reactor-test - test - - - org.springframework.boot - spring-boot-starter-data-elasticsearch - - - org.springframework.boot - spring-boot-starter-data-cassandra - - - org.springframework.boot - spring-boot-starter-data-neo4j - @@ -284,7 +215,6 @@ 3.2.0-SNAPSHOT 0.2.0 5.10.0 - 1.18.3 diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/ConnectionDetailsApplication.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/ConnectionDetailsApplication.java deleted file mode 100644 index a9b49e24e3..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/ConnectionDetailsApplication.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.baeldung.connectiondetails; - - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.ComponentScan; - -@SpringBootApplication -@ComponentScan(basePackages = "com.baeldung.connectiondetails") -public class ConnectionDetailsApplication { - - public static void main(String[] args) { - SpringApplication.run(ConnectionDetailsApplication.class, args); - } - -} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/adapter/VaultAdapter.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/adapter/VaultAdapter.java deleted file mode 100644 index 1c9449ad00..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/adapter/VaultAdapter.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.baeldung.connectiondetails.adapter; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class VaultAdapter { - private static final Logger logger = LoggerFactory.getLogger(VaultAdapter.class); - public static String getSecret(String secretKey) { - logger.info("call vault to get the secret of key: " + secretKey); - - //Postgres keys - if (secretKey.equalsIgnoreCase("postgres_secret_key")) { - return "postgres"; - } - if (secretKey.equalsIgnoreCase("postgres_user_key")) { - return "postgres"; - } - if (secretKey.equalsIgnoreCase("postgres_jdbc_url")) { - return "jdbc:postgresql://localhost:15432/postgresdb"; - } - //RabbitMQ Server Keys - if (secretKey.equalsIgnoreCase("rabbitmq_username")) { - return "rabbitmquser"; - } - if (secretKey.equalsIgnoreCase("rabbitmq_password")) { - return "rabbitmq"; - } - if (secretKey.equalsIgnoreCase("rabbitmq_port")) { - return "5672"; - } - if (secretKey.equalsIgnoreCase("rabbitmq_host")) { - return "localhost"; - } - //Redis Server Keys - if (secretKey.equalsIgnoreCase("redis_username")) { - return null; - } - if (secretKey.equalsIgnoreCase("redis_password")) { - return "redis"; - } - if (secretKey.equalsIgnoreCase("redis_port")) { - return "6379"; - } - if (secretKey.equalsIgnoreCase("redis_host")) { - return "localhost"; - } - //Mongo DB Keys - if (secretKey.equalsIgnoreCase("mongo_connection_string")) { - return "mongodb://localhost:27017/demodb"; - } - - //r2dbc Keys - if (secretKey.equalsIgnoreCase("r2dbc_postgres_user")) { - return "postgres"; - } - if (secretKey.equalsIgnoreCase("r2dbc_postgres_secret")) { - return "postgres"; - } - if (secretKey.equalsIgnoreCase("r2dbc_postgres_host")) { - return "localhost"; - } - if (secretKey.equalsIgnoreCase("r2dbc_postgres_port")) { - return "15432"; - } - if (secretKey.equalsIgnoreCase("r2dbc_postgres_database")) { - return "postgresdb"; - } - //Elastic Search Keys - if (secretKey.equalsIgnoreCase("elastic_user")) { - return "elastic"; - } - if (secretKey.equalsIgnoreCase("elastic_secret")) { - return "secret"; - } - if (secretKey.equalsIgnoreCase("elastic_host")) { - return "localhost"; - } - if (secretKey.equalsIgnoreCase("elastic_port1")) { - return "19200"; - } - if (secretKey.equalsIgnoreCase("elastic_port2")) { - return "19300"; - } - //Cassandra keys - if (secretKey.equalsIgnoreCase("cassandra_user")) { - return "cassandra"; - } - if (secretKey.equalsIgnoreCase("cassandra_secret")) { - return "secret"; - } - if (secretKey.equalsIgnoreCase("cassandra_host")) { - return "localhost"; - } - if (secretKey.equalsIgnoreCase("cassandra_port")) { - return "19042"; - } - //Neo4j Keys - if (secretKey.equalsIgnoreCase("neo4j_secret")) { - return "neo4j123"; - } - if (secretKey.equalsIgnoreCase("neo4j_uri")) { - return "bolt://localhost:17687"; - } - - return "secretVal"; - } -} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetails.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetails.java deleted file mode 100644 index 6a246cd9fc..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetails.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.baeldung.connectiondetails.configuration; - -import com.baeldung.connectiondetails.adapter.VaultAdapter; -import org.springframework.boot.autoconfigure.cassandra.CassandraConnectionDetails; - -import java.util.List; - -public class CustomCassandraConnectionDetails implements CassandraConnectionDetails { - @Override - public List getContactPoints() { - Node node = new Node( - VaultAdapter.getSecret("cassandra_host"), - Integer.parseInt(VaultAdapter.getSecret("cassandra_port")) - ); - return List.of(node); - } - - @Override - public String getUsername() { - return VaultAdapter.getSecret("cassandra_user"); - } - - @Override - public String getPassword() { - return VaultAdapter.getSecret("cassandra_secret"); - } - - @Override - public String getLocalDatacenter() { - return "datacenter-1"; - } -} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetailsConfiguration.java deleted file mode 100644 index 02ed8c0051..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomCassandraConnectionDetailsConfiguration.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.baeldung.connectiondetails.configuration; - -import org.springframework.boot.autoconfigure.cassandra.CassandraConnectionDetails; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; -import org.springframework.context.annotation.Profile; - -@Configuration(proxyBeanMethods = false) -@Profile("cassandra") -public class CustomCassandraConnectionDetailsConfiguration { - @Bean - @Primary - public CassandraConnectionDetails getCustomCassandraConnectionDetails() { - return new CustomCassandraConnectionDetails(); - } -} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetails.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetails.java deleted file mode 100644 index 0b45878bc9..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetails.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.baeldung.connectiondetails.configuration; - -import com.baeldung.connectiondetails.adapter.VaultAdapter; -import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchConnectionDetails; - -import java.util.List; - -public class CustomElasticsearchConnectionDetails implements ElasticsearchConnectionDetails { - @Override - public List getNodes() { - Node node1 = new Node( - VaultAdapter.getSecret("elastic_host"), - Integer.parseInt(VaultAdapter.getSecret("elastic_port1")), - Node.Protocol.HTTP - ); - return List.of(node1); - } - - @Override - public String getUsername() { - return VaultAdapter.getSecret("elastic_user"); - } - - @Override - public String getPassword() { - return VaultAdapter.getSecret("elastic_secret"); - } - -} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetailsConfiguration.java deleted file mode 100644 index a9b3da44fa..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomElasticsearchConnectionDetailsConfiguration.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.baeldung.connectiondetails.configuration; - -import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchConnectionDetails; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; -import org.springframework.context.annotation.Profile; - -@Configuration(proxyBeanMethods = false) -@Profile("elastic") -public class CustomElasticsearchConnectionDetailsConfiguration { - @Bean - @Primary - public ElasticsearchConnectionDetails getCustomElasticConnectionDetails() { - return new CustomElasticsearchConnectionDetails(); - } -} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetails.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetails.java deleted file mode 100644 index c0412fbb21..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetails.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.baeldung.connectiondetails.configuration; - -import com.baeldung.connectiondetails.adapter.VaultAdapter; -import org.neo4j.driver.AuthToken; -import org.neo4j.driver.AuthTokens; -import org.springframework.boot.autoconfigure.neo4j.Neo4jConnectionDetails; - -import java.net.URI; -import java.net.URISyntaxException; - -public class CustomNeo4jConnectionDetails implements Neo4jConnectionDetails { - @Override - public URI getUri() { - try { - return new URI(VaultAdapter.getSecret("neo4j_uri")); - } catch (URISyntaxException e) { - throw new RuntimeException(e); - } - } - @Override - public AuthToken getAuthToken() { - return AuthTokens.basic("neo4j", VaultAdapter.getSecret("neo4j_secret")); - } -} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetailsConfiguration.java deleted file mode 100644 index aec8908c7d..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/CustomNeo4jConnectionDetailsConfiguration.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.baeldung.connectiondetails.configuration; - -import org.springframework.boot.autoconfigure.neo4j.Neo4jConnectionDetails; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; -import org.springframework.context.annotation.Profile; - -@Configuration(proxyBeanMethods = false) -@Profile("neo4j") -public class CustomNeo4jConnectionDetailsConfiguration { - @Bean - @Primary - public Neo4jConnectionDetails getNeo4jConnectionDetails() { - return new CustomNeo4jConnectionDetails(); - } -} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/JdbcConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/JdbcConnectionDetailsConfiguration.java deleted file mode 100644 index 3387356366..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/JdbcConnectionDetailsConfiguration.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.baeldung.connectiondetails.configuration; - -import org.springframework.boot.autoconfigure.jdbc.JdbcConnectionDetails; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; -import org.springframework.context.annotation.Profile; - -@Configuration(proxyBeanMethods = false) -@Profile("jdbc") -public class JdbcConnectionDetailsConfiguration { - @Bean - @Primary - public JdbcConnectionDetails getPostgresConnection() { - return new PostgresConnectionDetails(); - } -} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetails.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetails.java deleted file mode 100644 index df689d81b6..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetails.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.baeldung.connectiondetails.configuration; - - -import com.baeldung.connectiondetails.adapter.VaultAdapter; -import com.mongodb.ConnectionString; -import org.springframework.boot.autoconfigure.mongo.MongoConnectionDetails; - -public class MongoDBConnectionDetails implements MongoConnectionDetails { - @Override - public ConnectionString getConnectionString() { - return new ConnectionString(VaultAdapter.getSecret("mongo_connection_string")); - } -} - diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetailsConfiguration.java deleted file mode 100644 index d455991d08..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/MongoDBConnectionDetailsConfiguration.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.baeldung.connectiondetails.configuration; - -import org.springframework.boot.autoconfigure.mongo.MongoConnectionDetails; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; -import org.springframework.context.annotation.Profile; - -@Configuration(proxyBeanMethods = false) -@Profile("mongo") -public class MongoDBConnectionDetailsConfiguration { - @Bean - @Primary - public MongoConnectionDetails getMongoConnectionDetails() { - return new MongoDBConnectionDetails(); - } -} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/PostgresConnectionDetails.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/PostgresConnectionDetails.java deleted file mode 100644 index c9b213a8d3..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/PostgresConnectionDetails.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.baeldung.connectiondetails.configuration; - -import com.baeldung.connectiondetails.adapter.VaultAdapter; -import org.springframework.boot.autoconfigure.jdbc.JdbcConnectionDetails; - -public class PostgresConnectionDetails implements JdbcConnectionDetails { - @Override - public String getUsername() { - return VaultAdapter.getSecret("postgres_user_key"); - } - - @Override - public String getPassword() { - return VaultAdapter.getSecret("postgres_secret_key"); - } - - @Override - public String getJdbcUrl() { - return VaultAdapter.getSecret("postgres_jdbc_url"); - } -} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetails.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetails.java deleted file mode 100644 index 4ce6abc9d5..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetails.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.baeldung.connectiondetails.configuration; - -import com.baeldung.connectiondetails.adapter.VaultAdapter; -import io.r2dbc.spi.ConnectionFactoryOptions; -import org.springframework.boot.autoconfigure.r2dbc.R2dbcConnectionDetails; - -public class R2dbcPostgresConnectionDetails implements R2dbcConnectionDetails { - @Override - public ConnectionFactoryOptions getConnectionFactoryOptions() { - - ConnectionFactoryOptions options = ConnectionFactoryOptions.builder() - .option(ConnectionFactoryOptions.DRIVER, "postgresql") - .option(ConnectionFactoryOptions.HOST, VaultAdapter.getSecret("r2dbc_postgres_host")) - .option(ConnectionFactoryOptions.PORT, Integer.valueOf(VaultAdapter.getSecret("r2dbc_postgres_port"))) - .option(ConnectionFactoryOptions.USER, VaultAdapter.getSecret("r2dbc_postgres_user")) - .option(ConnectionFactoryOptions.PASSWORD, VaultAdapter.getSecret("r2dbc_postgres_secret")) - .option(ConnectionFactoryOptions.DATABASE, VaultAdapter.getSecret("r2dbc_postgres_database")) - .build(); - - return options; - } -} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetailsConfiguration.java deleted file mode 100644 index 144355dce4..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetailsConfiguration.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.baeldung.connectiondetails.configuration; - -import org.springframework.boot.autoconfigure.r2dbc.R2dbcConnectionDetails; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; -import org.springframework.context.annotation.Profile; - -@Configuration(proxyBeanMethods = false) -@Profile("r2dbc") -public class R2dbcPostgresConnectionDetailsConfiguration { - @Bean - @Primary - public R2dbcConnectionDetails getR2dbcPostgresConnectionDetails() { - return new R2dbcPostgresConnectionDetails(); - } -} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetails.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetails.java deleted file mode 100644 index 9dc4bdf33b..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetails.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.baeldung.connectiondetails.configuration; - -import com.baeldung.connectiondetails.adapter.VaultAdapter; -import org.springframework.boot.autoconfigure.amqp.RabbitConnectionDetails; - -import java.util.List; - -public class RabbitMQConnectionDetails implements RabbitConnectionDetails { - @Override - public String getUsername() { - return VaultAdapter.getSecret("rabbitmq_username"); - } - - @Override - public String getPassword() { - return VaultAdapter.getSecret("rabbitmq_password"); - } - - @Override - public String getVirtualHost() { - return "/"; - } - - @Override - public List
getAddresses() { - return List.of(this.getFirstAddress()); - } - - @Override - public Address getFirstAddress() { - return new Address(VaultAdapter.getSecret("rabbitmq_host"), - Integer.parseInt(VaultAdapter.getSecret("rabbitmq_port"))); - } -} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetailsConfiguration.java deleted file mode 100644 index 237bec3fc4..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RabbitMQConnectionDetailsConfiguration.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.baeldung.connectiondetails.configuration; - -import org.springframework.boot.autoconfigure.amqp.RabbitConnectionDetails; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; -import org.springframework.context.annotation.Profile; - -@Configuration(proxyBeanMethods = false) -@Profile("rabbitmq") -public class RabbitMQConnectionDetailsConfiguration { - @Primary - @Bean - public RabbitConnectionDetails getRabbitmqConnection() { - return new RabbitMQConnectionDetails(); - } -} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RedisCacheConnectionDetails.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RedisCacheConnectionDetails.java deleted file mode 100644 index 9485f22240..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RedisCacheConnectionDetails.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.baeldung.connectiondetails.configuration; - -import com.baeldung.connectiondetails.adapter.VaultAdapter; -import org.springframework.boot.autoconfigure.data.redis.RedisConnectionDetails; - -public class RedisCacheConnectionDetails implements RedisConnectionDetails { - @Override - public String getPassword() { - return VaultAdapter.getSecret("redis_password"); - } - - @Override - public Standalone getStandalone() { - return new Standalone() { - @Override - public String getHost() { - return VaultAdapter.getSecret("redis_host"); - } - - @Override - public int getPort() { - return Integer.parseInt(VaultAdapter.getSecret("redis_port")); - } - }; - } -} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RedisConnectionDetailsConfiguration.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RedisConnectionDetailsConfiguration.java deleted file mode 100644 index 31816ff0b4..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/configuration/RedisConnectionDetailsConfiguration.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.baeldung.connectiondetails.configuration; - -import org.springframework.boot.autoconfigure.data.redis.RedisConnectionDetails; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; -import org.springframework.context.annotation.Profile; - -@Configuration(proxyBeanMethods = false) -@Profile("redis") -public class RedisConnectionDetailsConfiguration { - @Bean - @Primary - public RedisConnectionDetails getRedisCacheConnection() { - return new RedisCacheConnectionDetails(); - } -} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/entity/elastic/Person.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/entity/elastic/Person.java deleted file mode 100644 index 851dbb7c90..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/entity/elastic/Person.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.baeldung.connectiondetails.entity.elastic; - -import org.springframework.data.annotation.Id; -import org.springframework.data.elasticsearch.annotations.Document; - -@Document(indexName = "person") -public class Person { - String name; - @Id - String ssn; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSsn() { - return ssn; - } - - public void setSsn(String ssn) { - this.ssn = ssn; - } -} diff --git a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/entity/neo4j/Person.java b/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/entity/neo4j/Person.java deleted file mode 100644 index 63e88d0a41..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/java/com/baeldung/connectiondetails/entity/neo4j/Person.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.baeldung.connectiondetails.entity.neo4j; - -import org.springframework.data.neo4j.core.schema.Id; -import org.springframework.data.neo4j.core.schema.Node; - -@Node -public class Person { - @Id - String name; - String zipcode; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getZipcode() { - return zipcode; - } - - public void setZipcode(String zipcode) { - this.zipcode = zipcode; - } -} \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/application.yml b/spring-boot-modules/spring-boot-3/src/main/resources/application.yml index b1e79ca17e..3885e59a61 100644 --- a/spring-boot-modules/spring-boot-3/src/main/resources/application.yml +++ b/spring-boot-modules/spring-boot-3/src/main/resources/application.yml @@ -19,7 +19,7 @@ spring: compose: enabled: false autoconfigure: - exclude: org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration + exclude: org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration cors: allow: diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-cassandra.properties b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-cassandra.properties deleted file mode 100644 index ea2619bada..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-cassandra.properties +++ /dev/null @@ -1,11 +0,0 @@ -spring.docker.compose.enabled=true -spring.docker.compose.file=./connectiondetails/docker-compose-cassandra.yml -spring.docker.compose.skip.in-tests=false -spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true -spring.mustache.check-template-location=false -spring.profiles.active=cassandra -spring.cassandra.local-datacenter=dc1 -#spring.cassandra.keyspace-name=spring_cassandra -#spring.cassandra.schema-action=CREATE_IF_NOT_EXISTS -spring.data.cassandra.request.timeout=20000 # Set your desired timeout in milliseconds -spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-elastic.properties b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-elastic.properties deleted file mode 100644 index e9f32c252b..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-elastic.properties +++ /dev/null @@ -1,7 +0,0 @@ -spring.docker.compose.enabled=true -spring.docker.compose.file=./connectiondetails/docker-compose-elastic.yml -spring.docker.compose.skip.in-tests=false -spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true -spring.mustache.check-template-location=false -spring.profiles.active=elastic -spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-jdbc.properties b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-jdbc.properties deleted file mode 100644 index 40f9d1fd68..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-jdbc.properties +++ /dev/null @@ -1,7 +0,0 @@ -spring.docker.compose.enabled=true -spring.docker.compose.file=./connectiondetails/docker-compose-jdbc.yml -spring.docker.compose.skip.in-tests=false -spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true -spring.mustache.check-template-location=false -spring.profiles.active=jdbc -spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-mongo.properties b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-mongo.properties deleted file mode 100644 index 4dd355bbed..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-mongo.properties +++ /dev/null @@ -1,8 +0,0 @@ -spring.docker.compose.enabled=true -spring.docker.compose.file=./connectiondetails/docker-compose-mongo.yml -spring.docker.compose.skip.in-tests=false -spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true -spring.mustache.check-template-location=false -spring.profiles.active=mongo -spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration -spring.data.mongodb.database=demodb \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-neo4j.properties b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-neo4j.properties deleted file mode 100644 index 9e6c9c0f11..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-neo4j.properties +++ /dev/null @@ -1,7 +0,0 @@ -spring.docker.compose.enabled=true -spring.docker.compose.file=./connectiondetails/docker-compose-neo4j.yml -spring.docker.compose.skip.in-tests=false -spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true -spring.mustache.check-template-location=false -spring.profiles.active=neo4j -spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-r2dbc.properties b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-r2dbc.properties deleted file mode 100644 index 91d2fba818..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-r2dbc.properties +++ /dev/null @@ -1,7 +0,0 @@ -spring.docker.compose.enabled=true -spring.docker.compose.file=./connectiondetails/docker-compose-jdbc.yml -spring.docker.compose.skip.in-tests=false -spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true -spring.mustache.check-template-location=false -spring.profiles.active=r2dbc -spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.jdbc.JdbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-rabbitmq.properties b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-rabbitmq.properties deleted file mode 100644 index fe9bfa3ecb..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-rabbitmq.properties +++ /dev/null @@ -1,7 +0,0 @@ -spring.docker.compose.enabled=true -spring.docker.compose.file=./connectiondetails/docker-compose-rabbitmq.yml -spring.docker.compose.skip.in-tests=false -spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true -spring.mustache.check-template-location=false -spring.profiles.active=rabbitmq -spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-redis.properties b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-redis.properties deleted file mode 100644 index 9e4973164e..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/application-redis.properties +++ /dev/null @@ -1,7 +0,0 @@ -spring.docker.compose.enabled=true -spring.docker.compose.file=./connectiondetails/docker-compose-redis.yml -spring.docker.compose.skip.in-tests=false -spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true -spring.mustache.check-template-location=false -spring.profiles.active=redis -spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration, org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration, org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration, org.springframework.boot.autoconfigure.data.cassandra.CassandraRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration, org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration, org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/cassandra-connection-details-class-diag.puml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/cassandra-connection-details-class-diag.puml deleted file mode 100644 index 339f658e1a..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/cassandra-connection-details-class-diag.puml +++ /dev/null @@ -1,27 +0,0 @@ -@startuml -'https://plantuml.com/class-diagram - -interface CassandraConnectionDetails { - +getUsername():String - +getPassword():String - +getContactPoints():List - +getLocalDatacenter():String -} -class CustomCassandraConnectionDetails { - +getUsername():String - +getPassword():String - +getContactPoints():List - +getLocalDatacenter():String -} -class VaultAdapter { - +getSecret(String secretKey):String -} -class CustomCassandraConnectionDetailsConfiguration { - +getCustomCassandraConnectionDetails():CassandraConnectionDetails -} -CustomCassandraConnectionDetails -left-> VaultAdapter:uses -CustomCassandraConnectionDetails -right-|> CassandraConnectionDetails : implements -CustomCassandraConnectionDetailsConfiguration -up-> CustomCassandraConnectionDetails:uses - - -@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/connection-details-sequence-design.puml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/connection-details-sequence-design.puml deleted file mode 100644 index a2a917eea0..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/connection-details-sequence-design.puml +++ /dev/null @@ -1,16 +0,0 @@ -@startuml -'https://plantuml.com/sequence-diagram -skinparam sequenceMessageAlign direction -skinparam handwritten true -skinparam sequence { -ParticipantBackgroundColor beige -ParticipantPadding 50 -} -autonumber - -"Spring Boot" -[#63b175]> "Hashicorp Vault": Secret Request -"Hashicorp Vault" -[#63b175]-> "Spring Boot": Secret Response -"Spring Boot" -[#63b175]> "Remote Service": Connection Request - -"Remote Service" -[#63b175]-> "Spring Boot": Connection Response -@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-cassandra.yml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-cassandra.yml deleted file mode 100644 index c593cbc73b..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-cassandra.yml +++ /dev/null @@ -1,9 +0,0 @@ -version: '3.8' -services: - cassandra: - image: 'cassandra:latest' - environment: - - 'CASSANDRA_DC=datacenter-1' - - 'CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch' - ports: - - '19042:9042' \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-elastic.yml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-elastic.yml deleted file mode 100644 index a6e51ee1a0..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-elastic.yml +++ /dev/null @@ -1,12 +0,0 @@ -version: '3.8' -services: - elasticsearch: - image: 'docker.elastic.co/elasticsearch/elasticsearch:7.17.10' - environment: - - 'ELASTIC_USERNAME=elastic' - - 'ELASTIC_PASSWORD=secret' - - 'discovery.type=single-node' - - 'xpack.security.enabled=false' - ports: - - '19200:9200' -# - '19300:9300' \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-jdbc.yml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-jdbc.yml deleted file mode 100644 index 65a8f135e8..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-jdbc.yml +++ /dev/null @@ -1,10 +0,0 @@ -version: '3.8' -services: - database: - image: 'postgres:13.1-alpine' - ports: - - '15432:5432' - environment: - - 'POSTGRES_USER=postgres' - - 'POSTGRES_DB=postgresdb' - - 'POSTGRES_PASSWORD=postgres' \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-mongo.yml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-mongo.yml deleted file mode 100644 index f12f5c3aa7..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-mongo.yml +++ /dev/null @@ -1,10 +0,0 @@ -version: '3.8' -services: - mongodb: - image: 'mongo:latest' - environment: - - 'MONGO_INITDB_DATABASE=demodb' -# - 'MONGO_INITDB_ROOT_PASSWORD=Mongo123' -# - 'MONGO_INITDB_ROOT_USERNAME=mongouser' - ports: - - '27017:27017' \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-neo4j.yml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-neo4j.yml deleted file mode 100644 index 611951e755..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-neo4j.yml +++ /dev/null @@ -1,8 +0,0 @@ -version: '3.8' -services: - neo4j: - image: 'neo4j:latest' - ports: - - '17687:7687' - environment: - NEO4J_AUTH: neo4j/neo4j123 \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-rabbitmq.yml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-rabbitmq.yml deleted file mode 100644 index 8abf19bd19..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-rabbitmq.yml +++ /dev/null @@ -1,9 +0,0 @@ -version: '3.8' -services: - rabbitmq: - image: 'rabbitmq:latest' - environment: - - 'RABBITMQ_DEFAULT_PASS=rabbitmq' - - 'RABBITMQ_DEFAULT_USER=rabbitmquser' - ports: - - '5672:5672' \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-redis.yml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-redis.yml deleted file mode 100644 index c218cef998..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-compose-redis.yml +++ /dev/null @@ -1,8 +0,0 @@ -version: '3.8' -services: - redis: - image: 'redis:latest' - ports: - - '6379:6379' - environment: - - 'REDIS_REQUIREPASS=redis' \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-connectiondetails-compose.yml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-connectiondetails-compose.yml deleted file mode 100644 index 4d2bded9eb..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/docker-connectiondetails-compose.yml +++ /dev/null @@ -1,39 +0,0 @@ -version: '3.8' -services: - database: - profiles: - - 'jdbc' - image: 'postgres:13.1-alpine' - ports: - - '15432:5432' - environment: - - 'POSTGRES_USER=postgres' - - 'POSTGRES_DB=postgresdb' - - 'POSTGRES_PASSWORD=postgres' - rabbitmq: - profiles: - - 'rabbitmq' - image: 'rabbitmq:latest' - environment: - - 'RABBITMQ_DEFAULT_PASS=rabbitmq' - - 'RABBITMQ_DEFAULT_USER=rabbitmquser' - ports: - - '5672:5672' - redis: - profiles: - - 'redis' - image: 'redis:latest' - ports: - - '6379:6379' - environment: - - 'REDIS_REQUIREPASS=redis' -# mongodb: -# profiles: -# - 'mongo-test' -# image: 'mongo:latest' -# environment: -# - 'MONGO_INITDB_DATABASE=demodb' -# - 'MONGO_INITDB_ROOT_PASSWORD=mongo' -# - 'MONGO_INITDB_ROOT_USERNAME=mongouser' -# ports: -# - '27017:27017' \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/elasticsearch-connection-details-class-diag.puml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/elasticsearch-connection-details-class-diag.puml deleted file mode 100644 index 48db0bcc4f..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/elasticsearch-connection-details-class-diag.puml +++ /dev/null @@ -1,25 +0,0 @@ -@startuml -'https://plantuml.com/class-diagram - -interface ElasticsearchConnectionDetails { - +getUsername():String - +getPassword():String - +getNodes():List -} -class CustomElasticsearchConnectionDetails { - +getUsername():String - +getPassword():String - +getNodes():List -} -class VaultAdapter { - +getSecret(String secretKey):String -} -class CustomElasticsearchConnectionDetailsConfiguration { - +getCustomElasticConnectionDetails():ElasticsearchConnectionDetails -} -CustomElasticsearchConnectionDetails -left-> VaultAdapter:uses -CustomElasticsearchConnectionDetails -right-|> ElasticsearchConnectionDetails : implements -CustomElasticsearchConnectionDetailsConfiguration -up-> CustomElasticsearchConnectionDetails:uses - - -@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/jdbcconnection-details-class-diag.puml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/jdbcconnection-details-class-diag.puml deleted file mode 100644 index 88de5d607f..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/jdbcconnection-details-class-diag.puml +++ /dev/null @@ -1,25 +0,0 @@ -@startuml -'https://plantuml.com/class-diagram - -interface JdbcConnectionDetails { - +getUsername():String - +getPassword():String - +getJdbcUrl():String -} -class PostgresConnectionDetails { - +getUsername():String - +getPassword():String - +getJdbcUrl():String -} -class VaultAdapter { - +getSecret(String secretKey):String -} -class JdbcConnectonDetailsConfiguration { - +getPostgresConnection():JdbcConnectionDetails -} -PostgresConnectionDetails -left-> VaultAdapter:uses -PostgresConnectionDetails -right-|> JdbcConnectionDetails : implements -JdbcConnectonDetailsConfiguration -up-> PostgresConnectionDetails:uses - - -@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/mongodb-connection-details-class-diag.puml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/mongodb-connection-details-class-diag.puml deleted file mode 100644 index 974c6de601..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/mongodb-connection-details-class-diag.puml +++ /dev/null @@ -1,19 +0,0 @@ -@startuml -'https://plantuml.com/class-diagram - -interface MongoConnectionDetails { - getConnectionString():ConnectionString -} -class MongoDBConnectionDetails { - getConnectionString():ConnectionString -} -class VaultAdapter { - +getSecret(String secretKey):String -} -class MongoDBConnectionDetailsConfiguration { - +getMongoConnectionDetails() : MongoConnectionDetails -} -MongoDBConnectionDetails -left-> VaultAdapter:uses -MongoDBConnectionDetails -right-|> MongoConnectionDetails : implements -MongoDBConnectionDetailsConfiguration -up-> MongoDBConnectionDetails:uses -@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/r2dbcconnection-details-class-diag.puml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/r2dbcconnection-details-class-diag.puml deleted file mode 100644 index ec69587ab9..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/r2dbcconnection-details-class-diag.puml +++ /dev/null @@ -1,21 +0,0 @@ -@startuml -'https://plantuml.com/class-diagram - -interface R2dbcConnectionDetails { - +getConnectionFactoryOptions():ConnectionFactoryOptions -} -class R2dbcPostgresConnectionDetails { - +getConnectionFactoryOptions():ConnectionFactoryOptions -} -class VaultAdapter { - +getSecret(String secretKey):String -} -class R2dbcPostgresConnectionDetailsConfiguration { - +getR2dbcPostgresConnectionDetails():R2dbcConnectionDetails -} -R2dbcPostgresConnectionDetails -right-> VaultAdapter:uses -R2dbcPostgresConnectionDetails -up-|> R2dbcConnectionDetails:implements -R2dbcPostgresConnectionDetailsConfiguration -up-> R2dbcPostgresConnectionDetails:uses - - -@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/rabbitmq-connection-details-class-diag.puml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/rabbitmq-connection-details-class-diag.puml deleted file mode 100644 index 0541e12915..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/rabbitmq-connection-details-class-diag.puml +++ /dev/null @@ -1,27 +0,0 @@ -@startuml -'https://plantuml.com/class-diagram - -interface RabbitConnectionDetails { - +getUsername():String - +getPassword():String - +getFirstAddress():Address - +getAddresses():List
-} -class RabbitMQConnectionDetails { - +getUsername():String - +getPassword():String - +getFirstAddress():Address - +getAddresses():List
-} -class VaultAdapter { - +getSecret(String secretKey):String -} -class RabbitMQConnectionDetailsConfiguration { - +getRabbitmqConnection() : RabbitConnectionDetails -} -RabbitMQConnectionDetails -left-> VaultAdapter:uses -RabbitMQConnectionDetails -right-|> RabbitConnectionDetails : implements -RabbitMQConnectionDetailsConfiguration -up-> RabbitMQConnectionDetails:uses - - -@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/redis-connection-details-class-diagram.puml b/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/redis-connection-details-class-diagram.puml deleted file mode 100644 index a18c83a8be..0000000000 --- a/spring-boot-modules/spring-boot-3/src/main/resources/connectiondetails/redis-connection-details-class-diagram.puml +++ /dev/null @@ -1,23 +0,0 @@ -@startuml -'https://plantuml.com/class-diagram - -interface RedisConnectionDetails { - +getPassword():String - +getStandalone():Standalone -} -class RedisCacheConnectionDetails { - +getPassword():String - +getStandalone():Standalone -} -class VaultAdapter { - +getSecret(String secretKey):String -} -class RedisConnectonDetailsConfiguration { - +getRedisCacheConnection():RedisConnectionDetails -} -RedisCacheConnectionDetails -left-> VaultAdapter:uses -RedisCacheConnectionDetails -right-|> RedisConnectionDetails : implements -RedisConnectonDetailsConfiguration -up-> RedisCacheConnectionDetails:uses - - -@enduml \ No newline at end of file diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/CassandraConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/CassandraConnectionDetailsIntegrationTest.java deleted file mode 100644 index 6380f6375f..0000000000 --- a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/CassandraConnectionDetailsIntegrationTest.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.baeldung.connectiondetails; - -import com.baeldung.connectiondetails.configuration.CustomCassandraConnectionDetailsConfiguration; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Import; -import org.springframework.data.cassandra.core.CassandraTemplate; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; - -import static org.junit.jupiter.api.Assertions.assertTrue; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes = ConnectionDetailsApplication.class) -@Import(CustomCassandraConnectionDetailsConfiguration.class) -@ComponentScan(basePackages = "com.baeldung.connectiondetails") -@TestPropertySource(locations = {"classpath:connectiondetails/application-cassandra.properties"}) -@ActiveProfiles("cassandra") -public class CassandraConnectionDetailsIntegrationTest { - private static final Logger logger = LoggerFactory.getLogger(CassandraConnectionDetailsIntegrationTest.class); - @Autowired - private CassandraTemplate cassandraTemplate; - @Test - public void givenHashicorpVault_whenRunQuery_thenSuccess() { - Boolean result = cassandraTemplate.getCqlOperations() - .execute("CREATE KEYSPACE IF NOT EXISTS spring_cassandra" - + " WITH replication = {'class':'SimpleStrategy', 'replication_factor':3}"); - logger.info("the result -" + result); - assertTrue(result); - } -} diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/ElasticsearchConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/ElasticsearchConnectionDetailsIntegrationTest.java deleted file mode 100644 index ad4110c7e5..0000000000 --- a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/ElasticsearchConnectionDetailsIntegrationTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.baeldung.connectiondetails; - -import com.baeldung.connectiondetails.configuration.CustomElasticsearchConnectionDetailsConfiguration; -import com.baeldung.connectiondetails.entity.elastic.Person; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Import; -import org.springframework.data.elasticsearch.client.elc.ElasticsearchTemplate; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; - -import static org.junit.jupiter.api.Assertions.assertTrue; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes = ConnectionDetailsApplication.class) -@Import(CustomElasticsearchConnectionDetailsConfiguration.class) -@ComponentScan(basePackages = "com.baeldung.connectiondetails") -@TestPropertySource(locations = {"classpath:connectiondetails/application-elastic.properties"}) -@ActiveProfiles("elastic") -public class ElasticsearchConnectionDetailsIntegrationTest { - private static final Logger logger = LoggerFactory.getLogger(ElasticsearchConnectionDetailsIntegrationTest.class); - @Autowired - private ElasticsearchTemplate elasticsearchTemplate; - - @Before - public void prepare() { - if (elasticsearchTemplate.indexOps(Person.class).exists()) { - elasticsearchTemplate.indexOps(Person.class).delete(); - } - } - @Test - public void givenHashicorpVault_whenCreateIndexInElastic_thenSuccess() { - - Boolean result = elasticsearchTemplate.indexOps(Person.class).create(); - logger.info("index created:" + result); - assertTrue(result); - } -} diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/JdbcConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/JdbcConnectionDetailsIntegrationTest.java deleted file mode 100644 index 748bc27b0b..0000000000 --- a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/JdbcConnectionDetailsIntegrationTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.baeldung.connectiondetails; - -import com.baeldung.connectiondetails.configuration.JdbcConnectionDetailsConfiguration; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Import; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; - -import java.sql.Date; -import java.time.LocalDate; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes = ConnectionDetailsApplication.class) -@Import(JdbcConnectionDetailsConfiguration.class) -@ComponentScan(basePackages = "com.baeldung.connectiondetails") -@TestPropertySource(locations = {"classpath:connectiondetails/application-jdbc.properties"}) -@ActiveProfiles("jdbc") -public class JdbcConnectionDetailsIntegrationTest { - private static final Logger logger = LoggerFactory.getLogger(JdbcConnectionDetailsIntegrationTest.class); - @Autowired - private JdbcTemplate jdbcTemplate; - @Test - public void givenSecretVault_whenIntegrateWithPostgres_thenConnectionSuccessful() { - String sql = "select current_date;"; - Date date = jdbcTemplate.queryForObject(sql, Date.class); - assertEquals(LocalDate.now().toString(), date.toString()); - } -} diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/MongoDBConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/MongoDBConnectionDetailsIntegrationTest.java deleted file mode 100644 index edd6da3448..0000000000 --- a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/MongoDBConnectionDetailsIntegrationTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.baeldung.connectiondetails; - -import com.baeldung.connectiondetails.configuration.MongoDBConnectionDetailsConfiguration; -import org.json.JSONException; -import org.json.JSONObject; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration; -import org.springframework.boot.autoconfigure.data.r2dbc.R2dbcRepositoriesAutoConfiguration; -import org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Import; -import org.springframework.data.mongodb.core.MongoTemplate; -import org.springframework.data.mongodb.core.query.Query; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes = ConnectionDetailsApplication.class) -@Import(MongoDBConnectionDetailsConfiguration.class) -@ComponentScan(basePackages = "com.baeldung.connectiondetails") -@TestPropertySource(locations = {"classpath:connectiondetails/application-mongo.properties"}) -@ActiveProfiles("mongo") -public class MongoDBConnectionDetailsIntegrationTest { - - @Autowired - private MongoTemplate mongoTemplate; - @Test - public void givenMongoDB_whenExecuteQuery_ReturnResult() throws JSONException { - mongoTemplate.insert("{\"msg\":\"My First Entry in MongoDB\"}", "myDemoCollection"); - String result = mongoTemplate.find(new Query(), String.class, "myDemoCollection").get(0); - - JSONObject jsonObject = new JSONObject(result); - result = jsonObject.get("msg").toString(); - R2dbcAutoConfiguration r2dbcAutoConfiguration; - R2dbcDataAutoConfiguration r2dbcDataAutoConfiguration; - R2dbcRepositoriesAutoConfiguration r2dbcRepositoriesAutoConfiguration; - - assertEquals("My First Entry in MongoDB", result); - } -} - diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/Neo4jConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/Neo4jConnectionDetailsIntegrationTest.java deleted file mode 100644 index 88a9529822..0000000000 --- a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/Neo4jConnectionDetailsIntegrationTest.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.baeldung.connectiondetails; - -import com.baeldung.connectiondetails.configuration.CustomNeo4jConnectionDetailsConfiguration; -import com.baeldung.connectiondetails.entity.neo4j.Person; -import org.junit.After; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Import; -import org.springframework.data.neo4j.core.Neo4jTemplate; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes = ConnectionDetailsApplication.class) -@Import(CustomNeo4jConnectionDetailsConfiguration.class) -@ComponentScan(basePackages = "com.baeldung.connectiondetails") -@TestPropertySource(locations = {"classpath:connectiondetails/application-neo4j.properties"}) -@ActiveProfiles("neo4j") -public class Neo4jConnectionDetailsIntegrationTest { - @Autowired - private Neo4jTemplate neo4jTemplate; - - @After - public void cleanup() { - neo4jTemplate.deleteAll(Person.class); - } - @Test - public void giveHashicorpVault_whenRunQuery_thenSuccess() { - Person person = new Person(); - person.setName("James"); - person.setZipcode("751003"); - - Person data = neo4jTemplate.save(person); - assertEquals("James", data.getName()); - } - -} diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/R2dbcConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/R2dbcConnectionDetailsIntegrationTest.java deleted file mode 100644 index b24071a1f1..0000000000 --- a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/R2dbcConnectionDetailsIntegrationTest.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.baeldung.connectiondetails; - -import com.baeldung.connectiondetails.configuration.R2dbcPostgresConnectionDetailsConfiguration; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.Import; -import org.springframework.data.r2dbc.core.R2dbcEntityTemplate; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; - -import java.util.List; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes = ConnectionDetailsApplication.class) -@Import(R2dbcPostgresConnectionDetailsConfiguration.class) -@TestPropertySource(locations = {"classpath:connectiondetails/application-r2dbc.properties"}) -@ActiveProfiles("r2dbc") -public class R2dbcConnectionDetailsIntegrationTest { - Logger logger = LoggerFactory.getLogger(R2dbcConnectionDetailsIntegrationTest.class); - @Autowired - private R2dbcEntityTemplate r2dbcEntityTemplate; - - @Test - public void givenHashicorpVault_whenQueryPostgresReactive_thenSuccess() { - - String sql = "select * from information_schema.tables"; - - List result = r2dbcEntityTemplate.getDatabaseClient().sql(sql).fetch().all() - .map(r -> { - return "hello " + r.get("table_name").toString(); - - }).collectList().block(); - logger.info("count ------" + result.size()); - } -} diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/RabbitmqConnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/RabbitmqConnectionDetailsIntegrationTest.java deleted file mode 100644 index 2793ac0126..0000000000 --- a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/RabbitmqConnectionDetailsIntegrationTest.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.baeldung.connectiondetails; - -import com.baeldung.connectiondetails.configuration.RabbitMQConnectionDetailsConfiguration; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.amqp.core.Queue; -import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; -import org.springframework.amqp.rabbit.core.RabbitAdmin; -import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.Import; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes = ConnectionDetailsApplication.class) -@Import(RabbitMQConnectionDetailsConfiguration.class) -@TestPropertySource(locations = {"classpath:connectiondetails/application-rabbitmq.properties"}) -@ActiveProfiles("rabbitmq") -public class RabbitmqConnectionDetailsIntegrationTest { - - private static final Logger logger = LoggerFactory.getLogger(RabbitmqConnectionDetailsIntegrationTest.class); - - @Autowired - private RabbitTemplate rabbitTemplate; - - @Autowired - private CachingConnectionFactory connectionFactory; - - private final static String queueName = "Test_Queue"; - - RabbitAdmin rabbitAdmin; - - @Before - public void setup() { - logger.info("create new queue"); - rabbitAdmin = new RabbitAdmin(connectionFactory); - logger.info("creating queue: " + rabbitAdmin.declareQueue(new Queue(queueName))); - connectionFactory.destroy(); - } - - @After - public void cleanup() { - logger.info("delete queue"); - this.rabbitAdmin.deleteQueue(queueName, false, true); - } - @Test - public void givenRabbitmq_whenPublishMessage_thenSuccess() { - logger.info("sending message to queue " + queueName); - final String MSG = "this is a test message"; - this.rabbitTemplate.convertAndSend(queueName, MSG); - assertEquals(MSG, this.rabbitTemplate.receiveAndConvert(queueName)); - } -} diff --git a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/RedisCacheConnnectionDetailsIntegrationTest.java b/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/RedisCacheConnnectionDetailsIntegrationTest.java deleted file mode 100644 index 6ca963a261..0000000000 --- a/spring-boot-modules/spring-boot-3/src/test/java/com/baeldung/connectiondetails/RedisCacheConnnectionDetailsIntegrationTest.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.baeldung.connectiondetails; - -import com.baeldung.connectiondetails.configuration.RedisConnectionDetailsConfiguration; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.Import; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes = ConnectionDetailsApplication.class) -@Import(RedisConnectionDetailsConfiguration.class) -@TestPropertySource(locations = {"classpath:connectiondetails/application-redis.properties"}) -@ActiveProfiles("redis") -public class RedisCacheConnnectionDetailsIntegrationTest { - private static final Logger logger = LoggerFactory.getLogger(RedisCacheConnnectionDetailsIntegrationTest.class); - - @Autowired - RedisTemplate redisTemplate; - - @Test - public void giveRedisCache_whenKeyVal_storeInCache() { - redisTemplate.opsForValue().set("City", "New York"); - assertEquals("New York", redisTemplate.opsForValue().get("City")); - } -} From aafe9dcc6e9b6034ca5cbe467ffc26fac2be30fb Mon Sep 17 00:00:00 2001 From: parthiv39731 <70740707+parthiv39731@users.noreply.github.com> Date: Sat, 14 Oct 2023 22:07:38 +0530 Subject: [PATCH 5/9] BAEL-6910 Added spring-boot-3-2 --- spring-boot-modules/pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-boot-modules/pom.xml b/spring-boot-modules/pom.xml index 2b4a94a7a5..461264012a 100644 --- a/spring-boot-modules/pom.xml +++ b/spring-boot-modules/pom.xml @@ -92,6 +92,7 @@ spring-boot-3-observation spring-boot-3-test-pitfalls spring-boot-3-testcontainers + spring-boot-3-2 spring-boot-resilience4j spring-boot-properties spring-boot-properties-2 From 600e49890be50f8b0886c03b141db6b0c3081d91 Mon Sep 17 00:00:00 2001 From: parthiv39731 <70740707+parthiv39731@users.noreply.github.com> Date: Sat, 14 Oct 2023 22:17:22 +0530 Subject: [PATCH 6/9] BAEL-6910 2 space indents --- .../R2dbcPostgresConnectionDetails.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetails.java b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetails.java index 4ce6abc9d5..613ec83124 100644 --- a/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetails.java +++ b/spring-boot-modules/spring-boot-3-2/src/main/java/com/baeldung/connectiondetails/configuration/R2dbcPostgresConnectionDetails.java @@ -9,13 +9,13 @@ public class R2dbcPostgresConnectionDetails implements R2dbcConnectionDetails { public ConnectionFactoryOptions getConnectionFactoryOptions() { ConnectionFactoryOptions options = ConnectionFactoryOptions.builder() - .option(ConnectionFactoryOptions.DRIVER, "postgresql") - .option(ConnectionFactoryOptions.HOST, VaultAdapter.getSecret("r2dbc_postgres_host")) - .option(ConnectionFactoryOptions.PORT, Integer.valueOf(VaultAdapter.getSecret("r2dbc_postgres_port"))) - .option(ConnectionFactoryOptions.USER, VaultAdapter.getSecret("r2dbc_postgres_user")) - .option(ConnectionFactoryOptions.PASSWORD, VaultAdapter.getSecret("r2dbc_postgres_secret")) - .option(ConnectionFactoryOptions.DATABASE, VaultAdapter.getSecret("r2dbc_postgres_database")) - .build(); + .option(ConnectionFactoryOptions.DRIVER, "postgresql") + .option(ConnectionFactoryOptions.HOST, VaultAdapter.getSecret("r2dbc_postgres_host")) + .option(ConnectionFactoryOptions.PORT, Integer.valueOf(VaultAdapter.getSecret("r2dbc_postgres_port"))) + .option(ConnectionFactoryOptions.USER, VaultAdapter.getSecret("r2dbc_postgres_user")) + .option(ConnectionFactoryOptions.PASSWORD, VaultAdapter.getSecret("r2dbc_postgres_secret")) + .option(ConnectionFactoryOptions.DATABASE, VaultAdapter.getSecret("r2dbc_postgres_database")) + .build(); return options; } From 75ab55e8d241e0bc68223ef873ff16e78cb35bf8 Mon Sep 17 00:00:00 2001 From: parthiv39731 <70740707+parthiv39731@users.noreply.github.com> Date: Sat, 14 Oct 2023 22:57:45 +0530 Subject: [PATCH 7/9] BAEL-6910 corrected name --- spring-boot-modules/spring-boot-3-2/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-modules/spring-boot-3-2/pom.xml b/spring-boot-modules/spring-boot-3-2/pom.xml index 88a60bf881..c28a527da1 100644 --- a/spring-boot-modules/spring-boot-3-2/pom.xml +++ b/spring-boot-modules/spring-boot-3-2/pom.xml @@ -5,7 +5,7 @@ 4.0.0 spring-boot-3-2 0.0.1-SNAPSHOT - spring-boot-3-1 + spring-boot-3-2 Demo project for Spring Boot From f252aed40c15ddf353a582d74ddec6bae5e3efe3 Mon Sep 17 00:00:00 2001 From: parthiv39731 <70740707+parthiv39731@users.noreply.github.com> Date: Sat, 14 Oct 2023 23:22:49 +0530 Subject: [PATCH 8/9] BAEL-6910 removed java version --- spring-boot-modules/spring-boot-3-2/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-modules/spring-boot-3-2/pom.xml b/spring-boot-modules/spring-boot-3-2/pom.xml index c28a527da1..62369f6670 100644 --- a/spring-boot-modules/spring-boot-3-2/pom.xml +++ b/spring-boot-modules/spring-boot-3-2/pom.xml @@ -252,7 +252,7 @@ - 19 + 1.5.2.Final 2.0.0 3.0.0-M7 From ccd0238ff6587d5f3a85a6aba00f365aeba5570b Mon Sep 17 00:00:00 2001 From: parthiv39731 <70740707+parthiv39731@users.noreply.github.com> Date: Sat, 21 Oct 2023 10:58:15 +0530 Subject: [PATCH 9/9] Update pom.xml --- spring-boot-modules/spring-boot-3-2/pom.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/spring-boot-modules/spring-boot-3-2/pom.xml b/spring-boot-modules/spring-boot-3-2/pom.xml index 62369f6670..9e73d8ea32 100644 --- a/spring-boot-modules/spring-boot-3-2/pom.xml +++ b/spring-boot-modules/spring-boot-3-2/pom.xml @@ -252,7 +252,6 @@ - 1.5.2.Final 2.0.0 3.0.0-M7 @@ -260,4 +259,4 @@ 0.2.0 - \ No newline at end of file +