You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:19:34 UTC

[sling-org-apache-sling-commons-classloader] 07/21: Fix resource handling (packages are separated by a slash not by a dot)

This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.classloader-0.9.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-classloader.git

commit 2813fc7b60c291865bead116f4e00eef886ac204
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Wed Jul 15 12:04:06 2009 +0000

    Fix resource handling (packages are separated by a slash not by a dot)
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/classloader@794243 13f79535-47bb-0310-9956-ffa450edef68
---
 .../sling/commons/classloader/impl/PackageAdminClassLoader.java  | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/apache/sling/commons/classloader/impl/PackageAdminClassLoader.java b/src/main/java/org/apache/sling/commons/classloader/impl/PackageAdminClassLoader.java
index 9cd07a5..a6d1699 100644
--- a/src/main/java/org/apache/sling/commons/classloader/impl/PackageAdminClassLoader.java
+++ b/src/main/java/org/apache/sling/commons/classloader/impl/PackageAdminClassLoader.java
@@ -46,12 +46,17 @@ class PackageAdminClassLoader extends ClassLoader {
         return (exportedPackage == null ? null : exportedPackage.getExportingBundle());
     }
 
+    private String getPackageFromResource(final String resource) {
+        final int lastSlash = resource.lastIndexOf('/');
+        String pck = resource.substring(0, lastSlash + 1).replace('/', '.');
+        return pck + "Dummy";
+    }
     /**
      * @see java.lang.ClassLoader#getResources(java.lang.String)
      */
     @SuppressWarnings("unchecked")
     public Enumeration<URL> getResources(String name) throws IOException {
-        final Bundle bundle = this.findBundleForClassOrResource(name);
+        final Bundle bundle = this.findBundleForClassOrResource(getPackageFromResource(name));
         if ( bundle == null ) {
             return super.getResources(name);
         }
@@ -62,7 +67,7 @@ class PackageAdminClassLoader extends ClassLoader {
      * @see java.lang.ClassLoader#findResource(java.lang.String)
      */
     public URL findResource(String name) {
-        final Bundle bundle = this.findBundleForClassOrResource(name);
+        final Bundle bundle = this.findBundleForClassOrResource(getPackageFromResource(name));
         if ( bundle == null ) {
             return super.findResource(name);
         }

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.