This is an automated email from the ASF dual-hosted git repository. reta pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cxf.git
commit 2b3c86fb4f45c63fcca75a08ec0ebb2059fd629b Author: reta <[email protected]> AuthorDate: Tue Mar 2 19:36:21 2021 -0500 [CXF-8361] Finalized support for Jakarta NS. Minor refactorings --- .../handler/AnnotationHandlerChainBuilder.java | 16 ++++------- .../cxf/jaxws/handler/BaseHandlerChainBuilder.java | 6 ++-- .../handler/DelegatingHandlerChainBuilder.java | 32 ++++++++++++++++++++++ .../handler/JakartaeeHandlerChainBuilder.java | 8 ++++-- .../jaxws/handler/JavaeeHandlerChainBuilder.java | 9 +++--- 5 files changed, 50 insertions(+), 21 deletions(-) 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 1e8849e..97e7110 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 @@ -43,15 +43,12 @@ import org.apache.cxf.common.i18n.BundleUtils; import org.apache.cxf.common.i18n.Message; import org.apache.cxf.common.logging.LogUtils; import org.apache.cxf.common.util.StringUtils; -import org.apache.cxf.jaxws.handler.types.PortComponentHandlerType; import org.apache.cxf.staxutils.StaxUtils; - @SuppressWarnings("rawtypes") public class AnnotationHandlerChainBuilder extends HandlerChainBuilder { private static final Logger LOG = LogUtils.getL7dLogger(AnnotationHandlerChainBuilder.class); private static final ResourceBundle BUNDLE = LOG.getResourceBundle(); - private ClassLoader classLoader; public AnnotationHandlerChainBuilder() { } @@ -68,7 +65,7 @@ public class AnnotationHandlerChainBuilder extends HandlerChainBuilder { public List<Handler> buildHandlerChainFromClass(Class<?> clz, List<Handler> existingHandlers, QName portQName, QName serviceQName, String bindingID) { LOG.fine("building handler chain"); - classLoader = getClassLoader(clz); + HandlerChainAnnotation hcAnn = findHandlerChainAnnotation(clz, true); List<Handler> chain = null; if (hcAnn == null) { @@ -97,11 +94,14 @@ public class AnnotationHandlerChainBuilder extends HandlerChainBuilder { "NOT_VALID_NAMESPACE", el.getNamespaceURI())); } + + final ClassLoader classLoader = getClassLoader(clz); + final DelegatingHandlerChainBuilder delegate = ht -> buildHandlerChain(ht, classLoader); if (isJavaEENamespace) { - chain = new JavaeeHandlerChainBuilder(BUNDLE, handlerFileURL, this) + chain = new JavaeeHandlerChainBuilder(BUNDLE, handlerFileURL, delegate) .build(el, portQName, serviceQName, bindingID); } else { - chain = new JakartaeeHandlerChainBuilder(BUNDLE, handlerFileURL, this) + chain = new JakartaeeHandlerChainBuilder(BUNDLE, handlerFileURL, delegate) .build(el, portQName, serviceQName, bindingID); } } catch (WebServiceException e) { @@ -129,10 +129,6 @@ public class AnnotationHandlerChainBuilder extends HandlerChainBuilder { return clazz.getClassLoader(); } - List<Handler> buildHandlerChain(PortComponentHandlerType ht) { - return buildHandlerChain(ht, classLoader); - } - public List<Handler> buildHandlerChainFromClass(Class<?> clz, QName portQName, QName serviceQName, String bindingID) { return buildHandlerChainFromClass(clz, null, portQName, serviceQName, bindingID); diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/BaseHandlerChainBuilder.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/BaseHandlerChainBuilder.java index 279eb4b..61f943a 100644 --- a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/BaseHandlerChainBuilder.java +++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/BaseHandlerChainBuilder.java @@ -36,18 +36,16 @@ import org.w3c.dom.Node; import org.apache.cxf.common.i18n.BundleUtils; import org.apache.cxf.staxutils.StaxUtils; +@SuppressWarnings("rawtypes") abstract class BaseHandlerChainBuilder { private static final String HANDLER_CHAINS_E = "handler-chains"; private static final String HANDLER_CHAIN_E = "handler-chain"; - final AnnotationHandlerChainBuilder delegate; private final ResourceBundle bundle; private final URL handlerFileURL; - protected BaseHandlerChainBuilder(ResourceBundle bundle, URL handlerFileURL, - AnnotationHandlerChainBuilder delegate) { + protected BaseHandlerChainBuilder(ResourceBundle bundle, URL handlerFileURL) { this.bundle = bundle; this.handlerFileURL = handlerFileURL; - this.delegate = delegate; } protected List<Handler> build(String namespace, Element el, QName portQName, QName serviceQName, String bindingID) { diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/DelegatingHandlerChainBuilder.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/DelegatingHandlerChainBuilder.java new file mode 100644 index 0000000..f08f58a --- /dev/null +++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/DelegatingHandlerChainBuilder.java @@ -0,0 +1,32 @@ +/** + * 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.cxf.jaxws.handler; + +import java.util.List; + +import javax.xml.ws.handler.Handler; + +import org.apache.cxf.jaxws.handler.types.PortComponentHandlerType; + +@SuppressWarnings("rawtypes") +@FunctionalInterface +interface DelegatingHandlerChainBuilder { + List<Handler> buildHandlerChain(PortComponentHandlerType ht); +} diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/JakartaeeHandlerChainBuilder.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/JakartaeeHandlerChainBuilder.java index 9022796..f2f9de5 100644 --- a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/JakartaeeHandlerChainBuilder.java +++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/JakartaeeHandlerChainBuilder.java @@ -33,13 +33,15 @@ import org.w3c.dom.Element; import org.apache.cxf.common.jaxb.JAXBUtils; import org.apache.cxf.jaxws.handler.jakartaee.PortComponentHandlerType; +@SuppressWarnings("rawtypes") final class JakartaeeHandlerChainBuilder extends BaseHandlerChainBuilder { static final String JAKARTAEE_NS = "https://jakarta.ee/xml/ns/jakartaee"; private static JAXBContext context; + private final DelegatingHandlerChainBuilder delegate; - JakartaeeHandlerChainBuilder(ResourceBundle bundle, URL handlerFileURL, - AnnotationHandlerChainBuilder delegate) { - super(bundle, handlerFileURL, delegate); + JakartaeeHandlerChainBuilder(ResourceBundle bundle, URL handlerFileURL, DelegatingHandlerChainBuilder delegate) { + super(bundle, handlerFileURL); + this.delegate = delegate; } public List<Handler> build(Element el, QName portQName, QName serviceQName, String bindingID) { diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/JavaeeHandlerChainBuilder.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/JavaeeHandlerChainBuilder.java index 2f122a8..23952b8 100644 --- a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/JavaeeHandlerChainBuilder.java +++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/JavaeeHandlerChainBuilder.java @@ -33,14 +33,15 @@ import org.w3c.dom.Element; import org.apache.cxf.common.jaxb.JAXBUtils; import org.apache.cxf.jaxws.handler.types.PortComponentHandlerType; - +@SuppressWarnings("rawtypes") final class JavaeeHandlerChainBuilder extends BaseHandlerChainBuilder { static final String JAVAEE_NS = "http://java.sun.com/xml/ns/javaee"; private static JAXBContext context; + private final DelegatingHandlerChainBuilder delegate; - JavaeeHandlerChainBuilder(ResourceBundle bundle, URL handlerFileURL, - AnnotationHandlerChainBuilder delegate) { - super(bundle, handlerFileURL, delegate); + JavaeeHandlerChainBuilder(ResourceBundle bundle, URL handlerFileURL, DelegatingHandlerChainBuilder delegate) { + super(bundle, handlerFileURL); + this.delegate = delegate; } public List<Handler> build(Element el, QName portQName, QName serviceQName, String bindingID) {
