Author: veithen Date: Wed Sep 29 17:16:26 2010 New Revision: 1002747 URL: http://svn.apache.org/viewvc?rev=1002747&view=rev Log: Improved dialect support for earlier versions of XLXP.
Added: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/SetPrefixScopeTestCase.java (with props) webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/resources/org/apache/axiom/util/stax/dialect/xml.properties - copied unchanged from r1002679, webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/resources/org/apache/axiom/util/stax/dialect/com.ibm.ws.runtime.properties Modified: 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/main/java/org/apache/axiom/util/stax/dialect/XLXP1StreamReaderWrapper.java webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTest.java 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=1002747&r1=1002746&r2=1002747&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 Wed Sep 29 17:16:26 2010 @@ -231,9 +231,7 @@ public class StAXDialectDetector { return new SJSXPDialect(false); } else if ("BEA".equals(vendor)) { return BEADialect.INSTANCE; - } else if ("IBM".equals(vendor) || - (vendor != null && vendor.indexOf("IBM") >= 0) - || "com.ibm.ws.prereq.banshee".equals(symbolicName)) { + } else if ("com.ibm.ws.prereq.banshee".equals(symbolicName)) { return XLXP2Dialect.INSTANCE; } else { return null; Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP1StreamReaderWrapper.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP1StreamReaderWrapper.java?rev=1002747&r1=1002746&r2=1002747&view=diff ============================================================================== --- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP1StreamReaderWrapper.java (original) +++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP1StreamReaderWrapper.java Wed Sep 29 17:16:26 2010 @@ -29,6 +29,12 @@ class XLXP1StreamReaderWrapper extends X super(parent); } + public String getEncoding() { + // Under some circumstances, some versions of XLXP return an empty string instead of null + String encoding = super.getEncoding(); + return encoding == null || encoding.length() == 0 ? null : encoding; + } + public boolean isCharacters() { // XLXP returns true for SPACE events as well; this is not correct return getEventType() == CHARACTERS; Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTest.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTest.java?rev=1002747&r1=1002746&r2=1002747&view=diff ============================================================================== --- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTest.java (original) +++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTest.java Wed Sep 29 17:16:26 2010 @@ -140,6 +140,7 @@ public class DialectTest extends TestSui addDialectTest(new IsStandaloneTestCase()); addDialectTest(new MaskedNamespaceTestCase()); addDialectTest(new NextAfterEndDocumentTestCase()); + addDialectTest(new SetPrefixScopeTestCase()); addDialectTest(new StandaloneSetTestCase()); addDialectTest(new WriteStartDocumentWithNullEncodingTestCase()); } Added: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/SetPrefixScopeTestCase.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/SetPrefixScopeTestCase.java?rev=1002747&view=auto ============================================================================== --- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/SetPrefixScopeTestCase.java (added) +++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/SetPrefixScopeTestCase.java Wed Sep 29 17:16:26 2010 @@ -0,0 +1,41 @@ +/* + * 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.ByteArrayOutputStream; + +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamWriter; + +public class SetPrefixScopeTestCase extends DialectTestCase { + protected void runTest() throws Throwable { + XMLOutputFactory factory = newNormalizedXMLOutputFactory(); + XMLStreamWriter writer = factory.createXMLStreamWriter(new ByteArrayOutputStream()); + writer.writeStartDocument(); + writer.writeStartElement("root"); + writer.setPrefix("p", "urn:ns"); + writer.writeStartElement("child"); + assertEquals("p", writer.getPrefix("urn:ns")); + writer.writeEndElement(); + assertEquals("p", writer.getPrefix("urn:ns")); + writer.writeEndElement(); + writer.writeEndDocument(); + writer.close(); + } +} Propchange: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/SetPrefixScopeTestCase.java ------------------------------------------------------------------------------ svn:eol-style = native