Author: thomas.diesler(a)jboss.com
Date: 2010-02-02 00:52:28 -0500 (Tue, 02 Feb 2010)
New Revision: 100237
Added:
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/classloading/OSGiCoreClassFilter.java
Modified:
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/bundle/OSGiSystemState.java
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/classloading/OSGiClassLoaderDomain.java
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/classloading/OSGiClassLoaderSystem.java
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/plugins/internal/SystemPackagesPluginImpl.java
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/java/org/jboss/test/osgi/bundle/SystemBundleUnitTestCase.java
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/java/org/jboss/test/osgi/resolver/ResolverSmokeTest.java
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/java/org/jboss/test/osgi/smoke/OSGiSmokeTestCase.java
Log:
Add OSGiCoreClassFilter to remove redundancy
Modified:
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/bundle/OSGiSystemState.java
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/bundle/OSGiSystemState.java 2010-02-02
05:28:02 UTC (rev 100236)
+++
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/bundle/OSGiSystemState.java 2010-02-02
05:52:28 UTC (rev 100237)
@@ -87,7 +87,7 @@
public Enumeration<URL> findEntries(String path, String filePattern, boolean
recurse)
{
- log.warn("[JBOSGI-138] findEntries(" + path + "," + filePattern
+ "," + recurse + ")");
+ System.out.println("FIXME [JBOSGI-138] findEntries(" + path +
"," + filePattern + "," + recurse + ")");
return null;
// [Bug-1472] Clarify the semantic of resource API when called on the system
bundle
@@ -115,27 +115,27 @@
public URL getEntry(String path)
{
- log.warn("[JBOSGI-138] getEntry(" + path + ")");
+ System.out.println("FIXME [JBOSGI-138] getEntry(" + path +
")");
return null;
}
@SuppressWarnings("rawtypes")
public Enumeration getEntryPaths(String path)
{
- log.warn("[JBOSGI-138] getEntryPaths(" + path + ")");
+ System.out.println("FIXME [JBOSGI-138] getEntryPaths(" + path +
")");
return null;
}
public URL getResource(String name)
{
- log.warn("[JBOSGI-138] getResource(" + name + ")");
+ System.out.println("FIXME [JBOSGI-138] getResource(" + name +
")");
return null;
}
@SuppressWarnings("rawtypes")
public Enumeration getResources(String name) throws IOException
{
- log.warn("[JBOSGI-138] getResources(" + name + ")");
+ System.out.println("FIXME [JBOSGI-138] getResources(" + name +
")");
return null;
}
Modified:
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/classloading/OSGiClassLoaderDomain.java
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/classloading/OSGiClassLoaderDomain.java 2010-02-02
05:28:02 UTC (rev 100236)
+++
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/classloading/OSGiClassLoaderDomain.java 2010-02-02
05:52:28 UTC (rev 100237)
@@ -57,29 +57,6 @@
private List<URL> classPath = new ArrayList<URL>();
/**
- * Return a filter for all packages defined in the org.osgi.core.jar
- * and java.* but not javax.*
- */
- static ClassFilter getClassLoaderDomainFilter()
- {
- // Filter the list of org.osgi.core packages
- ArrayList<String> corePackages = new ArrayList<String>();
- corePackages.add("org.osgi.framework");
- corePackages.add("org.osgi.framework.hooks");
- corePackages.add("org.osgi.framework.hooks.service");
- corePackages.add("org.osgi.framework.launch");
- corePackages.add("org.osgi.service.condpermadmin");
- corePackages.add("org.osgi.service.packageadmin");
- corePackages.add("org.osgi.service.permissionadmin");
- corePackages.add("org.osgi.service.startlevel");
- corePackages.add("org.osgi.service.url");
- ClassFilter osgiFilter =
PackageClassFilter.createPackageClassFilter(corePackages);
- // Filter java.* but not javax.*
- ClassFilter javaFilter =
RecursivePackageClassFilter.createRecursivePackageClassFilter("java");
- return CombiningClassFilter.create(javaFilter, osgiFilter);
- }
-
- /**
* Create a new OSGiClassLoaderDomain.
* @param domainName the domain name
* @throws IllegalArgumentException for a null bundle manager
@@ -124,7 +101,8 @@
// Initialize the configured system packages
ClassFilter systemFilter =
PackageClassFilter.createPackageClassFilterFromString(getSystemPackagesAsString());
- ClassFilter filter = CombiningClassFilter.create(getClassLoaderDomainFilter(),
systemFilter);
+ ClassFilter javaFilter =
RecursivePackageClassFilter.createRecursivePackageClassFilter("java");
+ ClassFilter filter = CombiningClassFilter.create(javaFilter,
OSGiCoreClassFilter.INSTANCE, systemFilter);
// Setup the domain's parent policy
setParentPolicy(new ParentPolicy(filter, ClassFilterUtils.NOTHING));
Modified:
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/classloading/OSGiClassLoaderSystem.java
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/classloading/OSGiClassLoaderSystem.java 2010-02-02
05:28:02 UTC (rev 100236)
+++
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/classloading/OSGiClassLoaderSystem.java 2010-02-02
05:52:28 UTC (rev 100237)
@@ -22,6 +22,7 @@
package org.jboss.osgi.framework.classloading;
+import org.jboss.classloader.plugins.filter.CombiningClassFilter;
import org.jboss.classloader.plugins.jdk.AbstractJDKChecker;
import org.jboss.classloader.spi.ClassLoaderDomain;
import org.jboss.classloader.spi.ClassLoaderPolicy;
@@ -30,6 +31,7 @@
import org.jboss.classloader.spi.base.BaseClassLoader;
import org.jboss.classloader.spi.filter.ClassFilter;
import org.jboss.classloader.spi.filter.ClassFilterUtils;
+import org.jboss.classloader.spi.filter.RecursivePackageClassFilter;
import org.jboss.osgi.framework.bundle.AbstractBundleState;
import org.jboss.osgi.framework.bundle.OSGiBundleState;
@@ -49,8 +51,9 @@
{
ClassLoaderDomain domain = getDefaultDomain();
- ClassFilter domainFilter = OSGiClassLoaderDomain.getClassLoaderDomainFilter();
- domain.setParentPolicy(new ParentPolicy(domainFilter, ClassFilterUtils.NOTHING));
+ ClassFilter javaFilter =
RecursivePackageClassFilter.createRecursivePackageClassFilter("java");
+ ClassFilter filter = CombiningClassFilter.create(javaFilter,
OSGiCoreClassFilter.INSTANCE);
+ domain.setParentPolicy(new ParentPolicy(filter, ClassFilterUtils.NOTHING));
AbstractJDKChecker.getExcluded().add(AbstractBundleState.class);
AbstractJDKChecker.getExcluded().add(OSGiBundleState.class);
Added:
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/classloading/OSGiCoreClassFilter.java
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/classloading/OSGiCoreClassFilter.java
(rev 0)
+++
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/classloading/OSGiCoreClassFilter.java 2010-02-02
05:52:28 UTC (rev 100237)
@@ -0,0 +1,72 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2009, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file in the
+* distribution for a full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+*/
+package org.jboss.osgi.framework.classloading;
+
+// $Id: $
+
+import org.jboss.classloader.spi.filter.PackageClassFilter;
+
+/**
+ * A class filter for OSGi Core packages.
+ *
+ * @author Thomas.Diesler(a)jboss.com
+ * @since 02-Feb-2010
+ */
+public final class OSGiCoreClassFilter extends PackageClassFilter
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 5679852972501066041L;
+
+ /** The singleton instance */
+ public static OSGiCoreClassFilter INSTANCE = new OSGiCoreClassFilter();
+
+ private OSGiCoreClassFilter()
+ {
+ super(getCorePackages());
+ }
+
+ public static String[] getCorePackages()
+ {
+ return new String[] {
+ "org.osgi.framework",
+ "org.osgi.framework.hooks",
+ "org.osgi.framework.hooks.service",
+ "org.osgi.framework.launch",
+ "org.osgi.service.condpermadmin",
+ "org.osgi.service.packageadmin",
+ "org.osgi.service.permissionadmin",
+ "org.osgi.service.startlevel",
+ "org.osgi.service.url"
+ };
+ }
+
+ public String toString()
+ {
+ return "OSGI_CORE";
+ }
+
+ @Override
+ public void setIncludeJava(boolean includeJava)
+ {
+ throw new UnsupportedOperationException("Cannot modify OSGi Core
Filter");
+ }
+}
\ No newline at end of file
Modified:
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/plugins/internal/SystemPackagesPluginImpl.java
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/plugins/internal/SystemPackagesPluginImpl.java 2010-02-02
05:28:02 UTC (rev 100236)
+++
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/plugins/internal/SystemPackagesPluginImpl.java 2010-02-02
05:52:28 UTC (rev 100237)
@@ -24,11 +24,13 @@
//$Id$
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import org.jboss.logging.Logger;
import org.jboss.osgi.framework.bundle.OSGiBundleManager;
+import org.jboss.osgi.framework.classloading.OSGiCoreClassFilter;
import org.jboss.osgi.framework.plugins.SystemPackagesPlugin;
import org.osgi.framework.Constants;
@@ -92,6 +94,9 @@
allPackages.add("org.jboss.virtual");
+ String[] corePackages = OSGiCoreClassFilter.getCorePackages();
+ allPackageNames.addAll(Arrays.asList(corePackages));
+
allPackages.add("org.w3c.dom");
allPackages.add("org.w3c.dom.bootstrap");
allPackages.add("org.w3c.dom.ls");
Modified:
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/java/org/jboss/test/osgi/bundle/SystemBundleUnitTestCase.java
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/java/org/jboss/test/osgi/bundle/SystemBundleUnitTestCase.java 2010-02-02
05:28:02 UTC (rev 100236)
+++
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/java/org/jboss/test/osgi/bundle/SystemBundleUnitTestCase.java 2010-02-02
05:52:28 UTC (rev 100237)
@@ -67,12 +67,12 @@
public void testStartStop() throws Exception
{
- System.out.println("[JBOSGI-138] Proper system BundleContext
implementation");
+ System.out.println("FIXME [JBOSGI-138] Proper system BundleContext
implementation");
}
public void testUpdate() throws Exception
{
- System.out.println("[JBOSGI-138] Proper system BundleContext
implementation");
+ System.out.println("FIXME [JBOSGI-138] Proper system BundleContext
implementation");
}
public void testUninstall() throws Exception
@@ -108,31 +108,31 @@
public void testGetEntry()
{
- System.out.println("[JBOSGI-138] Proper system BundleContext
implementation");
+ System.out.println("FIXME [JBOSGI-138] Proper system BundleContext
implementation");
}
public void testGetEntryPath()
{
- System.out.println("[JBOSGI-138] Proper system BundleContext
implementation");
+ System.out.println("FIXME [JBOSGI-138] Proper system BundleContext
implementation");
}
public void testFindEntries()
{
- System.out.println("[JBOSGI-138] Proper system BundleContext
implementation");
+ System.out.println("FIXME [JBOSGI-138] Proper system BundleContext
implementation");
}
public void testLoadClass()
{
- System.out.println("[JBOSGI-138] Proper system BundleContext
implementation");
+ System.out.println("FIXME [JBOSGI-138] Proper system BundleContext
implementation");
}
public void testGetResource()
{
- System.out.println("[JBOSGI-138] Proper system BundleContext
implementation");
+ System.out.println("FIXME [JBOSGI-138] Proper system BundleContext
implementation");
}
public void testGetResources()
{
- System.out.println("[JBOSGI-138] Proper system BundleContext
implementation");
+ System.out.println("FIXME [JBOSGI-138] Proper system BundleContext
implementation");
}
}
Modified:
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/java/org/jboss/test/osgi/resolver/ResolverSmokeTest.java
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/java/org/jboss/test/osgi/resolver/ResolverSmokeTest.java 2010-02-02
05:28:02 UTC (rev 100236)
+++
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/java/org/jboss/test/osgi/resolver/ResolverSmokeTest.java 2010-02-02
05:52:28 UTC (rev 100237)
@@ -99,7 +99,7 @@
PackageAdminPlugin packageAdmin =
bundleManager.getPlugin(PackageAdminPlugin.class);
packageAdmin.resolveBundles(null);
- System.out.println("[JBOSGI-151] Cannot resolve circular
dependencies");
+ System.out.println("FIXME [JBOSGI-151] Cannot resolve circular
dependencies");
//assertTrue("All bundles resolved", allResoved);
}
finally
Modified:
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/java/org/jboss/test/osgi/smoke/OSGiSmokeTestCase.java
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/java/org/jboss/test/osgi/smoke/OSGiSmokeTestCase.java 2010-02-02
05:28:02 UTC (rev 100236)
+++
projects/jboss-osgi/projects/runtime/framework/trunk/src/test/java/org/jboss/test/osgi/smoke/OSGiSmokeTestCase.java 2010-02-02
05:52:28 UTC (rev 100237)
@@ -56,13 +56,13 @@
public void testNoManifest() throws Exception
{
- System.out.println("[JBOSGI-203] Define non OSGi bundle handling by the
Framework");
+ System.out.println("FIXME [JBOSGI-203] Define non OSGi bundle handling by the
Framework");
// testBundle("smoke-no-manifest", Bundle.ACTIVE);
}
public void testNonOSGiManifest() throws Exception
{
- System.out.println("[JBOSGI-203] Define non OSGi bundle handling by the
Framework");
+ System.out.println("FIXME [JBOSGI-203] Define non OSGi bundle handling by the
Framework");
// testBundle("smoke-non-osgi-manifest", Bundle.ACTIVE);
}
@@ -90,13 +90,13 @@
public void testDeployedNoManifest() throws Exception
{
- System.out.println("[JBOSGI-203] Define non OSGi bundle handling by the
Framework");
+ System.out.println("FIXME [JBOSGI-203] Define non OSGi bundle handling by the
Framework");
// testDeployedBundle("smoke-no-manifest", Bundle.ACTIVE);
}
public void testDeployedNonOSGiManifest() throws Exception
{
- System.out.println("[JBOSGI-203] Define non OSGi bundle handling by the
Framework");
+ System.out.println("FIXME [JBOSGI-203] Define non OSGi bundle handling by the
Framework");
// testDeployedBundle("smoke-non-osgi-manifest", Bundle.ACTIVE);
}
@@ -128,7 +128,7 @@
public void testAssembledNonOSGiDeployment() throws Exception
{
- System.out.println("[JBOSGI-203] Define non OSGi bundle handling by the
Framework");
+ System.out.println("FIXME [JBOSGI-203] Define non OSGi bundle handling by the
Framework");
/*
Bundle bundle = deployBundle("smoke-non-osgi-deployment", A.class);
try