#382 - Adapt examples to Spring Boot 2.1 changes.

Replace custom configuration with the one that Boot provides. Adapt to DataMongo configuration that requires a MongoClient bean.
This commit is contained in:
Mark Paluch
2018-07-26 11:53:47 +02:00
parent 1c56cf8fba
commit 3a4a9d27b2
10 changed files with 39 additions and 155 deletions

View File

@@ -15,15 +15,9 @@
*/
package example.springdata.cassandra.basic;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.cassandra.config.AbstractCassandraConfiguration;
import org.springframework.data.cassandra.config.SchemaAction;
import org.springframework.data.cassandra.core.CassandraTemplate;
import org.springframework.data.cassandra.repository.config.EnableCassandraRepositories;
import com.datastax.driver.core.Session;
/**
* Basic {@link Configuration} to create the necessary schema for the {@link User} table.
@@ -32,32 +26,7 @@ import com.datastax.driver.core.Session;
* @author Thomas Darimont
* @author Mark Paluch
*/
@Configuration
@EnableAutoConfiguration
@SpringBootApplication
@EntityScan(basePackageClasses = User.class)
class BasicConfiguration {
@Configuration
@EnableCassandraRepositories
static class CassandraConfig extends AbstractCassandraConfiguration {
@Override
public String getKeyspaceName() {
return "example";
}
@Bean
public CassandraTemplate cassandraTemplate(Session session) {
return new CassandraTemplate(session);
}
@Override
public String[] getEntityBasePackages() {
return new String[] { User.class.getPackage().getName() };
}
@Override
public SchemaAction getSchemaAction() {
return SchemaAction.RECREATE;
}
}
}

View File

