[jboss-osgi-commits] JBoss-OSGI SVN: r93146 - in projects/jboss-osgi/projects/runtime/microcontainer/trunk: src/main/java/org/jboss/osgi/plugins/facade/classloading and 1 other directories.
jboss-osgi-commits at lists.jboss.org
jboss-osgi-commits at lists.jboss.org
Wed Sep 2 19:12:07 EDT 2009
Author: thomas.diesler at jboss.com
Date: 2009-09-02 19:12:07 -0400 (Wed, 02 Sep 2009)
New Revision: 93146
Added:
projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/test/java/org/jboss/test/osgi/classloader/test/ClassLoaderDomainUnitTestCase.java
Modified:
projects/jboss-osgi/projects/runtime/microcontainer/trunk/scripts/assembly-bundles.xml
projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/classloading/OSGiBundleClassLoadingDeployer.java
Log:
Investigate ClassLoaderDomain
Modified: projects/jboss-osgi/projects/runtime/microcontainer/trunk/scripts/assembly-bundles.xml
===================================================================
--- projects/jboss-osgi/projects/runtime/microcontainer/trunk/scripts/assembly-bundles.xml 2009-09-02 21:38:17 UTC (rev 93145)
+++ projects/jboss-osgi/projects/runtime/microcontainer/trunk/scripts/assembly-bundles.xml 2009-09-02 23:12:07 UTC (rev 93146)
@@ -16,6 +16,7 @@
<outputFileNameMapping>${artifact.artifactId}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
<includes>
<include>*:org.osgi.compendium:jar</include>
+ <include>*:org.osgi.core:jar</include>
</includes>
<useStrictFiltering>true</useStrictFiltering>
<scope>compile</scope>
Modified: projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/classloading/OSGiBundleClassLoadingDeployer.java
===================================================================
--- projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/classloading/OSGiBundleClassLoadingDeployer.java 2009-09-02 21:38:17 UTC (rev 93145)
+++ projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/classloading/OSGiBundleClassLoadingDeployer.java 2009-09-02 23:12:07 UTC (rev 93146)
@@ -66,15 +66,10 @@
public void setClassLoaderSystem(ClassLoaderSystem classLoaderSystem)
{
this.classLoaderSystem = classLoaderSystem;
- for (String name : classLoaderSystem.getDomainNames())
- {
- ClassLoaderDomain domain = classLoaderSystem.getDomain(name);
- System.out.println(domain.toLongString());
- }
}
@Override
- public void deploy(DeploymentUnit unit, OSGiMetaData deployment) throws DeploymentException
+ public void deploy(DeploymentUnit unit, OSGiMetaData osgiMetaData) throws DeploymentException
{
if (unit.isAttachmentPresent(ClassLoadingMetaData.class))
return;
@@ -86,8 +81,8 @@
OSGiBundleManager bundleManager = bundleState.getBundleManager();
ClassLoadingMetaData classLoadingMetaData = new ClassLoadingMetaData();
- classLoadingMetaData.setName(deployment.getBundleSymbolicName());
- classLoadingMetaData.setVersion(deployment.getBundleVersion());
+ classLoadingMetaData.setName(osgiMetaData.getBundleSymbolicName());
+ classLoadingMetaData.setVersion(osgiMetaData.getBundleVersion());
if (classLoaderSystem != null)
{
@@ -98,10 +93,10 @@
CapabilitiesMetaData capabilities = classLoadingMetaData.getCapabilities();
RequirementsMetaData requirements = classLoadingMetaData.getRequirements();
- OSGiBundleCapability capability = OSGiBundleCapability.create(deployment);
+ OSGiBundleCapability capability = OSGiBundleCapability.create(osgiMetaData);
capabilities.addCapability(capability);
- List<ParameterizedAttribute> requireBundles = deployment.getRequireBundles();
+ List<ParameterizedAttribute> requireBundles = osgiMetaData.getRequireBundles();
if (requireBundles != null && requireBundles.isEmpty() == false)
{
for (ParameterizedAttribute requireBundle : requireBundles)
@@ -111,17 +106,17 @@
}
}
- List<PackageAttribute> exported = deployment.getExportPackages();
+ List<PackageAttribute> exported = osgiMetaData.getExportPackages();
if (exported != null && exported.isEmpty() == false)
{
for (PackageAttribute packageAttribute : exported)
{
- OSGiPackageCapability packageCapability = OSGiPackageCapability.create(deployment, packageAttribute);
+ OSGiPackageCapability packageCapability = OSGiPackageCapability.create(osgiMetaData, packageAttribute);
capabilities.addCapability(packageCapability);
}
}
- List<PackageAttribute> imported = deployment.getImportPackages();
+ List<PackageAttribute> imported = osgiMetaData.getImportPackages();
if (imported != null && imported.isEmpty() == false)
{
SystemPackagesPlugin syspackPlugin = bundleManager.getPlugin(SystemPackagesPlugin.class);
Added: projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/test/java/org/jboss/test/osgi/classloader/test/ClassLoaderDomainUnitTestCase.java
===================================================================
--- projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/test/java/org/jboss/test/osgi/classloader/test/ClassLoaderDomainUnitTestCase.java (rev 0)
+++ projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/test/java/org/jboss/test/osgi/classloader/test/ClassLoaderDomainUnitTestCase.java 2009-09-02 23:12:07 UTC (rev 93146)
@@ -0,0 +1,77 @@
+/*
+* 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.test.osgi.classloader.test;
+
+import static org.junit.Assert.*;
+
+import java.net.URL;
+
+import org.jboss.classloader.plugins.system.DefaultClassLoaderSystem;
+import org.jboss.classloader.spi.ClassLoaderDomain;
+import org.jboss.classloader.spi.ClassLoaderPolicy;
+import org.jboss.classloader.spi.ClassLoaderSystem;
+import org.jboss.classloader.spi.ParentPolicy;
+import org.jboss.classloading.spi.vfs.policy.VFSClassLoaderPolicy;
+import org.jboss.osgi.plugins.facade.bundle.OSGiBundleManager;
+import org.jboss.osgi.spi.testing.OSGiTestHelper;
+import org.jboss.virtual.VFS;
+import org.jboss.virtual.VirtualFile;
+import org.junit.Before;
+import org.junit.Test;
+import org.osgi.framework.Bundle;
+
+/**
+ * ClassLoaderDomainUnitTestCase.
+ *
+ * @author Thomas.Diesler at jboss.com
+ * @version $Revision$
+ */
+public class ClassLoaderDomainUnitTestCase
+{
+ private static final String OSGI_CLASSLOADER_DOMAIN = "OSGiDomain";
+ private ClassLoaderSystem classLoaderSystem;
+
+ @Before
+ public void setUp()
+ {
+ classLoaderSystem = new DefaultClassLoaderSystem();
+ }
+
+ @Test
+ public void testSystemPolicy() throws Exception
+ {
+ ClassLoaderDomain domain = new ClassLoaderDomain(OSGI_CLASSLOADER_DOMAIN);
+ domain.setParentPolicy(ParentPolicy.BEFORE_BUT_JAVA_ONLY);
+ domain.setParent(null);
+ classLoaderSystem.registerDomain(domain);
+
+ URL coreURL = new OSGiTestHelper().getTestArchiveURL("bundles/org.osgi.core.jar");
+ VirtualFile coreVF = VFS.createNewRoot(coreURL);
+
+ ClassLoaderPolicy systemPolicy = new VFSClassLoaderPolicy("OSGiSystemPolicy", new VirtualFile[] { coreVF });
+ classLoaderSystem.registerClassLoaderPolicy(OSGI_CLASSLOADER_DOMAIN, systemPolicy);
+
+ assertNotNull("Can load JDK class", domain.loadClass(String.class.getName()));
+ //assertNotNull("Can load OSGi Framework class", domain.loadClass(Bundle.class.getName()));
+ assertNull("Cannot load OSGiBundleManager", domain.loadClass(OSGiBundleManager.class.getName()));
+ }
+}
Property changes on: projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/test/java/org/jboss/test/osgi/classloader/test/ClassLoaderDomainUnitTestCase.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
More information about the jboss-osgi-commits
mailing list