From 8fe3b9983a0af8e1d1e774bc048e261a875ea2ba Mon Sep 17 00:00:00 2001 From: Oliver Drotbohm Date: Mon, 9 Dec 2019 17:29:37 +0100 Subject: [PATCH] DATACMNS-1620 - Repository bean definitions now contain human readable resource descriptions. We now expose human readable resource descriptions based on RepositoryConfiguration and RepositoryConfigurationSource. Spring Boot uses those to describe problematic bean definitions in case it detects errors in the application setup. --- .../AnnotationRepositoryConfigurationSource.java | 13 +++++++++++++ .../config/DefaultRepositoryConfiguration.java | 10 ++++++++++ .../repository/config/RepositoryConfiguration.java | 8 ++++++++ .../config/RepositoryConfigurationDelegate.java | 1 + .../config/RepositoryConfigurationSource.java | 9 +++++++++ .../config/XmlRepositoryConfigurationSource.java | 14 ++++++++++++++ ...DefinitionRegistrarSupportIntegrationTests.java | 12 ++++++++++++ 7 files changed, 67 insertions(+) diff --git a/src/main/java/org/springframework/data/repository/config/AnnotationRepositoryConfigurationSource.java b/src/main/java/org/springframework/data/repository/config/AnnotationRepositoryConfigurationSource.java index 1d5290a43..c91057d4a 100644 --- a/src/main/java/org/springframework/data/repository/config/AnnotationRepositoryConfigurationSource.java +++ b/src/main/java/org/springframework/data/repository/config/AnnotationRepositoryConfigurationSource.java @@ -321,6 +321,19 @@ public class AnnotationRepositoryConfigurationSource extends RepositoryConfigura } } + /* + * (non-Javadoc) + * @see org.springframework.data.repository.config.RepositoryConfigurationSource#getResourceDescription() + */ + @Override + public String getResourceDescription() { + + String simpleClassName = ClassUtils.getShortName(configMetadata.getClassName()); + String annoationClassName = ClassUtils.getShortName(enableAnnotationMetadata.getClassName()); + + return String.format("@%s declared on %s", annoationClassName, simpleClassName); + } + private Streamable parseFilters(String attributeName) { AnnotationAttributes[] filters = attributes.getAnnotationArray(attributeName); diff --git a/src/main/java/org/springframework/data/repository/config/DefaultRepositoryConfiguration.java b/src/main/java/org/springframework/data/repository/config/DefaultRepositoryConfiguration.java index 8c2e181b7..92e478836 100644 --- a/src/main/java/org/springframework/data/repository/config/DefaultRepositoryConfiguration.java +++ b/src/main/java/org/springframework/data/repository/config/DefaultRepositoryConfiguration.java @@ -214,4 +214,14 @@ public class DefaultRepositoryConfiguration