Repository: cxf
Updated Branches:
  refs/heads/master 6fd3ada7a -> 0985e79ab


Misc minor enhancements to HandlerChain builders and resolver


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/0985e79a
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/0985e79a
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/0985e79a

Branch: refs/heads/master
Commit: 0985e79ab47124fbe0a08b9653ae7d4d1c2b5b97
Parents: 6fd3ada
Author: Alessio Soldano <asold...@redhat.com>
Authored: Tue Oct 27 18:04:18 2015 +0100
Committer: Alessio Soldano <asold...@redhat.com>
Committed: Tue Oct 27 18:16:12 2015 +0100

----------------------------------------------------------------------
 .../handler/AnnotationHandlerChainBuilder.java  |  7 +++---
 .../cxf/jaxws/handler/HandlerChainBuilder.java  | 24 ++++++++++++--------
 .../cxf/jaxws/handler/HandlerResolverImpl.java  |  5 ----
 3 files changed, 19 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/0985e79a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java
----------------------------------------------------------------------
diff --git 
a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java
 
b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java
index d8d62f4..b72a721 100644
--- 
a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java
+++ 
b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java
@@ -211,14 +211,15 @@ public class AnnotationHandlerChainBuilder extends 
HandlerChainBuilder {
         if ("*".equals(namePattern)) {
             return true;
         }
-        if (!namePattern.contains(":")) {
+        final int idx = namePattern.indexOf(':');
+        if (idx < 0) {
             String xml = StaxUtils.toString(el);
             throw new WebServiceException(
                 BundleUtils.getFormattedString(BUNDLE,
                                                "NOT_A_QNAME_PATTER",
                                                namePattern, xml));             
       
         }
-        String pfx = namePattern.substring(0, namePattern.indexOf(':'));
+        String pfx = namePattern.substring(0, idx);
         String ns = el.lookupNamespaceURI(pfx);
         if (ns == null) {
             ns = pfx;
@@ -226,7 +227,7 @@ public class AnnotationHandlerChainBuilder extends 
HandlerChainBuilder {
         if (!ns.equals(comp.getNamespaceURI())) {
             return false;
         }
-        String localPart = namePattern.substring(namePattern.indexOf(':') + 1,
+        String localPart = namePattern.substring(idx + 1,
                                                  namePattern.length());
         if (localPart.contains("*")) {
             //wildcard pattern matching

http://git-wip-us.apache.org/repos/asf/cxf/blob/0985e79a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainBuilder.java
----------------------------------------------------------------------
diff --git 
a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainBuilder.java
 
b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainBuilder.java
index c8ba542..7e733b8 100644
--- 
a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainBuilder.java
+++ 
b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainBuilder.java
@@ -93,21 +93,22 @@ public class HandlerChainBuilder {
      */
     public List<Handler> sortHandlers(List<Handler> handlers) {
 
-        List<LogicalHandler<?>> logicalHandlers = new 
ArrayList<LogicalHandler<?>>();
-        List<Handler<?>> protocolHandlers = new ArrayList<Handler<?>>();
+        final int size = handlers.size();
+        List<Handler> logicalHandlers = new ArrayList<Handler>(size);
+        List<Handler> protocolHandlers = new ArrayList<Handler>(Math.min(10, 
size));
 
         for (Handler<?> handler : handlers) {
             if (handler instanceof LogicalHandler) {
-                logicalHandlers.add((LogicalHandler<?>)handler);
+                logicalHandlers.add(handler);
             } else {
                 protocolHandlers.add(handler);
             }
         }
 
-        List<Handler> sortedHandlers = new ArrayList<Handler>();
-        sortedHandlers.addAll(logicalHandlers);
-        sortedHandlers.addAll(protocolHandlers);
-        return sortedHandlers;
+        if (!protocolHandlers.isEmpty()) {
+            logicalHandlers.addAll(protocolHandlers);
+        }
+        return logicalHandlers;
     }
 
     protected ClassLoader getHandlerClassLoader() {
@@ -117,7 +118,10 @@ public class HandlerChainBuilder {
     protected List<Handler> buildHandlerChain(PortComponentHandlerType ht, 
ClassLoader classLoader) {
         List<Handler> handlerChain = new ArrayList<Handler>();
         try {
-            LOG.log(Level.FINE, "loading handler", 
trimString(ht.getHandlerName().getValue()));
+            final boolean fineLog = LOG.isLoggable(Level.FINE);
+            if (fineLog) {
+                LOG.log(Level.FINE, "loading handler", 
trimString(ht.getHandlerName().getValue()));
+            }
 
             Class<? extends Handler> handlerClass = Class.forName(
                                                                   
trimString(ht.getHandlerClass()
@@ -125,7 +129,9 @@ public class HandlerChainBuilder {
                 .asSubclass(Handler.class);
 
             Handler<?> handler = handlerClass.newInstance();
-            LOG.fine("adding handler to chain: " + handler);
+            if (fineLog) {
+                LOG.fine("adding handler to chain: " + handler);
+            }
             configureHandler(handler, ht);
             handlerChain.add(handler);
         } catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/cxf/blob/0985e79a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerResolverImpl.java
----------------------------------------------------------------------
diff --git 
a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerResolverImpl.java
 
b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerResolverImpl.java
index 1c5e3b2..2c2dd01 100644
--- 
a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerResolverImpl.java
+++ 
b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerResolverImpl.java
@@ -31,9 +31,7 @@ import javax.xml.ws.handler.PortInfo;
 
 import org.apache.cxf.Bus;
 import org.apache.cxf.common.injection.ResourceInjector;
-import org.apache.cxf.resource.DefaultResourceManager;
 import org.apache.cxf.resource.ResourceManager;
-import org.apache.cxf.resource.ResourceResolver;
 
 @SuppressWarnings("rawtypes")
 public class HandlerResolverImpl implements HandlerResolver {
@@ -104,9 +102,6 @@ public class HandlerResolverImpl implements HandlerResolver 
{
     private void configHandler(Handler<?> handler) {
         if (handler != null) {
             ResourceManager resourceManager = 
bus.getExtension(ResourceManager.class);
-            List<ResourceResolver> resolvers = 
resourceManager.getResourceResolvers();
-            resourceManager = new DefaultResourceManager(resolvers);
-//            resourceManager.addResourceResolver(new 
WebContextEntriesResourceResolver());
             ResourceInjector injector = new ResourceInjector(resourceManager);
             injector.inject(handler);
             injector.construct(handler);

Reply via email to