BAEL-6910, Spring Boot 3.1's ConnectionDetails abstraction
This commit is contained in:
@@ -94,6 +94,75 @@
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-testcontainers</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.testcontainers</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.testcontainers</groupId>
|
||||
<artifactId>junit-jupiter</artifactId>
|
||||
<version>${testcontainers.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.postgresql</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-amqp</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.amqp</groupId>
|
||||
<artifactId>spring-rabbit-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.data</groupId>
|
||||
<artifactId>spring-data-redis</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>redis.clients</groupId>
|
||||
<artifactId>jedis</artifactId>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-redis</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.postgresql</groupId>
|
||||
<artifactId>r2dbc-postgresql</artifactId>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-r2dbc</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.projectreactor</groupId>
|
||||
<artifactId>reactor-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-cassandra</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-neo4j</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<profiles>
|
||||
@@ -189,6 +258,7 @@
|
||||
<mockserver.version>5.14.0</mockserver.version>
|
||||
<spring-boot.version>3.1.0</spring-boot.version>
|
||||
<lombok-mapstruct-binding.version>0.2.0</lombok-mapstruct-binding.version>
|
||||
<testcontainers.version>1.18.3</testcontainers.version>
|
||||
</properties>
|
||||
|
||||
</project>
|
||||
+16
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
+107
@@ -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";
|
||||
}
|
||||
}
|
||||
+32
@@ -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<Node> 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";
|
||||
}
|
||||
}
|
||||
+17
@@ -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();
|
||||
}
|
||||
}
|
||||
+29
@@ -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<Node> 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");
|
||||
}
|
||||
|
||||
}
|
||||
+17
@@ -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();
|
||||
}
|
||||
}
|
||||
+24
@@ -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"));
|
||||
}
|
||||
}
|
||||
+17
@@ -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();
|
||||
}
|
||||
}
|
||||
+17
@@ -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();
|
||||
}
|
||||
}
|
||||
+14
@@ -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"));
|
||||
}
|
||||
}
|
||||
|
||||
+17
@@ -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();
|
||||
}
|
||||
}
|
||||
+21
@@ -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");
|
||||
}
|
||||
}
|
||||
+22
@@ -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;
|
||||
}
|
||||
}
|
||||
+17
@@ -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();
|
||||
}
|
||||
}
|
||||
+34
@@ -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<Address> getAddresses() {
|
||||
return List.of(this.getFirstAddress());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Address getFirstAddress() {
|
||||
return new Address(VaultAdapter.getSecret("rabbitmq_host"),
|
||||
Integer.parseInt(VaultAdapter.getSecret("rabbitmq_port")));
|
||||
}
|
||||
}
|
||||
+17
@@ -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();
|
||||
}
|
||||
}
|
||||
+26
@@ -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"));
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
+17
@@ -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();
|
||||
}
|
||||
}
|
||||
+27
@@ -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;
|
||||
}
|
||||
}
|
||||
+27
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
@@ -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:
|
||||
|
||||
+11
@@ -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
|
||||
+7
@@ -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
|
||||
+7
@@ -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
|
||||
+8
@@ -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
|
||||
+7
@@ -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
|
||||
+7
@@ -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
|
||||
+7
@@ -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
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user