From 3a32220b244c628b92fb1854b766588c0112cde3 Mon Sep 17 00:00:00 2001 From: tiagocpeixoto Date: Thu, 14 Feb 2019 13:15:54 -0200 Subject: [PATCH 01/13] fix: fix issue #230 --- .../config/DynamoDBMapperFactory.java | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperFactory.java b/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperFactory.java index 20486acc..f4f7b459 100644 --- a/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperFactory.java +++ b/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperFactory.java @@ -15,27 +15,30 @@ */ package org.socialsignin.spring.data.dynamodb.repository.config; -import org.springframework.beans.factory.FactoryBean; -import org.springframework.beans.factory.annotation.Autowired; - import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper; import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperConfig; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.BeanFactory; +import org.springframework.beans.factory.BeanFactoryAware; +import org.springframework.beans.factory.FactoryBean; -public class DynamoDBMapperFactory implements FactoryBean { +public class DynamoDBMapperFactory implements FactoryBean, BeanFactoryAware { - private final AmazonDynamoDB amazonDynamoDB; - private final DynamoDBMapperConfig dynamoDBMapperConfig; + // fix issue #230 + private BeanFactory beanFactory; - @Autowired - public DynamoDBMapperFactory(AmazonDynamoDB amazonDynamoDB, DynamoDBMapperConfig dynamoDBMapperConfig) { - this.amazonDynamoDB = amazonDynamoDB; - this.dynamoDBMapperConfig = dynamoDBMapperConfig; + public DynamoDBMapperFactory() { } @Override - public DynamoDBMapper getObject() throws Exception { + public synchronized DynamoDBMapper getObject() throws Exception { + // fix issue #230 + AmazonDynamoDB amazonDynamoDB = beanFactory.getBean(AmazonDynamoDB.class); + DynamoDBMapperConfig dynamoDBMapperConfig = beanFactory.getBean(DynamoDBMapperConfig.class); + return new DynamoDBMapper(amazonDynamoDB, dynamoDBMapperConfig); + // end -- fix issue #230 } @Override @@ -43,4 +46,9 @@ public Class getObjectType() { return DynamoDBMapper.class; } + // fix issue #230 + @Override + public void setBeanFactory(BeanFactory beanFactory) throws BeansException { + this.beanFactory = beanFactory; + } } From 7349217547928b2308a7e4beede3e9762f3d2b6a Mon Sep 17 00:00:00 2001 From: tiagocpeixoto Date: Thu, 14 Feb 2019 13:15:54 -0200 Subject: [PATCH 02/13] fix: issue #230 (upgrade surefire & jacoco maven plugins versions and aws-sdk dependency version) --- pom.xml | 6 ++-- .../config/DynamoDBMapperFactory.java | 30 ++++++++++++------- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/pom.xml b/pom.xml index 9c813de8..47f39d06 100755 --- a/pom.xml +++ b/pom.xml @@ -41,7 +41,7 @@ 2.1.2.RELEASE 6.0.9.Final - 1.11.443 + 1.11.493 4.12 2.23.0 1.2 @@ -252,7 +252,7 @@ maven-surefire-plugin - 2.20.1 + 2.21.0 maven-jar-plugin @@ -362,7 +362,7 @@ org.jacoco jacoco-maven-plugin - 0.7.9 + 0.8.3 diff --git a/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperFactory.java b/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperFactory.java index 20486acc..f4f7b459 100644 --- a/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperFactory.java +++ b/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperFactory.java @@ -15,27 +15,30 @@ */ package org.socialsignin.spring.data.dynamodb.repository.config; -import org.springframework.beans.factory.FactoryBean; -import org.springframework.beans.factory.annotation.Autowired; - import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper; import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperConfig; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.BeanFactory; +import org.springframework.beans.factory.BeanFactoryAware; +import org.springframework.beans.factory.FactoryBean; -public class DynamoDBMapperFactory implements FactoryBean { +public class DynamoDBMapperFactory implements FactoryBean, BeanFactoryAware { - private final AmazonDynamoDB amazonDynamoDB; - private final DynamoDBMapperConfig dynamoDBMapperConfig; + // fix issue #230 + private BeanFactory beanFactory; - @Autowired - public DynamoDBMapperFactory(AmazonDynamoDB amazonDynamoDB, DynamoDBMapperConfig dynamoDBMapperConfig) { - this.amazonDynamoDB = amazonDynamoDB; - this.dynamoDBMapperConfig = dynamoDBMapperConfig; + public DynamoDBMapperFactory() { } @Override - public DynamoDBMapper getObject() throws Exception { + public synchronized DynamoDBMapper getObject() throws Exception { + // fix issue #230 + AmazonDynamoDB amazonDynamoDB = beanFactory.getBean(AmazonDynamoDB.class); + DynamoDBMapperConfig dynamoDBMapperConfig = beanFactory.getBean(DynamoDBMapperConfig.class); + return new DynamoDBMapper(amazonDynamoDB, dynamoDBMapperConfig); + // end -- fix issue #230 } @Override @@ -43,4 +46,9 @@ public Class getObjectType() { return DynamoDBMapper.class; } + // fix issue #230 + @Override + public void setBeanFactory(BeanFactory beanFactory) throws BeansException { + this.beanFactory = beanFactory; + } } From 2d7fc1e321e1b9d483cf4855c8383aa3f58049d6 Mon Sep 17 00:00:00 2001 From: "tiagocpeixoto@gmail.com" Date: Sat, 23 Feb 2019 22:17:01 -0300 Subject: [PATCH 03/13] fix: issue #230 (DynamoDBMapperFactory uses @Autowired to inject its dependencies) --- .../config/DynamoDBMapperFactory.java | 23 +++++++------------ 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperFactory.java b/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperFactory.java index f4f7b459..9d4528c9 100644 --- a/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperFactory.java +++ b/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperFactory.java @@ -18,15 +18,18 @@ import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper; import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperConfig; -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.BeanFactory; -import org.springframework.beans.factory.BeanFactoryAware; import org.springframework.beans.factory.FactoryBean; +import org.springframework.beans.factory.annotation.Autowired; -public class DynamoDBMapperFactory implements FactoryBean, BeanFactoryAware { +public class DynamoDBMapperFactory implements FactoryBean { // fix issue #230 - private BeanFactory beanFactory; + @Autowired + private AmazonDynamoDB amazonDynamoDB; + + // fix issue #230 + @Autowired + private DynamoDBMapperConfig dynamoDBMapperConfig; public DynamoDBMapperFactory() { } @@ -34,21 +37,11 @@ public DynamoDBMapperFactory() { @Override public synchronized DynamoDBMapper getObject() throws Exception { // fix issue #230 - AmazonDynamoDB amazonDynamoDB = beanFactory.getBean(AmazonDynamoDB.class); - DynamoDBMapperConfig dynamoDBMapperConfig = beanFactory.getBean(DynamoDBMapperConfig.class); - return new DynamoDBMapper(amazonDynamoDB, dynamoDBMapperConfig); - // end -- fix issue #230 } @Override public Class getObjectType() { return DynamoDBMapper.class; } - - // fix issue #230 - @Override - public void setBeanFactory(BeanFactory beanFactory) throws BeansException { - this.beanFactory = beanFactory; - } } From 3cbd5802645fc0995efb16b01d2a902ee140f82a Mon Sep 17 00:00:00 2001 From: "tiagocpeixoto@gmail.com" Date: Sat, 23 Feb 2019 23:16:34 -0300 Subject: [PATCH 04/13] fix: issue #233 (checks if dynamoDBMapperConfigRef is set before registering its factory) --- .../repository/config/DynamoDBMapperFactory.java | 3 +-- .../config/DynamoDBRepositoryConfigExtension.java | 13 +++++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperFactory.java b/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperFactory.java index 9d4528c9..8cb5e801 100644 --- a/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperFactory.java +++ b/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperFactory.java @@ -35,8 +35,7 @@ public DynamoDBMapperFactory() { } @Override - public synchronized DynamoDBMapper getObject() throws Exception { - // fix issue #230 + public DynamoDBMapper getObject() throws Exception { return new DynamoDBMapper(amazonDynamoDB, dynamoDBMapperConfig); } 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 af5fae4b..dd52c2da 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 @@ -17,6 +17,7 @@ import java.util.HashMap; import java.util.Map; +import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -226,10 +227,14 @@ public void registerBeansForRoot(BeanDefinitionRegistry registry, // Store for later to be used by #postProcess, too this.registry = registry; - BeanDefinitionBuilder dynamoDBMapperConfigBuiilder = BeanDefinitionBuilder - .genericBeanDefinition(DynamoDBMapperConfigFactory.class); - registry.registerBeanDefinition(getBeanNameWithModulePrefix("DynamoDBMapperConfig"), - dynamoDBMapperConfigBuiilder.getBeanDefinition()); + // Fix issue #233 + Optional dynamoDBMapperConfigRef = configurationSource.getAttribute("dynamoDBMapperConfigRef"); + if (!dynamoDBMapperConfigRef.isPresent()) { + BeanDefinitionBuilder dynamoDBMapperConfigBuiilder = BeanDefinitionBuilder + .genericBeanDefinition(DynamoDBMapperConfigFactory.class); + registry.registerBeanDefinition(getBeanNameWithModulePrefix("DynamoDBMapperConfig"), + dynamoDBMapperConfigBuiilder.getBeanDefinition()); + } BeanDefinitionBuilder dynamoDBMapperBuilder = BeanDefinitionBuilder .genericBeanDefinition(DynamoDBMapperFactory.class); From cfcf2fea5cbd36a64f56525fc986910e73f37d80 Mon Sep 17 00:00:00 2001 From: Tiago da Costa Peixoto Date: Sun, 24 Feb 2019 22:10:27 -0300 Subject: [PATCH 05/13] refactor: add issue #233 fix test --- pom.xml | 2 +- .../DynamoDBRepositoryConfigExtension.java | 14 ++- .../config/DynamoDBMapperConfigTest.java | 96 +++++++++++++++++++ 3 files changed, 103 insertions(+), 9 deletions(-) create mode 100644 src/test/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperConfigTest.java diff --git a/pom.xml b/pom.xml index 47f39d06..77a437a9 100755 --- a/pom.xml +++ b/pom.xml @@ -438,7 +438,7 @@ com.github.spotbugs spotbugs-maven-plugin - 3.1.5 + 3.1.11 Max 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 dd52c2da..c641ce6b 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 @@ -15,10 +15,6 @@ */ package org.socialsignin.spring.data.dynamodb.repository.config; -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; -import java.util.concurrent.ConcurrentHashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.socialsignin.spring.data.dynamodb.core.DynamoDBTemplate; @@ -38,6 +34,11 @@ import org.springframework.util.StringUtils; import org.w3c.dom.Element; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; +import java.util.concurrent.ConcurrentHashMap; + /** * @author Michael Lavelle * @author Sebastian Just @@ -77,7 +78,7 @@ public void postProcess(BeanDefinitionBuilder builder, AnnotationRepositoryConfi /* * (non-Javadoc) - * + * * @see org.springframework.data.repository.config. * RepositoryConfigurationExtensionSupport * #postProcess(org.springframework.beans @@ -100,7 +101,6 @@ public void postProcess(BeanDefinitionBuilder builder, XmlRepositoryConfiguratio defaultDynamoDBMappingContext = registerDynamoDBMappingContext(registry); } dynamoDBMappingContextRef = defaultDynamoDBMappingContext; - } registerAndSetPostProcessingBeans(builder, registry, dynamoDBMappingContextRef); } @@ -150,7 +150,6 @@ private void postProcess(BeanDefinitionBuilder builder, String repositoryName, S defaultDynamoDBMappingContext = registerDynamoDBMappingContext(registry); } dynamoDBMappingContextRef = defaultDynamoDBMappingContext; - } builder.addPropertyReference("dynamoDBMappingContext", dynamoDBMappingContextRef); @@ -250,5 +249,4 @@ protected String getBeanNameWithModulePrefix(String baseBeanName) { protected String getModulePrefix() { return "dynamoDB"; } - } diff --git a/src/test/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperConfigTest.java b/src/test/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperConfigTest.java new file mode 100644 index 00000000..2d88bf8f --- /dev/null +++ b/src/test/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperConfigTest.java @@ -0,0 +1,96 @@ +/** + * Copyright © 2018 spring-data-dynamodb (https://github.com/derjust/spring-data-dynamodb) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.socialsignin.spring.data.dynamodb.repository.config; + +import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; +import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper; +import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperConfig; +import org.junit.Test; +import org.mockito.Mockito; +import org.springframework.beans.factory.UnsatisfiedDependencyException; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +/** + * Test Issue #233 fix + */ +public class DynamoDBMapperConfigTest { + + static class BaseTestConfig { + @Bean + public AmazonDynamoDB amazonDynamoDB() { + return Mockito.mock(AmazonDynamoDB.class); + } + + @Bean + public DynamoDBMapper dynamoDBMapper() { + return Mockito.mock(DynamoDBMapper.class); + } + } + + @Configuration + @EnableDynamoDBRepositories(dynamoDBMapperConfigRef = "customDynamoDBMapperConfig") + static class TestConfigWithDynamoDBMapperConfigRef extends BaseTestConfig { + @Bean("customDynamoDBMapperConfig") + public DynamoDBMapperConfig dynamoDBMapperConfig() { + return DynamoDBMapperConfig.DEFAULT; + } + } + + @Configuration + @EnableDynamoDBRepositories + static class TestConfigWithoutDynamoDBMapperConfigRef extends TestConfigWithDynamoDBMapperConfigRef { + } + + @Configuration + @EnableDynamoDBRepositories + static class TestConfigWithoutDynamoDBMapperConfigBean extends BaseTestConfig { + } + + @Test + public void testConfigWithDynamoDBMapperConfigRef() { + AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext( + TestConfigWithDynamoDBMapperConfigRef.class); + + boolean containsBean = ctx.containsBean("customDynamoDBMapperConfig"); + assertTrue(containsBean); + } + + @Test(expected = UnsatisfiedDependencyException.class) + public void testConfigWithoutDynamoDBMapperConfigRef() { + AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext( + TestConfigWithoutDynamoDBMapperConfigRef.class); + + boolean containsBean = ctx.containsBean("customDynamoDBMapperConfig"); + assertTrue(containsBean); + } + + @Test + public void testConfigWithoutDynamoDBMapperConfigBean() { + AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext( + TestConfigWithoutDynamoDBMapperConfigBean.class); + + boolean containsBean = ctx.containsBean("customDynamoDBMapperConfig"); + assertFalse(containsBean); + + containsBean = ctx.containsBean("dynamoDB-DynamoDBMapperConfig"); + assertTrue(containsBean); + } +} From a8047db3ad1ee776572f790b0820cd870a7948e4 Mon Sep 17 00:00:00 2001 From: Tiago da Costa Peixoto Date: Sat, 9 Mar 2019 10:57:54 -0300 Subject: [PATCH 06/13] fix: fix issue #230 --- .../repository/support/DynamoDBRepositoryFactoryBean.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/org/socialsignin/spring/data/dynamodb/repository/support/DynamoDBRepositoryFactoryBean.java b/src/main/java/org/socialsignin/spring/data/dynamodb/repository/support/DynamoDBRepositoryFactoryBean.java index 66f46624..be41e94a 100644 --- a/src/main/java/org/socialsignin/spring/data/dynamodb/repository/support/DynamoDBRepositoryFactoryBean.java +++ b/src/main/java/org/socialsignin/spring/data/dynamodb/repository/support/DynamoDBRepositoryFactoryBean.java @@ -15,6 +15,7 @@ */ package org.socialsignin.spring.data.dynamodb.repository.support; +import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperConfig; import org.socialsignin.spring.data.dynamodb.core.DynamoDBOperations; import org.socialsignin.spring.data.dynamodb.mapping.DynamoDBMappingContext; import org.socialsignin.spring.data.dynamodb.repository.util.DynamoDBMappingContextProcessor; @@ -43,6 +44,7 @@ public class DynamoDBRepositoryFactoryBean, S, ID ex private DynamoDBOperations dynamoDBOperations; private Entity2DynamoDBTableSynchronizer tableSynchronizer; private DynamoDBMappingContextProcessor dynamoDBMappingContextProcessor; + private DynamoDBMapperConfig dynamoDBMapperConfig; public DynamoDBRepositoryFactoryBean(Class repositoryInterface) { super(repositoryInterface); @@ -79,4 +81,8 @@ public void setDynamoDBOperations(DynamoDBOperations dynamoDBOperations) { public void setDynamoDBMappingContext(DynamoDBMappingContext dynamoDBMappingContext) { setMappingContext(dynamoDBMappingContext); } + + public void setDynamoDBMapperConfig(DynamoDBMapperConfig dynamoDBMapperConfig) { + this.dynamoDBMapperConfig = dynamoDBMapperConfig; + } } From 6b8dcdd29405ea6ccc4931db50717543eee7dffd Mon Sep 17 00:00:00 2001 From: Tiago da Costa Peixoto Date: Sat, 9 Mar 2019 10:57:54 -0300 Subject: [PATCH 07/13] fix: issues #230 and #233 --- .../config/DynamoDBRepositoryConfigExtension.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 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 c641ce6b..7cb7c449 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 @@ -139,9 +139,11 @@ private void postProcess(BeanDefinitionBuilder builder, String repositoryName, S builder.addPropertyReference("dynamoDBOperations", dynamoDBOperationsRef); - if (StringUtils.hasText(dynamoDBMapperConfigRef)) { - builder.addPropertyReference("dynamoDBMapperConfig", dynamoDBMapperConfigRef); - } + /* + * Fix issue #233 if (StringUtils.hasText(dynamoDBMapperConfigRef)) { + * builder.addPropertyReference("dynamoDBMapperConfig", + * dynamoDBMapperConfigRef); } + */ } if (!StringUtils.hasText(dynamoDBMappingContextRef)) { From 2dbf6aad07ece25922a9b1598f44808263bb344a Mon Sep 17 00:00:00 2001 From: Tiago da Costa Peixoto Date: Sat, 9 Mar 2019 20:05:08 -0300 Subject: [PATCH 08/13] fix: issues #230 and #233 --- .../repository/support/DynamoDBRepositoryFactoryBean.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/main/java/org/socialsignin/spring/data/dynamodb/repository/support/DynamoDBRepositoryFactoryBean.java b/src/main/java/org/socialsignin/spring/data/dynamodb/repository/support/DynamoDBRepositoryFactoryBean.java index be41e94a..66f46624 100644 --- a/src/main/java/org/socialsignin/spring/data/dynamodb/repository/support/DynamoDBRepositoryFactoryBean.java +++ b/src/main/java/org/socialsignin/spring/data/dynamodb/repository/support/DynamoDBRepositoryFactoryBean.java @@ -15,7 +15,6 @@ */ package org.socialsignin.spring.data.dynamodb.repository.support; -import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperConfig; import org.socialsignin.spring.data.dynamodb.core.DynamoDBOperations; import org.socialsignin.spring.data.dynamodb.mapping.DynamoDBMappingContext; import org.socialsignin.spring.data.dynamodb.repository.util.DynamoDBMappingContextProcessor; @@ -44,7 +43,6 @@ public class DynamoDBRepositoryFactoryBean, S, ID ex private DynamoDBOperations dynamoDBOperations; private Entity2DynamoDBTableSynchronizer tableSynchronizer; private DynamoDBMappingContextProcessor dynamoDBMappingContextProcessor; - private DynamoDBMapperConfig dynamoDBMapperConfig; public DynamoDBRepositoryFactoryBean(Class repositoryInterface) { super(repositoryInterface); @@ -81,8 +79,4 @@ public void setDynamoDBOperations(DynamoDBOperations dynamoDBOperations) { public void setDynamoDBMappingContext(DynamoDBMappingContext dynamoDBMappingContext) { setMappingContext(dynamoDBMappingContext); } - - public void setDynamoDBMapperConfig(DynamoDBMapperConfig dynamoDBMapperConfig) { - this.dynamoDBMapperConfig = dynamoDBMapperConfig; - } } From 1fa07596eff92ec736a8ce1b5fba289f6fd8a5c8 Mon Sep 17 00:00:00 2001 From: Tiago da Costa Peixoto Date: Sat, 15 Jun 2019 09:06:10 -0300 Subject: [PATCH 09/13] fix: issues #230 and #233 (resolve pom conflicts) --- pom.xml | 2 +- .../config/DynamoDBRepositoryConfigExtension.java | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index 77a437a9..8b440fb8 100755 --- a/pom.xml +++ b/pom.xml @@ -41,7 +41,7 @@ 2.1.2.RELEASE 6.0.9.Final - 1.11.493 + 1.11.515 4.12 2.23.0 1.2 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 7cb7c449..cce8f908 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 @@ -139,11 +139,11 @@ private void postProcess(BeanDefinitionBuilder builder, String repositoryName, S builder.addPropertyReference("dynamoDBOperations", dynamoDBOperationsRef); - /* - * Fix issue #233 if (StringUtils.hasText(dynamoDBMapperConfigRef)) { - * builder.addPropertyReference("dynamoDBMapperConfig", - * dynamoDBMapperConfigRef); } - */ + /* Fix issue #233 - these statements were commented on as they are not supposed to be necessary */ +// if (StringUtils.hasText(dynamoDBMapperConfigRef)) { +// builder.addPropertyReference("dynamoDBMapperConfig", +// dynamoDBMapperConfigRef); +// } } if (!StringUtils.hasText(dynamoDBMappingContextRef)) { From 6e753687d3f892af50604d3d2e28955213657bb3 Mon Sep 17 00:00:00 2001 From: Tiago da Costa Peixoto Date: Sat, 15 Jun 2019 09:19:48 -0300 Subject: [PATCH 10/13] fix: issues #230 and #233 (resolve DynamoDBRepositoryConfigExtension conflicts) --- .../DynamoDBRepositoryConfigExtension.java | 37 +++++++++++-------- 1 file changed, 22 insertions(+), 15 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 cce8f908..de750c61 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 @@ -107,7 +107,7 @@ public void postProcess(BeanDefinitionBuilder builder, XmlRepositoryConfiguratio private Map dynamoDBTemplateCache = new HashMap<>(); private void postProcess(BeanDefinitionBuilder builder, String repositoryName, String amazonDynamoDBRef, - String dynamoDBMapperConfigRef, String dynamoDBOperationsRef, String dynamoDBMappingContextRef) { + String dynamoDBMapperConfigRef, String dynamoDBOperationsRef, String dynamoDBMappingContextRef) { if (StringUtils.hasText(dynamoDBOperationsRef)) { builder.addPropertyReference("dynamoDBOperations", dynamoDBOperationsRef); @@ -130,7 +130,16 @@ private void postProcess(BeanDefinitionBuilder builder, String repositoryName, S .computeIfAbsent(getBeanNameWithModulePrefix("DynamoDBTemplate-" + dynamoDBRef), ref -> { BeanDefinitionBuilder dynamoDBTemplateBuilder = BeanDefinitionBuilder .genericBeanDefinition(DynamoDBTemplate.class); + // AmazonDynamoDB amazonDynamoDB, DynamoDBMapper dynamoDBMapper, + // DynamoDBMapperConfig dynamoDBMapperConfig dynamoDBTemplateBuilder.addConstructorArgReference(dynamoDBRef); + dynamoDBTemplateBuilder.addConstructorArgReference(this.dynamoDBMapperName); + + if (StringUtils.hasText(dynamoDBMapperConfigRef)) { + dynamoDBTemplateBuilder.addConstructorArgReference(dynamoDBMapperConfigRef); + } else { + dynamoDBTemplateBuilder.addConstructorArgReference(this.dynamoDBMapperConfigName); + } registry.registerBeanDefinition(ref, dynamoDBTemplateBuilder.getBeanDefinition()); return ref; @@ -138,12 +147,6 @@ private void postProcess(BeanDefinitionBuilder builder, String repositoryName, S } builder.addPropertyReference("dynamoDBOperations", dynamoDBOperationsRef); - - /* Fix issue #233 - these statements were commented on as they are not supposed to be necessary */ -// if (StringUtils.hasText(dynamoDBMapperConfigRef)) { -// builder.addPropertyReference("dynamoDBMapperConfig", -// dynamoDBMapperConfigRef); -// } } if (!StringUtils.hasText(dynamoDBMappingContextRef)) { @@ -159,7 +162,7 @@ private void postProcess(BeanDefinitionBuilder builder, String repositoryName, S } protected void registerAndSetPostProcessingBeans(BeanDefinitionBuilder builder, BeanDefinitionRegistry registry, - String dynamoDBMappingContextRef) { + String dynamoDBMappingContextRef) { String tableSynchronizerName = registerEntity2DynamoDBTableSynchronizer(registry, dynamoDBMappingContextRef); builder.addPropertyReference("entity2DynamoDBTableSynchronizer", tableSynchronizerName); @@ -170,7 +173,7 @@ protected void registerAndSetPostProcessingBeans(BeanDefinitionBuilder builder, private final Map entity2DynamoDBTableSynchronizerCache = new ConcurrentHashMap<>(); private String registerEntity2DynamoDBTableSynchronizer(BeanDefinitionRegistry registry, - String dynamoDBMappingContextRef) { + String dynamoDBMappingContextRef) { assert registry != null; return entity2DynamoDBTableSynchronizerCache.computeIfAbsent(dynamoDBMappingContextRef, ref -> { @@ -186,8 +189,12 @@ private String registerEntity2DynamoDBTableSynchronizer(BeanDefinitionRegistry r } private final Map dynamoDBMappingContextProcessorCache = new ConcurrentHashMap<>(); + + private String dynamoDBMapperName; + + private String dynamoDBMapperConfigName; private String registerDynamoDBMappingContextProcessor(BeanDefinitionRegistry registry, - String dynamoDBMappingContextRef) { + String dynamoDBMappingContextRef) { assert registry != null; return dynamoDBMappingContextProcessorCache.computeIfAbsent(dynamoDBMappingContextRef, ref -> { @@ -222,7 +229,7 @@ private String registerDynamoDBMappingContext(BeanDefinitionRegistry registry) { @Override public void registerBeansForRoot(BeanDefinitionRegistry registry, - RepositoryConfigurationSource configurationSource) { + RepositoryConfigurationSource configurationSource) { super.registerBeansForRoot(registry, configurationSource); // Store for later to be used by #postProcess, too @@ -231,16 +238,16 @@ public void registerBeansForRoot(BeanDefinitionRegistry registry, // Fix issue #233 Optional dynamoDBMapperConfigRef = configurationSource.getAttribute("dynamoDBMapperConfigRef"); if (!dynamoDBMapperConfigRef.isPresent()) { - BeanDefinitionBuilder dynamoDBMapperConfigBuiilder = BeanDefinitionBuilder + BeanDefinitionBuilder dynamoDBMapperConfigBuilder = BeanDefinitionBuilder .genericBeanDefinition(DynamoDBMapperConfigFactory.class); registry.registerBeanDefinition(getBeanNameWithModulePrefix("DynamoDBMapperConfig"), - dynamoDBMapperConfigBuiilder.getBeanDefinition()); + dynamoDBMapperConfigBuilder.getBeanDefinition()); } + this.dynamoDBMapperName = getBeanNameWithModulePrefix("DynamoDBMapper"); BeanDefinitionBuilder dynamoDBMapperBuilder = BeanDefinitionBuilder .genericBeanDefinition(DynamoDBMapperFactory.class); - registry.registerBeanDefinition(getBeanNameWithModulePrefix("DynamoDBMapper"), - dynamoDBMapperBuilder.getBeanDefinition()); + registry.registerBeanDefinition(this.dynamoDBMapperName, dynamoDBMapperBuilder.getBeanDefinition()); } protected String getBeanNameWithModulePrefix(String baseBeanName) { From f0ad019e8259d444129a7f6e480ffef4a1853318 Mon Sep 17 00:00:00 2001 From: Tiago da Costa Peixoto Date: Sat, 15 Jun 2019 09:23:48 -0300 Subject: [PATCH 11/13] fix: issues #230 and #233 (refactor due to codacy recommendations) --- .../repository/config/DynamoDBRepositoryConfigExtension.java | 5 ++--- 1 file changed, 2 insertions(+), 3 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 de750c61..6b604ece 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 @@ -59,6 +59,8 @@ public class DynamoDBRepositoryConfigExtension extends RepositoryConfigurationEx private BeanDefinitionRegistry registry; private String defaultDynamoDBMappingContext; + private String dynamoDBMapperName; + private String dynamoDBMapperConfigName; @Override public String getRepositoryFactoryBeanClassName() { @@ -190,9 +192,6 @@ private String registerEntity2DynamoDBTableSynchronizer(BeanDefinitionRegistry r private final Map dynamoDBMappingContextProcessorCache = new ConcurrentHashMap<>(); - private String dynamoDBMapperName; - - private String dynamoDBMapperConfigName; private String registerDynamoDBMappingContextProcessor(BeanDefinitionRegistry registry, String dynamoDBMappingContextRef) { assert registry != null; From 6fc1264ea87706973533f95ed617d27028d41ec7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Oct 2020 03:54:03 +0000 Subject: [PATCH 12/13] Bump hibernate-validator from 6.0.9.Final to 6.1.0.Final Bumps [hibernate-validator](https://github.com/hibernate/hibernate-validator) from 6.0.9.Final to 6.1.0.Final. - [Release notes](https://github.com/hibernate/hibernate-validator/releases) - [Changelog](https://github.com/hibernate/hibernate-validator/blob/master/changelog.txt) - [Commits](https://github.com/hibernate/hibernate-validator/compare/6.0.9.Final...6.1.0.Final) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) mode change 100755 => 100644 pom.xml diff --git a/pom.xml b/pom.xml old mode 100755 new mode 100644 index 8b440fb8..3d55113a --- a/pom.xml +++ b/pom.xml @@ -40,7 +40,7 @@ 5.1.2.RELEASE 2.1.2.RELEASE - 6.0.9.Final + 6.1.0.Final 1.11.515 4.12 2.23.0 From 279eee6b3791bd14274d6fed7cf64c19888a1daf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Oct 2020 03:54:06 +0000 Subject: [PATCH 13/13] Bump junit from 4.12 to 4.13.1 Bumps [junit](https://github.com/junit-team/junit4) from 4.12 to 4.13.1. - [Release notes](https://github.com/junit-team/junit4/releases) - [Changelog](https://github.com/junit-team/junit4/blob/main/doc/ReleaseNotes4.12.md) - [Commits](https://github.com/junit-team/junit4/compare/r4.12...r4.13.1) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) mode change 100755 => 100644 pom.xml diff --git a/pom.xml b/pom.xml old mode 100755 new mode 100644 index 8b440fb8..9cae8f13 --- a/pom.xml +++ b/pom.xml @@ -42,7 +42,7 @@ 6.0.9.Final 1.11.515 - 4.12 + 4.13.1 2.23.0 1.2 1.2.0