[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