This is an automated email from the ASF dual-hosted git repository.
reta pushed a commit to branch 3.3.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/3.3.x-fixes by this push:
new f89aa8c [CXF-8361] Finalized support for Jakarta NS. Minor
refactorings
f89aa8c is described below
commit f89aa8c743d16638a35f0cf2db20c472e32f0dae
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) {