You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by dk...@apache.org on 2011/11/28 22:44:28 UTC

svn commit: r1207637 - in /aries/trunk/blueprint: blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/ blueprint-testbundlea/src/main/java/org/apache/aries/blueprint/testbundlea/ blueprint-testbundlea/src/main/resources/OSGI-INF/blueprint...

Author: dkulp
Date: Mon Nov 28 21:44:25 2011
New Revision: 1207637

URL: http://svn.apache.org/viewvc?rev=1207637&view=rev
Log:
[ARIES-626] Add a testcase for an included schema
Patch from Aki Yoshida applied

Added:
    aries/trunk/blueprint/blueprint-testbundlea/src/main/java/org/apache/aries/blueprint/testbundlea/NSHandlerSeven.java
      - copied, changed from r1207473, aries/trunk/blueprint/blueprint-testbundlea/src/main/java/org/apache/aries/blueprint/testbundlea/NSHandlerSix.java
    aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/org/apache/aries/blueprint/testbundlea/nshandlerseven.xsd   (with props)
    aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/org/apache/aries/blueprint/testbundlea/nshandlersevenincluded.xsd   (with props)
Modified:
    aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java
    aries/trunk/blueprint/blueprint-testbundlea/src/main/java/org/apache/aries/blueprint/testbundlea/NSHandlerSix.java
    aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/OSGI-INF/blueprint/config.xml
    aries/trunk/blueprint/blueprint-testbundleb/src/main/resources/OSGI-INF/blueprint/config.xml

