You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by gn...@apache.org on 2016/12/15 13:29:30 UTC

[1/2] cxf git commit: [CXF-7183] Adjust CXF namespace handlers to aries-blueprint-core 1.7.x

Repository: cxf
Updated Branches:
  refs/heads/3.0.x-fixes 00e39a593 -> cd83ad9d1


[CXF-7183] Adjust CXF namespace handlers to aries-blueprint-core 1.7.x


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

Branch: refs/heads/3.0.x-fixes
Commit: df83183e5278887b2e74cf243667e357e128e9bd
Parents: 00e39a5
Author: Grzegorz Grzybek <gr...@gmail.com>
Authored: Thu Dec 15 09:33:15 2016 +0100
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Thu Dec 15 11:14:55 2016 +0100

----------------------------------------------------------------------
 .../cxf/helpers/BaseNamespaceHandler.java       | 42 ++++++++++++++++++++
 .../blueprint/ColocBPNamespaceHandler.java      |  7 +++-
 .../blueprint/ObjectBindingBPHandler.java       |  7 +++-
 .../soap/blueprint/SoapBindingBPHandler.java    | 10 +++--
 .../blueprint/ClusteringBPNamespaceHandler.java | 10 +++--
 .../blueprint/JAXRSBPNamespaceHandler.java      |  9 +++--
 .../blueprint/JAXWSBPNamespaceHandler.java      |  9 +++--
 .../blueprint/SimpleBPNamespaceHandler.java     |  9 +++--
 .../blueprint/JAXRSBPNamespaceHandler.java      |  8 +++-
 .../HTTPJettyTransportNamespaceHandler.java     |  6 +--
 .../HttpNettyTransportNamespaceHandler.java     |  6 +--
 .../transport/http/blueprint/HttpBPHandler.java |  6 +--
 .../ws/addressing/blueprint/WsBPHandler.java    |  7 +++-
 .../ws/policy/blueprint/PolicyBPHandler.java    |  7 ++--
 .../apache/cxf/ws/rm/blueprint/RMBPHandler.java |  7 ++--
 15 files changed, 115 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/df83183e/core/src/main/java/org/apache/cxf/helpers/BaseNamespaceHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/helpers/BaseNamespaceHandler.java b/core/src/main/java/org/apache/cxf/helpers/BaseNamespaceHandler.java
