[jboss-cvs] JBossAS SVN: r92585 - in projects/jboss-osgi/trunk/reactor/runtime/jbossmc: src/main/java/org/jboss/osgi/jbossmc/api and 3 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Aug 19 15:56:30 EDT 2009
Author: thomas.diesler at jboss.com
Date: 2009-08-19 15:56:30 -0400 (Wed, 19 Aug 2009)
New Revision: 92585
Added:
projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/java/org/jboss/osgi/jbossmc/api/FrameworkBootstrap.java
projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/java/org/jboss/osgi/jbossmc/framework/FrameworkBootstrapImpl.java
projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/resources/META-INF/bootstrap.xml
projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/resources/META-INF/jboss-osgi-framework.xml
Removed:
projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/test/resources/jboss-osgi-jbossmc.properties
projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/test/resources/org.jboss.osgi.spi.framework.OSGiBootstrapProvider
projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/test/resources/tst.policy
Modified:
projects/jboss-osgi/trunk/reactor/runtime/jbossmc/pom.xml
projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/java/org/jboss/osgi/jbossmc/framework/FrameworkFactoryImpl.java
Log:
Use jboss-bootstrap in the FrameworkFactory
Modified: projects/jboss-osgi/trunk/reactor/runtime/jbossmc/pom.xml
===================================================================
--- projects/jboss-osgi/trunk/reactor/runtime/jbossmc/pom.xml 2009-08-19 19:11:16 UTC (rev 92584)
+++ projects/jboss-osgi/trunk/reactor/runtime/jbossmc/pom.xml 2009-08-19 19:56:30 UTC (rev 92585)
@@ -31,6 +31,7 @@
<properties>
<version.jboss.osgi.spi>1.0.1-SNAPSHOT</version.jboss.osgi.spi>
+ <version.jboss.bootsrap>2.0.0-alpha-2</version.jboss.bootsrap>
<version.osgi>r4v42-20090728</version.osgi>
</properties>
@@ -41,6 +42,11 @@
<artifactId>bnd</artifactId>
</dependency>
<dependency>
+ <groupId>org.jboss.bootstrap</groupId>
+ <artifactId>jboss-bootstrap-impl-mc</artifactId>
+ <version>${version.jboss.bootsrap}</version>
+ </dependency>
+ <dependency>
<groupId>org.jboss.osgi</groupId>
<artifactId>jboss-osgi-spi</artifactId>
<version>${version.jboss.osgi.spi}</version>
Added: projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/java/org/jboss/osgi/jbossmc/api/FrameworkBootstrap.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/java/org/jboss/osgi/jbossmc/api/FrameworkBootstrap.java (rev 0)
+++ projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/java/org/jboss/osgi/jbossmc/api/FrameworkBootstrap.java 2009-08-19 19:56:30 UTC (rev 92585)
@@ -0,0 +1,37 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt 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.jbossmc.api;
+
+//$Id$
+
+import org.osgi.framework.launch.Framework;
+
+/**
+ * An impementation of an OSGi Framework
+ *
+ * @author thomas.diesler at jboss.com
+ * @since 29-Jul-2009
+ */
+public interface FrameworkBootstrap
+{
+ Framework getFramework();
+}
\ No newline at end of file
Property changes on: projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/java/org/jboss/osgi/jbossmc/api/FrameworkBootstrap.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/java/org/jboss/osgi/jbossmc/framework/FrameworkBootstrapImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/java/org/jboss/osgi/jbossmc/framework/FrameworkBootstrapImpl.java (rev 0)
+++ projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/java/org/jboss/osgi/jbossmc/framework/FrameworkBootstrapImpl.java 2009-08-19 19:56:30 UTC (rev 92585)
@@ -0,0 +1,73 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt 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.jbossmc.framework;
+
+//$Id$
+
+import java.net.URL;
+import java.util.List;
+import java.util.Map;
+
+import org.jboss.logging.Logger;
+import org.jboss.osgi.jbossmc.api.FrameworkBootstrap;
+import org.osgi.framework.launch.Framework;
+
+/**
+ * An impementation of an OSGi Framework
+ *
+ * @author thomas.diesler at jboss.com
+ * @since 29-Jul-2009
+ */
+public class FrameworkBootstrapImpl implements FrameworkBootstrap
+{
+ // Provide logging
+ final Logger log = Logger.getLogger(FrameworkBootstrapImpl.class);
+
+ private Map<String, Object> properties;
+ private List<URL> autoInstall;
+ private List<URL> autoStart;
+ private Framework framework;
+
+ public void setProperties(Map<String, Object> properties)
+ {
+ this.properties = properties;
+ }
+
+ public void setAutoInstall(List<URL> autoInstall)
+ {
+ this.autoInstall = autoInstall;
+ }
+
+ public void setAutoStart(List<URL> autoStart)
+ {
+ this.autoStart = autoStart;
+ }
+
+ public Framework getFramework()
+ {
+ if (framework == null)
+ {
+ framework = new FrameworkImpl(properties);
+ }
+ return framework;
+ }
+}
\ No newline at end of file
Property changes on: projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/java/org/jboss/osgi/jbossmc/framework/FrameworkBootstrapImpl.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/java/org/jboss/osgi/jbossmc/framework/FrameworkFactoryImpl.java
===================================================================
--- projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/java/org/jboss/osgi/jbossmc/framework/FrameworkFactoryImpl.java 2009-08-19 19:11:16 UTC (rev 92584)
+++ projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/java/org/jboss/osgi/jbossmc/framework/FrameworkFactoryImpl.java 2009-08-19 19:56:30 UTC (rev 92585)
@@ -23,9 +23,16 @@
//$Id$
+import java.net.URL;
import java.util.Map;
+import org.jboss.bootstrap.impl.mc.config.BasicMCServerConfig;
+import org.jboss.bootstrap.impl.mc.server.MCServerImpl;
+import org.jboss.bootstrap.spi.mc.config.MCServerConfig;
+import org.jboss.bootstrap.spi.mc.server.MCServer;
+import org.jboss.dependency.spi.ControllerContext;
import org.jboss.logging.Logger;
+import org.jboss.osgi.jbossmc.api.FrameworkBootstrap;
import org.osgi.framework.launch.Framework;
import org.osgi.framework.launch.FrameworkFactory;
@@ -37,12 +44,55 @@
*/
public class FrameworkFactoryImpl implements FrameworkFactory
{
+ private static final String BEAN_FRAMEWORK_BOOTSTRAP = "jboss.osgi:service=FrameworkBootstrap";
// Provide logging
final Logger log = Logger.getLogger(FrameworkFactoryImpl.class);
@SuppressWarnings("unchecked")
public Framework newFramework(Map configuration)
{
- return new FrameworkImpl(configuration);
+ // Create a configuration
+ MCServerConfig config = new BasicMCServerConfig();
+ config.bootstrapHome(getBootstrapHome());
+
+ // Create the server
+ final MCServer server = new MCServerImpl(config);
+ try
+ {
+ server.start();
+ }
+ catch (RuntimeException rte)
+ {
+ throw rte;
+ }
+ catch (Exception ex)
+ {
+ throw new IllegalStateException("Cannot bootstrap MC server", ex);
+ }
+
+ ControllerContext context = server.getKernel().getController().getInstalledContext(BEAN_FRAMEWORK_BOOTSTRAP);
+ if (context == null)
+ throw new IllegalStateException("Cannot obtain: " + BEAN_FRAMEWORK_BOOTSTRAP);
+
+ FrameworkBootstrap frameworkBootstrap = (FrameworkBootstrap)context.getTarget();
+ return frameworkBootstrap.getFramework();
}
+
+ private String getBootstrapHome()
+ {
+ String bootstrapHome = null;
+ URL homeUrl = getBootstrapUrl();
+ if (homeUrl != null)
+ {
+ String path = homeUrl.toExternalForm();
+ bootstrapHome = path.substring(0, path.lastIndexOf('/'));
+ }
+ return bootstrapHome;
+ }
+
+ private URL getBootstrapUrl()
+ {
+ ClassLoader cl = getClass().getClassLoader();
+ return cl.getResource("META-INF/bootstrap.xml");
+ }
}
\ No newline at end of file
Added: projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/resources/META-INF/bootstrap.xml
===================================================================
--- projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/resources/META-INF/bootstrap.xml (rev 0)
+++ projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/resources/META-INF/bootstrap.xml 2009-08-19 19:56:30 UTC (rev 92585)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bootstrap xmlns="urn:jboss:bootstrap:1.0">
+
+ <url>jboss-osgi-framework.xml</url>
+
+</bootstrap>
Property changes on: projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/resources/META-INF/bootstrap.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/resources/META-INF/jboss-osgi-framework.xml
===================================================================
--- projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/resources/META-INF/jboss-osgi-framework.xml (rev 0)
+++ projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/resources/META-INF/jboss-osgi-framework.xml 2009-08-19 19:56:30 UTC (rev 92585)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ $Id$
+-->
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+ <!--
+ ********************************
+ * *
+ * Framework *
+ * *
+ ********************************
+ -->
+
+ <!-- The FrameworkBootstrap -->
+ <bean name="jboss.osgi:service=FrameworkBootstrap" class="org.jboss.osgi.jbossmc.framework.FrameworkBootstrapImpl">
+ <property name="properties">
+ <map keyClass="java.lang.String" valueClass="java.lang.String">
+ <entry><key>org.osgi.framework.storage</key><value>${log4j.output.dir}/osgi-store</value></entry>
+ <entry><key>org.osgi.framework.storage.clean</key><value>onFirstInit</value></entry>
+ </map>
+ </property>
+ <property name="autoInstall">
+ <list elementClass="java.net.URL">
+ </list>
+ </property>
+ <property name="autoStart">
+ <list elementClass="java.net.URL">
+ </list>
+ </property>
+ </bean>
+
+</deployment>
\ No newline at end of file
Property changes on: projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/main/resources/META-INF/jboss-osgi-framework.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Deleted: projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/test/resources/jboss-osgi-jbossmc.properties
===================================================================
--- projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/test/resources/jboss-osgi-jbossmc.properties 2009-08-19 19:11:16 UTC (rev 92584)
+++ projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/test/resources/jboss-osgi-jbossmc.properties 2009-08-19 19:56:30 UTC (rev 92585)
@@ -1,22 +0,0 @@
-#
-# Properties read by the org.jboss.osgi.spi.framework.PropertiesBootstrapProvider
-#
-# $Id: jboss-osgi-felix.properties 92430 2009-08-17 14:53:52Z thomas.diesler at jboss.com $
-#
-
-# Properties to configure the Framework
-org.osgi.framework.storage=${basedir}/target/osgi-store
-org.osgi.framework.storage.clean=onFirstInit
-
-# Extra System Packages
-org.osgi.framework.system.packages.extra=
-
-# Bundles that need to be installed with the Framework automatically
-org.jboss.osgi.spi.framework.autoInstall=\
- file://${test.archive.directory}/bundles/org.osgi.compendium.jar
-
-
-# Bundles that need to be started automatically
-org.jboss.osgi.spi.framework.autoStart=\
- file://${test.archive.directory}/bundles/org.apache.felix.log.jar \
- file://${test.archive.directory}/bundles/jboss-osgi-common.jar
Deleted: projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/test/resources/org.jboss.osgi.spi.framework.OSGiBootstrapProvider
===================================================================
--- projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/test/resources/org.jboss.osgi.spi.framework.OSGiBootstrapProvider 2009-08-19 19:11:16 UTC (rev 92584)
+++ projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/test/resources/org.jboss.osgi.spi.framework.OSGiBootstrapProvider 2009-08-19 19:56:30 UTC (rev 92585)
@@ -1 +0,0 @@
-org.jboss.osgi.spi.framework.PropertiesBootstrapProvider
\ No newline at end of file
Deleted: projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/test/resources/tst.policy
===================================================================
--- projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/test/resources/tst.policy 2009-08-19 19:11:16 UTC (rev 92584)
+++ projects/jboss-osgi/trunk/reactor/runtime/jbossmc/src/test/resources/tst.policy 2009-08-19 19:56:30 UTC (rev 92585)
@@ -1,4 +0,0 @@
-grant {
- permission java.security.AllPermission;
-};
-
More information about the jboss-cvs-commits
mailing list