Modified: aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java?rev=1207637&r1=1207636&r2=1207637&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java (original)
+++ aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java Mon Nov 28 21:44:25 2011
@@ -301,8 +301,18 @@ public class NamespaceHandlerRegistryImp
                             return null;
                         }
                         for (NamespaceHandler h : hs) {
-                            final URL url = h.getSchemaLocation(namespaceURI);
+                            URL url = h.getSchemaLocation(namespaceURI);
                             if (url != null) {
+                                // handling include-relative-path case
+                                if (systemId != null && !systemId.matches("^[a-z][-+.0-9a-z]*:.*")) {
+                                    try {
+                                        url = new URL(url, systemId);
+                                    } catch (Exception e) {
+                                        // ignore and use the given systemId
+                                    }
+                                }
+                                
+                                
                                 try {
                                     final StreamSource source 
                                         = new StreamSource(url.openStream(), url.toExternalForm());

Copied: aries/trunk/blueprint/blueprint-testbundlea/src/main/java/org/apache/aries/blueprint/testbundlea/NSHandlerSeven.java (from r1207473, aries/trunk/blueprint/blueprint-testbundlea/src/main/java/org/apache/aries/blueprint/testbundlea/NSHandlerSix.java)
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-testbundlea/src/main/java/org/apache/aries/blueprint/testbundlea/NSHandlerSeven.java?p2=aries/trunk/blueprint/blueprint-testbundlea/src/main/java/org/apache/aries/blueprint/testbundlea/NSHandlerSeven.java&p1=aries/trunk/blueprint/blueprint-testbundlea/src/main/java/org/apache/aries/blueprint/testbundlea/NSHandlerSix.java&r1=1207473&r2=1207637&rev=1207637&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-testbundlea/src/main/java/org/apache/aries/blueprint/testbundlea/NSHandlerSix.java (original)
+++ aries/trunk/blueprint/blueprint-testbundlea/src/main/java/org/apache/aries/blueprint/testbundlea/NSHandlerSeven.java Mon Nov 28 21:44:25 2011
@@ -35,9 +35,9 @@ import org.w3c.dom.Attr;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
-public class NSHandlerSix implements NamespaceHandler{
-    public static String NSURI = "http://ns.handler.six";
-    private static String ELT_NAME = "nshandlersix";
+public class NSHandlerSeven implements NamespaceHandler{
+    public static String NSURI = "http://ns.handler.seven";
+    private static String ELT_NAME = "nshandlerseven";
     private static String ATTRIB_ID = "id";
 
     //process elements
@@ -56,11 +56,10 @@ public class NSHandlerSix implements Nam
 
     //supply schema back to blueprint.
     public URL getSchemaLocation(String namespace) {
-        System.out.println("Schemans: " + namespace);
         if (NSURI.equals(namespace)) {
-            return this.getClass().getResource("nshandlersix.xsd");
+            return this.getClass().getResource("nshandlerseven.xsd");
         }
-        return this.getClass().getResource("nshandlersiximport.xsd");
+        return null;
     }
 
     public Set<Class> getManagedClasses() {

Modified: aries/trunk/blueprint/blueprint-testbundlea/src/main/java/org/apache/aries/blueprint/testbundlea/NSHandlerSix.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-testbundlea/src/main/java/org/apache/aries/blueprint/testbundlea/NSHandlerSix.java?rev=1207637&r1=1207636&r2=1207637&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-testbundlea/src/main/java/org/apache/aries/blueprint/testbundlea/NSHandlerSix.java (original)
+++ aries/trunk/blueprint/blueprint-testbundlea/src/main/java/org/apache/aries/blueprint/testbundlea/NSHandlerSix.java Mon Nov 28 21:44:25 2011
@@ -56,7 +56,6 @@ public class NSHandlerSix implements Nam
 
     //supply schema back to blueprint.
     public URL getSchemaLocation(String namespace) {
-        System.out.println("Schemans: " + namespace);
         if (NSURI.equals(namespace)) {
             return this.getClass().getResource("nshandlersix.xsd");
         }

Modified: aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/OSGI-INF/blueprint/config.xml
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/OSGI-INF/blueprint/config.xml?rev=1207637&r1=1207636&r2=1207637&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/OSGI-INF/blueprint/config.xml (original)
+++ aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/OSGI-INF/blueprint/config.xml Mon Nov 28 21:44:25 2011
@@ -30,6 +30,7 @@
     <bean id="NSHandlerFour" class="org.apache.aries.blueprint.testbundlea.NSHandlerFour"/>
     <bean id="NSHandlerFive" class="org.apache.aries.blueprint.testbundlea.NSHandlerFive"/>
     <bean id="NSHandlerSix" class="org.apache.aries.blueprint.testbundlea.NSHandlerSix"/>
+    <bean id="NSHandlerSeven" class="org.apache.aries.blueprint.testbundlea.NSHandlerSeven"/>
     
     <service interface="org.apache.aries.blueprint.NamespaceHandler" ref="NSHandlerOne">
         <service-properties>
@@ -73,6 +74,15 @@
             </entry>
         </service-properties>
     </service>
+    <service interface="org.apache.aries.blueprint.NamespaceHandler" ref="NSHandlerSeven">
+        <service-properties>
+            <entry key="osgi.service.blueprint.namespace">
+                <list>
+                    <value>http://ns.handler.seven</value>
+                </list>
+            </entry>
+        </service-properties>
+    </service>
     
 </blueprint>
 

Added: aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/org/apache/aries/blueprint/testbundlea/nshandlerseven.xsd
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/org/apache/aries/blueprint/testbundlea/nshandlerseven.xsd?rev=1207637&view=auto
==============================================================================
--- aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/org/apache/aries/blueprint/testbundlea/nshandlerseven.xsd (added)
+++ aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/org/apache/aries/blueprint/testbundlea/nshandlerseven.xsd Mon Nov 28 21:44:25 2011
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    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.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema" 
+        targetNamespace="http://ns.handler.seven" 
+        xmlns:tns="http://ns.handler.seven"
+        xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+        elementFormDefault="qualified" 
+        attributeFormDefault="qualified" >
+   <include schemaLocation="nshandlersevenincluded.xsd"/>
+   <element name="nshandlerseven">
+      <complexType>
+           <sequence>
+                <element name="stuff" type="tns:Included"/>
+           </sequence>
+           <attribute name="id" type="xsd:string"/>
+           <attribute ref="tns:attrib"/>
+      </complexType>
+   </element>
+</schema>
\ No newline at end of file

Propchange: aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/org/apache/aries/blueprint/testbundlea/nshandlerseven.xsd
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/org/apache/aries/blueprint/testbundlea/nshandlerseven.xsd
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/org/apache/aries/blueprint/testbundlea/nshandlerseven.xsd
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/org/apache/aries/blueprint/testbundlea/nshandlersevenincluded.xsd
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/org/apache/aries/blueprint/testbundlea/nshandlersevenincluded.xsd?rev=1207637&view=auto
==============================================================================
--- aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/org/apache/aries/blueprint/testbundlea/nshandlersevenincluded.xsd (added)
+++ aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/org/apache/aries/blueprint/testbundlea/nshandlersevenincluded.xsd Mon Nov 28 21:44:25 2011
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    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.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema" 
+        targetNamespace="http://ns.handler.seven" 
+        xmlns:tns="http://ns.handler.seven"
+        xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+        elementFormDefault="qualified" 
+        attributeFormDefault="qualified" >
+
+   <complexType name="Included">
+        <sequence>
+            <element name="stuffinc" type="xsd:string"/>
+            <any minOccurs="0"/>
+        </sequence>
+   </complexType>
+   <attribute name="attrib" type="xsd:string"/>
+</schema>
\ No newline at end of file

Propchange: aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/org/apache/aries/blueprint/testbundlea/nshandlersevenincluded.xsd
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/org/apache/aries/blueprint/testbundlea/nshandlersevenincluded.xsd
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/org/apache/aries/blueprint/testbundlea/nshandlersevenincluded.xsd
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: aries/trunk/blueprint/blueprint-testbundleb/src/main/resources/OSGI-INF/blueprint/config.xml
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-testbundleb/src/main/resources/OSGI-INF/blueprint/config.xml?rev=1207637&r1=1207636&r2=1207637&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-testbundleb/src/main/resources/OSGI-INF/blueprint/config.xml (original)
+++ aries/trunk/blueprint/blueprint-testbundleb/src/main/resources/OSGI-INF/blueprint/config.xml Mon Nov 28 21:44:25 2011
@@ -27,6 +27,7 @@
            xmlns:fiveim="http://ns.handler.five.import"
            xmlns:six="http://ns.handler.six"
            xmlns:sixim="http://ns.handler.six.import"
+           xmlns:seven="http://ns.handler.seven"
            default-availability="optional">
 
   <!-- Default test.. no other ns interaction. -->
@@ -81,13 +82,21 @@
           <fiveim:stuff>foo</fiveim:stuff>
       </five:stuff>
   </five:nshandlerfive> 
-  <!-- NShandler four test, make sure the schema can be parsed with
-       external URL to schema - ARIES-626 Part 3 -->
+  <!-- NShandler six test, make sure the schema can be parsed with
+       external URL to imported schema - ARIES-626 Part 3 -->
   <six:nshandlersix six:id="SIX" sixim:attrib="foo">
       <six:stuff>
           <sixim:stuff>foo</sixim:stuff>
           <mytest:foo xmlns:mytest="http://ns.handler.mytest">blah</mytest:foo>
       </six:stuff>
   </six:nshandlersix> 
+  <!-- NShandler seven test, make sure the schema can be parsed with
+       external URL to included schema - ARIES-626 Part 4 -->
+  <seven:nshandlerseven seven:id="SEVEN" seven:attrib="foo">
+      <seven:stuff>
+          <seven:stuffinc>foo</seven:stuffinc>
+          <mytest:foo xmlns:mytest="http://ns.handler.mytest">blah</mytest:foo>
+      </seven:stuff>
+  </seven:nshandlerseven> 
 </blueprint>