diff --git a/spring-batch-infrastructure-tests/pom.xml b/spring-batch-infrastructure-tests/pom.xml
index 9b813d879..fdfba3258 100644
--- a/spring-batch-infrastructure-tests/pom.xml
+++ b/spring-batch-infrastructure-tests/pom.xml
@@ -124,6 +124,11 @@
1.2.0
test
+
+ org.apache.log4j
+ com.springsource.org.apache.log4j
+ test
+
org.apache.xerces
com.springsource.org.apache.xerces
diff --git a/spring-batch-infrastructure-tests/src/test/java/org/springframework/batch/io/oxm/AbstractStaxEventWriterItemWriterTests.java b/spring-batch-infrastructure-tests/src/test/java/org/springframework/batch/io/oxm/AbstractStaxEventWriterItemWriterTests.java
index fa81fc542..746fd20b5 100644
--- a/spring-batch-infrastructure-tests/src/test/java/org/springframework/batch/io/oxm/AbstractStaxEventWriterItemWriterTests.java
+++ b/spring-batch-infrastructure-tests/src/test/java/org/springframework/batch/io/oxm/AbstractStaxEventWriterItemWriterTests.java
@@ -6,6 +6,8 @@ import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.custommonkey.xmlunit.XMLAssert;
import org.custommonkey.xmlunit.XMLUnit;
import org.junit.After;
@@ -14,13 +16,22 @@ import org.junit.Test;
import org.springframework.batch.io.oxm.domain.Trade;
import org.springframework.batch.item.ExecutionContext;
import org.springframework.batch.item.xml.StaxEventItemWriter;
+import org.springframework.batch.support.transaction.ResourcelessTransactionManager;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
import org.springframework.oxm.Marshaller;
+import org.springframework.transaction.TransactionStatus;
+import org.springframework.transaction.support.TransactionCallback;
+import org.springframework.transaction.support.TransactionTemplate;
import org.springframework.util.ClassUtils;
+import org.springframework.util.StopWatch;
public abstract class AbstractStaxEventWriterItemWriterTests {
+
+ private Log logger = LogFactory.getLog(getClass());
+
+ private static final int MAX_WRITE = 100;
private StaxEventItemWriter writer = new StaxEventItemWriter();
@@ -28,8 +39,7 @@ public abstract class AbstractStaxEventWriterItemWriterTests {
File outputFile;
- protected Resource expected = new ClassPathResource("expected-output.xml",
- getClass());
+ protected Resource expected = new ClassPathResource("expected-output.xml", getClass());
protected List objects = new ArrayList() {
{
@@ -44,11 +54,26 @@ public abstract class AbstractStaxEventWriterItemWriterTests {
*/
@Test
public void testWrite() throws Exception {
- writer.write(objects);
+ StopWatch stopWatch = new StopWatch(getClass().getSimpleName());
+ stopWatch.start();
+ for (int i = 0; i < MAX_WRITE; i++) {
+ new TransactionTemplate(new ResourcelessTransactionManager()).execute(new TransactionCallback() {
+ public Object doInTransaction(TransactionStatus status) {
+ try {
+ writer.write(objects);
+ }
+ catch (Exception e) {
+ status.setRollbackOnly();
+ }
+ return null;
+ }
+ });
+ }
writer.close();
+ stopWatch.stop();
+ logger.info("Timing for XML writer: " + stopWatch);
XMLUnit.setIgnoreWhitespace(true);
- XMLAssert.assertXMLEqual(new FileReader(expected.getFile()),
- new FileReader(resource.getFile()));
+ XMLAssert.assertXMLEqual(new FileReader(expected.getFile()), new FileReader(resource.getFile()));
}
@@ -57,8 +82,7 @@ public abstract class AbstractStaxEventWriterItemWriterTests {
// File outputFile =
// File.createTempFile("AbstractStaxStreamWriterOutputSourceTests",
// "xml");
- outputFile = File.createTempFile(ClassUtils.getShortName(this
- .getClass()), ".xml");
+ outputFile = File.createTempFile(ClassUtils.getShortName(this.getClass()), ".xml");
resource = new FileSystemResource(outputFile);
writer.setResource(resource);
diff --git a/spring-batch-infrastructure-tests/src/test/resources/org/springframework/batch/io/oxm/expected-output.xml b/spring-batch-infrastructure-tests/src/test/resources/org/springframework/batch/io/oxm/expected-output.xml
index 8a267ae5a..3d9ea2720 100644
--- a/spring-batch-infrastructure-tests/src/test/resources/org/springframework/batch/io/oxm/expected-output.xml
+++ b/spring-batch-infrastructure-tests/src/test/resources/org/springframework/batch/io/oxm/expected-output.xml
@@ -1,24 +1 @@
-
-
-
- isin1
- 1
- 1
- customer1
-
-
-
- isin2
- 2
- 2
- customer2
-
-
-
- isin3
- 3
- 3
- customer3
-
-
-
\ No newline at end of file
+isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3isin111customer1isin222customer2isin333customer3
\ No newline at end of file