Implemented Bundle.getEntry() for accessing the raw bundle JAR file; this
uses non-API methods from the Module Loader layer so it will need to be
tweaked in the future, but it appears to work for now.


git-svn-id: https://svn.apache.org/repos/asf/incubator/felix/trunk@375026 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/org.apache.felix.framework/src/main/java/org/apache/felix/framework/Felix.java b/org.apache.felix.framework/src/main/java/org/apache/felix/framework/Felix.java
index ce789ff..f946fbf 100644
--- a/org.apache.felix.framework/src/main/java/org/apache/felix/framework/Felix.java
+++ b/org.apache.felix.framework/src/main/java/org/apache/felix/framework/Felix.java
@@ -966,6 +966,24 @@
         return bundle.getInfo().getCurrentModule().getResource(name);
     }
 
+    /**
+     * Implementation for Bundle.getEntry().
+    **/
+    protected URL getBundleEntry(BundleImpl bundle, String name)
+    {
+        if (bundle.getInfo().getState() == Bundle.UNINSTALLED)
+        {
+            throw new IllegalStateException("The bundle is uninstalled.");
+        }
+// TODO: SECURITY - Implement correct check.
+        else if (System.getSecurityManager() != null)
+        {
+            AccessController.checkPermission(m_adminPerm);
+        }
+        return ((ContentLoaderImpl) bundle.getInfo().getCurrentModule()
+            .getContentLoader()).getResourceFromContent(name);
+    }
+
     protected ServiceReference[] getBundleRegisteredServices(BundleImpl bundle)
     {
         if (bundle.getInfo().getState() == Bundle.UNINSTALLED)