From b6fcc17a4c2961d7ceb7d0d26de252424883e936 Mon Sep 17 00:00:00 2001 From: John D Date: Sat, 25 Jan 2020 15:07:18 -0800 Subject: [PATCH] https://github.com/boostchicken/spring-data-dynamodb/issues/8 Custom Mapper Spec --- .../config/DynamoDBRepositoryConfigExtension.java | 13 ++++++++----- .../config/EnableDynamoDBRepositories.java | 11 +++++++++++ 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBRepositoryConfigExtension.java b/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBRepositoryConfigExtension.java index d9407ccd..6a52c04d 100644 --- a/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBRepositoryConfigExtension.java +++ b/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBRepositoryConfigExtension.java @@ -260,7 +260,7 @@ public void registerBeansForRoot(BeanDefinitionRegistry registry, this.registry = registry; this.dynamoDBMapperConfigName = getBeanNameWithModulePrefix("DynamoDBMapperConfig"); - Optional dynamoDBMapperConfigRef = configurationSource.getAttribute("dynamoDBMapperConfigRef"); + Optional dynamoDBMapperConfigRef = configurationSource.getAttribute("dynamoDBMapperConfigRef"); if (!dynamoDBMapperConfigRef.isPresent()) { BeanDefinitionBuilder dynamoDBMapperConfigBuiilder = BeanDefinitionBuilder @@ -269,10 +269,13 @@ public void registerBeansForRoot(BeanDefinitionRegistry registry, dynamoDBMapperConfigBuiilder.getBeanDefinition()); } - this.dynamoDBMapperName = getBeanNameWithModulePrefix("DynamoDBMapper"); - BeanDefinitionBuilder dynamoDBMapperBuilder = BeanDefinitionBuilder - .genericBeanDefinition(DynamoDBMapperFactory.class); - registry.registerBeanDefinition(this.dynamoDBMapperName, dynamoDBMapperBuilder.getBeanDefinition()); + Optional dynamoDBMapperRef = configurationSource.getAttribute("dynamoDBMapperRef"); + if(!dynamoDBMapperRef.isPresent()) { + this.dynamoDBMapperName = getBeanNameWithModulePrefix("DynamoDBMapper"); + BeanDefinitionBuilder dynamoDBMapperBuilder = BeanDefinitionBuilder + .genericBeanDefinition(DynamoDBMapperFactory.class); + registry.registerBeanDefinition(this.dynamoDBMapperName, dynamoDBMapperBuilder.getBeanDefinition()); + } } protected String getBeanNameWithModulePrefix(String baseBeanName) { diff --git a/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/EnableDynamoDBRepositories.java b/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/EnableDynamoDBRepositories.java index aab62d99..15db0bde 100644 --- a/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/EnableDynamoDBRepositories.java +++ b/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/EnableDynamoDBRepositories.java @@ -147,6 +147,17 @@ */ String dynamoDBMapperConfigRef() default ""; + /** + * Returns the + * {@link com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper } + * reference to be used + * + * @return The + * {@link com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper} + * bean name + */ + String dynamoDBMapperRef() default ""; + /** * Returns the {@link javax.validation.Validator } reference to be used for to * validate DynamoDB entities