@@ -19,12 +19,12 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.convert.converter.Converter;
import org.springframework.data.cassandra.config.AbstractCassandraConfiguration;
import org.springframework.data.cassandra.config.SchemaAction;
import org.springframework.data.cassandra.core.convert.CassandraCustomConversions;
import org.springframework.data.cassandra.repository.config.EnableCassandraRepositories;
import org.springframework.util.StringUtils;
import com.datastax.driver.core.Row;
@@ -35,26 +35,11 @@ import com.fasterxml.jackson.databind.ObjectMapper;
*
* @author Mark Paluch
*/
@Configuration
@EnableCassandraRepositories
class ConverterConfiguration extends AbstractCassandraConfiguration {
@SpringBootApplication
@EntityScan(basePackageClasses = Addressbook.class)
class ConverterConfiguration {
@Override
public String getKeyspaceName() {
return "example";
}
@Override
public String[] getEntityBasePackages() {
return new String[] { Addressbook.class.getPackage().getName() };
}
@Override
public SchemaAction getSchemaAction() {
return SchemaAction.RECREATE;
}
@Override
@Bean
public CassandraCustomConversions customConversions() {
List<Converter<?, ?>> converters = new ArrayList<>();

View File

@@ -15,38 +15,16 @@
*/
package example.springdata.cassandra.projection;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.cassandra.config.AbstractCassandraConfiguration;
import org.springframework.data.cassandra.config.SchemaAction;
import org.springframework.data.cassandra.repository.config.EnableCassandraRepositories;
/**
* Basic {@link Configuration} to create the necessary schema for the {@link Customer} table.
*
* @author Mark Paluch
*/
@Configuration
@EnableAutoConfiguration
@SpringBootApplication
@EntityScan(basePackageClasses = Customer.class)
class ProjectionConfiguration {
@Configuration
@EnableCassandraRepositories
static class CassandraConfig extends AbstractCassandraConfiguration {
@Override
public String getKeyspaceName() {
return "example";
}
@Override
public String[] getEntityBasePackages() {
return new String[] { Customer.class.getPackage().getName() };
}
@Override
public SchemaAction getSchemaAction() {
return SchemaAction.RECREATE;
}
}
}

View File

@@ -0,0 +1,2 @@
spring.data.cassandra.keyspace-name=example
spring.data.cassandra.schema-action=recreate

View File

@@ -15,31 +15,11 @@
*/
package example.springdata.cassandra.java8;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.cassandra.config.AbstractCassandraConfiguration;
import org.springframework.data.cassandra.config.SchemaAction;
import org.springframework.data.cassandra.repository.config.EnableCassandraRepositories;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author Mark Paluch
*/
@Configuration
@EnableAutoConfiguration
@SpringBootApplication
class CassandraConfiguration {
@Configuration
@EnableCassandraRepositories
static class CassandraConfig extends AbstractCassandraConfiguration {
@Override
public String getKeyspaceName() {
return "example";
}
@Override
public SchemaAction getSchemaAction() {
return SchemaAction.RECREATE;
}
}
}

View File

@@ -0,0 +1,2 @@
spring.data.cassandra.keyspace-name=example
spring.data.cassandra.schema-action=recreate

View File

@@ -16,27 +16,12 @@
package example.springdata.cassandra.people;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration;
import org.springframework.data.cassandra.config.AbstractReactiveCassandraConfiguration;
import org.springframework.data.cassandra.config.SchemaAction;
import org.springframework.data.cassandra.repository.config.EnableReactiveCassandraRepositories;
/**
* Simple configuration for reactive Cassandra support.
*
* @author Mark Paluch
*/
@SpringBootApplication(exclude = CassandraDataAutoConfiguration.class)
@EnableReactiveCassandraRepositories
class ApplicationConfiguration extends AbstractReactiveCassandraConfiguration {
@Override
protected String getKeyspaceName() {
return "example";
}
@Override
public SchemaAction getSchemaAction() {
return SchemaAction.RECREATE;
}
@SpringBootApplication
class ApplicationConfiguration {
}

View File

@@ -1,2 +1,4 @@
spring.data.cassandra.keyspace-name=example
spring.data.cassandra.schema-action=recreate
logging.level.org.springframework.data.cassandra=INFO

View File

@@ -50,6 +50,7 @@ import org.springframework.data.mongodb.core.messaging.MessageListenerContainer;
import org.springframework.data.mongodb.core.messaging.Subscription;
import org.springframework.test.context.junit4.SpringRunner;
import com.mongodb.MongoClient;
import com.mongodb.client.model.changestream.ChangeStreamDocument;
import com.mongodb.reactivestreams.client.MongoClients;
@@ -83,6 +84,17 @@ public class ChangeStreamsTests {
@SpringBootApplication(exclude = EmbeddedMongoAutoConfiguration.class)
static class Config {
/**
* Configure {@link MongoClient} to enable
* {@link org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration}.
*
* @return the {@link MongoClient}.
*/
@Bean
MongoClient mongoClient() {
return replSet.getMongoClient();
}
/**
* Configure {@link SimpleMongoDbFactory} pointing to the embedded MongoDB connection.
*

View File

@@ -15,22 +15,9 @@
*/
package example.springdata.mongodb.people;
import lombok.RequiredArgsConstructor;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration;
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
import org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.DependsOn;
import org.springframework.core.env.Environment;
import org.springframework.data.mongodb.config.AbstractReactiveMongoConfiguration;
import org.springframework.data.mongodb.core.mapping.event.LoggingEventListener;
import org.springframework.data.mongodb.repository.config.EnableReactiveMongoRepositories;
import com.mongodb.reactivestreams.client.MongoClient;
import com.mongodb.reactivestreams.client.MongoClients;
/**
* Simple configuration that registers a {@link LoggingEventListener} to demonstrate mapping behavior when streaming
@@ -38,29 +25,11 @@ import com.mongodb.reactivestreams.client.MongoClients;
*
* @author Mark Paluch
*/
@SpringBootApplication(exclude = { MongoAutoConfiguration.class, MongoDataAutoConfiguration.class })
@EnableReactiveMongoRepositories
@AutoConfigureAfter(EmbeddedMongoAutoConfiguration.class)
@RequiredArgsConstructor
class ApplicationConfiguration extends AbstractReactiveMongoConfiguration {
private final Environment environment;
@SpringBootApplication
class ApplicationConfiguration {
@Bean
public LoggingEventListener mongoEventListener() {
return new LoggingEventListener();
}
@Override
@Bean
@DependsOn("embeddedMongoServer")
public MongoClient reactiveMongoClient() {
int port = environment.getProperty("local.mongo.port", Integer.class);
return MongoClients.create(String.format("mongodb://localhost:%d", port));
}
@Override
protected String getDatabaseName() {
return "reactive";
}
}