Cannot override getResources() pre-Java 1.5 and some other minor cleanup.
(FELIX-2645)


git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1022936 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java b/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java
index 7e0a395..8502047 100644
--- a/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java
+++ b/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java
@@ -1653,44 +1653,6 @@
         return (parent == null) ? m_bootClassLoader : parent;
     }
 
-    static Enumeration convertToLocalUrls(Enumeration urls) {
-        return new ToLocalUrlEnumeration(urls);
-    }
-
-    static URL convertToLocalUrl(URL url) {
-        if (url.getProtocol().equals("bundle"))
-        {
-            try
-            {
-                url = ((URLHandlersBundleURLConnection)
-                    url.openConnection()).getLocalURL();
-            }
-            catch (IOException ex)
-            {
-                // Ignore and add original url.
-            }
-        }
-        return url;
-    }
-
-    static class ToLocalUrlEnumeration implements Enumeration
-    {
-        final Enumeration enumeration;
-
-        ToLocalUrlEnumeration(Enumeration enumeration) {
-            this.enumeration = enumeration;
-        }
-
-        public boolean hasMoreElements() {
-            return enumeration.hasMoreElements();
-        }
-
-        public Object nextElement() {
-            URL url = (URL) enumeration.nextElement();
-            return convertToLocalUrl(url);
-        }
-    }
-
     private static final Constructor m_dexFileClassConstructor;
     private static final Method m_dexFileClassLoadDex;
     private static final Method m_dexFileClassLoadClass;
@@ -1749,7 +1711,7 @@
             Enumeration urls = ModuleImpl.this.getResourcesByDelegation(name);
             if (m_useLocalURLs)
             {
-                urls = convertToLocalUrls(urls);
+                urls = new ToLocalUrlEnumeration(urls);
             }
             return urls;
         }
@@ -2060,16 +2022,6 @@
             return url;
         }
 
-        public Enumeration getResources(String name) throws IOException
-        {
-            Enumeration urls = super.getResources(name);
-            if (m_useLocalURLs)
-            {
-                urls = convertToLocalUrls(urls);
-            }
-            return urls;
-        }
-
         protected URL findResource(String name)
         {
             return ModuleImpl.this.getResourceLocal(name);
@@ -2082,7 +2034,12 @@
         // can't. As a workaround, we make findResources() delegate instead.
         protected Enumeration findResources(String name)
         {
-            return ModuleImpl.this.getResourcesByDelegation(name);
+            Enumeration urls = ModuleImpl.this.getResourcesByDelegation(name);
+            if (m_useLocalURLs)
+            {
+                urls = new ToLocalUrlEnumeration(urls);
+            }
+            return urls;
         }
 
         protected String findLibrary(String name)
@@ -2152,6 +2109,43 @@
         }
     }
 
+    static URL convertToLocalUrl(URL url)
+    {
+        if (url.getProtocol().equals("bundle"))
+        {
+            try
+            {
+                url = ((URLHandlersBundleURLConnection)
+                    url.openConnection()).getLocalURL();
+            }
+            catch (IOException ex)
+            {
+                // Ignore and add original url.
+            }
+        }
+        return url;
+    }
+
+    static class ToLocalUrlEnumeration implements Enumeration
+    {
+        final Enumeration m_enumeration;
+
+        ToLocalUrlEnumeration(Enumeration enumeration)
+        {
+            m_enumeration = enumeration;
+        }
+
+        public boolean hasMoreElements()
+        {
+            return m_enumeration.hasMoreElements();
+        }
+
+        public Object nextElement()
+        {
+            return convertToLocalUrl((URL) m_enumeration.nextElement());
+        }
+    }
+
     private static String diagnoseClassLoadError(
         FelixResolver resolver, ModuleImpl module, String name)
     {