Skip to content

Commit eacfd19

Browse files
committed
Polishing.
1 parent 1851701 commit eacfd19

File tree

13 files changed

+51
-360
lines changed

13 files changed

+51
-360
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/neo4j/Neo4jDataConfiguration.java

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,19 @@
1717
package org.springframework.boot.autoconfigure.data.neo4j;
1818

1919
import org.neo4j.driver.Driver;
20-
2120
import org.springframework.beans.factory.ObjectProvider;
2221
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
2322
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
2423
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2524
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
26-
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
2725
import org.springframework.boot.autoconfigure.data.ConditionalOnRepositoryType;
2826
import org.springframework.boot.autoconfigure.data.RepositoryType;
29-
import org.springframework.boot.autoconfigure.neo4j.Neo4jDriverAutoConfiguration;
27+
import org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration;
3028
import org.springframework.boot.autoconfigure.transaction.TransactionManagerCustomizers;
3129
import org.springframework.context.annotation.Bean;
3230
import org.springframework.context.annotation.Configuration;
3331
import org.springframework.context.annotation.Import;
34-
import org.springframework.core.annotation.Order;
32+
import org.springframework.core.env.Environment;
3533
import org.springframework.data.neo4j.config.Neo4jDefaultCallbacksRegistrar;
3634
import org.springframework.data.neo4j.core.DatabaseSelectionProvider;
3735
import org.springframework.data.neo4j.core.Neo4jClient;
@@ -50,23 +48,18 @@
5048
@Configuration(proxyBeanMethods = false)
5149
@ConditionalOnClass({ Neo4jTransactionManager.class, PlatformTransactionManager.class })
5250
@ConditionalOnRepositoryType(store = "neo4j", type = RepositoryType.IMPERATIVE)
53-
@AutoConfigureAfter(Neo4jDriverAutoConfiguration.class)
51+
@AutoConfigureAfter(Neo4jAutoConfiguration.class)
5452
@AutoConfigureBefore(Neo4jRepositoriesConfiguration.class)
5553
@Import(Neo4jDefaultCallbacksRegistrar.class)
5654
class Neo4jDataConfiguration {
5755

58-
@Bean("databaseSelectionProvider")
59-
@ConditionalOnProperty(prefix = "spring.data.neo4j", name = "database")
60-
@ConditionalOnMissingBean
61-
@Order(-30)
62-
DatabaseSelectionProvider staticDatabaseSelectionProvider(Neo4jDataProperties dataProperties) {
63-
return DatabaseSelectionProvider.createStaticDatabaseSelectionProvider(dataProperties.getDatabase());
64-
}
65-
6656
@Bean("databaseSelectionProvider")
6757
@ConditionalOnMissingBean
68-
@Order(-20)
69-
DatabaseSelectionProvider defaultSelectionProvider() {
58+
DatabaseSelectionProvider defaultSelectionProvider(Environment environment) {
59+
String database = environment.getProperty("spring.data.neo4j.database");
60+
if (database != null) {
61+
return DatabaseSelectionProvider.createStaticDatabaseSelectionProvider(database);
62+
}
7063
return DatabaseSelectionProvider.getDefaultSelectionProvider();
7164
}
7265

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/neo4j/Neo4jDataProperties.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,10 @@
2929
public class Neo4jDataProperties {
3030

3131
/**
32-
* A statically configured database. This property is only applicable when connecting against
33-
* a 4.0 cluster or server and will lead to errors if used with a prior version of Neo4j.
34-
* Leave this null (the default) to indicate that you like the server to decide the default database to use.
32+
* A statically configured database. This property is only applicable when connecting
33+
* against a 4.0 cluster or server and will lead to errors if used with a prior
34+
* version of Neo4j. Leave this null (the default) to indicate that you like the
35+
* server to decide the default database to use.
3536
*/
3637
private String database;
3738

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/neo4j/Neo4jReactiveDataConfiguration.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
2727
import org.springframework.boot.autoconfigure.data.ConditionalOnRepositoryType;
2828
import org.springframework.boot.autoconfigure.data.RepositoryType;
29-
import org.springframework.boot.autoconfigure.neo4j.Neo4jDriverAutoConfiguration;
29+
import org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration;
3030
import org.springframework.context.annotation.Bean;
3131
import org.springframework.context.annotation.Configuration;
3232
import org.springframework.context.annotation.Import;
@@ -49,7 +49,7 @@
4949
@Configuration(proxyBeanMethods = false)
5050
@ConditionalOnClass({ ReactiveNeo4jTransactionManager.class, ReactiveTransactionManager.class, Flux.class })
5151
@ConditionalOnRepositoryType(store = "neo4j", type = RepositoryType.REACTIVE)
52-
@AutoConfigureAfter(Neo4jDriverAutoConfiguration.class)
52+
@AutoConfigureAfter(Neo4jAutoConfiguration.class)
5353
@AutoConfigureBefore(Neo4jReactiveRepositoriesConfiguration.class)
5454
@Import(Neo4jDefaultReactiveCallbacksRegistrar.class)
5555
class Neo4jReactiveDataConfiguration {

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/neo4j/MockedDriverConfiguration.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@
2828
import static org.mockito.Mockito.when;
2929

3030
/**
31-
* Driver configuration mocked to avoid instantiation of a real driver with connection creation.
31+
* Driver configuration mocked to avoid instantiation of a real driver with connection
32+
* creation.
3233
*
3334
* @author Michael J. Simons
3435
*/

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/neo4j/Neo4jDataAutoConfigurationTests.java

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.junit.jupiter.api.Test;
2323
import org.neo4j.driver.Driver;
2424
import org.springframework.boot.autoconfigure.AutoConfigurations;
25-
import org.springframework.boot.autoconfigure.neo4j.Neo4jDriverAutoConfiguration;
25+
import org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration;
2626
import org.springframework.boot.test.context.FilteredClassLoader;
2727
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
2828
import org.springframework.context.annotation.Bean;
@@ -44,8 +44,8 @@ class Neo4jDataAutoConfigurationTests {
4444

4545
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
4646
.withPropertyValues("spring.data.neo4j.repositories.type=imperative")
47-
.withUserConfiguration(MockedDriverConfiguration.class).withConfiguration(
48-
AutoConfigurations.of(Neo4jDriverAutoConfiguration.class, Neo4jDataAutoConfiguration.class));
47+
.withUserConfiguration(MockedDriverConfiguration.class)
48+
.withConfiguration(AutoConfigurations.of(Neo4jAutoConfiguration.class, Neo4jDataAutoConfiguration.class));
4949

5050
@Test
5151
void shouldProvideConversions() {
@@ -101,20 +101,18 @@ void shouldNotReplaceExistingNeo4jClient() {
101101
.run(ctx -> assertThat(ctx).hasSingleBean(Neo4jClient.class).hasBean("myCustomClient"));
102102
}
103103

104-
105104
@Test
106105
void shouldCreateNewNeo4jTemplate() {
107-
contextRunner.withUserConfiguration(ConfigurationWithExistingDatabaseSelectionProvider.class)
108-
.run(ctx -> {
109-
assertThat(ctx).hasSingleBean(Neo4jTemplate.class);
110-
111-
// Verify that the template uses the provided database name
112-
// provider
113-
Neo4jTemplate template = ctx.getBean(Neo4jTemplate.class);
114-
DatabaseSelectionProvider provider = (DatabaseSelectionProvider) ReflectionTestUtils
115-
.getField(template, "databaseSelectionProvider");
116-
assertThat(provider).isSameAs(ctx.getBean(DatabaseSelectionProvider.class));
117-
});
106+
contextRunner.withUserConfiguration(ConfigurationWithExistingDatabaseSelectionProvider.class).run(ctx -> {
107+
assertThat(ctx).hasSingleBean(Neo4jTemplate.class);
108+
109+
// Verify that the template uses the provided database name
110+
// provider
111+
Neo4jTemplate template = ctx.getBean(Neo4jTemplate.class);
112+
DatabaseSelectionProvider provider = (DatabaseSelectionProvider) ReflectionTestUtils.getField(template,
113+
"databaseSelectionProvider");
114+
assertThat(provider).isSameAs(ctx.getBean(DatabaseSelectionProvider.class));
115+
});
118116
}
119117

120118
@Test
@@ -125,17 +123,16 @@ void shouldNotReplaceExistingNeo4jTemplate() {
125123

126124
@Test
127125
void shouldCreateNewTransactionManager() {
128-
contextRunner.withUserConfiguration(ConfigurationWithExistingDatabaseSelectionProvider.class)
129-
.run(ctx -> {
130-
assertThat(ctx).hasSingleBean(Neo4jTransactionManager.class);
131-
132-
// Verify that the transaction manager uses the provided
133-
// database name provider
134-
Neo4jTransactionManager transactionManager = ctx.getBean(Neo4jTransactionManager.class);
135-
DatabaseSelectionProvider provider = (DatabaseSelectionProvider) ReflectionTestUtils
136-
.getField(transactionManager, "databaseSelectionProvider");
137-
assertThat(provider).isSameAs(ctx.getBean(DatabaseSelectionProvider.class));
138-
});
126+
contextRunner.withUserConfiguration(ConfigurationWithExistingDatabaseSelectionProvider.class).run(ctx -> {
127+
assertThat(ctx).hasSingleBean(Neo4jTransactionManager.class);
128+
129+
// Verify that the transaction manager uses the provided
130+
// database name provider
131+
Neo4jTransactionManager transactionManager = ctx.getBean(Neo4jTransactionManager.class);
132+
DatabaseSelectionProvider provider = (DatabaseSelectionProvider) ReflectionTestUtils
133+
.getField(transactionManager, "databaseSelectionProvider");
134+
assertThat(provider).isSameAs(ctx.getBean(DatabaseSelectionProvider.class));
135+
});
139136
}
140137

141138
@Test

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/neo4j/Neo4jRepositoriesAutoConfigurationIntegrationTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import org.springframework.beans.factory.annotation.Autowired;
2121
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
2222
import org.springframework.boot.autoconfigure.data.neo4j.country.CountryRepository;
23-
import org.springframework.boot.autoconfigure.neo4j.Neo4jDriverAutoConfiguration;
23+
import org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration;
2424
import org.springframework.boot.test.context.SpringBootTest;
2525
import org.springframework.context.annotation.Configuration;
2626
import org.springframework.data.neo4j.repository.config.EnableNeo4jRepositories;
@@ -67,7 +67,7 @@ void ensureRepositoryIsReady() {
6767

6868
@Configuration
6969
@EnableNeo4jRepositories(basePackageClasses = CountryRepository.class)
70-
@ImportAutoConfiguration({ Neo4jDriverAutoConfiguration.class, Neo4jDataAutoConfiguration.class,
70+
@ImportAutoConfiguration({ Neo4jAutoConfiguration.class, Neo4jDataAutoConfiguration.class,
7171
Neo4jRepositoriesAutoConfiguration.class })
7272
static class TestConfiguration {
7373

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/neo4j/ReactiveNeo4jDataAutoConfigurationTests.java

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import org.junit.jupiter.api.Test;
2727
import org.neo4j.driver.Driver;
2828
import org.springframework.boot.autoconfigure.AutoConfigurations;
29-
import org.springframework.boot.autoconfigure.neo4j.Neo4jDriverAutoConfiguration;
29+
import org.springframework.boot.autoconfigure.neo4j.Neo4jAutoConfiguration;
3030
import org.springframework.boot.test.context.FilteredClassLoader;
3131
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
3232
import org.springframework.context.annotation.Bean;
@@ -48,8 +48,8 @@ class ReactiveNeo4jDataAutoConfigurationTests {
4848

4949
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
5050
.withPropertyValues("spring.data.neo4j.repositories.type=reactive")
51-
.withUserConfiguration(MockedDriverConfiguration.class).withConfiguration(
52-
AutoConfigurations.of(Neo4jDriverAutoConfiguration.class, Neo4jDataAutoConfiguration.class));
51+
.withUserConfiguration(MockedDriverConfiguration.class)
52+
.withConfiguration(AutoConfigurations.of(Neo4jAutoConfiguration.class, Neo4jDataAutoConfiguration.class));
5353

5454
@Test
5555
void shouldProvideConversions() {
@@ -62,8 +62,7 @@ void shouldProvideDefaultDatabaseNameProvider() {
6262
assertThat(ctx).hasSingleBean(ReactiveDatabaseSelectionProvider.class);
6363
ReactiveDatabaseSelectionProvider databaseNameProvider = ctx
6464
.getBean(ReactiveDatabaseSelectionProvider.class);
65-
assertThat(databaseNameProvider)
66-
.isSameAs(ReactiveDatabaseSelectionProvider.getDefaultSelectionProvider());
65+
assertThat(databaseNameProvider).isSameAs(ReactiveDatabaseSelectionProvider.getDefaultSelectionProvider());
6766
});
6867
}
6968

@@ -85,8 +84,7 @@ void shouldRespectExistingDatabaseNameProvider() {
8584
assertThat(ctx).hasSingleBean(ReactiveDatabaseSelectionProvider.class);
8685
ReactiveDatabaseSelectionProvider databaseNameProvider = ctx
8786
.getBean(ReactiveDatabaseSelectionProvider.class);
88-
StepVerifier
89-
.create(databaseNameProvider.getDatabaseSelection().map(DatabaseSelection::getValue))
87+
StepVerifier.create(databaseNameProvider.getDatabaseSelection().map(DatabaseSelection::getValue))
9088
.expectNext("whatever").expectComplete();
9189
});
9290
}
@@ -101,7 +99,6 @@ void shouldRequireAllNeededClasses() {
10199
.doesNotHaveBean(ReactiveNeo4jTransactionManager.class));
102100
}
103101

104-
105102
@Test
106103
void shouldCreateNewReactiveNeo4jClient() {
107104
contextRunner.run(ctx -> assertThat(ctx).hasSingleBean(ReactiveNeo4jClient.class));
@@ -110,11 +107,9 @@ void shouldCreateNewReactiveNeo4jClient() {
110107
@Test
111108
void shouldNotReplaceExistingReactiveNeo4jClient() {
112109
contextRunner.withUserConfiguration(ConfigurationWithExistingReactiveClient.class)
113-
.run(ctx -> assertThat(ctx).hasSingleBean(ReactiveNeo4jClient.class)
114-
.hasBean("myCustomReactiveClient"));
110+
.run(ctx -> assertThat(ctx).hasSingleBean(ReactiveNeo4jClient.class).hasBean("myCustomReactiveClient"));
115111
}
116112

117-
118113
@Test
119114
void shouldCreateNewNeo4jTemplate() {
120115
contextRunner.withUserConfiguration(ConfigurationWithExistingReactiveDatabaseSelectionProvider.class)
@@ -132,9 +127,8 @@ void shouldCreateNewNeo4jTemplate() {
132127

133128
@Test
134129
void shouldNotReplaceExistingNeo4jTemplate() {
135-
contextRunner.withUserConfiguration(ConfigurationWithExistingReactiveTemplate.class)
136-
.run(ctx -> assertThat(ctx).hasSingleBean(ReactiveNeo4jOperations.class)
137-
.hasBean("myCustomReactiveOperations"));
130+
contextRunner.withUserConfiguration(ConfigurationWithExistingReactiveTemplate.class).run(ctx -> assertThat(ctx)
131+
.hasSingleBean(ReactiveNeo4jOperations.class).hasBean("myCustomReactiveOperations"));
138132
}
139133

140134
@Test
@@ -160,7 +154,6 @@ void shouldHonourExistingTransactionManager() {
160154
.hasBean("myCustomReactiveTransactionManager"));
161155
}
162156

163-
164157
@Configuration
165158
static class ConfigurationWithExistingReactiveClient {
166159

spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/data/neo4j/Neo4jVersionMismatchException.java

Lines changed: 0 additions & 52 deletions
This file was deleted.

spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/data/neo4j/ReactiveCapableNeo4jVersionAssertion.java

Lines changed: 0 additions & 53 deletions
This file was deleted.

0 commit comments

Comments
 (0)