You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2012/04/20 23:27:15 UTC

svn commit: r1328516 - in /webservices/commons/trunk/modules/axiom/modules/axiom-api: ./ src/main/java/org/apache/axiom/util/stax/dialect/ src/test/java/org/apache/axiom/util/stax/dialect/

Author: veithen
Date: Fri Apr 20 21:27:14 2012
New Revision: 1328516

URL: http://svn.apache.org/viewvc?rev=1328516&view=rev
Log:
AXIOM-407: Implemented workaround for WSTX-201 (which affects Woodstox 4.x).

Added:
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/CloseShieldInputStream.java   (with props)
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/CloseShieldReader.java   (with props)
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox3Dialect.java
      - copied, changed from r1327272, webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxDialect.java
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox3OutputFactoryWrapper.java
      - copied, changed from r1327272, webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxOutputFactoryWrapper.java
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox3StreamReaderWrapper.java
      - copied, changed from r1327272, webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxStreamReaderWrapper.java
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox3StreamWriterWrapper.java
      - copied, changed from r1327272, webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxStreamWriterWrapper.java
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4Dialect.java
      - copied, changed from r1327272, webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxDialect.java
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4InputFactoryWrapper.java   (with props)
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4OutputFactoryWrapper.java
      - copied, changed from r1327272, webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxOutputFactoryWrapper.java
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4StreamReaderWrapper.java
      - copied, changed from r1327272, webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxStreamReaderWrapper.java
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4StreamWriterWrapper.java
      - copied, changed from r1327272, webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxStreamWriterWrapper.java
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/TestCloseInputStream.java   (with props)
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/TestCloseReader.java   (with props)
Removed:
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxDialect.java
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxOutputFactoryWrapper.java
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxStreamReaderWrapper.java
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxStreamWriterWrapper.java
Modified:
    webservices/commons/trunk/modules/axiom/modules/axiom-api/pom.xml
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/StAXDialectDetector.java
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTestSuiteBuilder.java

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/pom.xml
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/pom.xml?rev=1328516&r1=1328515&r2=1328516&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/pom.xml (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/pom.xml Fri Apr 20 21:27:14 2012
@@ -189,6 +189,11 @@
                                     <version>4.1.0</version>
                                 </artifactItem>
                                 <artifactItem>
+                                    <groupId>org.codehaus.woodstox</groupId>
+                                    <artifactId>woodstox-core-asl</artifactId>
+                                    <version>4.1.2</version>
+                                </artifactItem>
+                                <artifactItem>
                                     <groupId>com.sun.xml.stream</groupId>
                                     <artifactId>sjsxp</artifactId>
                                     <version>1.0.1</version>

Added: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/CloseShieldInputStream.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/CloseShieldInputStream.java?rev=1328516&view=auto
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/CloseShieldInputStream.java (added)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/CloseShieldInputStream.java Fri Apr 20 21:27:14 2012
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.axiom.util.stax.dialect;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+public class CloseShieldInputStream extends InputStream {
+    private final InputStream parent;
+
+    public CloseShieldInputStream(InputStream parent) {
+        this.parent = parent;
+    }
+
+    public int available() throws IOException {
+        return parent.available();
+    }
+
+    public void close() throws IOException {
+    }
+
+    public void mark(int readlimit) {
+        parent.mark(readlimit);
+    }
+
+    public boolean markSupported() {
+        return parent.markSupported();
+    }
+
+    public int read() throws IOException {
+        return parent.read();
+    }
+
+    public int read(byte[] b, int off, int len) throws IOException {
+        return parent.read(b, off, len);
+    }
+
+    public int read(byte[] b) throws IOException {
+        return parent.read(b);
+    }
+
+    public void reset() throws IOException {
+        parent.reset();
+    }
+
+    public long skip(long n) throws IOException {
+        return parent.skip(n);
+    }
+}

Propchange: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/CloseShieldInputStream.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/CloseShieldReader.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/CloseShieldReader.java?rev=1328516&view=auto
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/CloseShieldReader.java (added)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/CloseShieldReader.java Fri Apr 20 21:27:14 2012
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.axiom.util.stax.dialect;
+
+import java.io.IOException;
+import java.io.Reader;
+import java.nio.CharBuffer;
+
+public class CloseShieldReader extends Reader {
+    private final Reader parent;
+
+    public CloseShieldReader(Reader parent) {
+        this.parent = parent;
+    }
+
+    public void close() throws IOException {
+    }
+
+    public void mark(int readAheadLimit) throws IOException {
+        parent.mark(readAheadLimit);
+    }
+
+    public boolean markSupported() {
+        return parent.markSupported();
+    }
+
+    public int read() throws IOException {
+        return parent.read();
+    }
+
+    public int read(char[] cbuf, int off, int len) throws IOException {
+        return parent.read(cbuf, off, len);
+    }
+
+    public int read(char[] cbuf) throws IOException {
+        return parent.read(cbuf);
+    }
+
+    public int read(CharBuffer target) throws IOException {
+        return parent.read(target);
+    }
+
+    public boolean ready() throws IOException {
+        return parent.ready();
+    }
+
+    public void reset() throws IOException {
+        parent.reset();
+    }
+
+    public long skip(long n) throws IOException {
+        return parent.skip(n);
+    }
+}

Propchange: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/CloseShieldReader.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/StAXDialectDetector.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/StAXDialectDetector.java?rev=1328516&r1=1328515&r2=1328516&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/StAXDialectDetector.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/StAXDialectDetector.java Fri Apr 20 21:27:14 2012
@@ -226,7 +226,13 @@ public class StAXDialectDetector {
         // For the moment, the dialect detection is quite simple, but in the future we will probably
         // have to differentiate by version number
         if (vendor != null && vendor.toLowerCase().indexOf("woodstox") != -1) {
-            return WoodstoxDialect.INSTANCE;
+            if (version.startsWith("3.")) {
+                return Woodstox3Dialect.INSTANCE;
+            } else if (version.startsWith("4.")) {
+                return Woodstox4Dialect.INSTANCE;
+            } else {
+                return null;
+            }
         } else if (title != null && title.indexOf("SJSXP") != -1) {
             return new SJSXPDialect(false);
         } else if ("com.bea.core.weblogic.stax".equals(symbolicName)) {

Copied: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox3Dialect.java (from r1327272, webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxDialect.java)
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox3Dialect.java?p2=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox3Dialect.java&p1=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxDialect.java&r1=1327272&r2=1328516&rev=1328516&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxDialect.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox3Dialect.java Fri Apr 20 21:27:14 2012
@@ -24,11 +24,11 @@ import javax.xml.stream.XMLOutputFactory
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 
-class WoodstoxDialect extends AbstractStAXDialect {
-    public static final WoodstoxDialect INSTANCE = new WoodstoxDialect();
+class Woodstox3Dialect extends AbstractStAXDialect {
+    public static final Woodstox3Dialect INSTANCE = new Woodstox3Dialect();
 
     public String getName() {
-        return "Woodstox";
+        return "Woodstox 3.x";
     }
 
     public XMLInputFactory enableCDataReporting(XMLInputFactory factory) {
@@ -52,11 +52,11 @@ class WoodstoxDialect extends AbstractSt
     }
 
     public XMLStreamReader normalize(XMLStreamReader reader) {
-        return new WoodstoxStreamReaderWrapper(reader);
+        return new Woodstox3StreamReaderWrapper(reader);
     }
 
     public XMLStreamWriter normalize(XMLStreamWriter writer) {
-        return new WoodstoxStreamWriterWrapper(writer);
+        return new Woodstox3StreamWriterWrapper(writer);
     }
 
     public XMLInputFactory normalize(XMLInputFactory factory) {
@@ -64,6 +64,6 @@ class WoodstoxDialect extends AbstractSt
     }
 
     public XMLOutputFactory normalize(XMLOutputFactory factory) {
-        return new WoodstoxOutputFactoryWrapper(factory, this);
+        return new Woodstox3OutputFactoryWrapper(factory, this);
     }
 }

Copied: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox3OutputFactoryWrapper.java (from r1327272, webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxOutputFactoryWrapper.java)
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox3OutputFactoryWrapper.java?p2=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox3OutputFactoryWrapper.java&p1=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxOutputFactoryWrapper.java&r1=1327272&r2=1328516&rev=1328516&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxOutputFactoryWrapper.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox3OutputFactoryWrapper.java Fri Apr 20 21:27:14 2012
@@ -26,8 +26,8 @@ import javax.xml.stream.XMLOutputFactory
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 
-class WoodstoxOutputFactoryWrapper extends NormalizingXMLOutputFactoryWrapper {
-    public WoodstoxOutputFactoryWrapper(XMLOutputFactory parent, AbstractStAXDialect dialect) {
+class Woodstox3OutputFactoryWrapper extends NormalizingXMLOutputFactoryWrapper {
+    public Woodstox3OutputFactoryWrapper(XMLOutputFactory parent, AbstractStAXDialect dialect) {
         super(parent, dialect);
     }
 

Copied: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox3StreamReaderWrapper.java (from r1327272, webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxStreamReaderWrapper.java)
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox3StreamReaderWrapper.java?p2=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox3StreamReaderWrapper.java&p1=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxStreamReaderWrapper.java&r1=1327272&r2=1328516&rev=1328516&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxStreamReaderWrapper.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox3StreamReaderWrapper.java Fri Apr 20 21:27:14 2012
@@ -24,8 +24,8 @@ import javax.xml.stream.XMLStreamReader;
 import org.apache.axiom.ext.stax.DelegatingXMLStreamReader;
 import org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper;
 
-class WoodstoxStreamReaderWrapper extends XMLStreamReaderWrapper implements DelegatingXMLStreamReader {
-    public WoodstoxStreamReaderWrapper(XMLStreamReader reader) {
+class Woodstox3StreamReaderWrapper extends XMLStreamReaderWrapper implements DelegatingXMLStreamReader {
+    public Woodstox3StreamReaderWrapper(XMLStreamReader reader) {
         super(reader);
     }
 
@@ -70,43 +70,10 @@ class WoodstoxStreamReaderWrapper extend
     }
 
     public boolean isCharacters() {
-        // TODO: in the dialect detection we should take into account the Woodstox version,
-        //       so that we can avoid creating the wrapper for Woodstox versions where this
-        //       issue has been fixed
         // This addresses WSTX-201:
         return getEventType() == CHARACTERS;
     }
 
-    public String getPrefix() {
-        // Woodstox 4.0 may return "" instead of null
-        String prefix = super.getPrefix();
-        return prefix == null || prefix.length() == 0 ? null : prefix;
-    }
-
-    public String getNamespaceURI() {
-        // Woodstox 4.0 may return "" instead of null
-        String uri = super.getNamespaceURI();
-        return uri == null || uri.length() == 0 ? null : uri;
-    }
-
-    public String getNamespaceURI(String prefix) {
-        // Woodstox 4.0 may return "" instead of null
-        String uri = super.getNamespaceURI(prefix);
-        return uri == null || uri.length() == 0 ? null : uri;
-    }
-
-    public String getNamespacePrefix(int index) {
-        // Woodstox 4.0 may return "" instead of null
-        String prefix = super.getNamespacePrefix(index);
-        return prefix == null || prefix.length() == 0 ? null : prefix;
-    }
-
-    public String getAttributeNamespace(int index) {
-        // Woodstox 4.0 may return "" instead of null
-        String uri = super.getAttributeNamespace(index);
-        return uri == null || uri.length() == 0 ? null : uri;
-    }
-
     public NamespaceContext getNamespaceContext() {
         return new NamespaceURICorrectingNamespaceContextWrapper(super.getNamespaceContext());
     }

Copied: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox3StreamWriterWrapper.java (from r1327272, webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxStreamWriterWrapper.java)
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox3StreamWriterWrapper.java?p2=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox3StreamWriterWrapper.java&p1=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxStreamWriterWrapper.java&r1=1327272&r2=1328516&rev=1328516&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxStreamWriterWrapper.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox3StreamWriterWrapper.java Fri Apr 20 21:27:14 2012
@@ -24,8 +24,8 @@ import javax.xml.stream.XMLStreamWriter;
 
 import org.apache.axiom.util.stax.wrapper.XMLStreamWriterWrapper;
 
-class WoodstoxStreamWriterWrapper extends XMLStreamWriterWrapper {
-    public WoodstoxStreamWriterWrapper(XMLStreamWriter parent) {
+class Woodstox3StreamWriterWrapper extends XMLStreamWriterWrapper {
+    public Woodstox3StreamWriterWrapper(XMLStreamWriter parent) {
         super(parent);
     }
 

Copied: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4Dialect.java (from r1327272, webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxDialect.java)
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4Dialect.java?p2=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4Dialect.java&p1=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxDialect.java&r1=1327272&r2=1328516&rev=1328516&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxDialect.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4Dialect.java Fri Apr 20 21:27:14 2012
@@ -24,11 +24,11 @@ import javax.xml.stream.XMLOutputFactory
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 
-class WoodstoxDialect extends AbstractStAXDialect {
-    public static final WoodstoxDialect INSTANCE = new WoodstoxDialect();
+class Woodstox4Dialect extends AbstractStAXDialect {
+    public static final Woodstox4Dialect INSTANCE = new Woodstox4Dialect();
 
     public String getName() {
-        return "Woodstox";
+        return "Woodstox 4.x";
     }
 
     public XMLInputFactory enableCDataReporting(XMLInputFactory factory) {
@@ -52,18 +52,18 @@ class WoodstoxDialect extends AbstractSt
     }
 
     public XMLStreamReader normalize(XMLStreamReader reader) {
-        return new WoodstoxStreamReaderWrapper(reader);
+        return new Woodstox4StreamReaderWrapper(reader);
     }
 
     public XMLStreamWriter normalize(XMLStreamWriter writer) {
-        return new WoodstoxStreamWriterWrapper(writer);
+        return new Woodstox4StreamWriterWrapper(writer);
     }
 
     public XMLInputFactory normalize(XMLInputFactory factory) {
-        return new NormalizingXMLInputFactoryWrapper(factory, this);
+        return new Woodstox4InputFactoryWrapper(factory, this);
     }
 
     public XMLOutputFactory normalize(XMLOutputFactory factory) {
-        return new WoodstoxOutputFactoryWrapper(factory, this);
+        return new Woodstox4OutputFactoryWrapper(factory, this);
     }
 }

Added: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4InputFactoryWrapper.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4InputFactoryWrapper.java?rev=1328516&view=auto
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4InputFactoryWrapper.java (added)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4InputFactoryWrapper.java Fri Apr 20 21:27:14 2012
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.axiom.util.stax.dialect;
+
+import java.io.InputStream;
+import java.io.Reader;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+public class Woodstox4InputFactoryWrapper extends NormalizingXMLInputFactoryWrapper {
+    public Woodstox4InputFactoryWrapper(XMLInputFactory parent, AbstractStAXDialect dialect) {
+        super(parent, dialect);
+    }
+
+    public XMLStreamReader createXMLStreamReader(InputStream stream, String encoding) throws XMLStreamException {
+        return super.createXMLStreamReader(new CloseShieldInputStream(stream), encoding);
+    }
+
+    public XMLStreamReader createXMLStreamReader(InputStream stream) throws XMLStreamException {
+        return super.createXMLStreamReader(new CloseShieldInputStream(stream));
+    }
+
+    public XMLStreamReader createXMLStreamReader(Reader reader) throws XMLStreamException {
+        return super.createXMLStreamReader(new CloseShieldReader(reader));
+    }
+
+    public XMLStreamReader createXMLStreamReader(String systemId, InputStream stream) throws XMLStreamException {
+        return super.createXMLStreamReader(systemId, new CloseShieldInputStream(stream));
+    }
+
+    public XMLStreamReader createXMLStreamReader(String systemId, Reader reader) throws XMLStreamException {
+        return super.createXMLStreamReader(systemId, new CloseShieldReader(reader));
+    }
+}

Propchange: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4InputFactoryWrapper.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4OutputFactoryWrapper.java (from r1327272, webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxOutputFactoryWrapper.java)
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4OutputFactoryWrapper.java?p2=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4OutputFactoryWrapper.java&p1=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxOutputFactoryWrapper.java&r1=1327272&r2=1328516&rev=1328516&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxOutputFactoryWrapper.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4OutputFactoryWrapper.java Fri Apr 20 21:27:14 2012
@@ -26,8 +26,8 @@ import javax.xml.stream.XMLOutputFactory
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 
-class WoodstoxOutputFactoryWrapper extends NormalizingXMLOutputFactoryWrapper {
-    public WoodstoxOutputFactoryWrapper(XMLOutputFactory parent, AbstractStAXDialect dialect) {
+class Woodstox4OutputFactoryWrapper extends NormalizingXMLOutputFactoryWrapper {
+    public Woodstox4OutputFactoryWrapper(XMLOutputFactory parent, AbstractStAXDialect dialect) {
         super(parent, dialect);
     }
 

Copied: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4StreamReaderWrapper.java (from r1327272, webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxStreamReaderWrapper.java)
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4StreamReaderWrapper.java?p2=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4StreamReaderWrapper.java&p1=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxStreamReaderWrapper.java&r1=1327272&r2=1328516&rev=1328516&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxStreamReaderWrapper.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4StreamReaderWrapper.java Fri Apr 20 21:27:14 2012
@@ -24,8 +24,8 @@ import javax.xml.stream.XMLStreamReader;
 import org.apache.axiom.ext.stax.DelegatingXMLStreamReader;
 import org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper;
 
-class WoodstoxStreamReaderWrapper extends XMLStreamReaderWrapper implements DelegatingXMLStreamReader {
-    public WoodstoxStreamReaderWrapper(XMLStreamReader reader) {
+class Woodstox4StreamReaderWrapper extends XMLStreamReaderWrapper implements DelegatingXMLStreamReader {
+    public Woodstox4StreamReaderWrapper(XMLStreamReader reader) {
         super(reader);
     }
 

Copied: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4StreamWriterWrapper.java (from r1327272, webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxStreamWriterWrapper.java)
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4StreamWriterWrapper.java?p2=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4StreamWriterWrapper.java&p1=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxStreamWriterWrapper.java&r1=1327272&r2=1328516&rev=1328516&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/WoodstoxStreamWriterWrapper.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/Woodstox4StreamWriterWrapper.java Fri Apr 20 21:27:14 2012
@@ -24,8 +24,8 @@ import javax.xml.stream.XMLStreamWriter;
 
 import org.apache.axiom.util.stax.wrapper.XMLStreamWriterWrapper;
 
-class WoodstoxStreamWriterWrapper extends XMLStreamWriterWrapper {
-    public WoodstoxStreamWriterWrapper(XMLStreamWriter parent) {
+class Woodstox4StreamWriterWrapper extends XMLStreamWriterWrapper {
+    public Woodstox4StreamWriterWrapper(XMLStreamWriter parent) {
         super(parent);
     }
 

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTestSuiteBuilder.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTestSuiteBuilder.java?rev=1328516&r1=1328515&r2=1328516&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTestSuiteBuilder.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTestSuiteBuilder.java Fri Apr 20 21:27:14 2012
@@ -42,6 +42,8 @@ public class DialectTestSuiteBuilder ext
 
     private void addTests(StAXImplementation staxImpl) {
         String[] conformanceTestFiles = AbstractTestCase.getConformanceTestFiles();
+        addTest(new TestCloseInputStream(staxImpl));
+        addTest(new TestCloseReader(staxImpl));
         addTest(new TestCreateXMLEventWriterWithNullEncoding(staxImpl));
         addTest(new TestCreateXMLStreamReaderThreadSafety(staxImpl));
         addTest(new TestCreateXMLStreamWriterThreadSafety(staxImpl));

Added: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/TestCloseInputStream.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/TestCloseInputStream.java?rev=1328516&view=auto
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/TestCloseInputStream.java (added)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/TestCloseInputStream.java Fri Apr 20 21:27:14 2012
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.axiom.util.stax.dialect;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.axiom.testutils.io.CloseSensorInputStream;
+
+/**
+ * Tests that {@link XMLStreamReader#close()} doesn't close the underlying {@link InputStream}.
+ */
+public class TestCloseInputStream extends DialectTestCase {
+    public TestCloseInputStream(StAXImplementation staxImpl) {
+        super(staxImpl);
+    }
+
+    protected void runTest() throws Throwable {
+        CloseSensorInputStream in = new CloseSensorInputStream(new ByteArrayInputStream("<root/>".getBytes("UTF-8")));
+        XMLStreamReader reader = staxImpl.newNormalizedXMLInputFactory().createXMLStreamReader(in);
+        reader.close();
+        assertFalse(in.isClosed());
+    }
+}

Propchange: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/TestCloseInputStream.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/TestCloseReader.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/TestCloseReader.java?rev=1328516&view=auto
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/TestCloseReader.java (added)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/TestCloseReader.java Fri Apr 20 21:27:14 2012
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.axiom.util.stax.dialect;
+
+import java.io.Reader;
+import java.io.StringReader;
+
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.axiom.testutils.io.CloseSensorReader;
+
+/**
+ * Tests that {@link XMLStreamReader#close()} doesn't close the underlying {@link Reader}.
+ */
+public class TestCloseReader extends DialectTestCase {
+    public TestCloseReader(StAXImplementation staxImpl) {
+        super(staxImpl);
+    }
+
+    protected void runTest() throws Throwable {
+        CloseSensorReader in = new CloseSensorReader(new StringReader("<root/>"));
+        XMLStreamReader reader = staxImpl.newNormalizedXMLInputFactory().createXMLStreamReader(in);
+        reader.close();
+        assertFalse(in.isClosed());
+    }
+}

Propchange: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/TestCloseReader.java
------------------------------------------------------------------------------
    svn:eol-style = native