diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/xml/stax/DefaultTransactionalEventReader.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/xml/stax/DefaultTransactionalEventReader.java deleted file mode 100644 index 4598c1787..000000000 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/xml/stax/DefaultTransactionalEventReader.java +++ /dev/null @@ -1,98 +0,0 @@ -package org.springframework.batch.item.xml.stax; - -import java.util.NoSuchElementException; - -import javax.xml.stream.XMLEventReader; -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.events.XMLEvent; - -import org.springframework.beans.factory.InitializingBean; -import org.springframework.util.Assert; - -/** - * Class used to wrap XMLEventReader. Events from wrapped reader are stored in - * {@link EventSequence} to support transactions. - * - * @deprecated no longer used, to be removed in 2.0 - * - * @author Tomas Slanina - * @author Robert Kasanicky - */ -public class DefaultTransactionalEventReader extends AbstractEventReaderWrapper implements TransactionalEventReader, InitializingBean { - - private EventSequence recorder = new EventSequence(); - - - /** - * Creates instance of this class and wraps XMLEventReader. - * - * @param wrappedReader event reader to be wrapped. - */ - public DefaultTransactionalEventReader(XMLEventReader wrappedReader) { - super(wrappedReader); - } - - public void afterPropertiesSet() throws Exception { - Assert.notNull(wrappedEventReader); - } - - /** - * Callback on transaction rollback. - */ - public void onRollback() { - recorder.reset(); - } - - /** - * Callback on transacion commit. - * - */ - public void onCommit() { - recorder.clear(); - } - - - /** - * Check if there are more events. Returns true if there are more events and - * false otherwise. - * - * @return true if the event reader has more events, false otherwise - */ - public boolean hasNext() { - return recorder.hasNext() || wrappedEventReader.hasNext(); - } - - /** - * Get the next XMLEvent - * - * @see XMLEvent - * @throws XMLStreamException if there is an error with the underlying XML. - * @throws NoSuchElementException iteration has no more elements. - */ - public XMLEvent nextEvent() throws XMLStreamException { - if (!recorder.hasNext()) { - recorder.addEvent(wrappedEventReader.nextEvent()); - } - return recorder.nextEvent(); - } - - /** - * Check the next XMLEvent without reading it from the stream. Returns null - * if the stream is at EOF or has no more XMLEvents. A call to peek() will - * be equal to the next return of next(). - * - * @see XMLEvent - * @throws XMLStreamException - */ - public XMLEvent peek() throws XMLStreamException { - return (recorder.hasNext()) ? recorder.peek() : wrappedEventReader.peek(); - } - - - /** - * In this implementation throws UnsupportedOperationException. - */ - public void remove() { - throw new UnsupportedOperationException(); - } -} diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/xml/stax/EventSequence.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/xml/stax/EventSequence.java deleted file mode 100644 index 1401ac998..000000000 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/xml/stax/EventSequence.java +++ /dev/null @@ -1,90 +0,0 @@ -package org.springframework.batch.item.xml.stax; - -import java.util.ArrayList; -import java.util.List; - -import javax.xml.stream.events.XMLEvent; - -/** - * Holds a list of XML events, typically corresponding to a single record. - * - * @deprecated no longer used, to be removed in 2.0 - * - * @author tomas.slanina - */ -class EventSequence { - - private static final int BEFORE_BEGINNING = -1; - - private List events; - - private int currentIndex; - - /** - * Creates instance of this class. - * - */ - public EventSequence() { - init(); - } - - /** - * Adds event to the list of stored events. - * - * @param event - */ - public void addEvent(XMLEvent event) { - events.add(event); - } - - /** - * Gets next XMLEvent from cache and moves cursor to next event. - * If cache contains no more events, null is returned. - */ - public XMLEvent nextEvent() { - return (hasNext()) ? events.get(++currentIndex) :null; - } - - /** - * Gets next XMLEvent from cache but cursor remains on the same position. - * If cache contains no more events, null is returned. - */ - public XMLEvent peek() { - return (hasNext()) ? events.get(currentIndex+1) :null; - } - - /** - * Removes events from the internal cache. - * - */ - public void clear() { - init(); - } - - /** - * Resets cursor to the cache start. - * - */ - public void reset() { - currentIndex = BEFORE_BEGINNING; - } - - /** - * Check if there are more events. Returns true if there are more events and - * false otherwise. - * - * @return true if the event reader has more events, false otherwise - */ - public boolean hasNext() { - return currentIndex + 1 < events.size(); - } - - private void init() { - events = (events != null) ? new ArrayList(events.size()) - : new ArrayList(1000); - - reset(); - } - - -} diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/xml/stax/TransactionalEventReader.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/xml/stax/TransactionalEventReader.java deleted file mode 100644 index a9c643c45..000000000 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/xml/stax/TransactionalEventReader.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.springframework.batch.item.xml.stax; - -import javax.xml.stream.XMLEventReader; - -/** - * XMLEventReader with transactional capabilities (ability to rollback to last commit point). - * - * @deprecated no longer used, to be removed in 2.0 - * - * @author Robert Kasanicky - */ -public interface TransactionalEventReader extends XMLEventReader{ - - /** - * Callback on transaction rollback. - */ - public void onRollback(); - - /** - * Callback on transaction commit. - */ - public void onCommit(); - -} diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/stax/DefaultTransactionalEventReaderTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/stax/DefaultTransactionalEventReaderTests.java deleted file mode 100644 index e436072f3..000000000 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/stax/DefaultTransactionalEventReaderTests.java +++ /dev/null @@ -1,69 +0,0 @@ -package org.springframework.batch.item.xml.stax; - -import javax.xml.stream.XMLEventReader; -import javax.xml.stream.XMLInputFactory; - -import junit.framework.TestCase; - -import org.springframework.batch.item.xml.EventHelper; -import org.springframework.core.io.ByteArrayResource; -import org.springframework.core.io.Resource; - -/** - * Tests for {@link DefaultTransactionalEventReader}. - * - * @deprecated no longer used, to be removed in 2.0 - * - * @author Robert Kasanicky - */ -public class DefaultTransactionalEventReaderTests extends TestCase { - - // object under test - private TransactionalEventReader reader; - - // test xml input - private String xml = " "; - - - protected void setUp() throws Exception { - Resource resource = new ByteArrayResource(xml.getBytes()); - XMLEventReader wrappedReader = XMLInputFactory.newInstance().createXMLEventReader(resource.getInputStream()); - reader = new DefaultTransactionalEventReader(wrappedReader); - } - - /** - * Rollback scenario. - */ - public void testRollback() throws Exception { - assertTrue(reader.hasNext()); - reader.nextEvent(); //start document - reader.nextEvent(); //start root element - reader.nextEvent(); //whitespace - - reader.onCommit(); // commit point - - assertTrue(EventHelper.startElementName(reader.nextEvent()).equals("fragment")); - reader.nextEvent(); //whitespace - assertTrue(EventHelper.startElementName(reader.nextEvent()).equals("misc1")); - assertTrue(EventHelper.endElementName(reader.peek()).equals("misc1")); - - reader.onRollback(); // now we should be at the last commit point - assertTrue(reader.hasNext()); - assertTrue(EventHelper.startElementName(reader.nextEvent()).equals("fragment")); - reader.nextEvent(); - assertTrue(EventHelper.startElementName(reader.nextEvent()).equals("misc1")); - } - - /** - * Remove operation is not supported - */ - public void testRemove() { - try { - reader.remove(); - fail("UnsupportedOperationException expected on calling remove()"); - } - catch (UnsupportedOperationException e) { - // expected - } - } -} diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/stax/EventSequenceTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/stax/EventSequenceTests.java deleted file mode 100644 index 0efc826d1..000000000 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/stax/EventSequenceTests.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.springframework.batch.item.xml.stax; - -import javax.xml.stream.XMLEventFactory; -import javax.xml.stream.events.XMLEvent; - -import junit.framework.TestCase; - -/** - * Tests for {@link EventSequence}. - * - * @deprecated no longer used, to be removed in 2.0 - * - * @author Robert Kasanicky - */ -public class EventSequenceTests extends TestCase { - - // object under test - private EventSequence seq = new EventSequence(); - - private XMLEventFactory factory = XMLEventFactory.newInstance(); - - /** - * Common usage scenario. - */ - public void testCommonUse() { - XMLEvent event1 = factory.createComment("testString1"); - XMLEvent event2 = factory.createCData("testString2"); - seq.addEvent(event1); - seq.addEvent(event2); - - assertTrue(seq.hasNext()); - assertSame(event1, seq.nextEvent()); - assertTrue(seq.hasNext()); - assertSame(event2, seq.nextEvent()); - assertFalse(seq.hasNext()); - assertNull(seq.nextEvent()); - - } -}