Return-Path: Delivered-To: apmail-felix-commits-archive@www.apache.org Received: (qmail 67492 invoked from network); 5 Mar 2008 13:10:30 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 5 Mar 2008 13:10:30 -0000 Received: (qmail 40099 invoked by uid 500); 5 Mar 2008 13:10:26 -0000 Delivered-To: apmail-felix-commits-archive@felix.apache.org Received: (qmail 40034 invoked by uid 500); 5 Mar 2008 13:10:26 -0000 Mailing-List: contact commits-help@felix.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@felix.apache.org Delivered-To: mailing list commits@felix.apache.org Received: (qmail 40025 invoked by uid 99); 5 Mar 2008 13:10:26 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 05 Mar 2008 05:10:26 -0800 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 05 Mar 2008 13:09:46 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id B23E41A9832; Wed, 5 Mar 2008 05:10:06 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r633839 - /felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java Date: Wed, 05 Mar 2008 13:10:06 -0000 To: commits@felix.apache.org From: pauls@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080305131006.B23E41A9832@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: pauls Date: Wed Mar 5 05:10:04 2008 New Revision: 633839 URL: http://svn.apache.org/viewvc?rev=633839&view=rev Log: Make the framework check for valid bundles on install as per spec. Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java?rev=633839&r1=633838&r2=633839&view=diff ============================================================================== --- felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java (original) +++ felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java Wed Mar 5 05:10:04 2008 @@ -39,7 +39,7 @@ static SecureAction m_secureAction = new SecureAction(); // The extension manager to handle extension bundles - private ExtensionManager m_extensionManager; + ExtensionManager m_extensionManager; // Logging related member variables. private Logger m_logger = null; // TODO: KARL - Why package private? @@ -1653,7 +1653,8 @@ // to import the necessary packages. if (System.getSecurityManager() != null) { - ProtectionDomain pd = bundle.getInfo().getProtectionDomain(); + BundleProtectionDomain pd = (BundleProtectionDomain) + bundle.getInfo().getProtectionDomain(); IRequirement[] imports = bundle.getInfo().getCurrentModule().getDefinition().getRequirements(); @@ -1671,7 +1672,7 @@ imports[i].???, PackagePermission.IMPORT); - if (!pd.implies(perm)) + if (!pd.impliesDirect(perm)) { throw new java.security.AccessControlException( "PackagePermission.IMPORT denied for import: " + @@ -1690,7 +1691,7 @@ PackagePermission perm = new PackagePermission( (String) exports[i].getProperties().get(ICapability.PACKAGE_PROPERTY), PackagePermission.EXPORT); - if (!pd.implies(perm)) + if (!pd.impliesDirect(perm)) { throw new java.security.AccessControlException( "PackagePermission.EXPORT denied for export: " + @@ -3380,8 +3381,12 @@ return true; } - void addSecurity(final FelixBundle bundle) + void addSecurity(final FelixBundle bundle) throws Exception { + if (m_securityProvider != null) + { + m_securityProvider.checkBundle(bundle); + } bundle.getInfo().setProtectionDomain(new BundleProtectionDomain(this, bundle)); } @@ -3922,23 +3927,19 @@ } // Next, stop all system bundle activators. - if (m_activatorList != null) + for (int i = 0; i < m_activatorList.size(); i++) { - // Stop all activators. - for (int i = 0; i < m_activatorList.size(); i++) + try { - try - { - Felix.m_secureAction.stopActivator((BundleActivator) - m_activatorList.get(i), getInfo().getBundleContext()); - } - catch (Throwable throwable) - { - m_logger.log( - Logger.LOG_WARNING, - "Exception stopping a system bundle activator.", - throwable); - } + Felix.m_secureAction.stopActivator((BundleActivator) + m_activatorList.get(i), getInfo().getBundleContext()); + } + catch (Throwable throwable) + { + m_logger.log( + Logger.LOG_WARNING, + "Exception stopping a system bundle activator.", + throwable); } }