Skip to content

Commit 2add65f

Browse files
committed
Polish Neo4J BookmarkManager auto-configuration
Closes gh-14568
1 parent b7847d9 commit 2add65f

File tree

3 files changed

+16
-23
lines changed

3 files changed

+16
-23
lines changed

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

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
import com.github.benmanes.caffeine.cache.Caffeine;
2020

21-
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
2221
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
2322
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2423
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
@@ -41,7 +40,7 @@
4140
* bound to the application or the request, as recommend by Spring Data Neo4j.
4241
*
4342
* @author Michael Simons
44-
* @since 2.1
43+
* @since 2.1.0
4544
*/
4645
@Configuration
4746
@ConditionalOnClass({ Caffeine.class, CaffeineCacheManager.class })
@@ -50,17 +49,16 @@
5049
BookmarkInterceptor.class })
5150
class Neo4jBookmarkManagementConfiguration {
5251

53-
static final String BOOKMARK_MANAGER_BEAN_NAME = "bookmarkManager";
52+
private static final String BOOKMARK_MANAGER_BEAN_NAME = "bookmarkManager";
5453

5554
@Bean(BOOKMARK_MANAGER_BEAN_NAME)
56-
@Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.INTERFACES)
5755
@ConditionalOnWebApplication
56+
@Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.INTERFACES)
5857
public BookmarkManager requestScopedBookmarkManager() {
5958
return new CaffeineBookmarkManager();
6059
}
6160

6261
@Bean(BOOKMARK_MANAGER_BEAN_NAME)
63-
@Scope(ConfigurableBeanFactory.SCOPE_SINGLETON)
6462
@ConditionalOnNotWebApplication
6563
public BookmarkManager singletonScopedBookmarkManager() {
6664
return new CaffeineBookmarkManager();

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@
5353
* @author Vince Bickers
5454
* @author Stephane Nicoll
5555
* @author Kazuki Shimizu
56-
* @author Michael Simons
5756
* @since 1.4.0
5857
*/
5958
@Configuration

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

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2017 the original author or authors.
2+
* Copyright 2012-2018 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -16,17 +16,15 @@
1616

1717
package org.springframework.boot.autoconfigure.data.neo4j;
1818

19-
import java.util.function.Predicate;
20-
2119
import com.github.benmanes.caffeine.cache.Caffeine;
22-
import org.assertj.core.api.Condition;
2320
import org.junit.Test;
2421
import org.neo4j.ogm.session.Session;
2522
import org.neo4j.ogm.session.SessionFactory;
2623
import org.neo4j.ogm.session.event.Event;
2724
import org.neo4j.ogm.session.event.EventListener;
2825
import org.neo4j.ogm.session.event.PersistenceEvent;
2926

27+
import org.springframework.beans.factory.config.BeanDefinition;
3028
import org.springframework.boot.autoconfigure.AutoConfigurationPackages;
3129
import org.springframework.boot.autoconfigure.AutoConfigurations;
3230
import org.springframework.boot.autoconfigure.data.neo4j.city.City;
@@ -36,7 +34,6 @@
3634
import org.springframework.boot.test.context.FilteredClassLoader;
3735
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
3836
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
39-
import org.springframework.context.ConfigurableApplicationContext;
4037
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
4138
import org.springframework.context.annotation.Bean;
4239
import org.springframework.context.annotation.Configuration;
@@ -160,18 +157,14 @@ public void eventListenersAreAutoRegistered() {
160157

161158
@Test
162159
public void providesARequestScopedBookmarkManangerIfNecessaryAndPossible() {
163-
Predicate<ConfigurableApplicationContext> hasRequestScopedBookmarkManager = (
164-
context) -> context.getBeanFactory() //
165-
.getBeanDefinition("scopedTarget."
166-
+ Neo4jBookmarkManagementConfiguration.BOOKMARK_MANAGER_BEAN_NAME) //
167-
.getScope() //
168-
.equals(WebApplicationContext.SCOPE_REQUEST);
169-
170160
this.contextRunner
171161
.withUserConfiguration(BookmarkManagementEnabledConfiguration.class)
172-
.run((context) -> assertThat(context)
173-
.satisfies(new Condition<>(hasRequestScopedBookmarkManager,
174-
"hasRequestScopedBookmarkManager")));
162+
.run((context) -> {
163+
BeanDefinition bookmarkManagerBean = context.getBeanFactory()
164+
.getBeanDefinition("scopedTarget.bookmarkManager");
165+
assertThat(bookmarkManagerBean.getScope())
166+
.isEqualTo(WebApplicationContext.SCOPE_REQUEST);
167+
});
175168
}
176169

177170
@Test
@@ -181,8 +174,11 @@ public void providesASingletonScopedBookmarkManangerIfNecessaryAndPossible() {
181174
BookmarkManagementEnabledConfiguration.class)
182175
.withConfiguration(AutoConfigurations.of(Neo4jDataAutoConfiguration.class,
183176
TransactionAutoConfiguration.class))
184-
.run((context) -> assertThat(context)
185-
.hasSingleBean(BookmarkManager.class));
177+
.run((context) -> {
178+
assertThat(context).hasSingleBean(BookmarkManager.class);
179+
assertThat(context.getBeanDefinitionNames())
180+
.doesNotContain("scopedTarget.bookmarkManager");
181+
});
186182
}
187183

188184
@Test

0 commit comments

Comments
 (0)