new file mode 100644
index 0000000..751adee
--- /dev/null
+++ b/core/src/main/java/org/apache/cxf/helpers/BaseNamespaceHandler.java
@@ -0,0 +1,42 @@
+/**
+ * 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.helpers;
+
+import java.net.URL;
+
+import org.apache.aries.blueprint.NamespaceHandler;
+import org.apache.cxf.internal.CXFAPINamespaceHandler;
+
+public abstract class BaseNamespaceHandler implements NamespaceHandler {
+
+    private NamespaceHandler cxfApiNamespaceHandler = new CXFAPINamespaceHandler();
+
+    /**
+     * If namespace handler's schema imports other schemas from cxf-core bundle, this method
+     * may be used to delegate to <code>CXFAPINamespaceHandler</code> to resolve imported schema.
+     * @param namespace
+     * @return if namespace may be resolved by CXFAPINamespaceHandler valid URL is returned. Otherwise
+     * returns <code>null</code>
+     */
+    protected URL findCoreSchemaLocation(String namespace) {
+        return cxfApiNamespaceHandler.getSchemaLocation(namespace);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cxf/blob/df83183e/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/blueprint/ColocBPNamespaceHandler.java
----------------------------------------------------------------------
diff --git a/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/blueprint/ColocBPNamespaceHandler.java b/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/blueprint/ColocBPNamespaceHandler.java
index 4593de9..94dd984 100644
--- a/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/blueprint/ColocBPNamespaceHandler.java
+++ b/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/blueprint/ColocBPNamespaceHandler.java
@@ -20,6 +20,7 @@ package org.apache.cxf.binding.coloc.blueprint;
 
 import java.net.URL;
 import java.util.Set;
+
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
@@ -33,7 +34,11 @@ import org.osgi.service.blueprint.reflect.Metadata;
 public class ColocBPNamespaceHandler implements NamespaceHandler {
 
     public URL getSchemaLocation(String s) {
-        return getClass().getClassLoader().getResource("schemas/coloc-feature.xsd");
+        if ("http://cxf.apache.org/binding/coloc".equals(s)) {
+            return getClass().getClassLoader().getResource("schemas/coloc-feature.xsd");
+        }
+        // no imported XSDs, so we don't have to delegate to cxf-core namespace handler
+        return null;
     }
 
     @SuppressWarnings("rawtypes")

http://git-wip-us.apache.org/repos/asf/cxf/blob/df83183e/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/blueprint/ObjectBindingBPHandler.java
----------------------------------------------------------------------
diff --git a/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/blueprint/ObjectBindingBPHandler.java b/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/blueprint/ObjectBindingBPHandler.java
index 12f79ce..2864c2a 100644
--- a/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/blueprint/ObjectBindingBPHandler.java
+++ b/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/blueprint/ObjectBindingBPHandler.java
@@ -20,6 +20,7 @@ package org.apache.cxf.binding.object.blueprint;
 
 import java.net.URL;
 import java.util.Set;
+
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
@@ -33,7 +34,11 @@ import org.osgi.service.blueprint.reflect.Metadata;
 public class ObjectBindingBPHandler implements NamespaceHandler {
 
     public URL getSchemaLocation(String s) {
-        return getClass().getClassLoader().getResource("schemas/bindings/blueprint/object.xsd");
+        if ("http://cxf.apache.org/blueprint/binding/object".equals(s)) {
+            return getClass().getClassLoader().getResource("schemas/bindings/blueprint/object.xsd");
+        }
+        // no imported XSDs, so we don't have to delegate to cxf-core namespace handler
+        return null;
     }
 
     @SuppressWarnings("rawtypes")

http://git-wip-us.apache.org/repos/asf/cxf/blob/df83183e/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/blueprint/SoapBindingBPHandler.java
----------------------------------------------------------------------
diff --git a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/blueprint/SoapBindingBPHandler.java b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/blueprint/SoapBindingBPHandler.java
index 28feaa2..7533da3 100644
--- a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/blueprint/SoapBindingBPHandler.java
+++ b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/blueprint/SoapBindingBPHandler.java
@@ -21,18 +21,22 @@ package org.apache.cxf.binding.soap.blueprint;
 
 import java.net.URL;
 import java.util.Set;
+
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
-import org.apache.aries.blueprint.NamespaceHandler;
 import org.apache.aries.blueprint.ParserContext;
+import org.apache.cxf.helpers.BaseNamespaceHandler;
 import org.osgi.service.blueprint.reflect.ComponentMetadata;
 import org.osgi.service.blueprint.reflect.Metadata;
 
-public class SoapBindingBPHandler implements NamespaceHandler {
+public class SoapBindingBPHandler extends BaseNamespaceHandler {
 
     public URL getSchemaLocation(String s) {
-        return getClass().getClassLoader().getResource("schemas/configuration/blueprint/soap.xsd");
+        if ("http://cxf.apache.org/blueprint/bindings/soap".equals(s)) {
+            return getClass().getClassLoader().getResource("schemas/configuration/blueprint/soap.xsd");
+        }
+        return super.findCoreSchemaLocation(s);
     }
 
     @SuppressWarnings("rawtypes")

http://git-wip-us.apache.org/repos/asf/cxf/blob/df83183e/rt/features/clustering/src/main/java/org/apache/cxf/clustering/blueprint/ClusteringBPNamespaceHandler.java
----------------------------------------------------------------------
diff --git a/rt/features/clustering/src/main/java/org/apache/cxf/clustering/blueprint/ClusteringBPNamespaceHandler.java b/rt/features/clustering/src/main/java/org/apache/cxf/clustering/blueprint/ClusteringBPNamespaceHandler.java
index 336d0ff..f495f56 100644
--- a/rt/features/clustering/src/main/java/org/apache/cxf/clustering/blueprint/ClusteringBPNamespaceHandler.java
+++ b/rt/features/clustering/src/main/java/org/apache/cxf/clustering/blueprint/ClusteringBPNamespaceHandler.java
@@ -24,17 +24,17 @@ import java.util.Set;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
-import org.apache.aries.blueprint.NamespaceHandler;
 import org.apache.aries.blueprint.Namespaces;
 import org.apache.aries.blueprint.ParserContext;
 import org.apache.cxf.clustering.FailoverFeature;
 import org.apache.cxf.clustering.LoadDistributorFeature;
 import org.apache.cxf.configuration.blueprint.SimpleBPBeanDefinitionParser;
+import org.apache.cxf.helpers.BaseNamespaceHandler;
 import org.osgi.service.blueprint.reflect.ComponentMetadata;
 import org.osgi.service.blueprint.reflect.Metadata;
 
 @Namespaces("http://cxf.apache.org/clustering")
-public class ClusteringBPNamespaceHandler implements NamespaceHandler {
+public class ClusteringBPNamespaceHandler extends BaseNamespaceHandler {
     public ComponentMetadata decorate(Node node, ComponentMetadata component, ParserContext context) {
         return null;
     }
@@ -55,7 +55,11 @@ public class ClusteringBPNamespaceHandler implements NamespaceHandler {
     }
 
     public URL getSchemaLocation(String namespace) {
-        return getClass().getClassLoader().getResource("schemas/clustering.xsd");
+        if ("http://cxf.apache.org/clustering".equals(namespace)) {
+            return getClass().getClassLoader().getResource("schemas/clustering.xsd");
+        }
+        // delegate to cxf-core
+        return super.findCoreSchemaLocation(namespace);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/df83183e/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/blueprint/JAXRSBPNamespaceHandler.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/blueprint/JAXRSBPNamespaceHandler.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/blueprint/JAXRSBPNamespaceHandler.java
index c61ca4c..2c7aa13 100644
--- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/blueprint/JAXRSBPNamespaceHandler.java
+++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/blueprint/JAXRSBPNamespaceHandler.java
@@ -29,9 +29,9 @@ import javax.xml.stream.XMLStreamException;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
-import org.apache.aries.blueprint.NamespaceHandler;
 import org.apache.aries.blueprint.Namespaces;
 import org.apache.aries.blueprint.ParserContext;
+import org.apache.cxf.helpers.BaseNamespaceHandler;
 import org.apache.cxf.staxutils.StaxUtils;
 import org.apache.cxf.staxutils.W3CDOMStreamWriter;
 import org.apache.cxf.staxutils.transform.OutTransformWriter;
@@ -40,14 +40,17 @@ import org.osgi.service.blueprint.reflect.ComponentMetadata;
 import org.osgi.service.blueprint.reflect.Metadata;
 
 @Namespaces("http://cxf.apache.org/blueprint/jaxrs")
-public class JAXRSBPNamespaceHandler implements NamespaceHandler {
+public class JAXRSBPNamespaceHandler extends BaseNamespaceHandler {
     private BlueprintContainer blueprintContainer;
     
     public JAXRSBPNamespaceHandler() {
     }
     
     public URL getSchemaLocation(String namespace) {
-        return getClass().getClassLoader().getResource("schemas/blueprint/jaxrs.xsd");
+        if ("http://cxf.apache.org/blueprint/jaxrs".equals(namespace)) {
+            return getClass().getClassLoader().getResource("schemas/blueprint/jaxrs.xsd");
+        }
+        return super.findCoreSchemaLocation(namespace);
     }
 
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/df83183e/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/blueprint/JAXWSBPNamespaceHandler.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/blueprint/JAXWSBPNamespaceHandler.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/blueprint/JAXWSBPNamespaceHandler.java
index 5233899..2b4c1cd 100644
--- a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/blueprint/JAXWSBPNamespaceHandler.java
+++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/blueprint/JAXWSBPNamespaceHandler.java
@@ -25,11 +25,11 @@ import java.util.Set;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
-import org.apache.aries.blueprint.NamespaceHandler;
 import org.apache.aries.blueprint.Namespaces;
 import org.apache.aries.blueprint.ParserContext;
 import org.apache.cxf.frontend.blueprint.ClientProxyFactoryBeanDefinitionParser;
 import org.apache.cxf.frontend.blueprint.ServerFactoryBeanDefinitionParser;
+import org.apache.cxf.helpers.BaseNamespaceHandler;
 import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
 import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
 import org.osgi.service.blueprint.container.BlueprintContainer;
@@ -37,14 +37,17 @@ import org.osgi.service.blueprint.reflect.ComponentMetadata;
 import org.osgi.service.blueprint.reflect.Metadata;
 
 @Namespaces("http://cxf.apache.org/blueprint/jaxws")
-public class JAXWSBPNamespaceHandler implements NamespaceHandler {
+public class JAXWSBPNamespaceHandler extends BaseNamespaceHandler {
     private BlueprintContainer blueprintContainer;
     
     public JAXWSBPNamespaceHandler() {
     }
     
     public URL getSchemaLocation(String namespace) {
-        return getClass().getClassLoader().getResource("schemas/blueprint/jaxws.xsd");
+        if ("http://cxf.apache.org/blueprint/jaxws".equals(namespace)) {
+            return getClass().getClassLoader().getResource("schemas/blueprint/jaxws.xsd");
+        }
+        return super.findCoreSchemaLocation(namespace);
     }
 
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/df83183e/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/blueprint/SimpleBPNamespaceHandler.java
----------------------------------------------------------------------
diff --git a/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/blueprint/SimpleBPNamespaceHandler.java b/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/blueprint/SimpleBPNamespaceHandler.java
index 0986896..acc0961 100644
--- a/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/blueprint/SimpleBPNamespaceHandler.java
+++ b/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/blueprint/SimpleBPNamespaceHandler.java
@@ -25,22 +25,25 @@ import java.util.Set;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
-import org.apache.aries.blueprint.NamespaceHandler;
 import org.apache.aries.blueprint.Namespaces;
 import org.apache.aries.blueprint.ParserContext;
+import org.apache.cxf.helpers.BaseNamespaceHandler;
 import org.osgi.service.blueprint.container.BlueprintContainer;
 import org.osgi.service.blueprint.reflect.ComponentMetadata;
 import org.osgi.service.blueprint.reflect.Metadata;
 
 @Namespaces("http://cxf.apache.org/blueprint/simple")
-public class SimpleBPNamespaceHandler implements NamespaceHandler {
+public class SimpleBPNamespaceHandler extends BaseNamespaceHandler {
     private BlueprintContainer blueprintContainer;
     
     public SimpleBPNamespaceHandler() {
     }
     
     public URL getSchemaLocation(String namespace) {
-        return getClass().getClassLoader().getResource("schemas/blueprint/simple.xsd");
+        if ("http://cxf.apache.org/blueprint/simple".equals(namespace)) {
+            return getClass().getClassLoader().getResource("schemas/blueprint/simple.xsd");
+        }
+        return super.findCoreSchemaLocation(namespace);
     }
 
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/df83183e/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/blueprint/JAXRSBPNamespaceHandler.java
----------------------------------------------------------------------
diff --git a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/blueprint/JAXRSBPNamespaceHandler.java b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/blueprint/JAXRSBPNamespaceHandler.java
index d32fbe1..6a49418 100644
--- a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/blueprint/JAXRSBPNamespaceHandler.java
+++ b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/blueprint/JAXRSBPNamespaceHandler.java
@@ -35,12 +35,16 @@ import org.osgi.service.blueprint.reflect.Metadata;
 @Namespaces("http://cxf.apache.org/blueprint/jaxrs-client")
 public class JAXRSBPNamespaceHandler implements NamespaceHandler {
     private BlueprintContainer blueprintContainer;
-    
+    private JAXRSBPNamespaceHandler jaxRSBPNamespaceHandler = new JAXRSBPNamespaceHandler();
+
     public JAXRSBPNamespaceHandler() {
     }
     
     public URL getSchemaLocation(String namespace) {
-        return getClass().getClassLoader().getResource("schemas/blueprint/jaxrs-client.xsd");
+        if ("http://cxf.apache.org/blueprint/jaxrs-client".equals(namespace)) {
+            return getClass().getClassLoader().getResource("schemas/blueprint/jaxrs-client.xsd");
+        }
+        return jaxRSBPNamespaceHandler.getSchemaLocation(namespace);
     }
 
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/df83183e/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/blueprint/HTTPJettyTransportNamespaceHandler.java
----------------------------------------------------------------------
diff --git a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/blueprint/HTTPJettyTransportNamespaceHandler.java b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/blueprint/HTTPJettyTransportNamespaceHandler.java
index 852aebf..4750b91 100644
--- a/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/blueprint/HTTPJettyTransportNamespaceHandler.java
+++ b/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/blueprint/HTTPJettyTransportNamespaceHandler.java
@@ -26,15 +26,15 @@ import java.util.logging.Logger;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
-import org.apache.aries.blueprint.NamespaceHandler;
 import org.apache.aries.blueprint.Namespaces;
 import org.apache.aries.blueprint.ParserContext;
 import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.helpers.BaseNamespaceHandler;
 import org.osgi.service.blueprint.reflect.ComponentMetadata;
 import org.osgi.service.blueprint.reflect.Metadata;
 
 @Namespaces("http://cxf.apache.org/transports/http-jetty/configuration")
-public class HTTPJettyTransportNamespaceHandler implements NamespaceHandler {
+public class HTTPJettyTransportNamespaceHandler extends BaseNamespaceHandler {
 
     public static final String JETTY_TRANSPORT = "http://cxf.apache.org/transports/http-jetty/configuration";
 
@@ -49,7 +49,7 @@ public class HTTPJettyTransportNamespaceHandler implements NamespaceHandler {
             return getClass().getClassLoader().
                 getResource("schemas/configuration/http-jetty.xsd");
         } else {
-            return null;
+            return super.findCoreSchemaLocation(s);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/df83183e/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/blueprint/HttpNettyTransportNamespaceHandler.java
----------------------------------------------------------------------
diff --git a/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/blueprint/HttpNettyTransportNamespaceHandler.java b/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/blueprint/HttpNettyTransportNamespaceHandler.java
index 0790375..6db1b3f 100644
--- a/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/blueprint/HttpNettyTransportNamespaceHandler.java
+++ b/rt/transports/http-netty/netty-server/src/main/java/org/apache/cxf/transport/http/netty/server/blueprint/HttpNettyTransportNamespaceHandler.java
@@ -26,15 +26,15 @@ import java.util.logging.Logger;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
-import org.apache.aries.blueprint.NamespaceHandler;
 import org.apache.aries.blueprint.Namespaces;
 import org.apache.aries.blueprint.ParserContext;
 import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.helpers.BaseNamespaceHandler;
 import org.osgi.service.blueprint.reflect.ComponentMetadata;
 import org.osgi.service.blueprint.reflect.Metadata;
 
 @Namespaces("http://cxf.apache.org/transports/http-netty-server/configuration")
-public class HttpNettyTransportNamespaceHandler implements NamespaceHandler {
+public class HttpNettyTransportNamespaceHandler extends BaseNamespaceHandler {
 
     public static final String NETTY_SERVER_TRANSPORT = 
         "http://cxf.apache.org/transports/http-netty-server/configuration";
@@ -48,7 +48,7 @@ public class HttpNettyTransportNamespaceHandler implements NamespaceHandler {
             return getClass().getClassLoader().
                 getResource("schemas/configuration/http-netty-server.xsd");
         } else {
-            return null;
+            return super.findCoreSchemaLocation(s);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/df83183e/rt/transports/http/src/main/java/org/apache/cxf/transport/http/blueprint/HttpBPHandler.java
----------------------------------------------------------------------
diff --git a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/blueprint/HttpBPHandler.java b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/blueprint/HttpBPHandler.java
index 2cfe3fd..1ea0367 100755
--- a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/blueprint/HttpBPHandler.java
+++ b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/blueprint/HttpBPHandler.java
@@ -25,14 +25,14 @@ import java.util.Set;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
-import org.apache.aries.blueprint.NamespaceHandler;
 import org.apache.aries.blueprint.Namespaces;
 import org.apache.aries.blueprint.ParserContext;
+import org.apache.cxf.helpers.BaseNamespaceHandler;
 import org.osgi.service.blueprint.reflect.ComponentMetadata;
 import org.osgi.service.blueprint.reflect.Metadata;
 
 @Namespaces("http://cxf.apache.org/transports/http/configuration")
-public class HttpBPHandler implements NamespaceHandler {
+public class HttpBPHandler extends BaseNamespaceHandler {
     
     public HttpBPHandler() {
     }
@@ -42,7 +42,7 @@ public class HttpBPHandler implements NamespaceHandler {
             return getClass().getClassLoader().
                 getResource("schemas/configuration/http-conf.xsd");
         }
-        return null;
+        return super.findCoreSchemaLocation(s);
     }
 
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/df83183e/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/blueprint/WsBPHandler.java
----------------------------------------------------------------------
diff --git a/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/blueprint/WsBPHandler.java b/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/blueprint/WsBPHandler.java
index 7ea58ef..a137264 100644
--- a/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/blueprint/WsBPHandler.java
+++ b/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/blueprint/WsBPHandler.java
@@ -20,6 +20,7 @@ package org.apache.cxf.ws.addressing.blueprint;
 
 import java.net.URL;
 import java.util.Set;
+
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
@@ -33,7 +34,11 @@ import org.osgi.service.blueprint.reflect.Metadata;
 public class WsBPHandler implements NamespaceHandler {
 
     public URL getSchemaLocation(String s) {
-        return getClass().getClassLoader().getResource("schemas/ws-addr-conf.xsd");
+        if ("http://cxf.apache.org/ws/addressing".equals(s)) {
+            return getClass().getClassLoader().getResource("schemas/ws-addr-conf.xsd");
+        }
+        // no imported XSDs, so we don't have to delegate to cxf-core namespace handler
+        return null;
     }
 
     @SuppressWarnings("rawtypes")

http://git-wip-us.apache.org/repos/asf/cxf/blob/df83183e/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/blueprint/PolicyBPHandler.java
----------------------------------------------------------------------
diff --git a/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/blueprint/PolicyBPHandler.java b/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/blueprint/PolicyBPHandler.java
index 8a42adb..cfed222 100644
--- a/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/blueprint/PolicyBPHandler.java
+++ b/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/blueprint/PolicyBPHandler.java
@@ -21,15 +21,16 @@ package org.apache.cxf.ws.policy.blueprint;
 
 import java.net.URL;
 import java.util.Set;
+
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
-import org.apache.aries.blueprint.NamespaceHandler;
 import org.apache.aries.blueprint.ParserContext;
+import org.apache.cxf.helpers.BaseNamespaceHandler;
 import org.osgi.service.blueprint.reflect.ComponentMetadata;
 import org.osgi.service.blueprint.reflect.Metadata;
 
-public class PolicyBPHandler implements NamespaceHandler {
+public class PolicyBPHandler extends BaseNamespaceHandler {
 
     public URL getSchemaLocation(String s) {
         //Say yes to various schemas.
@@ -54,7 +55,7 @@ public class PolicyBPHandler implements NamespaceHandler {
         if (location != null) {
             return getClass().getClassLoader().getResource(location);
         }
-        return null;
+        return super.findCoreSchemaLocation(s);
     }
 
     @SuppressWarnings("rawtypes")

http://git-wip-us.apache.org/repos/asf/cxf/blob/df83183e/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/blueprint/RMBPHandler.java
----------------------------------------------------------------------
diff --git a/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/blueprint/RMBPHandler.java b/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/blueprint/RMBPHandler.java
index 0aabf17..6b9a186 100755
--- a/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/blueprint/RMBPHandler.java
+++ b/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/blueprint/RMBPHandler.java
@@ -20,17 +20,18 @@ package org.apache.cxf.ws.rm.blueprint;
 
 import java.net.URL;
 import java.util.Set;
+
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
-import org.apache.aries.blueprint.NamespaceHandler;
 import org.apache.aries.blueprint.ParserContext;
+import org.apache.cxf.helpers.BaseNamespaceHandler;
 import org.apache.cxf.ws.rm.RMManager;
 import org.apache.cxf.ws.rm.feature.RMFeature;
 import org.osgi.service.blueprint.reflect.ComponentMetadata;
 import org.osgi.service.blueprint.reflect.Metadata;
 
-public class RMBPHandler implements NamespaceHandler {
+public class RMBPHandler extends BaseNamespaceHandler {
 
     public URL getSchemaLocation(String s) {
         if ("http://cxf.apache.org/ws/rm/manager".equals(s)) {
@@ -43,7 +44,7 @@ public class RMBPHandler implements NamespaceHandler {
             return getClass().getClassLoader().
                 getResource("schemas/configuration/wsrmp-1.1-schema-200702.xsd");
         }
-        return null;
+        return super.findCoreSchemaLocation(s);
     }
 
     @SuppressWarnings("rawtypes")


[2/2] cxf git commit: [CXF-7183] Resolve by namespace and systemID (as required by aries)

Posted by gn...@apache.org.
[CXF-7183] Resolve by namespace and systemID (as required by aries)


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

Branch: refs/heads/3.0.x-fixes
Commit: cd83ad9d117cd981823d6a5ac539e89901fff7a0
Parents: df83183
Author: Grzegorz Grzybek <gr...@gmail.com>
Authored: Thu Dec 15 13:36:41 2016 +0100
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Thu Dec 15 14:28:18 2016 +0100

----------------------------------------------------------------------
 .../cxf/internal/CXFAPINamespaceHandler.java     | 19 ++++++++++++++-----
 .../jaxrs/blueprint/JAXRSBPNamespaceHandler.java |  5 ++++-
 .../blueprint/JAXRSBPNamespaceHandler.java       |  3 ++-
 3 files changed, 20 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/cd83ad9d/core/src/main/java/org/apache/cxf/internal/CXFAPINamespaceHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/internal/CXFAPINamespaceHandler.java b/core/src/main/java/org/apache/cxf/internal/CXFAPINamespaceHandler.java
index 7771450..07dbdb1 100644
--- a/core/src/main/java/org/apache/cxf/internal/CXFAPINamespaceHandler.java
+++ b/core/src/main/java/org/apache/cxf/internal/CXFAPINamespaceHandler.java
@@ -49,15 +49,24 @@ public class CXFAPINamespaceHandler implements NamespaceHandler {
     public URL getSchemaLocation(String namespace) {
         String location = null;
 
-        if ("http://cxf.apache.org/configuration/beans".equals(namespace)) {
+        // when schema is being resolved for custom namespace elements, "namespace" is real namespace
+        // (from xmlns:prefix="<namespace>"
+        // but when namespace is <xsd:import>ed, aries/xerces uses systemID (schemaLocation)
+
+        if ("http://cxf.apache.org/configuration/beans".equals(namespace)
+                || "http://cxf.apache.org/schemas/configuration/cxf-beans.xsd".equals(namespace)) {
             location = "schemas/configuration/cxf-beans.xsd";           
-        } else if ("http://cxf.apache.org/configuration/parameterized-types".equals(namespace)) {
+        } else if ("http://cxf.apache.org/configuration/parameterized-types".equals(namespace)
+                || "http://cxf.apache.org/schemas/configuration/parameterized-types.xsd".equals(namespace)) {
             location = "schemas/configuration/parameterized-types.xsd";
-        } else if ("http://cxf.apache.org/configuration/security".equals(namespace)) {
+        } else if ("http://cxf.apache.org/configuration/security".equals(namespace)
+                || "http://cxf.apache.org/schemas/configuration/security.xsd".equals(namespace)) {
             location = "schemas/configuration/security.xsd";
-        } else if ("http://schemas.xmlsoap.org/wsdl/".equals(namespace)) {
+        } else if ("http://schemas.xmlsoap.org/wsdl/".equals(namespace)
+                || "http://schemas.xmlsoap.org/wsdl/2003-02-11.xsd".equals(namespace)) {
             location = "schemas/wsdl/wsdl.xsd";
-        } else if ("http://www.w3.org/2005/08/addressing".equals(namespace)) {
+        } else if ("http://www.w3.org/2005/08/addressing".equals(namespace)
+                || "http://www.w3.org/2006/03/addressing/ws-addr.xsd".equals(namespace)) {
             location = "schemas/wsdl/ws-addr.xsd";
         } else if ("http://schemas.xmlsoap.org/ws/2004/08/addressing".equals(namespace)) {
             location = "schemas/wsdl/addressing.xsd";

http://git-wip-us.apache.org/repos/asf/cxf/blob/cd83ad9d/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/blueprint/JAXRSBPNamespaceHandler.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/blueprint/JAXRSBPNamespaceHandler.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/blueprint/JAXRSBPNamespaceHandler.java
index 2c7aa13..ea2f919 100644
--- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/blueprint/JAXRSBPNamespaceHandler.java
+++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/blueprint/JAXRSBPNamespaceHandler.java
@@ -47,8 +47,11 @@ public class JAXRSBPNamespaceHandler extends BaseNamespaceHandler {
     }
     
     public URL getSchemaLocation(String namespace) {
-        if ("http://cxf.apache.org/blueprint/jaxrs".equals(namespace)) {
+        if ("http://cxf.apache.org/blueprint/jaxrs".equals(namespace)
+                || "http://cxf.apache.org/schemas/jaxrs.xsd".equals(namespace)) {
             return getClass().getClassLoader().getResource("schemas/blueprint/jaxrs.xsd");
+        } else if ("http://cxf.apache.org/schemas/jaxrs-common.xsd".equals(namespace)) {
+            return getClass().getClassLoader().getResource("schemas/blueprint/jaxrs-common.xsd");
         }
         return super.findCoreSchemaLocation(namespace);
     }

http://git-wip-us.apache.org/repos/asf/cxf/blob/cd83ad9d/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/blueprint/JAXRSBPNamespaceHandler.java
----------------------------------------------------------------------
diff --git a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/blueprint/JAXRSBPNamespaceHandler.java b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/blueprint/JAXRSBPNamespaceHandler.java
index 6a49418..fc0d1bc 100644
--- a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/blueprint/JAXRSBPNamespaceHandler.java
+++ b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/blueprint/JAXRSBPNamespaceHandler.java
@@ -35,9 +35,10 @@ import org.osgi.service.blueprint.reflect.Metadata;
 @Namespaces("http://cxf.apache.org/blueprint/jaxrs-client")
 public class JAXRSBPNamespaceHandler implements NamespaceHandler {
     private BlueprintContainer blueprintContainer;
-    private JAXRSBPNamespaceHandler jaxRSBPNamespaceHandler = new JAXRSBPNamespaceHandler();
+    private org.apache.cxf.jaxrs.blueprint.JAXRSBPNamespaceHandler jaxRSBPNamespaceHandler;
 
     public JAXRSBPNamespaceHandler() {
+        jaxRSBPNamespaceHandler = new org.apache.cxf.jaxrs.blueprint.JAXRSBPNamespaceHandler();
     }
     
     public URL getSchemaLocation(String namespace) {