You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by pa...@apache.org on 2010/12/22 19:29:23 UTC

svn commit: r1052018 - in /felix/trunk/framework.security: ./ src/main/java/org/apache/felix/framework/security/condpermadmin/ src/main/java/org/apache/felix/framework/security/util/

Author: pauls
Date: Wed Dec 22 18:29:22 2010
New Revision: 1052018

URL: http://svn.apache.org/viewvc?rev=1052018&view=rev
Log:
Update to latest framework snapshot (FELIX-2739).

Modified:
    felix/trunk/framework.security/pom.xml
    felix/trunk/framework.security/src/main/java/org/apache/felix/framework/security/condpermadmin/ConditionalPermissionAdminImpl.java
    felix/trunk/framework.security/src/main/java/org/apache/felix/framework/security/util/BundleInputStream.java
    felix/trunk/framework.security/src/main/java/org/apache/felix/framework/security/util/Permissions.java

Modified: felix/trunk/framework.security/pom.xml
URL: http://svn.apache.org/viewvc/felix/trunk/framework.security/pom.xml?rev=1052018&r1=1052017&r2=1052018&view=diff
==============================================================================
--- felix/trunk/framework.security/pom.xml (original)
+++ felix/trunk/framework.security/pom.xml Wed Dec 22 18:29:22 2010
@@ -40,7 +40,7 @@
     <dependency>
       <groupId>${pom.groupId}</groupId>
       <artifactId>org.apache.felix.framework</artifactId>
-      <version>3.0.2</version>
+      <version>3.1.0-SNAPSHOT</version>
       <scope>provided</scope>
     </dependency>
   </dependencies>

Modified: felix/trunk/framework.security/src/main/java/org/apache/felix/framework/security/condpermadmin/ConditionalPermissionAdminImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework.security/src/main/java/org/apache/felix/framework/security/condpermadmin/ConditionalPermissionAdminImpl.java?rev=1052018&r1=1052017&r2=1052018&view=diff
==============================================================================
--- felix/trunk/framework.security/src/main/java/org/apache/felix/framework/security/condpermadmin/ConditionalPermissionAdminImpl.java (original)
+++ felix/trunk/framework.security/src/main/java/org/apache/felix/framework/security/condpermadmin/ConditionalPermissionAdminImpl.java Wed Dec 22 18:29:22 2010
@@ -54,7 +54,6 @@ import org.apache.felix.framework.securi
 import org.apache.felix.framework.security.util.LocalPermissions;
 import org.apache.felix.framework.security.util.Permissions;
 import org.apache.felix.framework.security.util.PropertiesCache;
