Author: thomas.diesler(a)jboss.com
Date: 2010-01-29 18:01:06 -0500 (Fri, 29 Jan 2010)
New Revision: 100147
Added:
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/deployers/OSGiModuleDeployerTempWorkaround.java
Modified:
projects/jboss-osgi/trunk/distribution/installer/src/main/resources/jbossas/jboss-beans-jbossmc.xml
Log:
Fix more AS6 integration issues
Added:
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/deployers/OSGiModuleDeployerTempWorkaround.java
===================================================================
---
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/deployers/OSGiModuleDeployerTempWorkaround.java
(rev 0)
+++
projects/jboss-osgi/projects/runtime/framework/trunk/src/main/java/org/jboss/osgi/framework/deployers/OSGiModuleDeployerTempWorkaround.java 2010-01-29
23:01:06 UTC (rev 100147)
@@ -0,0 +1,69 @@
+/*
+* 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.deployers;
+
+import org.jboss.classloading.spi.dependency.ClassLoading;
+import org.jboss.classloading.spi.dependency.Module;
+import org.jboss.classloading.spi.dependency.policy.ClassLoaderPolicyModule;
+import org.jboss.classloading.spi.metadata.ClassLoadingMetaData;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.deployers.vfs.plugins.classloader.VFSClassLoaderDescribeDeployer;
+import org.jboss.osgi.framework.classloading.OSGiClassLoadingMetaData;
+import org.jboss.osgi.framework.classloading.OSGiModule;
+
+/**
+ * [TODO] Remove this deployer when the VFSClassLoaderDescribeDeployer
+ * suports an already attached Module.
+ *
+ * @author Thomas.Diesler(a)jboss.com
+ * @version $Revision: 100143 $
+ */
+public class OSGiModuleDeployerTempWorkaround extends VFSClassLoaderDescribeDeployer
+{
+ public OSGiModuleDeployerTempWorkaround()
+ {
+ // Make sure we come after the ClassLoaderDescribeDeployer
+ setInput(Module.class);
+ }
+
+ @Override
+ public void deploy(DeploymentUnit unit, ClassLoadingMetaData metaData) throws
DeploymentException
+ {
+ // If there is already a module attached and this is an OSGi deployment
+ // remove the old module and create a new OSGiModule
+ if (metaData instanceof OSGiClassLoadingMetaData)
+ {
+ Module module = unit.removeAttachment(Module.class);
+ ClassLoading classLoading = getClassLoading();
+ classLoading.removeModule(module);
+ unit.removeAttachment(Module.class);
+ super.deploy(unit, metaData);
+ }
+ }
+
+ @Override
+ protected ClassLoaderPolicyModule createModule(DeploymentUnit unit,
ClassLoadingMetaData metaData)
+ {
+ return new OSGiModule(unit, metaData);
+ }
+}
Modified:
projects/jboss-osgi/trunk/distribution/installer/src/main/resources/jbossas/jboss-beans-jbossmc.xml
===================================================================
---
projects/jboss-osgi/trunk/distribution/installer/src/main/resources/jbossas/jboss-beans-jbossmc.xml 2010-01-29
22:59:14 UTC (rev 100146)
+++
projects/jboss-osgi/trunk/distribution/installer/src/main/resources/jbossas/jboss-beans-jbossmc.xml 2010-01-29
23:01:06 UTC (rev 100147)
@@ -177,6 +177,7 @@
<bean name="OSGiBundleStateRemoveDeployer"
class="org.jboss.osgi.framework.deployers.OSGiBundleStateRemoveDeployer">
<constructor><parameter><inject bean="OSGiBundleManager"
/></parameter></constructor>
</bean>
+ <bean name="OSGiBundleStructure"
class="org.jboss.osgi.deployer.BundleStructureDeployer" />
<bean name="OSGiContextTrackerDeployer"
class="org.jboss.osgi.framework.deployers.OSGiContextTrackerDeployer" />
<bean name="OSGiManifestParsingDeployer"
class="org.jboss.osgi.framework.deployers.OSGiManifestParsingDeployer" />
<bean name="OSGiNativeCodeMetaDataDeployer"
class="org.jboss.osgi.framework.deployers.OSGiNativeCodeMetaDataDeployer" />
@@ -207,10 +208,9 @@
<property name="factory"><inject
bean="OSGiClassLoaderFactory"/></property>
</bean>
<bean name="OSGiFragmentAttachmentDeployer"
class="org.jboss.osgi.framework.deployers.OSGiFragmentAttachmentDeployer"/>
-
- <!-- bean name="OSGiModuleDeployer"
class="org.jboss.osgi.framework.deployers.OSGiModuleDeployer">
+ <bean name="OSGiModuleDeployer"
class="org.jboss.osgi.framework.deployers.OSGiModuleDeployerTempWorkaround">
<property name="classLoading"><inject
bean="ClassLoading" /></property>
- </bean -->
+ </bean>
<!--
********************************