Author: alessio.soldano(a)jboss.com
Date: 2010-11-29 06:09:19 -0500 (Mon, 29 Nov 2010)
New Revision: 13357
Modified:
spi/trunk/src/main/java/org/jboss/wsf/spi/util/StAXUtils.java
spi/trunk/src/test/java/org/jboss/test/wsf/spi/metadata/j2ee/serviceref/UnifiedHandlersChainsMDParserTestCase.java
spi/trunk/src/test/resources/metadata/j2ee/serviceref/test-handlers.xml
Log:
[JBWS-3169] Fixing namespace handling when getting QName element using stax based parsers
Modified: spi/trunk/src/main/java/org/jboss/wsf/spi/util/StAXUtils.java
===================================================================
--- spi/trunk/src/main/java/org/jboss/wsf/spi/util/StAXUtils.java 2010-11-29 10:54:20 UTC
(rev 13356)
+++ spi/trunk/src/main/java/org/jboss/wsf/spi/util/StAXUtils.java 2010-11-29 11:09:19 UTC
(rev 13357)
@@ -128,9 +128,11 @@
public static QName elementAsQName(XMLStreamReader reader) throws XMLStreamException
{
- String namespaceURI = reader.getNamespaceURI(0);
String text = reader.getElementText();
String localPart = text.substring(text.indexOf(':') + 1, text.length());
- return new QName(namespaceURI, localPart);
+ int i = text.indexOf(':');
+ String prefix = i < 0 ? null : text.substring(0, i);
+ String namespaceURI = prefix == null ? reader.getNamespaceURI() :
reader.getNamespaceURI(prefix);
+ return prefix == null ? new QName(namespaceURI, localPart) : new
QName(namespaceURI, localPart, prefix);
}
}
Modified:
spi/trunk/src/test/java/org/jboss/test/wsf/spi/metadata/j2ee/serviceref/UnifiedHandlersChainsMDParserTestCase.java
===================================================================
---
spi/trunk/src/test/java/org/jboss/test/wsf/spi/metadata/j2ee/serviceref/UnifiedHandlersChainsMDParserTestCase.java 2010-11-29
10:54:20 UTC (rev 13356)
+++
spi/trunk/src/test/java/org/jboss/test/wsf/spi/metadata/j2ee/serviceref/UnifiedHandlersChainsMDParserTestCase.java 2010-11-29
11:09:19 UTC (rev 13357)
@@ -57,6 +57,7 @@
private void testHandlerChain1(UnifiedHandlerChainMetaData chain)
{
assertEquals(new
QName("http://ws.jboss.org/jbws2949",
"EndpointPort", "foo"), chain.getPortNamePattern());
+ assertEquals("foo", chain.getPortNamePattern().getPrefix());
assertEquals(new
QName("http://ws.jboss.org/jbws2949",
"EndpointService", "foo"), chain.getServiceNamePattern());
assertEquals("##SOAP11_HTTP", chain.getProtocolBindings());
List<UnifiedHandlerMetaData> handlers = chain.getHandlers();
@@ -78,8 +79,10 @@
private void testHandlerChain2(UnifiedHandlerChainMetaData chain)
{
- assertEquals(new
QName("http://ws.jboss.org/jbws2949",
"EndpointPort2", "foo"), chain.getPortNamePattern());
- assertEquals(null, chain.getServiceNamePattern());
+ assertEquals(new
QName("http://ws.jboss.org/jbws2949",
"EndpointPort2", "ns1"), chain.getPortNamePattern());
+ assertEquals("ns1", chain.getPortNamePattern().getPrefix());
+ assertEquals(new
QName("http://org.jboss.ws/jaxws/samples/logicalhandler",
"EndpointService2", "ns1"), chain.getServiceNamePattern());
+ assertEquals("ns1", chain.getServiceNamePattern().getPrefix());
assertEquals(null, chain.getProtocolBindings());
List<UnifiedHandlerMetaData> handlers = chain.getHandlers();
assertEquals(2, handlers.size());
Modified: spi/trunk/src/test/resources/metadata/j2ee/serviceref/test-handlers.xml
===================================================================
--- spi/trunk/src/test/resources/metadata/j2ee/serviceref/test-handlers.xml 2010-11-29
10:54:20 UTC (rev 13356)
+++ spi/trunk/src/test/resources/metadata/j2ee/serviceref/test-handlers.xml 2010-11-29
11:09:19 UTC (rev 13357)
@@ -23,6 +23,7 @@
</handler-chain>
<handler-chain>
+ <service-name-pattern>ns1:EndpointService2</service-name-pattern>
<port-name-pattern
xmlns:ns1="http://ws.jboss.org/jbws2949">ns1:EndpointPort2&l...
<handler>
<handler-name>SOAPServerHandler2</handler-name>