Skip to content

Commit 9e157dc

Browse files
Polishing.
Update exception messages, align method names, extract methods Original Pull Request: #2488
1 parent 70cda79 commit 9e157dc

File tree

5 files changed

+40
-43
lines changed

5 files changed

+40
-43
lines changed

src/main/java/org/springframework/data/repository/config/CustomRepositoryImplementationDetector.java

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -108,27 +108,23 @@ public Optional<AbstractBeanDefinition> detectCustomImplementation(Implementatio
108108
.filter(lookup::matches) //
109109
.collect(StreamUtils.toUnmodifiableSet());
110110

111-
return selectImplementationCandidate(lookup, definitions, () -> {
112-
113-
if (definitions.isEmpty()) {
114-
return Optional.empty();
115-
}
116-
117-
return Optional.of(definitions.iterator().next());
118-
});
111+
return selectImplementationCandidate(lookup, definitions);
119112
}
120113

121114
private static Optional<AbstractBeanDefinition> selectImplementationCandidate(
122-
ImplementationLookupConfiguration lookup, Set<BeanDefinition> definitions,
123-
Supplier<Optional<BeanDefinition>> fallback) {
115+
ImplementationLookupConfiguration lookup, Set<BeanDefinition> definitions) {
124116

125117
return SelectionSet //
126-
.of(definitions, c -> c.isEmpty() ? fallback.get() : throwAmbiguousCustomImplementationException(c)) //
118+
.of(definitions, c -> c.isEmpty() ? firstOrEmptyBeanDefinition(definitions) : throwAmbiguousCustomImplementationException(c)) //
127119
.filterIfNecessary(lookup::hasMatchingBeanName) //
128120
.uniqueResult() //
129121
.map(AbstractBeanDefinition.class::cast);
130122
}
131123

124+
static Optional<BeanDefinition> firstOrEmptyBeanDefinition(Set<BeanDefinition> definitions) {
125+
return definitions.isEmpty() ? Optional.empty() : Optional.of(definitions.iterator().next());
126+
}
127+
132128
private Set<BeanDefinition> findCandidateBeanDefinitions(ImplementationDetectionConfiguration config) {
133129

134130
String postfix = config.getImplementationPostfix();

src/main/java/org/springframework/data/repository/config/DefaultImplementationLookupConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class DefaultImplementationLookupConfiguration implements ImplementationLookupCo
4646

4747
Assert.notNull(config, "ImplementationDetectionConfiguration must not be null");
4848
Assert.hasText(interfaceName, "Interface name must not be null or empty");
49-
Assert.hasText(beanName, "Bean name must not be null or empty!");
49+
Assert.hasText(beanName, "Bean name must not be null or empty");
5050

5151
this.config = config;
5252
this.interfaceName = interfaceName;

src/main/java/org/springframework/data/repository/config/RepositoryBeanDefinitionBuilder.java

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727

2828
import org.apache.commons.logging.Log;
2929
import org.apache.commons.logging.LogFactory;
30-
3130
import org.springframework.beans.factory.config.BeanDefinition;
3231
import org.springframework.beans.factory.config.RuntimeBeanReference;
3332
import org.springframework.beans.factory.support.AbstractBeanDefinition;
@@ -195,31 +194,8 @@ private Optional<String> registerCustomImplementation(RepositoryConfiguration<?>
195194
return Optional.of(configurationBeanName);
196195
}
197196

198-
Optional<AbstractBeanDefinition> beanDefinition = implementationDetector.detectCustomImplementation(lookup);
199-
200-
return beanDefinition.map(it -> {
201-
202-
String scannedBeanName = configuration.getConfigurationSource().generateBeanName(it);
203-
it.setSource(configuration.getSource());
204-
205-
if (registry.containsBeanDefinition(scannedBeanName)) {
206-
207-
if (logger.isDebugEnabled()) {
208-
logger.debug(String.format("Custom repository implementation already registered: %s %s", scannedBeanName,
209-
it.getBeanClassName()));
210-
}
211-
} else {
212-
213-
if (logger.isDebugEnabled()) {
214-
logger.debug(String.format("Registering custom repository implementation: %s %s", scannedBeanName,
215-
it.getBeanClassName()));
216-
}
217-
218-
registry.registerBeanDefinition(scannedBeanName, it);
219-
}
220-
221-
return scannedBeanName;
222-
});
197+
return implementationDetector.detectCustomImplementation(lookup)
198+
.map(it -> potentiallyRegisterRepositoryImplementation(configuration, it));
223199
}
224200

225201
private String registerRepositoryFragments(RepositoryConfiguration<?> configuration) {
@@ -264,6 +240,31 @@ private Optional<RepositoryFragmentConfiguration> detectRepositoryFragmentConfig
264240
configuration.getConfigurationSource().generateBeanName(bd)));
265241
}
266242

243+
private String potentiallyRegisterRepositoryImplementation(RepositoryConfiguration<?> configuration,
244+
AbstractBeanDefinition beanDefinition) {
245+
246+
String targetBeanName = configuration.getConfigurationSource().generateBeanName(beanDefinition);
247+
beanDefinition.setSource(configuration.getSource());
248+
249+
if (registry.containsBeanDefinition(targetBeanName)) {
250+
251+
if (logger.isDebugEnabled()) {
252+
logger.debug(String.format("Custom repository implementation already registered: %s %s", targetBeanName,
253+
beanDefinition.getBeanClassName()));
254+
}
255+
} else {
256+
257+
if (logger.isDebugEnabled()) {
258+
logger.debug(String.format("Registering custom repository implementation: %s %s", targetBeanName,
259+
beanDefinition.getBeanClassName()));
260+
}
261+
262+
registry.registerBeanDefinition(targetBeanName, beanDefinition);
263+
}
264+
265+
return targetBeanName;
266+
}
267+
267268
private void potentiallyRegisterFragmentImplementation(RepositoryConfiguration<?> repositoryConfiguration,
268269
RepositoryFragmentConfiguration fragmentConfiguration) {
269270

src/main/java/org/springframework/data/repository/config/RepositoryFragmentConfiguration.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,9 @@ public RepositoryFragmentConfiguration(String interfaceName, AbstractBeanDefinit
7575
private RepositoryFragmentConfiguration(String interfaceName, String className,
7676
Optional<AbstractBeanDefinition> beanDefinition, String beanName) {
7777

78-
Assert.hasText(interfaceName, "Interface name must not be null or empty!");
79-
Assert.notNull(beanDefinition, "Bean definition must not be null!");
80-
Assert.notNull(beanName, "Bean name must not be null!");
78+
Assert.hasText(interfaceName, "Interface name must not be null or empty");
79+
Assert.notNull(beanDefinition, "Bean definition must not be null");
80+
Assert.notNull(beanName, "Bean name must not be null");
8181

8282
this.interfaceName = interfaceName;
8383
this.className = className;

src/main/java/org/springframework/data/repository/core/RepositoryInformationSupport.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ public abstract class RepositoryInformationSupport implements RepositoryInformat
4646

4747
public RepositoryInformationSupport(Supplier<RepositoryMetadata> metadata, Supplier<Class<?>> repositoryBaseClass) {
4848

49-
Assert.notNull(metadata, "Repository metadata must not be null!");
50-
Assert.notNull(repositoryBaseClass, "Repository base class must not be null!");
49+
Assert.notNull(metadata, "Repository metadata must not be null");
50+
Assert.notNull(repositoryBaseClass, "Repository base class must not be null");
5151

5252
this.metadata = Lazy.of(metadata);
5353
this.repositoryBaseClass = Lazy.of(repositoryBaseClass);

0 commit comments

Comments
 (0)