diff --git a/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationExtension.java b/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationExtension.java index 4efd38e09..07aacda25 100644 --- a/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationExtension.java +++ b/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationExtension.java @@ -16,6 +16,7 @@ package org.springframework.data.repository.config; import java.util.Collection; +import java.util.Locale; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; @@ -31,6 +32,19 @@ import org.springframework.core.io.ResourceLoader; */ public interface RepositoryConfigurationExtension { + /** + * A {@link String} uniquely identifying the module within all Spring Data modules. Must not contain any spaces. + * + * @return will never be {@literal null}. + * @since 3.0 + */ + default String getModuleIdentifier() { + + return getModuleName() + .toLowerCase(Locale.ENGLISH) + .replace(' ', '-'); + } + /** * Returns the descriptive name of the module. * diff --git a/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationExtensionSupport.java b/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationExtensionSupport.java index 567bbc8db..d89304a6c 100644 --- a/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationExtensionSupport.java +++ b/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationExtensionSupport.java @@ -103,7 +103,7 @@ public abstract class RepositoryConfigurationExtensionSupport implements Reposit } public String getDefaultNamedQueryLocation() { - return String.format("classpath*:META-INF/%s-named-queries.properties", getModulePrefix()); + return String.format("classpath*:META-INF/%s-named-queries.properties", getModuleIdentifier()); } public void registerBeansForRoot(BeanDefinitionRegistry registry, @@ -113,7 +113,11 @@ public abstract class RepositoryConfigurationExtensionSupport implements Reposit * Returns the prefix of the module to be used to create the default location for Spring Data named queries. * * @return must not be {@literal null}. + * @deprecated since 3.0, refer to {@link #getModuleIdentifier()} instead and implement either + * {@link #getModuleName()} directly or both methods if the default translation from name to identifier as + * defined in {@link RepositoryConfigurationExtension#getModuleIdentifier()} doesn't suit you. */ + @Deprecated protected abstract String getModulePrefix(); public void postProcess(BeanDefinitionBuilder builder, RepositoryConfigurationSource source) {}