Author: djencks
Date: Fri Jun 25 00:22:14 2010
New Revision: 957768
URL: http://svn.apache.org/viewvc?rev=957768&view=rev
Log:
fix handler chain matching
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/HandlerChainInfo.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/HandlerChainData.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/HandlerResolverImpl.java
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/webservices/HandlerResolverImplTest.java
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/HandlerChainInfo.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/HandlerChainInfo.java?rev=957768&r1=957767&r2=957768&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/HandlerChainInfo.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/HandlerChainInfo.java
Fri Jun 25 00:22:14 2010
@@ -17,12 +17,13 @@
*/
package org.apache.openejb.assembler.classic;
+import javax.xml.namespace.QName;
import java.util.ArrayList;
import java.util.List;
public class HandlerChainInfo extends InfoObject {
- public String serviceNamePattern;
- public String portNamePattern;
+ public QName serviceNamePattern;
+ public QName portNamePattern;
public final List<String> protocolBindings = new ArrayList<String>();
public final List<HandlerInfo> handlers = new ArrayList<HandlerInfo>();
}
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java?rev=957768&r1=957767&r2=957768&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
Fri Jun 25 00:22:14 2010
@@ -218,8 +218,8 @@ public class ConfigurationFactory implem
for (HandlerChain handlerChain : chains.getHandlerChain()) {
HandlerChainInfo handlerChainInfo = new HandlerChainInfo();
- handlerChainInfo.serviceNamePattern =
handlerChain.getServiceNamePattern().toString();
- handlerChainInfo.portNamePattern =
handlerChain.getPortNamePattern().toString();
+ handlerChainInfo.serviceNamePattern =
handlerChain.getServiceNamePattern();
+ handlerChainInfo.portNamePattern =
handlerChain.getPortNamePattern();
handlerChainInfo.protocolBindings.addAll(handlerChain.getProtocolBindings());
for (Handler handler : handlerChain.getHandler()) {
HandlerInfo handlerInfo = new HandlerInfo();
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/HandlerChainData.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/HandlerChainData.java?rev=957768&r1=957767&r2=957768&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/HandlerChainData.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/HandlerChainData.java
Fri Jun 25 00:22:14 2010
@@ -17,27 +17,28 @@
*/
package org.apache.openejb.core.webservices;
+import javax.xml.namespace.QName;
import java.util.ArrayList;
import java.util.List;
public class HandlerChainData {
- private final String serviceNamePattern;
- private final String portNamePattern;
+ private final QName serviceNamePattern;
+ private final QName portNamePattern;
private final List<String> protocolBindings = new ArrayList<String>();
private final List<HandlerData> handlers = new ArrayList<HandlerData>();
- public HandlerChainData(String serviceNamePattern, String portNamePattern,
List<String> protocolBindings, List<HandlerData> handlers) {
+ public HandlerChainData(QName serviceNamePattern, QName portNamePattern,
List<String> protocolBindings, List<HandlerData> handlers) {
this.serviceNamePattern = serviceNamePattern;
this.portNamePattern = portNamePattern;
this.protocolBindings.addAll(protocolBindings);
this.handlers.addAll(handlers);
}
- public String getServiceNamePattern() {
+ public QName getServiceNamePattern() {
return serviceNamePattern;
}
- public String getPortNamePattern() {
+ public QName getPortNamePattern() {
return portNamePattern;
}
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/HandlerResolverImpl.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/HandlerResolverImpl.java?rev=957768&r1=957767&r2=957768&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/HandlerResolverImpl.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/HandlerResolverImpl.java
Fri Jun 25 00:22:14 2010
@@ -93,11 +93,11 @@ public class HandlerResolverImpl impleme
return handlers;
}
- private boolean matchServiceName(PortInfo info, String namePattern) {
+ private boolean matchServiceName(PortInfo info, QName namePattern) {
return match((info == null ? null : info.getServiceName()),
namePattern);
}
- private boolean matchPortName(PortInfo info, String namePattern) {
+ private boolean matchPortName(PortInfo info, QName namePattern) {
return match((info == null ? null : info.getPortName()), namePattern);
}
@@ -127,23 +127,18 @@ public class HandlerResolverImpl impleme
}
/**
- * Performs basic localName matching, namespaces are not checked!
+ * Performs basic localName matching
*/
- private boolean match(QName name, String namePattern) {
+ private boolean match(QName name, QName namePattern) {
if (name == null) {
- return (namePattern == null || namePattern.equals("*"));
+ return (namePattern == null ||
namePattern.getLocalPart().equals("*"));
} else {
if (namePattern == null) {
return true;
+ } else if (namePattern.getNamespaceURI() != null &&
!name.getNamespaceURI().equals(namePattern.getNamespaceURI())) {
+ return false;
} else {
- String localNamePattern;
-
- // get the local name from pattern
- int pos = namePattern.indexOf(':');
- localNamePattern = (pos == -1) ? namePattern : namePattern
- .substring(pos + 1);
- localNamePattern = localNamePattern.trim();
-
+ String localNamePattern = namePattern.getLocalPart();
if (localNamePattern.equals("*")) {
// matches anything
return true;
Modified:
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/webservices/HandlerResolverImplTest.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/webservices/HandlerResolverImplTest.java?rev=957768&r1=957767&r2=957768&view=diff
==============================================================================
---
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/webservices/HandlerResolverImplTest.java
(original)
+++
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/webservices/HandlerResolverImplTest.java
Fri Jun 25 00:22:14 2010
@@ -65,19 +65,19 @@ public class HandlerResolverImplTest ext
handlers = resolver.getHandlerChain(new TestPortInfo(null, null,
null));
assertEquals(0, handlers.size());
- QName serviceName1 = new QName("http://foo", "Bar");
+ QName serviceName1 = new QName("http://java.sun.com/xml/ns/javaee",
"Bar");
handlers = resolver.getHandlerChain(new TestPortInfo(null, null,
serviceName1));
assertEquals(1, handlers.size());
- QName serviceName2 = new QName("http://foo", "Foo");
+ QName serviceName2 = new QName("http://java.sun.com/xml/ns/javaee",
"Foo");
handlers = resolver.getHandlerChain(new TestPortInfo(null, null,
serviceName2));
assertEquals(2, handlers.size());
- QName serviceName3 = new QName("http://foo", "FooBar");
+ QName serviceName3 = new QName("http://java.sun.com/xml/ns/javaee",
"FooBar");
handlers = resolver.getHandlerChain(new TestPortInfo(null, null,
serviceName3));
assertEquals(1, handlers.size());
- QName serviceName4 = new QName("http://foo", "BarFoo");
+ QName serviceName4 = new QName("http://java.sun.com/xml/ns/javaee",
"BarFoo");
handlers = resolver.getHandlerChain(new TestPortInfo(null, null,
serviceName4));
assertEquals(0, handlers.size());
}
@@ -118,19 +118,19 @@ public class HandlerResolverImplTest ext
handlers = resolver.getHandlerChain(new TestPortInfo(null, null,
null));
assertEquals(0, handlers.size());
- QName portName1 = new QName("http://foo", "Bar");
+ QName portName1 = new QName("http://java.sun.com/xml/ns/javaee",
"Bar");
handlers = resolver.getHandlerChain(new TestPortInfo(null, portName1,
null));
assertEquals(1, handlers.size());
- QName portName2 = new QName("http://foo", "Foo");
+ QName portName2 = new QName("http://java.sun.com/xml/ns/javaee",
"Foo");
handlers = resolver.getHandlerChain(new TestPortInfo(null, portName2,
null));
assertEquals(2, handlers.size());
- QName portName3 = new QName("http://foo", "FooBar");
+ QName portName3 = new QName("http://java.sun.com/xml/ns/javaee",
"FooBar");
handlers = resolver.getHandlerChain(new TestPortInfo(null, portName3,
null));
assertEquals(1, handlers.size());
- QName portName4 = new QName("http://foo", "BarFoo");
+ QName portName4 = new QName("http://java.sun.com/xml/ns/javaee",
"BarFoo");
handlers = resolver.getHandlerChain(new TestPortInfo(null, portName4,
null));
assertEquals(0, handlers.size());
}
@@ -148,8 +148,8 @@ public class HandlerResolverImplTest ext
handlers = resolver.getHandlerChain(new TestPortInfo(null, null,
null));
assertEquals(0, handlers.size());
- QName serviceName1 = new QName("http:/foo", "Bar");
- QName portName1 = new QName("http://foo", "FooBar");
+ QName serviceName1 = new QName("http://java.sun.com/xml/ns/javaee",
"Bar");
+ QName portName1 = new QName("http://java.sun.com/xml/ns/javaee",
"FooBar");
String binding1 = "##XML_HTTP";
handlers = resolver.getHandlerChain(new TestPortInfo(binding1,
portName1, serviceName1));
assertEquals(3, handlers.size());
@@ -158,8 +158,8 @@ public class HandlerResolverImplTest ext
handlers = resolver.getHandlerChain(new TestPortInfo(binding2,
portName1, serviceName1));
assertEquals(2, handlers.size());
- QName serviceName2 = new QName("http://foo", "Baaz");
- QName portName2 = new QName("http://foo", "Baaz");
+ QName serviceName2 = new QName("http://java.sun.com/xml/ns/javaee",
"Baaz");
+ QName portName2 = new QName("http://java.sun.com/xml/ns/javaee",
"Baaz");
handlers = resolver.getHandlerChain(new TestPortInfo(binding1,
portName2, serviceName2));
assertEquals(1, handlers.size());
}