You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by se...@apache.org on 2015/11/26 16:39:04 UTC

svn commit: r1716722 - /aries/trunk/blueprint/blueprint-noosgi/src/main/java/org/apache/aries/blueprint/container/SimpleNamespaceHandlerSet.java

Author: sergeyb
Date: Thu Nov 26 15:39:04 2015
New Revision: 1716722

URL: http://svn.apache.org/viewvc?rev=1716722&view=rev
Log:
[ARIES-1460] Getting absolute schema references resolved correctly in the offline mode, patch from Aki Yoshida applied with thanks

Modified:
    aries/trunk/blueprint/blueprint-noosgi/src/main/java/org/apache/aries/blueprint/container/SimpleNamespaceHandlerSet.java

Modified: aries/trunk/blueprint/blueprint-noosgi/src/main/java/org/apache/aries/blueprint/container/SimpleNamespaceHandlerSet.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-noosgi/src/main/java/org/apache/aries/blueprint/container/SimpleNamespaceHandlerSet.java?rev=1716722&r1=1716721&r2=1716722&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-noosgi/src/main/java/org/apache/aries/blueprint/container/SimpleNamespaceHandlerSet.java (original)
+++ aries/trunk/blueprint/blueprint-noosgi/src/main/java/org/apache/aries/blueprint/container/SimpleNamespaceHandlerSet.java Thu Nov 26 15:39:04 2015
@@ -95,24 +95,25 @@ public class SimpleNamespaceHandlerSet i
                     public LSInput resolveResource(String type, String namespace, String publicId,
                                                    String systemId, String baseURI) {
                         try {
-                            if (systemId != null && !URI.create(systemId).isAbsolute()) {
-                                URL namespaceURL = namespaces.get(URI.create(namespace));
-                                if (namespaceURL != null) {
-                                    URI systemIdUri = namespaceURL.toURI().resolve(systemId);
-                                    if (!systemIdUri.isAbsolute() && "jar".equals(namespaceURL.getProtocol())) {
-                                        String urlString = namespaceURL.toString();
-                                        int jarFragmentIndex = urlString.lastIndexOf('!');
-                                        if (jarFragmentIndex > 0 && jarFragmentIndex < urlString.length() - 1) {
-                                            String jarUrlOnly = urlString.substring(0, jarFragmentIndex);
-                                            String oldFragment = urlString.substring(jarFragmentIndex + 1);
-                                            String newFragment = URI.create(oldFragment).resolve(systemId).toString();
-                                            String newJarUri = jarUrlOnly + '!' + newFragment;
-                                            systemIdUri = URI.create(newJarUri);
-                                        }
+                            URL namespaceURL = namespaces.get(URI.create(namespace));
+                            if (systemId != null && namespaceURL != null) {
+                                URI systemIdUri = namespaceURL.toURI();
+                                if (!URI.create(systemId).isAbsolute()) {
+                                    systemIdUri = systemIdUri.resolve(systemId);
+                                }
+                                if (!systemIdUri.isAbsolute() && "jar".equals(namespaceURL.getProtocol())) {
+                                    String urlString = namespaceURL.toString();
+                                    int jarFragmentIndex = urlString.lastIndexOf('!');
+                                    if (jarFragmentIndex > 0 && jarFragmentIndex < urlString.length() - 1) {
+                                        String jarUrlOnly = urlString.substring(0, jarFragmentIndex);
+                                        String oldFragment = urlString.substring(jarFragmentIndex + 1);
+                                        String newFragment = URI.create(oldFragment).resolve(systemId).toString();
+                                        String newJarUri = jarUrlOnly + '!' + newFragment;
+                                        systemIdUri = URI.create(newJarUri);
                                     }
-                                    InputStream resourceStream = systemIdUri.toURL().openStream();
-                                    return new LSInputImpl(publicId, systemId, resourceStream);
                                 }
+                                InputStream resourceStream = systemIdUri.toURL().openStream();
+                                return new LSInputImpl(publicId, systemId, resourceStream);
                             }
                         } catch (Exception ex) {
                             // ignore