diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/launch/EmptyItemWriter.java b/spring-batch-core/src/test/java/org/springframework/batch/core/launch/EmptyItemWriter.java index 78ccc9c53..cb01a65f9 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/launch/EmptyItemWriter.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/launch/EmptyItemWriter.java @@ -16,7 +16,6 @@ package org.springframework.batch.core.launch; -import java.util.ArrayList; import java.util.List; import org.apache.commons.logging.Log; @@ -43,9 +42,7 @@ public class EmptyItemWriter implements ItemWriter, InitializingBean { List list; public void afterPropertiesSet() throws Exception { - TransactionAwareProxyFactory> factory = new TransactionAwareProxyFactory>( - new ArrayList()); - list = factory.createInstance(); + list = TransactionAwareProxyFactory.createTransactionalList(); } public void setFailurePoint(int failurePoint) { diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/AbstractPagingItemReader.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/AbstractPagingItemReader.java index 5683b2d24..18ba8f8a8 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/AbstractPagingItemReader.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/AbstractPagingItemReader.java @@ -8,7 +8,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.util.List; -import java.util.Map; /** * Abstract {@link org.springframework.batch.item.ItemReader} for to extend when reading database records in a paging diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/support/transaction/TransactionAwareProxyFactory.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/support/transaction/TransactionAwareProxyFactory.java index b4a045a62..ecf1043b4 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/support/transaction/TransactionAwareProxyFactory.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/support/transaction/TransactionAwareProxyFactory.java @@ -50,7 +50,7 @@ public class TransactionAwareProxyFactory { private T target; - public TransactionAwareProxyFactory(T target) { + private TransactionAwareProxyFactory(T target) { super(); this.target = begin(target); } @@ -99,7 +99,7 @@ public class TransactionAwareProxyFactory { } } - public T createInstance() { + private T createInstance() { ProxyFactory factory = new ProxyFactory(target); factory.addAdvice(new MethodInterceptor() { @@ -136,16 +136,31 @@ public class TransactionAwareProxyFactory { return (Map) new TransactionAwareProxyFactory(new HashMap()).createInstance(); } + @SuppressWarnings("unchecked") + public static Map createTransactionalMap(Map map) { + return (Map) new TransactionAwareProxyFactory(map).createInstance(); + } + @SuppressWarnings("unchecked") public static Set createTransactionalSet() { return (Set) new TransactionAwareProxyFactory(new HashSet()).createInstance(); } + @SuppressWarnings("unchecked") + public static Set createTransactionalSet(Set set) { + return (Set) new TransactionAwareProxyFactory(set).createInstance(); + } + @SuppressWarnings("unchecked") public static List createTransactionalList() { return (List) new TransactionAwareProxyFactory(new ArrayList()).createInstance(); } + @SuppressWarnings("unchecked") + public static List createTransactionalList(List list) { + return (List) new TransactionAwareProxyFactory(list).createInstance(); + } + private class TargetSynchronization extends TransactionSynchronizationAdapter { T cache; diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/AbstractPagingItemReaderParameterTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/AbstractPagingItemReaderParameterTests.java index a2b593885..a07a00b35 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/AbstractPagingItemReaderParameterTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/AbstractPagingItemReaderParameterTests.java @@ -4,15 +4,11 @@ import org.junit.Before; import org.junit.After; import org.junit.Test; import org.junit.Assert; -import org.junit.runner.RunWith; import org.springframework.batch.item.ItemStream; import org.springframework.batch.item.ItemReader; import org.springframework.batch.item.ExecutionContext; import org.springframework.batch.item.sample.Foo; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import org.springframework.test.context.ContextConfiguration; - import javax.sql.DataSource; /** diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/IbatisPagingItemReaderCommonTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/IbatisPagingItemReaderCommonTests.java index da385c686..ba0e4b529 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/IbatisPagingItemReaderCommonTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/IbatisPagingItemReaderCommonTests.java @@ -5,7 +5,6 @@ import org.junit.internal.runners.JUnit4ClassRunner; import org.springframework.batch.item.sample.Foo; import org.springframework.batch.item.ItemReader; import org.springframework.batch.item.ExecutionContext; -import org.springframework.batch.item.database.support.IbatisKeyCollector; import org.springframework.orm.ibatis.SqlMapClientFactoryBean; import org.springframework.core.io.ClassPathResource; import com.ibatis.sqlmap.client.SqlMapClient; diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/JdbcPagingItemReaderClassicParameterTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/JdbcPagingItemReaderClassicParameterTests.java index 02b3dfdea..8ac14e994 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/JdbcPagingItemReaderClassicParameterTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/JdbcPagingItemReaderClassicParameterTests.java @@ -3,13 +3,11 @@ package org.springframework.batch.item.database; import org.junit.runner.RunWith; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.ContextConfiguration; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.batch.item.sample.Foo; import org.springframework.batch.item.ItemReader; import org.springframework.batch.item.database.support.HsqlPagingQueryProvider; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; -import javax.persistence.EntityManagerFactory; import java.util.Collections; import java.sql.ResultSet; import java.sql.SQLException; diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/JpaPagingItemReaderParameterTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/JpaPagingItemReaderParameterTests.java index 74e7c4123..1da3d13a9 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/JpaPagingItemReaderParameterTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/JpaPagingItemReaderParameterTests.java @@ -5,12 +5,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.ContextConfiguration; import org.springframework.batch.item.sample.Foo; import org.springframework.batch.item.ItemReader; -import org.springframework.batch.item.ExecutionContext; -import org.springframework.orm.ibatis.SqlMapClientFactoryBean; -import org.springframework.core.io.ClassPathResource; import org.springframework.beans.factory.annotation.Autowired; -import com.ibatis.sqlmap.client.SqlMapClient; - import javax.persistence.EntityManagerFactory; import java.util.Collections; diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/support/TransactionAwareListItemReaderTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/support/TransactionAwareListItemReaderTests.java index de05ecd59..c4e976784 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/support/TransactionAwareListItemReaderTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/support/TransactionAwareListItemReaderTests.java @@ -32,17 +32,12 @@ import org.springframework.transaction.support.TransactionTemplate; public class TransactionAwareListItemReaderTests extends TestCase { - // TransactionAwareListItemProvider provider = new - // TransactionAwareListItemProvider(Arrays.asList(new String[] { "a", - // "b", "c" })); - ListItemReader reader; + private ListItemReader reader; @SuppressWarnings("unchecked") protected void setUp() throws Exception { super.setUp(); - TransactionAwareProxyFactory factory = new TransactionAwareProxyFactory(Arrays.asList(new String[] { "a", "b", - "c" })); - reader = new ListItemReader((List) factory.createInstance()); + reader = new ListItemReader(TransactionAwareProxyFactory.createTransactionalList(Arrays.asList("a", "b", "c"))); } public void testNext() throws Exception { diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/support/transaction/TransactionAwareListFactoryTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/support/transaction/TransactionAwareListFactoryTests.java index 524b68fac..0fe7cd5bf 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/support/transaction/TransactionAwareListFactoryTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/support/transaction/TransactionAwareListFactoryTests.java @@ -27,15 +27,12 @@ import org.springframework.transaction.support.TransactionTemplate; public class TransactionAwareListFactoryTests extends TestCase { - TransactionAwareProxyFactory> factory = new TransactionAwareProxyFactory>(Arrays.asList(new String[] { "foo", - "bar", "spam" })); - TransactionTemplate transactionTemplate = new TransactionTemplate(new ResourcelessTransactionManager()); List list; protected void setUp() throws Exception { - list = (List) factory.createInstance(); + list = TransactionAwareProxyFactory.createTransactionalList(Arrays.asList("foo", "bar", "spam")); } public void testAdd() { diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/support/transaction/TransactionAwareMapFactoryTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/support/transaction/TransactionAwareMapFactoryTests.java index 4ff346249..103909489 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/support/transaction/TransactionAwareMapFactoryTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/support/transaction/TransactionAwareMapFactoryTests.java @@ -27,8 +27,6 @@ import org.springframework.transaction.support.TransactionTemplate; public class TransactionAwareMapFactoryTests extends TestCase { - TransactionAwareProxyFactory> factory; - TransactionTemplate transactionTemplate = new TransactionTemplate(new ResourcelessTransactionManager()); Map map; @@ -38,8 +36,7 @@ public class TransactionAwareMapFactoryTests extends TestCase { seed.put("foo", "oof"); seed.put("bar", "bar"); seed.put("spam", "maps"); - factory = new TransactionAwareProxyFactory>(seed); - map = (Map) factory.createInstance(); + map = TransactionAwareProxyFactory.createTransactionalMap(seed); } public void testAdd() { diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/support/transaction/TransactionAwareProxyFactoryTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/support/transaction/TransactionAwareProxyFactoryTests.java index be12e2680..a928157fc 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/support/transaction/TransactionAwareProxyFactoryTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/support/transaction/TransactionAwareProxyFactoryTests.java @@ -16,6 +16,7 @@ package org.springframework.batch.support.transaction; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Set; @@ -23,31 +24,39 @@ import java.util.Set; import junit.framework.TestCase; public class TransactionAwareProxyFactoryTests extends TestCase { - + public void testCreateList() throws Exception { List list = TransactionAwareProxyFactory.createTransactionalList(); list.add("foo"); assertEquals(1, list.size()); } + public void testCreateListWithValues() throws Exception { + List list = TransactionAwareProxyFactory.createTransactionalList(Collections.singletonList("foo")); + assertEquals(1, list.size()); + } + public void testCreateSet() throws Exception { Set set = TransactionAwareProxyFactory.createTransactionalSet(); set.add("foo"); assertEquals(1, set.size()); } - + + public void testCreateSetWithValues() throws Exception { + Set list = TransactionAwareProxyFactory.createTransactionalSet(Collections.singleton("foo")); + assertEquals(1, list.size()); + } + public void testCreateMap() throws Exception { Map map = TransactionAwareProxyFactory.createTransactionalMap(); map.put("foo", "bar"); assertEquals(1, map.size()); } - public void testCreateUnsupported() throws Exception { - try { - new TransactionAwareProxyFactory(new Object()).createInstance(); - fail("Expected UnsupportedOperationException"); - } catch (UnsupportedOperationException e) { - // expected - } + public void testCreateMapWithValues() throws Exception { + Map map = TransactionAwareProxyFactory.createTransactionalMap(Collections.singletonMap("foo", + "bar")); + assertEquals(1, map.size()); } + }