-import org.apache.felix.framework.util.IteratorToEnumeration;
 import org.apache.felix.framework.util.manifestparser.R4Library;
 
 /*
@@ -777,6 +776,12 @@ public final class ConditionalPermission
                     public void setSecurityContext(Object arg0)
                     {
                     }
+
+                    public URL getLocalURL(int arg0, String arg1)
+                    {
+                        // TODO Auto-generated method stub
+                        return null;
+                    }
                 }, permission, m_pai))
                 {
                     if (!posts.isEmpty())
@@ -818,8 +823,8 @@ public final class ConditionalPermission
     {
         synchronized (m_condPermInfos)
         {
-            return new IteratorToEnumeration((new ArrayList(m_condPermInfos
-                .values())).iterator());
+            return Collections.enumeration(new ArrayList(m_condPermInfos
+                .values()));
         }
     }
 

Modified: felix/trunk/framework.security/src/main/java/org/apache/felix/framework/security/util/BundleInputStream.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework.security/src/main/java/org/apache/felix/framework/security/util/BundleInputStream.java?rev=1052018&r1=1052017&r2=1052018&view=diff
==============================================================================
--- felix/trunk/framework.security/src/main/java/org/apache/felix/framework/security/util/BundleInputStream.java (original)
+++ felix/trunk/framework.security/src/main/java/org/apache/felix/framework/security/util/BundleInputStream.java Wed Dec 22 18:29:22 2010
@@ -24,12 +24,12 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Enumeration;
 import java.util.List;
 import java.util.jar.JarEntry;
 import java.util.jar.JarOutputStream;
 
-import org.apache.felix.framework.util.IteratorToEnumeration;
 //import org.apache.felix.moduleloader.IContent;
 import org.apache.felix.framework.resolver.Content;
 
@@ -77,7 +77,7 @@ public final class BundleInputStream ext
         {
             manifest = "META-INF/MANIFEST.MF";
         }
-        m_content = new IteratorToEnumeration(entries.iterator());
+        m_content = Collections.enumeration(entries);
 
         try
         {

Modified: felix/trunk/framework.security/src/main/java/org/apache/felix/framework/security/util/Permissions.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework.security/src/main/java/org/apache/felix/framework/security/util/Permissions.java?rev=1052018&r1=1052017&r2=1052018&view=diff
==============================================================================
--- felix/trunk/framework.security/src/main/java/org/apache/felix/framework/security/util/Permissions.java (original)
+++ felix/trunk/framework.security/src/main/java/org/apache/felix/framework/security/util/Permissions.java Wed Dec 22 18:29:22 2010
@@ -34,6 +34,8 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.Collections;
+import java.util.WeakHashMap;
 
 import org.apache.felix.framework.util.SecureAction;
 import org.osgi.framework.AdminPermission;
@@ -72,6 +74,8 @@ public final class Permissions
 
     private static final PermissionInfo[] IMPLICIT = new PermissionInfo[] { new PermissionInfo(
         FilePermission.class.getName(), "-", "read,write,delete") };
+		
+	private static volatile Map m_implicit = new WeakHashMap();
 
     Permissions(PermissionInfo[] permissionInfos, BundleContext context,
         SecureAction action)
@@ -105,14 +109,22 @@ public final class Permissions
 
     public PermissionInfo[] getImplicit(Bundle bundle)
     {
-        return new PermissionInfo[] {
-            IMPLICIT[0],
-            new PermissionInfo(AdminPermission.class.getName(), "(id="
-                + bundle.getBundleId() + ")", AdminPermission.METADATA),
-            new PermissionInfo(AdminPermission.class.getName(), "(id="
-                + bundle.getBundleId() + ")", AdminPermission.RESOURCE),
-            new PermissionInfo(AdminPermission.class.getName(), "(id="
-                + bundle.getBundleId() + ")", AdminPermission.CONTEXT) };
+	    PermissionInfo[] result = (PermissionInfo[]) m_implicit.get(bundle);
+		if (result == null)
+		{
+		    result = new PermissionInfo[] {
+                IMPLICIT[0],
+                new PermissionInfo(AdminPermission.class.getName(), "(id="
+                    + bundle.getBundleId() + ")", AdminPermission.METADATA),
+                new PermissionInfo(AdminPermission.class.getName(), "(id="
+                    + bundle.getBundleId() + ")", AdminPermission.RESOURCE),
+                new PermissionInfo(AdminPermission.class.getName(), "(id="
+                    + bundle.getBundleId() + ")", AdminPermission.CONTEXT) };
+			Map implicit = new WeakHashMap(m_implicit);
+		    implicit.put(bundle, result);
+			m_implicit = implicit;
+		}
+        return result;
     }
 
     public Permissions getPermissions(PermissionInfo[] permissionInfos)
@@ -230,31 +242,32 @@ public final class Permissions
 
         public boolean implies(Permission perm)
         {
-            Map perms = null;
+            Permission permission = null;
 
             synchronized (m_perms)
             {
-                perms = m_perms;
+                permission = (Permission) m_perms.get(perm);
             }
 
-            Permission permission = (Permission) perms.get(perm);
-
             if ((permission != null) && permission.implies(perm))
             {
                 return true;
             }
-
-            for (Iterator iter = perms.values().iterator(); iter.hasNext();)
-            {
-                Permission current = (Permission) iter.next();
-                if ((current != null) && (current != permission)
-                    && current.implies(perm))
-                {
-                    return true;
+			
+			synchronized (m_perms) 
+			{
+                for (Iterator iter = m_perms.values().iterator(); iter.hasNext();)
+                {
+                    Permission current = (Permission) iter.next();
+                    if ((current != null) && (current != permission)
+                        && current.implies(perm))
+                    {
+                        return true;
+                    }
                 }
+                return false;
             }
-            return false;
-        }
+		}
     }
 
     private void cleanUp(ReferenceQueue queue, Map cache)