[jboss-osgi-commits] JBoss-OSGI SVN: r97547 - in projects/jboss-osgi/trunk/distribution: installer/src/main/etc and 1 other directory.
jboss-osgi-commits at lists.jboss.org
jboss-osgi-commits at lists.jboss.org
Tue Dec 8 10:57:24 EST 2009
Author: thomas.diesler at jboss.com
Date: 2009-12-08 10:57:23 -0500 (Tue, 08 Dec 2009)
New Revision: 97547
Modified:
projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch020-getting-started.xml
projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch030-runtime.xml
projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch040-framework-integration.xml
projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch050-developer-guide.xml
projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch060-husky-testing.xml
projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch070-provided-bundles.xml
projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch080-provided-examples.xml
projects/jboss-osgi/trunk/distribution/installer/src/main/etc/ChangeLog.html
projects/jboss-osgi/trunk/distribution/installer/src/main/etc/ReleaseNotes.html
Log:
Update changelog & release notes
Modified: projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch020-getting-started.xml
===================================================================
--- projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch020-getting-started.xml 2009-12-08 15:36:36 UTC (rev 97546)
+++ projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch020-getting-started.xml 2009-12-08 15:57:23 UTC (rev 97547)
@@ -127,31 +127,31 @@
</itemizedlist>
<programlisting>
- $ bin/run.sh
- =========================================================================
-
- JBoss OSGi Bootstrap Environment
-
- OSGI_HOME: /home/hudson/jboss-osgi-1.0.0.Beta5/runtime
-
- JAVA: /usr/java/jdk1.6/bin/java
-
- JAVA_OPTS: ...
-
- =========================================================================
-
- 16:20:27,991 INFO [OSGiBundleManager] JBossOSGi - Framework - 1.0.0.Alpha2
- ...
- 16:20:29,203 INFO [FrameworkEventsPluginImpl] Bundle STARTED: Bundle{system.bundle-0.0.0}
- 16:20:29,243 INFO [OSGiBootstrapBean] JBossOSGi Runtime booted in 1.241sec
- 16:20:29,569 INFO [FrameworkEventsPluginImpl] Bundle INSTALLED: Bundle{jboss-osgi-jndi-1.0.2}
- 16:20:29,843 INFO [FrameworkEventsPluginImpl] Bundle INSTALLED: Bundle{jboss-osgi-common-core-2.2.13.GA}
- 16:20:29,866 INFO [FrameworkEventsPluginImpl] Bundle INSTALLED: Bundle{jboss-osgi-jmx-1.0.2}
- 16:20:30,512 INFO [FrameworkEventsPluginImpl] Bundle STARTED: Bundle{jboss-osgi-jndi-1.0.2}
- 16:20:30,789 INFO [FrameworkEventsPluginImpl] Bundle STARTED: Bundle{jboss-osgi-jmx-1.0.2}
- 16:20:30,806 INFO [FrameworkEventsPluginImpl] Bundle STARTED: Bundle{jboss-osgi-common-core-2.2.13.GA}
- ...
- <emphasis role="bold">16:20:30,824 INFO [DeploymentScannerImpl] JBossOSGi Runtime started in 1.64sec</emphasis>
+$ bin/run.sh
+=========================================================================
+
+ JBoss OSGi Bootstrap Environment
+
+ OSGI_HOME: /home/hudson/jboss-osgi-1.0.0.Beta5/runtime
+
+ JAVA: /usr/java/jdk1.6/bin/java
+
+ JAVA_OPTS: ...
+
+=========================================================================
+
+16:20:27,991 INFO JBossOSGi - Framework - 1.0.0.Alpha2
+...
+16:20:29,203 INFO Bundle STARTED: Bundle{system.bundle-0.0.0}
+16:20:29,243 INFO JBossOSGi Runtime booted in 1.241sec
+16:20:29,569 INFO Bundle INSTALLED: Bundle{jboss-osgi-jndi-1.0.2}
+16:20:29,843 INFO Bundle INSTALLED: Bundle{jboss-osgi-common-core-2.2.13.GA}
+16:20:29,866 INFO Bundle INSTALLED: Bundle{jboss-osgi-jmx-1.0.2}
+16:20:30,512 INFO Bundle STARTED: Bundle{jboss-osgi-jndi-1.0.2}
+16:20:30,789 INFO Bundle STARTED: Bundle{jboss-osgi-jmx-1.0.2}
+16:20:30,806 INFO Bundle STARTED: Bundle{jboss-osgi-common-core-2.2.13.GA}
+...
+<emphasis role="bold">16:20:30,824 INFO JBossOSGi Runtime started in 1.64sec</emphasis>
</programlisting>
</sect1>
@@ -186,14 +186,14 @@
JBoss OSGi Runtime <emphasis role="bold">deploy</emphasis> folder.</para>
<programlisting>
- $ cp .../test-libs/example/example-http.jar .../runtime/server/web/deploy
- ...
- 13:59:38,284 INFO [BundleRealDeployer] Installed: example-http [9]
- 13:59:38,289 INFO [example-http] BundleEvent INSTALLED
- 13:59:38,297 INFO [example-http] BundleEvent RESOLVED
- 13:59:38,304 INFO [example-http] ServiceEvent REGISTERED
- 13:59:38,306 INFO [BundleStartStopDeployer] Started: example-http [9]
- 13:59:38,306 INFO [example-http] BundleEvent STARTED
+$ cp .../test-libs/example/example-http.jar .../runtime/server/web/deploy
+...
+13:59:38,284 INFO [BundleRealDeployer] Installed: example-http [9]
+13:59:38,289 INFO [example-http] BundleEvent INSTALLED
+13:59:38,297 INFO [example-http] BundleEvent RESOLVED
+13:59:38,304 INFO [example-http] ServiceEvent REGISTERED
+13:59:38,306 INFO [BundleStartStopDeployer] Started: example-http [9]
+13:59:38,306 INFO [example-http] BundleEvent STARTED
</programlisting>
</sect1>
@@ -262,123 +262,123 @@
</itemizedlist>
<programlisting>
- $ cd build/hudson
- $ cp ant.properties.example ant.properties
- $ vi ant.properties
-
- # The JBoss settings
- jboss.server.instance=default
- jboss.bind.address=127.0.0.1
-
- # JDK settings
- java.home.jdk15=/usr/java/jdk1.5.0_22
- java.home.jdk16=/usr/java/jdk1.6.0_17
-
- # Hudson QA Environment
- hudson.username=chageme
- hudson.password=chageme
-
- hudson.maven.name=apache-maven-2.2.1
- hudson.maven.path=/usr/java/apache-maven-2.2.1
-
- hudson.root=/home/hudson/workspace/hudson/jboss-osgi
-
- hudson.maven.profile=$HUDSONDIR/profiles.xml.local.qa
-
- hudson.host=jbmuc.dyndns.org
- hudson.admin.port=8250
- hudson.http.port=8280
-
- #hudson.jboss501.zip=file:///home/hudson/Download/java/jboss/jboss-5.0.1.GA.zip
- #hudson.jboss510.zip=file:///home/hudson/download/java/jboss/jboss-5.1.0.GA.zip
-
- hudson.mail.recipients=
- hudson.mail.admin=yourname at yourdomain.com
- hudson.smtp.host=localhost
-
- # Hudson (1.290)
- apache-tomcat=5.5.20
- sun-hudson=2402/128862
+$ cd build/hudson
+$ cp ant.properties.example ant.properties
+$ vi ant.properties
+
+# The JBoss settings
+jboss.server.instance=default
+jboss.bind.address=127.0.0.1
+
+# JDK settings
+java.home.jdk15=/usr/java/jdk1.5.0_22
+java.home.jdk16=/usr/java/jdk1.6.0_17
+
+# Hudson QA Environment
+hudson.username=chageme
+hudson.password=chageme
+
+hudson.maven.name=apache-maven-2.2.1
+hudson.maven.path=/usr/java/apache-maven-2.2.1
+
+hudson.root=/home/hudson/workspace/hudson/jboss-osgi
+
+hudson.maven.profile=$HUDSONDIR/profiles.xml.local.qa
+
+hudson.host=jbmuc.dyndns.org
+hudson.admin.port=8250
+hudson.http.port=8280
+
+#hudson.jboss501.zip=file:///home/hudson/Download/java/jboss/jboss-5.0.1.GA.zip
+#hudson.jboss510.zip=file:///home/hudson/download/java/jboss/jboss-5.1.0.GA.zip
+
+hudson.mail.recipients=
+hudson.mail.admin=yourname at yourdomain.com
+hudson.smtp.host=localhost
+
+# Hudson (1.290)
+apache-tomcat=5.5.20
+sun-hudson=2402/128862
</programlisting>
<emphasis role="bold">Run Hudson Setup</emphasis>
<programlisting>
- $ ant hudson-setup
- Buildfile: build.xml
-
- init:
- [echo] V1.0.0.Beta5
-
- init-hudson:
- [echo]
- [echo] hudson.root = /home/hudson/workspace/hudson/jboss-osgi
- [echo] hudson.home = /home/hudson/workspace/hudson/jboss-osgi/hudson-home
- [echo]
-
- ...
-
- hudson-setup:
- [copy] Copying 2 files to /home/.../hudson/jboss-osgi/apache-tomcat
- ...
- [echo]
- [echo] *************************************
- [echo] * Hudson setup successfully *
- [echo] * ant hudson-start *
- [echo] *************************************
- [echo]
+$ ant hudson-setup
+Buildfile: build.xml
+
+init:
+ [echo] V1.0.0.Beta5
+
+init-hudson:
+ [echo]
+ [echo] hudson.root = /home/hudson/workspace/hudson/jboss-osgi
+ [echo] hudson.home = /home/hudson/workspace/hudson/jboss-osgi/hudson-home
+ [echo]
+
+...
+
+hudson-setup:
+ [copy] Copying 2 files to /home/.../hudson/jboss-osgi/apache-tomcat
+ ...
+ [echo]
+ [echo] *************************************
+ [echo] * Hudson setup successfully *
+ [echo] * ant hudson-start *
+ [echo] *************************************
+ [echo]
</programlisting>
<emphasis role="bold">Run Hudson Start</emphasis>
<programlisting>
- $ ant hudson-start
- Buildfile: build.xml
-
- init:
- [echo] V1.0.0.Beta5
-
- init-hudson:
- [echo]
- [echo] hudson.root = /home/hudson/workspace/hudson/jboss-osgi
- [echo] hudson.home = /home/hudson/workspace/hudson/jboss-osgi/hudson-home
- [echo]
-
- hudson-start:
- [echo]
- [echo] *************************************
- [echo] * Hudson started successfully *
- [echo] * http://localhost:8280/hudson *
- [echo] *************************************
- [echo]
-
- BUILD SUCCESSFUL
+$ ant hudson-start
+Buildfile: build.xml
+
+init:
+ [echo] V1.0.0.Beta5
+
+init-hudson:
+ [echo]
+ [echo] hudson.root = /home/hudson/workspace/hudson/jboss-osgi
+ [echo] hudson.home = /home/hudson/workspace/hudson/jboss-osgi/hudson-home
+ [echo]
+
+hudson-start:
+ [echo]
+ [echo] *************************************
+ [echo] * Hudson started successfully *
+ [echo] * http://localhost:8280/hudson *
+ [echo] *************************************
+ [echo]
+
+BUILD SUCCESSFUL
</programlisting>
<emphasis role="bold">Run Hudson Stop</emphasis>
<programlisting>
- $ ant hudson-stop
- Buildfile: build.xml
-
- init:
- [echo] V1.0.0.Beta5
-
- init-hudson:
- [echo]
- [echo] hudson.root = /home/hudson/workspace/hudson/jboss-osgi
- [echo] hudson.home = /home/hudson/workspace/hudson/jboss-osgi/hudson-home
- [echo]
-
- hudson-stop:
- [echo]
- [echo] *************************************
- [echo] * Hudson stopped successfully *
- [echo] * ant hudson-start *
- [echo] *************************************
- [echo]
-
- BUILD SUCCESSFUL
+$ ant hudson-stop
+Buildfile: build.xml
+
+init:
+ [echo] V1.0.0.Beta5
+
+init-hudson:
+ [echo]
+ [echo] hudson.root = /home/hudson/workspace/hudson/jboss-osgi
+ [echo] hudson.home = /home/hudson/workspace/hudson/jboss-osgi/hudson-home
+ [echo]
+
+hudson-stop:
+ [echo]
+ [echo] *************************************
+ [echo] * Hudson stopped successfully *
+ [echo] * ant hudson-start *
+ [echo] *************************************
+ [echo]
+
+BUILD SUCCESSFUL
</programlisting>
</sect1>
Modified: projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch030-runtime.xml
===================================================================
--- projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch030-runtime.xml 2009-12-08 15:36:36 UTC (rev 97546)
+++ projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch030-runtime.xml 2009-12-08 15:57:23 UTC (rev 97547)
@@ -14,7 +14,7 @@
<mediaobject>
<imageobject>
- <imagedata align="center" width="90%" fileref="images/jbossosgi-runtime.png"/>
+ <imagedata align="center" fileref="images/jbossosgi-runtime.png"/>
</imageobject>
</mediaobject>
@@ -138,28 +138,27 @@
<para>A runtime profile can be started using the <emphasis role="bold">-c comand line option</emphasis>.</para>
<programlisting>
- $ bin/run.sh -c minimal
- =========================================================================
-
- JBossOSGi Bootstrap Environment
-
- OSGI_HOME: /home/tdiesler/jboss-osgi-1.0.0.Beta5/runtime
-
- JAVA: /usr/java/jdk1.6/bin/java
-
- JAVA_OPTS: -Dprogram.name=run.sh ...
-
- =========================================================================
-
- 12:10:48,713 INFO [OSGiBundleManager] JBossOSGi Framework - 1.0.0.Alpha1
- 12:10:49,089 INFO [FrameworkEventsPluginImpl] Bundle INSTALLED: Bundle{osgi.cmpn:4.2.0.200908310645}
- 12:10:49,188 INFO [FrameworkEventsPluginImpl] Bundle INSTALLED: Bundle{org.apache.felix.log:1.0.0}
- 12:10:49,282 INFO [FrameworkEventsPluginImpl] Bundle INSTALLED: Bundle{jboss-osgi-common:1.0.2}
- 12:10:49,313 INFO [FrameworkEventsPluginImpl] Bundle INSTALLED: Bundle{jboss-osgi-hotdeploy:1.0.2}
- 12:10:50,042 INFO [jboss-osgi-hotdeploy] Start DeploymentScanner: [scandir=.../server/minimal/deploy,interval=2000ms]
- 12:10:50,047 INFO [FrameworkEventsPluginImpl] Bundle STARTED: Bundle{jboss-osgi-hotdeploy:1.0.2}
- 12:10:50,050 INFO [FrameworkEventsPluginImpl] Bundle STARTED: Bundle{system.bundle:0.0.0}
- <emphasis role="bold">12:10:50,076 INFO [OSGiBootstrap] JBossOSGi Runtime booted in 1.357sec</emphasis>
+$ bin/run.sh -c minimal
+=========================================================================
+
+ JBossOSGi Bootstrap Environment
+
+ OSGI_HOME: /home/tdiesler/jboss-osgi-1.0.0.Beta5/runtime
+
+ JAVA: /usr/java/jdk1.6/bin/java
+
+ JAVA_OPTS: -Dprogram.name=run.sh ...
+
+=========================================================================
+
+12:10:48,713 INFO JBossOSGi Framework - 1.0.0.Alpha1
+12:10:49,089 INFO Bundle INSTALLED: Bundle{osgi.cmpn:4.2.0.200908310645}
+12:10:49,188 INFO Bundle INSTALLED: Bundle{org.apache.felix.log:1.0.0}
+12:10:49,282 INFO Bundle INSTALLED: Bundle{jboss-osgi-common:1.0.2}
+12:10:49,313 INFO Bundle INSTALLED: Bundle{jboss-osgi-hotdeploy:1.0.2}
+12:10:50,047 INFO Bundle STARTED: Bundle{jboss-osgi-hotdeploy:1.0.2}
+12:10:50,050 INFO Bundle STARTED: Bundle{system.bundle:0.0.0}
+<emphasis role="bold">12:10:50,076 INFO JBossOSGi Runtime booted in 1.357sec</emphasis>
</programlisting>
<emphasis role="bold">Minimal Profile</emphasis>
Modified: projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch040-framework-integration.xml
===================================================================
--- projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch040-framework-integration.xml 2009-12-08 15:36:36 UTC (rev 97546)
+++ projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch040-framework-integration.xml 2009-12-08 15:57:23 UTC (rev 97547)
@@ -15,18 +15,18 @@
<para>JBossMC integration can be configured through an XML beans configuration in the <link linkend="ChapRuntime">JBoss OSGi Runtime</link>.</para>
<programlisting role="XML"><![CDATA[
- cat server/default/conf/jboss-osgi-bootstrap.xml
-
- <deployment xmlns="urn:jboss:bean-deployer:2.0">
-
- <!-- The OSGiFramework -->
- <bean name="OSGiBundleManager" class="org.jboss.osgi.framework.bundle.OSGiBundleManager">
- <property name="properties">
- ...
- </property>
- </bean>
- ...
- </deployment>
+cat server/default/conf/jboss-osgi-bootstrap.xml
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+ <!-- The OSGiFramework -->
+ <bean name="OSGiBundleManager" class="org.jboss.osgi.framework.bundle.OSGiBundleManager">
+ <property name="properties">
+ ...
+ </property>
+ </bean>
+...
+</deployment>
]]></programlisting>
<para>In the <ulink url="http://www.jboss.org/jbossas">JBossAS</ulink> integration we also use
@@ -49,49 +49,49 @@
</para>
<programlisting>
- cat conf/jboss-osgi-framework.properties
-
- # Properties to configure the Framework
- org.osgi.framework.storage=${osgi.server.home}/data/osgi-store
- org.osgi.framework.storage.clean=onFirstInit
-
- # Hot Deployement
- org.jboss.osgi.hotdeploy.scandir=${osgi.server.home}/bundles
-
- ...
-
- # Bundles that need to be installed with the Framework automatically
- org.jboss.osgi.spi.framework.autoInstall=\
- file://${osgi.home}/server/minimal/bundles/org.osgi.compendium.jar
-
- # Bundles that need to be started automatically
- org.jboss.osgi.spi.framework.autoStart=\
- file://${osgi.home}/server/minimal/bundles/org.apache.felix.log.jar \
- file://${osgi.home}/server/minimal/bundles/jboss-osgi-common.jar \
- file://${osgi.home}/server/minimal/bundles/jboss-osgi-hotdeploy.jar
+cat conf/jboss-osgi-framework.properties
+
+# Properties to configure the Framework
+org.osgi.framework.storage=${osgi.server.home}/data/osgi-store
+org.osgi.framework.storage.clean=onFirstInit
+
+# Hot Deployement
+org.jboss.osgi.hotdeploy.scandir=${osgi.server.home}/bundles
+
+...
+
+# Bundles that need to be installed with the Framework automatically
+org.jboss.osgi.spi.framework.autoInstall=\
+ file://${osgi.home}/server/minimal/bundles/org.osgi.compendium.jar
+
+# Bundles that need to be started automatically
+org.jboss.osgi.spi.framework.autoStart=\
+ file://${osgi.home}/server/minimal/bundles/org.apache.felix.log.jar \
+ file://${osgi.home}/server/minimal/bundles/jboss-osgi-common.jar \
+ file://${osgi.home}/server/minimal/bundles/jboss-osgi-hotdeploy.jar
</programlisting>
<para>In the <ulink url="http://www.jboss.org/jbossas">JBossAS</ulink> integration we use
<ulink url="http://www.jboss.org/jbossmc">JBoss Microcontainer</ulink> beans configuration.</para>
<programlisting role="XML"><![CDATA[
- cat server/default/deployers/osgi.deployer/META-INF/osgi-deployers-jboss-beans.xml
-
- <deployment xmlns="urn:jboss:bean-deployer:2.0">
-
- <!-- The OSGiFramework -->
- <bean name="jboss.osgi:service=Framework" class="org.jboss.osgi.felix.FelixIntegration">
- <property name="properties">
- ...
- </property>
- <property name="autoStart">
- <list elementClass="java.net.URL">
- ...
- </list>
- </property>
- </bean>
+cat server/default/deployers/osgi.deployer/META-INF/osgi-deployers-jboss-beans.xml
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+ <!-- The OSGiFramework -->
+ <bean name="jboss.osgi:service=Framework" class="org.jboss.osgi.felix.FelixIntegration">
+ <property name="properties">
+ ...
+ </property>
+ <property name="autoStart">
+ <list elementClass="java.net.URL">
...
- </deployment>
+ </list>
+ </property>
+ </bean>
+ ...
+</deployment>
]]></programlisting>
<para>The following is a description of the configuration properties for the Apache Felix integration.</para>
@@ -139,48 +139,48 @@
<para>Equinox integration can be configured through properties in the <link linkend="ChapRuntime">JBoss OSGi Runtime</link>.</para>
<programlisting role="XML"><![CDATA[
- cat conf/jboss-osgi-framework.properties
-
- # Properties to configure the Framework
- org.osgi.framework.storage=${osgi.server.home}/data/osgi-store
- org.osgi.framework.storage.clean=onFirstInit
-
- # Hot Deployement
- org.jboss.osgi.hotdeploy.scandir=${osgi.server.home}/bundles
-
- ...
-
- # Bundles that need to be installed with the Framework automatically
- org.jboss.osgi.spi.framework.autoInstall=\
- file://${osgi.home}/server/minimal/deploy/org.eclipse.osgi.services.jar \
- file://${osgi.home}/server/minimal/deploy/org.eclipse.osgi.util.jar
-
- # Bundles that need to be started automatically
- org.jboss.osgi.spi.framework.autoStart=\
- file://${osgi.home}/server/minimal/bundles/org.apache.felix.log.jar \
- file://${osgi.home}/server/minimal/bundles/jboss-osgi-common.jar \
- file://${osgi.home}/server/minimal/bundles/jboss-osgi-hotdeploy.jar
+cat conf/jboss-osgi-framework.properties
+
+# Properties to configure the Framework
+org.osgi.framework.storage=${osgi.server.home}/data/osgi-store
+org.osgi.framework.storage.clean=onFirstInit
+
+# Hot Deployement
+org.jboss.osgi.hotdeploy.scandir=${osgi.server.home}/bundles
+
+...
+
+# Bundles that need to be installed with the Framework automatically
+org.jboss.osgi.spi.framework.autoInstall=\
+ file://${osgi.home}/server/minimal/deploy/org.eclipse.osgi.services.jar \
+ file://${osgi.home}/server/minimal/deploy/org.eclipse.osgi.util.jar
+
+# Bundles that need to be started automatically
+org.jboss.osgi.spi.framework.autoStart=\
+ file://${osgi.home}/server/minimal/bundles/org.apache.felix.log.jar \
+ file://${osgi.home}/server/minimal/bundles/jboss-osgi-common.jar \
+ file://${osgi.home}/server/minimal/bundles/jboss-osgi-hotdeploy.jar
]]></programlisting>
<para>In the <ulink url="http://www.jboss.org/jbossas">JBossAS</ulink> integration we use
<ulink url="http://www.jboss.org/jbossmc">JBoss Microcontainer</ulink> beans configuration.</para>
<programlisting role="XML"><![CDATA[
- <deployment xmlns="urn:jboss:bean-deployer:2.0">
-
- <!-- The OSGiFramework -->
- <bean name="jboss.osgi:service=Framework" class="org.jboss.osgi.equinox.EquinoxIntegration">
- <property name="properties">
- ...
- </property>
- <property name="autoStart">
- <list elementClass="java.net.URL">
- ...
- </list>
- </property>
- </bean>
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+ <!-- The OSGiFramework -->
+ <bean name="jboss.osgi:service=Framework" class="org.jboss.osgi.equinox.EquinoxIntegration">
+ <property name="properties">
+ ...
+ </property>
+ <property name="autoStart">
+ <list elementClass="java.net.URL">
...
- </deployment>
+ </list>
+ </property>
+ </bean>
+ ...
+</deployment>
]]></programlisting>
</sect1>
Modified: projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch050-developer-guide.xml
===================================================================
--- projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch050-developer-guide.xml 2009-12-08 15:36:36 UTC (rev 97546)
+++ projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch050-developer-guide.xml 2009-12-08 15:57:23 UTC (rev 97547)
@@ -157,33 +157,33 @@
</para>
<programlisting role="JAVA">
- public class SimpleTestCase extends OSGiTest
+public class SimpleTestCase extends OSGiTest
+{
+ @Test
+ public void testSimpleBundle() throws Exception
+ {
+ // Get the default runtime
+ OSGiRuntime runtime = getDefaultRuntime();
+
+ try
{
- @Test
- public void testSimpleBundle() throws Exception
- {
- // Get the default runtime
- OSGiRuntime runtime = getDefaultRuntime();
-
- try
- {
- // Install the bundle
- OSGiBundle bundle = runtime.installBundle("example-simple.jar");
-
- // Start the bundle
- bundle.start();
- assertBundleState(Bundle.ACTIVE, bundle.getState());
-
- // Uninstall the bundle
- bundle.uninstall();
- }
- finally
- {
- // Shutdown the runtime
- runtime.shutdown();
- }
- }
+ // Install the bundle
+ OSGiBundle bundle = runtime.installBundle("example-simple.jar");
+
+ // Start the bundle
+ bundle.start();
+ assertBundleState(Bundle.ACTIVE, bundle.getState());
+
+ // Uninstall the bundle
+ bundle.uninstall();
}
+ finally
+ {
+ // Shutdown the runtime
+ runtime.shutdown();
+ }
+ }
+}
</programlisting>
<para>To run the test in embedded mode (which is the default) you would execute your test runner like this
@@ -232,30 +232,30 @@
</para>
<programlisting role="JAVA">
- public class SimpleHuskyTestCase
- {
- @ProvideContext
- public BundleContext context;
- ...
- @Test
- public void testSimpleBundle() throws Exception
- {
- // Tell Husky to run this test method within the OSGi Runtime
- if (context == null)
- BridgeFactory.getBridge().run();
-
- // Stop here if the context is not injected
- assumeNotNull(context);
-
- // Get the SimpleService reference
- ServiceReference sref = context.getServiceReference(SimpleService.class.getName());
- assertNotNull("SimpleService Not Null", sref);
-
- // Access the SimpleService
- SimpleService service = (SimpleService)context.getService(sref);
- assertEquals("hello", service.echo("hello"));
- }
- }
+public class SimpleHuskyTestCase
+{
+ @ProvideContext
+ public BundleContext context;
+ ...
+ @Test
+ public void testSimpleBundle() throws Exception
+ {
+ // Tell Husky to run this test method within the OSGi Runtime
+ if (context == null)
+ BridgeFactory.getBridge().run();
+
+ // Stop here if the context is not injected
+ assumeNotNull(context);
+
+ // Get the SimpleService reference
+ ServiceReference sref = context.getServiceReference(SimpleService.class.getName());
+ assertNotNull("SimpleService Not Null", sref);
+
+ // Access the SimpleService
+ SimpleService service = (SimpleService)context.getService(sref);
+ assertEquals("hello", service.echo("hello"));
+ }
+}
</programlisting>
<para>Running this test is also no different from <link linkend="SecWritingTestsSimpleTestCase">SimpleTestCase</link>.</para>
@@ -300,20 +300,20 @@
<mediaobject>
<imageobject>
- <imagedata align="center" width="90%" fileref="images/extender-approach.png"/>
+ <imagedata align="center" fileref="images/extender-approach.png"/>
</imageobject>
</mediaobject>
<para>Client code that installs, starts and uses the registered endpoint could look like this.</para>
<programlisting role="JAVA">
- // Install and start the Web Application bundle
- Bundle bundle = context.installBundle("mywebapp.war");
- bundle.start();
-
- // Access the Web Application
- String response = getHttpResponse("http://localhost:8090/mywebapp/foo");
- assertEquals("ok", response);
+// Install and start the Web Application bundle
+Bundle bundle = context.installBundle("mywebapp.war");
+bundle.start();
+
+// Access the Web Application
+String response = getHttpResponse("http://localhost:8090/mywebapp/foo");
+assertEquals("ok", response);
</programlisting>
<para>This seemingly trivial code snippet has a number of issues that are probably worth looking into in more detail</para>
@@ -344,7 +344,7 @@
<mediaobject>
<imageobject>
- <imagedata align="center" width="90%" fileref="images/interceptor-approach.png"/>
+ <imagedata align="center" fileref="images/interceptor-approach.png"/>
</imageobject>
</mediaobject>
@@ -366,13 +366,13 @@
<para>Client code is identical to above.</para>
<programlisting role="JAVA">
- // Install and start the Web Application bundle
- Bundle bundle = context.installBundle("mywebapp.war");
- bundle.start();
-
- // Access the Web Application
- String response = getHttpResponse("http://localhost:8090/mywebapp/foo");
- assertEquals("ok", response);
+// Install and start the Web Application bundle
+Bundle bundle = context.installBundle("mywebapp.war");
+bundle.start();
+
+// Access the Web Application
+String response = getHttpResponse("http://localhost:8090/mywebapp/foo");
+assertEquals("ok", response);
</programlisting>
<para>The behaviour of that code however, is not only different but also provides a more natural user experience.</para>
Modified: projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch060-husky-testing.xml
===================================================================
--- projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch060-husky-testing.xml 2009-12-08 15:36:36 UTC (rev 97546)
+++ projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch060-husky-testing.xml 2009-12-08 15:57:23 UTC (rev 97547)
@@ -22,7 +22,7 @@
<mediaobject>
<imageobject>
- <imagedata align="center" width="90%" fileref="images/husky-problem.png"/>
+ <imagedata align="center" fileref="images/husky-problem.png"/>
</imageobject>
</mediaobject>
@@ -156,47 +156,47 @@
<para>The interceptor would be a call to one of the Bridge.run() variants.</para>
<programlisting role="JAVA">
- public class SimpleHuskyTestCase
- {
- @ProvideContext
- public BundleContext context;
- ...
- @Test
- public void testSimpleBundle() throws Exception
- {
- // Tell Husky to run this test method within the OSGi Runtime
- if (context == null)
- BridgeFactory.getBridge().run();
-
- // Stop here if the context is not injected
- assumeNotNull(context);
-
- // Get the SimpleService reference
- ServiceReference sref = context.getServiceReference(SimpleService.class.getName());
- assertNotNull("SimpleService Not Null", sref);
-
- // Access the SimpleService
- SimpleService service = (SimpleService)context.getService(sref);
- assertEquals("hello", service.echo("hello"));
- }
- }
+public class SimpleHuskyTestCase
+{
+ @ProvideContext
+ public BundleContext context;
+ ...
+ @Test
+ public void testSimpleBundle() throws Exception
+ {
+ // Tell Husky to run this test method within the OSGi Runtime
+ if (context == null)
+ BridgeFactory.getBridge().run();
+
+ // Stop here if the context is not injected
+ assumeNotNull(context);
+
+ // Get the SimpleService reference
+ ServiceReference sref = context.getServiceReference(SimpleService.class.getName());
+ assertNotNull("SimpleService Not Null", sref);
+
+ // Access the SimpleService
+ SimpleService service = (SimpleService)context.getService(sref);
+ assertEquals("hello", service.echo("hello"));
+ }
+}
</programlisting>
<para>The bundle that contains the test case must have the <emphasis role="bold">Test-Package</emphasis> manifest header
configured. Here is the <ulink url="http://www.aqute.biz/Code/Bnd">aQute Bnd Tool</ulink> configuration for doing so.</para>
<programlisting>
- Bundle-SymbolicName: example-simple-husky
-
- Bundle-Activator: org.jboss.test.osgi.example.simple.bundle.SimpleActivator
-
- Private-Package: org.jboss.test.osgi.example.simple.bundle
-
- # Export the package that contains tthe test case
- Export-Package: org.jboss.test.osgi.example.simple
-
- # Tell Husky that there are test cases in this package
- Test-Package: org.jboss.test.osgi.example.simple
+Bundle-SymbolicName: example-simple-husky
+
+Bundle-Activator: org.jboss.test.osgi.example.simple.bundle.SimpleActivator
+
+Private-Package: org.jboss.test.osgi.example.simple.bundle
+
+# Export the package that contains tthe test case
+Export-Package: org.jboss.test.osgi.example.simple
+
+# Tell Husky that there are test cases in this package
+Test-Package: org.jboss.test.osgi.example.simple
</programlisting>
</sect1>
Modified: projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch070-provided-bundles.xml
===================================================================
--- projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch070-provided-bundles.xml 2009-12-08 15:36:36 UTC (rev 97546)
+++ projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch070-provided-bundles.xml 2009-12-08 15:57:23 UTC (rev 97547)
@@ -163,16 +163,16 @@
<para>Here is an example of how an OSGi component can access an arbitrary MC bean.</para>
<programlisting role="JAVA">
- public class SomeService
- {
- public String callSomeBean(String msg)
- {
- ServiceReference sref = context.getServiceReference(MicrocontainerService.class.getName());
- MicrocontainerService mcService = (MicrocontainerService)context.getService(sref);
- SomeBean bean = (SomeBean)mcService.getRegisteredBean("SomeBean");
- return bean.echo(msg);
- }
- }
+public class SomeService
+{
+ public String callSomeBean(String msg)
+ {
+ ServiceReference sref = context.getServiceReference(MicrocontainerService.class.getName());
+ MicrocontainerService mcService = (MicrocontainerService)context.getService(sref);
+ SomeBean bean = (SomeBean)mcService.getRegisteredBean("SomeBean");
+ return bean.echo(msg);
+ }
+}
</programlisting>
</sect1>
Modified: projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch080-provided-examples.xml
===================================================================
--- projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch080-provided-examples.xml 2009-12-08 15:36:36 UTC (rev 97546)
+++ projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch080-provided-examples.xml 2009-12-08 15:57:23 UTC (rev 97547)
@@ -17,24 +17,24 @@
a remote OSGi runtime. Here is how you build and run the against the embedded runtime.</para>
<programlisting>
- [tdiesler at tddell example]$ mvn test
-
- -------------------------------------------------------
- T E S T S
- -------------------------------------------------------
- Running org.jboss.test.osgi.example.webapp.WebAppInterceptorTestCase
- Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 14.417 sec
- ...
-
- Tests run: 25, Failures: 0, Errors: 0, Skipped: 0
-
- [INFO] ------------------------------------------------------------------------
- [INFO] BUILD SUCCESSFUL
- [INFO] ------------------------------------------------------------------------
- [INFO] Total time: 1 minute 31 seconds
- [INFO] Finished at: Tue Dec 08 11:15:08 CET 2009
- [INFO] Final Memory: 35M/139M
- [INFO] ------------------------------------------------------------------------
+[tdiesler at tddell example]$ mvn test
+
+-------------------------------------------------------
+ T E S T S
+-------------------------------------------------------
+Running org.jboss.test.osgi.example.webapp.WebAppInterceptorTestCase
+Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 14.417 sec
+...
+
+Tests run: 25, Failures: 0, Errors: 0, Skipped: 0
+
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESSFUL
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 1 minute 31 seconds
+[INFO] Finished at: Tue Dec 08 11:15:08 CET 2009
+[INFO] Final Memory: 35M/139M
+[INFO] ------------------------------------------------------------------------
</programlisting>
<para>To run the examples against a remote OSGi Runtime, you need to provide the
@@ -79,24 +79,24 @@
to send/receive events.</para>
<programlisting role="JAVA">
- public void testEventHandler() throws Exception
- {
- TestEventHandler eventHandler = new TestEventHandler();
-
- // Register the EventHandler
- Dictionary param = new Hashtable();
- param.put(EventConstants.EVENT_TOPIC, new String[] { TOPIC });
- context.registerService(EventHandler.class.getName(), eventHandler, param);
+public void testEventHandler() throws Exception
+{
+ TestEventHandler eventHandler = new TestEventHandler();
- // Send event through the the EventAdmin
- ServiceReference sref = context.getServiceReference(EventAdmin.class.getName());
- EventAdmin eventAdmin = (EventAdmin)context.getService(sref);
- eventAdmin.sendEvent(new Event(TOPIC, null));
-
- // Verify received event
- assertEquals("Event received", 1, eventHandler.received.size());
- assertEquals(TOPIC, eventHandler.received.get(0).getTopic());
- }
+ // Register the EventHandler
+ Dictionary param = new Hashtable();
+ param.put(EventConstants.EVENT_TOPIC, new String[] { TOPIC });
+ context.registerService(EventHandler.class.getName(), eventHandler, param);
+
+ // Send event through the the EventAdmin
+ ServiceReference sref = context.getServiceReference(EventAdmin.class.getName());
+ EventAdmin eventAdmin = (EventAdmin)context.getService(sref);
+ eventAdmin.sendEvent(new Event(TOPIC, null));
+
+ // Verify received event
+ assertEquals("Event received", 1, eventHandler.received.size());
+ assertEquals(TOPIC, eventHandler.received.get(0).getTopic());
+}
</programlisting>
</sect1>
@@ -110,24 +110,24 @@
<para>The example uses this simple blueprint descriptor</para>
<programlisting role="XML"><![CDATA[
- <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" ...>
-
- <bean id="beanA" class="org.jboss.test.osgi.example.blueprint.bundle.BeanA">
- <property name="mbeanServer" ref="mbeanService"/>
- </bean>
-
- <service id="serviceA" ref="beanA" interface="org.jboss.test.osgi.example.blueprint.bundle.ServiceA">
- </service>
-
- <service id="serviceB" interface="org.jboss.test.osgi.example.blueprint.bundle.ServiceB">
- <bean class="org.jboss.test.osgi.example.blueprint.bundle.BeanB">
- <property name="beanA" ref="beanA"/>
- </bean>
- </service>
-
- <reference id="mbeanService" interface="javax.management.MBeanServer"/>
-
- </blueprint>
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" ...>
+
+ <bean id="beanA" class="org.jboss.test.osgi.example.blueprint.bundle.BeanA">
+ <property name="mbeanServer" ref="mbeanService"/>
+ </bean>
+
+ <service id="serviceA" ref="beanA" interface="org.jboss.test.osgi.example.blueprint.bundle.ServiceA">
+ </service>
+
+ <service id="serviceB" interface="org.jboss.test.osgi.example.blueprint.bundle.ServiceB">
+ <bean class="org.jboss.test.osgi.example.blueprint.bundle.BeanB">
+ <property name="beanA" ref="beanA"/>
+ </bean>
+ </service>
+
+ <reference id="mbeanService" interface="javax.management.MBeanServer"/>
+
+</blueprint>
]]></programlisting>
<para>The Blueprint Container registers two services <emphasis role="bold">ServiceA</emphasis> and
@@ -139,29 +139,29 @@
<para>The example test verifies the correct wiring like this</para>
<programlisting role="JAVA">
- @Test
- public void testServiceA() throws Exception
- {
- ServiceReference sref = context.getServiceReference(ServiceA.class.getName());
- assertNotNull("ServiceA not null", sref);
-
- ServiceA service = (ServiceA)context.getService(sref);
- MBeanServer mbeanServer = service.getMbeanServer();
- assertNotNull("MBeanServer not null", mbeanServer);
- }
+ at Test
+public void testServiceA() throws Exception
+{
+ ServiceReference sref = context.getServiceReference(ServiceA.class.getName());
+ assertNotNull("ServiceA not null", sref);
+
+ ServiceA service = (ServiceA)context.getService(sref);
+ MBeanServer mbeanServer = service.getMbeanServer();
+ assertNotNull("MBeanServer not null", mbeanServer);
+}
</programlisting>
<programlisting role="JAVA">
- @Test
- public void testServiceB() throws Exception
- {
- ServiceReference sref = context.getServiceReference(ServiceB.class.getName());
- assertNotNull("ServiceB not null", sref);
-
- ServiceB service = (ServiceB)context.getService(sref);
- BeanA beanA = service.getBeanA();
- assertNotNull("BeanA not null", beanA);
- }
+ at Test
+public void testServiceB() throws Exception
+{
+ ServiceReference sref = context.getServiceReference(ServiceB.class.getName());
+ assertNotNull("ServiceB not null", sref);
+
+ ServiceB service = (ServiceB)context.getService(sref);
+ BeanA beanA = service.getBeanA();
+ assertNotNull("BeanA not null", beanA);
+}
</programlisting>
</sect1>
@@ -173,17 +173,17 @@
</para>
<programlisting role="JAVA">
- ServiceTracker tracker = new ServiceTracker(context, HttpService.class.getName(), null);
- tracker.open();
-
- HttpService httpService = (HttpService)tracker.getService();
- if (httpService == null)
- throw new IllegalStateException("HttpService not registered");
-
- Properties initParams = new Properties();
- initParams.setProperty("initProp", "SomeValue");
- httpService.registerServlet("/servlet", new EndpointServlet(context), initParams, null);
- httpService.registerResources("/file", "/res", null);
+ServiceTracker tracker = new ServiceTracker(context, HttpService.class.getName(), null);
+tracker.open();
+
+HttpService httpService = (HttpService)tracker.getService();
+if (httpService == null)
+ throw new IllegalStateException("HttpService not registered");
+
+Properties initParams = new Properties();
+initParams.setProperty("initProp", "SomeValue");
+httpService.registerServlet("/servlet", new EndpointServlet(context), initParams, null);
+httpService.registerResources("/file", "/res", null);
</programlisting>
<para>The test then verifies that the registered servlet context and the registered resource can be accessed.</para>
@@ -197,17 +197,17 @@
</para>
<programlisting role="JAVA">
- ServiceReference sref = context.getServiceReference(JAXBService.class.getName());
- if (sref == null)
- throw new IllegalStateException("JAXBService not available");
-
- JAXBService service = (JAXBService)context.getService(sref);
- JAXBContext jaxbContext = service.newJAXBContext(getClass().getPackage().getName());
- Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
-
- URL resURL = context.getBundle().getResource("booking.xml");
- JAXBElement rootElement = unmarshaller.unmarshal(resURL.openStream());
- assertNotNull("root element not null", rootElement);
+ServiceReference sref = context.getServiceReference(JAXBService.class.getName());
+if (sref == null)
+ throw new IllegalStateException("JAXBService not available");
+
+JAXBService service = (JAXBService)context.getService(sref);
+JAXBContext jaxbContext = service.newJAXBContext(getClass().getPackage().getName());
+Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
+
+URL resURL = context.getBundle().getResource("booking.xml");
+JAXBElement rootElement = unmarshaller.unmarshal(resURL.openStream());
+assertNotNull("root element not null", rootElement);
</programlisting>
</sect1>
@@ -219,48 +219,48 @@
</para>
<programlisting role="JAVA">
- public class FooServiceActivator implements BundleActivator
- {
- public void start(BundleContext context)
- {
- ServiceTracker tracker = new ServiceTracker(context, MBeanServer.class.getName(), null)
- {
- public Object addingService(ServiceReference reference)
- {
- MBeanServer mbeanServer = (MBeanServer)super.addingService(reference);
- registerMBean(mbeanServer);
- return mbeanServer;
- }
-
- @Override
- public void removedService(ServiceReference reference, Object service)
- {
- unregisterMBean((MBeanServer)service);
- super.removedService(reference, service);
- }
- };
- tracker.open();
- }
-
- public void stop(BundleContext context)
- {
- ServiceReference sref = context.getServiceReference(MBeanServer.class.getName());
- if (sref != null)
- {
- MBeanServer mbeanServer = (MBeanServer)context.getService(sref);
- unregisterMBean(mbeanServer);
- }
- }
- ...
- }
+public class FooServiceActivator implements BundleActivator
+{
+ public void start(BundleContext context)
+ {
+ ServiceTracker tracker = new ServiceTracker(context, MBeanServer.class.getName(), null)
+ {
+ public Object addingService(ServiceReference reference)
+ {
+ MBeanServer mbeanServer = (MBeanServer)super.addingService(reference);
+ registerMBean(mbeanServer);
+ return mbeanServer;
+ }
+
+ @Override
+ public void removedService(ServiceReference reference, Object service)
+ {
+ unregisterMBean((MBeanServer)service);
+ super.removedService(reference, service);
+ }
+ };
+ tracker.open();
+ }
+
+ public void stop(BundleContext context)
+ {
+ ServiceReference sref = context.getServiceReference(MBeanServer.class.getName());
+ if (sref != null)
+ {
+ MBeanServer mbeanServer = (MBeanServer)context.getService(sref);
+ unregisterMBean(mbeanServer);
+ }
+ }
+ ...
+}
</programlisting>
<programlisting role="JAVA">
- public void testMBeanAccess() throws Exception
- {
- FooMBean foo = (FooMBean)MBeanProxy.get(FooMBean.class, MBEAN_NAME, runtime.getMBeanServer());
- assertEquals("hello", foo.echo("hello"));
- }
+public void testMBeanAccess() throws Exception
+{
+ FooMBean foo = (FooMBean)MBeanProxy.get(FooMBean.class, MBEAN_NAME, runtime.getMBeanServer());
+ assertEquals("hello", foo.echo("hello"));
+}
</programlisting>
<note>
@@ -279,34 +279,34 @@
</para>
<programlisting role="JAVA">
- ServiceReference sref = context.getServiceReference(InitialContext.class.getName());
- if (sref == null)
- throw new IllegalStateException("Cannot access the InitialContext");
-
- InitialContext iniContext = (InitialContext)context.getService(sref);
- iniCtx.createSubcontext("test").bind("Foo", new String("Bar"));
+ServiceReference sref = context.getServiceReference(InitialContext.class.getName());
+if (sref == null)
+ throw new IllegalStateException("Cannot access the InitialContext");
+
+InitialContext iniContext = (InitialContext)context.getService(sref);
+iniCtx.createSubcontext("test").bind("Foo", new String("Bar"));
</programlisting>
<programlisting role="JAVA">
- public void testJNDIAccess() throws Exception
- {
- InitialContext iniCtx = runtime.getInitialContext();
- String lookup = (String)iniCtx.lookup("test/Foo");
- assertEquals("JNDI bound String expected", "Bar", lookup);
-
- // Uninstall should unbind the object
- bundle.uninstall();
-
- try
- {
- iniCtx.lookup("test/Foo");
- fail("NameNotFoundException expected");
- }
- catch (NameNotFoundException ex)
- {
- // expected
- }
- }
+public void testJNDIAccess() throws Exception
+{
+ InitialContext iniCtx = runtime.getInitialContext();
+ String lookup = (String)iniCtx.lookup("test/Foo");
+ assertEquals("JNDI bound String expected", "Bar", lookup);
+
+ // Uninstall should unbind the object
+ bundle.uninstall();
+
+ try
+ {
+ iniCtx.lookup("test/Foo");
+ fail("NameNotFoundException expected");
+ }
+ catch (NameNotFoundException ex)
+ {
+ // expected
+ }
+}
</programlisting>
<note>
@@ -328,52 +328,52 @@
</para>
<programlisting role="JAVA">
- Transactional txObj = new Transactional();
-
- ServiceReference userTxRef = context.getServiceReference(UserTransaction.class.getName());
- assertNotNull("UserTransaction service not null", userTxRef);
-
- UserTransaction userTx = (UserTransaction)context.getService(userTxRef);
- assertNotNull("UserTransaction not null", userTx);
-
- userTx.begin();
- try
- {
- ServiceReference tmRef = context.getServiceReference(TransactionManager.class.getName());
- assertNotNull("TransactionManager service not null", tmRef);
-
- TransactionManager tm = (TransactionManager)context.getService(tmRef);
- assertNotNull("TransactionManager not null", tm);
-
- Transaction tx = tm.getTransaction();
- assertNotNull("Transaction not null", tx);
-
- tx.registerSynchronization(txObj);
-
- txObj.setMessage("Donate $1.000.000");
- assertNull("Uncommited message null", txObj.getMessage());
-
- userTx.commit();
- }
- catch (Exception e)
- {
- userTx.setRollbackOnly();
- }
+Transactional txObj = new Transactional();
- assertEquals("Donate $1.000.000", txObj.getMessage());
+ServiceReference userTxRef = context.getServiceReference(UserTransaction.class.getName());
+assertNotNull("UserTransaction service not null", userTxRef);
+
+UserTransaction userTx = (UserTransaction)context.getService(userTxRef);
+assertNotNull("UserTransaction not null", userTx);
+
+userTx.begin();
+try
+{
+ ServiceReference tmRef = context.getServiceReference(TransactionManager.class.getName());
+ assertNotNull("TransactionManager service not null", tmRef);
+
+ TransactionManager tm = (TransactionManager)context.getService(tmRef);
+ assertNotNull("TransactionManager not null", tm);
+
+ Transaction tx = tm.getTransaction();
+ assertNotNull("Transaction not null", tx);
+
+ tx.registerSynchronization(txObj);
+
+ txObj.setMessage("Donate $1.000.000");
+ assertNull("Uncommited message null", txObj.getMessage());
+
+ userTx.commit();
+}
+catch (Exception e)
+{
+ userTx.setRollbackOnly();
+}
+
+assertEquals("Donate $1.000.000", txObj.getMessage());
</programlisting>
<programlisting role="JAVA">
- class Transactional implements Synchronization
- {
- public void afterCompletion(int status)
- {
- if (status == Status.STATUS_COMMITTED)
- message = volatileMessage;
- }
-
- ...
- }
+class Transactional implements Synchronization
+{
+ public void afterCompletion(int status)
+ {
+ if (status == Status.STATUS_COMMITTED)
+ message = volatileMessage;
+ }
+
+ ...
+}
</programlisting>
</sect1>
@@ -389,93 +389,93 @@
Whiteboard Pattern</ulink>.</para>
<programlisting role="JAVA">
- public class InterceptorActivator implements BundleActivator
- {
- public void start(BundleContext context)
- {
- LifecycleInterceptor publisher = new PublisherInterceptor();
- LifecycleInterceptor parser = new ParserInterceptor();
-
- // Add the interceptors, the order of which is handles by the service
- context.registerService(LifecycleInterceptor.class.getName(), publisher, null);
- context.registerService(LifecycleInterceptor.class.getName(), parser, null);
- }
- }
+public class InterceptorActivator implements BundleActivator
+{
+ public void start(BundleContext context)
+ {
+ LifecycleInterceptor publisher = new PublisherInterceptor();
+ LifecycleInterceptor parser = new ParserInterceptor();
+
+ // Add the interceptors, the order of which is handles by the service
+ context.registerService(LifecycleInterceptor.class.getName(), publisher, null);
+ context.registerService(LifecycleInterceptor.class.getName(), parser, null);
+ }
+}
</programlisting>
<programlisting role="JAVA">
- public class ParserInterceptor extends AbstractLifecycleInterceptor
- {
- ParserInterceptor()
- {
- // Add the provided output
- addOutput(HttpMetadata.class);
- }
-
- public void invoke(int state, InvocationContext context)
- {
- // Do nothing if the metadata is already available
- HttpMetadata metadata = context.getAttachment(HttpMetadata.class);
- if (metadata != null)
- return;
-
- // Parse and create metadta on STARTING
- if (state == Bundle.STARTING)
+public class ParserInterceptor extends AbstractLifecycleInterceptor
+{
+ ParserInterceptor()
+ {
+ // Add the provided output
+ addOutput(HttpMetadata.class);
+ }
+
+ public void invoke(int state, InvocationContext context)
+ {
+ // Do nothing if the metadata is already available
+ HttpMetadata metadata = context.getAttachment(HttpMetadata.class);
+ if (metadata != null)
+ return;
+
+ // Parse and create metadta on STARTING
+ if (state == Bundle.STARTING)
+ {
+ VirtualFile root = context.getRoot();
+ VirtualFile propsFile = root.getChild("/http-metadata.properties");
+ if (propsFile != null)
{
- VirtualFile root = context.getRoot();
- VirtualFile propsFile = root.getChild("/http-metadata.properties");
- if (propsFile != null)
- {
- log.info("Create and attach HttpMetadata");
- metadata = createHttpMetadata(propsFile);
- context.addAttachment(HttpMetadata.class, metadata);
- }
+ log.info("Create and attach HttpMetadata");
+ metadata = createHttpMetadata(propsFile);
+ context.addAttachment(HttpMetadata.class, metadata);
}
- }
- ...
- }
+ }
+ }
+ ...
+}
</programlisting>
<programlisting role="JAVA">
- public class PublisherInterceptor extends AbstractLifecycleInterceptor
- {
- PublisherInterceptor()
- {
- // Add the required input
- addInput(HttpMetadata.class);
- }
-
- public void invoke(int state, InvocationContext context)
- {
- // HttpMetadata is guaratied to be available because we registered
- // this type as required input
- HttpMetadata metadata = context.getAttachment(HttpMetadata.class);
-
- // Register HttpMetadata on STARTING
- if (state == Bundle.STARTING)
- {
- String servletName = metadata.getServletName();
-
- // Load the endpoint servlet from the bundle
- Bundle bundle = context.getBundle();
- Class servletClass = bundle.loadClass(servletName);
- HttpServlet servlet = (HttpServlet)servletClass.newInstance();
+public class PublisherInterceptor extends AbstractLifecycleInterceptor
+{
+ PublisherInterceptor()
+ {
+ // Add the required input
+ addInput(HttpMetadata.class);
+ }
- // Register the servlet with the HttpService
- HttpService httpService = getHttpService(context, true);
- httpService.registerServlet("/servlet", servlet, null, null);
- }
-
- // Unregister the endpoint on STOPPING
- else if (state == Bundle.STOPPING)
- {
- log.info("Unpublish HttpMetadata: " + metadata);
- HttpService httpService = getHttpService(context, false);
- if (httpService != null)
- httpService.unregister("/servlet");
- }
- }
- }
+ public void invoke(int state, InvocationContext context)
+ {
+ // HttpMetadata is guaratied to be available because we registered
+ // this type as required input
+ HttpMetadata metadata = context.getAttachment(HttpMetadata.class);
+
+ // Register HttpMetadata on STARTING
+ if (state == Bundle.STARTING)
+ {
+ String servletName = metadata.getServletName();
+
+ // Load the endpoint servlet from the bundle
+ Bundle bundle = context.getBundle();
+ Class servletClass = bundle.loadClass(servletName);
+ HttpServlet servlet = (HttpServlet)servletClass.newInstance();
+
+ // Register the servlet with the HttpService
+ HttpService httpService = getHttpService(context, true);
+ httpService.registerServlet("/servlet", servlet, null, null);
+ }
+
+ // Unregister the endpoint on STOPPING
+ else if (state == Bundle.STOPPING)
+ {
+ log.info("Unpublish HttpMetadata: " + metadata);
+ HttpService httpService = getHttpService(context, false);
+ if (httpService != null)
+ httpService.unregister("/servlet");
+ }
+ }
+}
</programlisting>
</sect1>
@@ -488,13 +488,13 @@
<para>The test accesses the registered MBean.</para>
<programlisting role="JAVA">
- @Test
- public void testServiceRoundTrip() throws Exception
- {
- SomeBeanMBean someBean = MBeanProxy.get(SomeBeanMBean.class, MBEAN_NAME, runtime.getMBeanServer());
- assertEquals("hello", someBean.echo("hello"));
- assertEquals("hello", someBean.callSomeService("hello"));
- }
+ at Test
+public void testServiceRoundTrip() throws Exception
+{
+ SomeBeanMBean someBean = MBeanProxy.get(SomeBeanMBean.class, MBEAN_NAME, runtime.getMBeanServer());
+ assertEquals("hello", someBean.echo("hello"));
+ assertEquals("hello", someBean.callSomeService("hello"));
+}
</programlisting>
</sect1>
@@ -507,52 +507,52 @@
</para>
<programlisting role="XML"><![CDATA[
- <web-app xmlns="http://java.sun.com/xml/ns/javaee" ... version="2.5">
-
- <display-name>WebApp Sample</display-name>
-
- <servlet>
- <servlet-name>servlet</servlet-name>
- <servlet-class>org.jboss.test.osgi.example.webapp.bundle.EndpointServlet</servlet-class>
- <init-param>
- <param-name>initProp</param-name>
- <param-value>SomeValue</param-value>
- </init-param>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>servlet</servlet-name>
- <url-pattern>/servlet</url-pattern>
- </servlet-mapping>
-
- </web-app>
+<web-app xmlns="http://java.sun.com/xml/ns/javaee" ... version="2.5">
+
+ <display-name>WebApp Sample</display-name>
+
+ <servlet>
+ <servlet-name>servlet</servlet-name>
+ <servlet-class>org.jboss.test.osgi.example.webapp.bundle.EndpointServlet</servlet-class>
+ <init-param>
+ <param-name>initProp</param-name>
+ <param-value>SomeValue</param-value>
+ </init-param>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>servlet</servlet-name>
+ <url-pattern>/servlet</url-pattern>
+ </servlet-mapping>
+
+</web-app>
]]></programlisting>
<para>The associated OSGi manifest looks like this.</para>
<programlisting><![CDATA[
- Manifest-Version: 1.0
- Bundle-Name: example-webapp
- Bundle-ManifestVersion: 2
- Bundle-SymbolicName: example-webapp
- Bundle-ClassPath: .,WEB-INF/classes
- Import-Package: org.osgi.service.http,org.ops4j.pax.web.service,javax.servlet,javax.servlet.http
+Manifest-Version: 1.0
+Bundle-Name: example-webapp
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: example-webapp
+Bundle-ClassPath: .,WEB-INF/classes
+Import-Package: org.osgi.service.http,org.ops4j.pax.web.service,javax.servlet,javax.servlet.http
]]></programlisting>
<para>The test verifies that we can access the servlet and some resources.</para>
<programlisting role="JAVA">
- @Test
- public void testResourceAccess() throws Exception
- {
- assertEquals("Hello from Resource", getHttpResponse("/message.txt"));
- }
-
- @Test
- public void testServletAccess() throws Exception
- {
- assertEquals("Hello from Servlet", getHttpResponse("/servlet?test=plain"));
- }
+ at Test
+public void testResourceAccess() throws Exception
+{
+ assertEquals("Hello from Resource", getHttpResponse("/message.txt"));
+}
+
+ at Test
+public void testServletAccess() throws Exception
+{
+ assertEquals("Hello from Servlet", getHttpResponse("/servlet?test=plain"));
+}
</programlisting>
</sect1>
@@ -565,33 +565,33 @@
</para>
<programlisting role="JAVA">
- ServiceReference sref = context.getServiceReference(DocumentBuilderFactory.class.getName());
- if (sref == null)
- throw new IllegalStateException("DocumentBuilderFactory not available");
-
- DocumentBuilderFactory factory = (DocumentBuilderFactory)context.getService(sref);
- factory.setValidating(false);
-
- DocumentBuilder domBuilder = factory.newDocumentBuilder();
- URL resURL = context.getBundle().getResource("example-xml-parser.xml");
- Document dom = domBuilder.parse(resURL.openStream());
- assertNotNull("Document not null", dom);
+ServiceReference sref = context.getServiceReference(DocumentBuilderFactory.class.getName());
+if (sref == null)
+ throw new IllegalStateException("DocumentBuilderFactory not available");
+
+DocumentBuilderFactory factory = (DocumentBuilderFactory)context.getService(sref);
+factory.setValidating(false);
+
+DocumentBuilder domBuilder = factory.newDocumentBuilder();
+URL resURL = context.getBundle().getResource("example-xml-parser.xml");
+Document dom = domBuilder.parse(resURL.openStream());
+assertNotNull("Document not null", dom);
</programlisting>
<programlisting role="JAVA">
- ServiceReference sref = context.getServiceReference(SAXParserFactory.class.getName());
- if (sref == null)
- throw new IllegalStateException("SAXParserFactory not available");
-
- SAXParserFactory factory = (SAXParserFactory)context.getService(sref);
- factory.setValidating(false);
-
- SAXParser saxParser = factory.newSAXParser();
- URL resURL = context.getBundle().getResource("example-xml-parser.xml");
-
- SAXHandler saxHandler = new SAXHandler();
- saxParser.parse(resURL.openStream(), saxHandler);
- assertEquals("content", saxHandler.getContent());
+ServiceReference sref = context.getServiceReference(SAXParserFactory.class.getName());
+if (sref == null)
+ throw new IllegalStateException("SAXParserFactory not available");
+
+SAXParserFactory factory = (SAXParserFactory)context.getService(sref);
+factory.setValidating(false);
+
+SAXParser saxParser = factory.newSAXParser();
+URL resURL = context.getBundle().getResource("example-xml-parser.xml");
+
+SAXHandler saxHandler = new SAXHandler();
+saxParser.parse(resURL.openStream(), saxHandler);
+assertEquals("content", saxHandler.getContent());
</programlisting>
</sect1>
@@ -603,17 +603,17 @@
unmarshalling.</para>
<programlisting role="JAVA">
- ServiceReference sref = context.getServiceReference(UnmarshallerService.class.getName());
- UnmarshallerService unmarshaller = (UnmarshallerService)context.getService(sref);
-
- Bundle bundle = context.getBundle();
- URL xsdurl = bundle.getEntry("booking.xsd");
- URL xmlurl = bundle.getEntry("booking.xml");
-
- unmarshaller.registerSchemaLocation("http://org.jboss.test.osgi.jbossxb.simple/booking.xsd", xsdurl.toExternalForm());
- unmarshaller.addClassBinding(CourseBooking.NAMESPACE_XML_SIMPLE, CourseBooking.class);
-
- CourseBooking booking = (CourseBooking)unmarshaller.unmarshal(xmlurl.toExternalForm());
+ServiceReference sref = context.getServiceReference(UnmarshallerService.class.getName());
+UnmarshallerService unmarshaller = (UnmarshallerService)context.getService(sref);
+
+Bundle bundle = context.getBundle();
+URL xsdurl = bundle.getEntry("booking.xsd");
+URL xmlurl = bundle.getEntry("booking.xml");
+
+unmarshaller.registerSchemaLocation("http://org.jboss.test.osgi.jbossxb.simple/booking.xsd", xsdurl.toExternalForm());
+unmarshaller.addClassBinding(CourseBooking.NAMESPACE_XML_SIMPLE, CourseBooking.class);
+
+CourseBooking booking = (CourseBooking)unmarshaller.unmarshal(xmlurl.toExternalForm());
</programlisting>
</sect1>
Modified: projects/jboss-osgi/trunk/distribution/installer/src/main/etc/ChangeLog.html
===================================================================
--- projects/jboss-osgi/trunk/distribution/installer/src/main/etc/ChangeLog.html 2009-12-08 15:36:36 UTC (rev 97546)
+++ projects/jboss-osgi/trunk/distribution/installer/src/main/etc/ChangeLog.html 2009-12-08 15:57:23 UTC (rev 97547)
@@ -1,6 +1,54 @@
<html>
<body>
+<h1>JBossOSGi 1.0.0 Beta5</h1>
+<h2>Bug</h2>
+<ul>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-129'>JBOSGI-129</a>] - Filter behaviour change in r4v42</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-137'>JBOSGI-137</a>] - Cannot parse Bundle-SymbolicName</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-153'>JBOSGI-153</a>] - Cannot parse Import-Package parameters</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-187'>JBOSGI-187</a>] - Husky SocketInvocation may block forever</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-199'>JBOSGI-199</a>] - Use thread safe collections where information is mutable</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-212'>JBOSGI-212</a>] - Cannot refresh Microcontainer service</li>
+</ul>
+
+<h2>Feature Request</h2>
+<ul>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-125'>JBOSGI-125</a>] - Add ManagedFramework service</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-202'>JBOSGI-202</a>] - Allow override of where the bootstrap file comes from</li>
+</ul>
+
+<h2>Task</h2>
+<ul>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-157'>JBOSGI-157</a>] - JTA (RFC-98) - Initial Implementation</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-181'>JBOSGI-181</a>] - Add EventAdmin as available service</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-182'>JBOSGI-182</a>] - Release JBoss OSGi 1.0.0.Beta5</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-183'>JBOSGI-183</a>] - Introduce notion of OSGi Interceptors</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-188'>JBOSGI-188</a>] - Separate DeployerService from SPI</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-190'>JBOSGI-190</a>] - Allign getting started guide with latest release</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-200'>JBOSGI-200</a>] - Split getParameter(s) calls into getDirective(s) and getAttribute(s)</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-215'>JBOSGI-215</a>] - Update Blueprint to 1.0.0.Alpha3</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-216'>JBOSGI-216</a>] - Update to Apache Felix-2.0.2</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-217'>JBOSGI-217</a>] - Update to Eclipse Equinox-3.5.1</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-218'>JBOSGI-218</a>] - Update to jboss-osgi-common-1.0.3</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-219'>JBOSGI-219</a>] - Update to jboss-osgi-husky-1.0.2</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-220'>JBOSGI-220</a>] - Update to jboss-osgi-jmx-1.0.2</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-221'>JBOSGI-221</a>] - Update to jboss-osgi-jndi-1.0.2</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-222'>JBOSGI-222</a>] - Update to jboss-osgi-microcontainer-2.0.9</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-223'>JBOSGI-223</a>] - Update to jboss-osgi-spi-1.0.3</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-224'>JBOSGI-224</a>] - Update to jboss-osgi-xml-binding-2.0.2.Beta3</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-225'>JBOSGI-225</a>] - Update to jboss-osgi-apache-xerces-2.9.1.SP3</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-226'>JBOSGI-226</a>] - Update to jboss-osgi-hotdeploy-1.0.3</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-227'>JBOSGI-227</a>] - Update to jboss-osgi-framework-1.0.0.Alpha2</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-228'>JBOSGI-228</a>] - Update to jboss-osgi-jaxb-2.1.10.SP3</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-229'>JBOSGI-229</a>] - Add jboss-osgi-deployment-1.0.0</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-230'>JBOSGI-230</a>] - Add jboss-osgi-jta-1.0.0</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-231'>JBOSGI-231</a>] - Add jboss-osgi-reflect-2.0.2</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-232'>JBOSGI-232</a>] - Add jboss-osgi-webapp-0.7.2</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-233'>JBOSGI-233</a>] - Update to org.apache.felix.configadmin-1.2.4</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-234'>JBOSGI-234</a>] - Add org.apache.felix.eventadmin-1.0.0</li>
+</ul>
+
<h1>JBossOSGi 1.0.0 Beta4</h1>
<h2>Bug</h2>
<ul>
@@ -55,133 +103,86 @@
<h1>JBossOSGi 1.0.0 Beta3</h1>
<h2>Bug</h2>
<ul>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-66'>JBOSGI-66</a>] - Support bundle deployment through web console
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-92'>JBOSGI-92</a>] - Class.forName issue with XMLParserActivator
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-99'>JBOSGI-99</a>] - No explicit control over bundle.start()
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-107'>JBOSGI-107</a>] - MC beans cannot be redeployed after refresh
-</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-66'>JBOSGI-66</a>] - Support bundle deployment through web console</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-92'>JBOSGI-92</a>] - Class.forName issue with XMLParserActivator</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-99'>JBOSGI-99</a>] - No explicit control over bundle.start()</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-107'>JBOSGI-107</a>] - MC beans cannot be redeployed after refresh</li>
</ul>
+
<h2>Feature Request</h2>
<ul>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-93'>JBOSGI-93</a>] - Uninstall bundles on OSGiRuntime.shutdown()
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-98'>JBOSGI-98</a>] - Support configuration per profile
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-102'>JBOSGI-102</a>] - Add support for static Husky context injection
-</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-93'>JBOSGI-93</a>] - Uninstall bundles on OSGiRuntime.shutdown()</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-98'>JBOSGI-98</a>] - Support configuration per profile</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-102'>JBOSGI-102</a>] - Add support for static Husky context injection</li>
</ul>
+
<h2>Task</h2>
<ul>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-71'>JBOSGI-71</a>] - Upgrade to IzPack 4.3.1
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-73'>JBOSGI-73</a>] - Provide Blueprint example
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-95'>JBOSGI-95</a>] - Provide JAXB example
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-97'>JBOSGI-97</a>] - Provide SAX/DOM parser example
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-101'>JBOSGI-101</a>] - Create a ziped source distribution
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-103'>JBOSGI-103</a>] - Add support for BlueprintContainer API
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-104'>JBOSGI-104</a>] - Upgrade to Felix Web Console 1.2.10
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-108'>JBOSGI-108</a>] - Investigate statics on PackageAdmin.refresh
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-109'>JBOSGI-109</a>] - Upgrade to Felix-1.8.1
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-111'>JBOSGI-111</a>] - Allign distributed sources with libs
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-112'>JBOSGI-112</a>] - Investigate Exception in SynchronousBundleListener
-</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-71'>JBOSGI-71</a>] - Upgrade to IzPack 4.3.1</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-73'>JBOSGI-73</a>] - Provide Blueprint example</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-95'>JBOSGI-95</a>] - Provide JAXB example</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-97'>JBOSGI-97</a>] - Provide SAX/DOM parser example</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-101'>JBOSGI-101</a>] - Create a ziped source distribution</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-103'>JBOSGI-103</a>] - Add support for BlueprintContainer API</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-104'>JBOSGI-104</a>] - Upgrade to Felix Web Console 1.2.10</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-108'>JBOSGI-108</a>] - Investigate statics on PackageAdmin.refresh</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-109'>JBOSGI-109</a>] - Upgrade to Felix-1.8.1</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-111'>JBOSGI-111</a>] - Allign distributed sources with libs</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-112'>JBOSGI-112</a>] - Investigate Exception in SynchronousBundleListener</li>
</ul>
-
+
<h1>JBossOSGi 1.0.0 Beta2</h1>
<h2>Feature Request</h2>
<ul>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-70'>JBOSGI-70</a>] - Expose bundle headers through JMX
-</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-70'>JBOSGI-70</a>] - Expose bundle headers through JMX</li>
</ul>
+
<h2>Task</h2>
<ul>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-79'>JBOSGI-79</a>] - Provide POM descriptions for bundles
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-84'>JBOSGI-84</a>] - Update to Felix 1.8.0
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-86'>JBOSGI-86</a>] - Document JBossOSGi Runtime
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-88'>JBOSGI-88</a>] - Document JMX Service
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-89'>JBOSGI-89</a>] - Document JNDI Service
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-90'>JBOSGI-90</a>] - Add hot-deployment to Runtime
-</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-79'>JBOSGI-79</a>] - Provide POM descriptions for bundles</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-84'>JBOSGI-84</a>] - Update to Felix 1.8.0</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-86'>JBOSGI-86</a>] - Document JBossOSGi Runtime</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-88'>JBOSGI-88</a>] - Document JMX Service</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-89'>JBOSGI-89</a>] - Document JNDI Service</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-90'>JBOSGI-90</a>] - Add hot-deployment to Runtime</li>
</ul>
<h1>JBossOSGi 1.0.0 Beta1</h1>
<h2>Bug</h2>
<ul>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-36'>JBOSGI-36</a>] - Bundle classes leak into system classloader
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-37'>JBOSGI-37</a>] - Prevent creation of deployment unit for nested jars
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-40'>JBOSGI-40</a>] - Cannot run embedded tests with SecurityManager
-</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-36'>JBOSGI-36</a>] - Bundle classes leak into system classloader</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-37'>JBOSGI-37</a>] - Prevent creation of deployment unit for nested jars</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-40'>JBOSGI-40</a>] - Cannot run embedded tests with SecurityManager</li>
</ul>
<h2>Task</h2>
<ul>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-28'>JBOSGI-28</a>] - Setup OSGi Framework TCK
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-31'>JBOSGI-31</a>] - Integration layer for Equinox
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-32'>JBOSGI-32</a>] - Integration layer for Knopflerfish
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-59'>JBOSGI-59</a>] - Provide initial Examples
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-63'>JBOSGI-63</a>] - Update to Felix HTTP Service (Jetty) 1.0.0
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-64'>JBOSGI-64</a>] - Update to Felix Log Service 1.0.0
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-65'>JBOSGI-65</a>] - Update to Felix 1.6.0
-</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-28'>JBOSGI-28</a>] - Setup OSGi Framework TCK</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-31'>JBOSGI-31</a>] - Integration layer for Equinox</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-32'>JBOSGI-32</a>] - Integration layer for Knopflerfish</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-59'>JBOSGI-59</a>] - Provide initial Examples</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-63'>JBOSGI-63</a>] - Update to Felix HTTP Service (Jetty) 1.0.0</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-64'>JBOSGI-64</a>] - Update to Felix Log Service 1.0.0</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-65'>JBOSGI-65</a>] - Update to Felix 1.6.0</li>
</ul>
<h1>JBossOSGi 1.0.0 Alpha3</h1>
<h2>Task</h2>
<ul>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-29'>JBOSGI-29</a>] - Provide Initial Framework SPI
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-30'>JBOSGI-30</a>] - Integration layer for Apache Felix
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-35'>JBOSGI-35</a>] - Setup JBoss OSGi download area
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-38'>JBOSGI-38</a>] - Investigate bundle install/start behaviour with random deployment order
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-41'>JBOSGI-41</a>] - Verify persistent file storage
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-42'>JBOSGI-42</a>] - Provide IzPack based Installer
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-43'>JBOSGI-43</a>] - Hudson QA as integral part of each project release
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-44'>JBOSGI-44</a>] - Provide bundle hot-deployment on jboss
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-45'>JBOSGI-45</a>] - Provide minimal JBossOSGi Runtime
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-46'>JBOSGI-46</a>] - Integrate 3rd party HttpService
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-47'>JBOSGI-47</a>] - Delegate 3rd party framework logging to jboss logging
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-48'>JBOSGI-48</a>] - Integrate 3rd party LoggingService
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-49'>JBOSGI-49</a>] - Integrate 3rd party Management Console
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-50'>JBOSGI-50</a>] - Provide a docbook guides
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-51'>JBOSGI-51</a>] - Provide a management view (JMX) on framework and bundles
-</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-29'>JBOSGI-29</a>] - Provide Initial Framework SPI</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-30'>JBOSGI-30</a>] - Integration layer for Apache Felix</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-35'>JBOSGI-35</a>] - Setup JBoss OSGi download area</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-38'>JBOSGI-38</a>] - Investigate bundle install/start behaviour with random deployment order</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-41'>JBOSGI-41</a>] - Verify persistent file storage</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-42'>JBOSGI-42</a>] - Provide IzPack based Installer</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-43'>JBOSGI-43</a>] - Hudson QA as integral part of each project release</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-44'>JBOSGI-44</a>] - Provide bundle hot-deployment on jboss</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-45'>JBOSGI-45</a>] - Provide minimal JBossOSGi Runtime</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-46'>JBOSGI-46</a>] - Integrate 3rd party HttpService</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-47'>JBOSGI-47</a>] - Delegate 3rd party framework logging to jboss logging</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-48'>JBOSGI-48</a>] - Integrate 3rd party LoggingService</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-49'>JBOSGI-49</a>] - Integrate 3rd party Management Console</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-50'>JBOSGI-50</a>] - Provide a docbook guides</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-51'>JBOSGI-51</a>] - Provide a management view (JMX) on framework and bundles</li>
</ul>
</body>
Modified: projects/jboss-osgi/trunk/distribution/installer/src/main/etc/ReleaseNotes.html
===================================================================
--- projects/jboss-osgi/trunk/distribution/installer/src/main/etc/ReleaseNotes.html 2009-12-08 15:36:36 UTC (rev 97546)
+++ projects/jboss-osgi/trunk/distribution/installer/src/main/etc/ReleaseNotes.html 2009-12-08 15:57:23 UTC (rev 97547)
@@ -1,76 +1,77 @@
<body>
-<h2>Release Notes - JBossOSGi-1.0.0.Beta4</h2>
+<h2>Release Notes - JBossOSGi-1.0.0.Beta5</h2>
-<p>I am happy to announce the release of JBossOSGi-1.0.0.Beta4.</p>
+<p>I am happy to announce the release of JBossOSGi-1.0.0.Beta5.</p>
<p/>
-<p>You can download the binary here: <a href="http://sourceforge.net/projects/jboss/files/JBossOSGi/1.0.0.Beta4/jboss-osgi-installer-1.0.0.Beta4.jar/download">jboss-osgi-installer-1.0.0.Beta4.jar</a></p>
+<p>You can download the binary here: <a href="http://sourceforge.net/projects/jboss/files/JBossOSGi/1.0.0.Beta5/jboss-osgi-installer-1.0.0.Beta5.jar/download">jboss-osgi-installer-1.0.0.Beta5.jar</a></p>
<p/>
<p>The release comes with improvements in the following areas</p>
<p/>
<ul>
-<li>Initial release of our native <a href="http://jbmuc.dyndns.org/jboss-osgi-1.0.0.Beta4/userguide/html/ChapFrameworkIntegration.html#SecIntegrationJBossMC">JBossMC based OSGi Framework</a>.</li>
-<li>Added support for OSGi WebApps using <a href="http://jbmuc.dyndns.org/jboss-osgi-1.0.0.Beta4/userguide/html/ChapProvidedBundles.html#SecWebAppExtender">WebApp Extender</a></li>
-<li>Improved support for the <a href="http://jbmuc.dyndns.org/jboss-osgi-1.0.0.Beta4/userguide/html/ChapProvidedBundles.html#SecHttpService">HttpService</a>.</li>
+<li>Improved JBoss Microcontainer based <a href="http://jbmuc.dyndns.org/jboss-osgi-1.0.0.Beta5/userguide/html/ChapFrameworkIntegration.html#SecIntegrationJBossMC">Framework</a> support.</li>
+<li>Improved Eclipse <a href="http://jbmuc.dyndns.org/jboss-osgi-1.0.0.Beta5/userguide/html/ChapFrameworkIntegration.html#SecIntegrationEquinox">Equinox Integration</a> support.</li>
+<li>Added Enterprise OSGi <a href="http://jbmuc.dyndns.org/jboss-osgi-1.0.0.Beta5/userguide/html/ChapProvidedBundles.html#SecBundleJTA">Transaction</a> support.</li>
+<li>Added Compendium <a href="http://jbmuc.dyndns.org/jboss-osgi-1.0.0.Beta5/userguide/html/ChapProvidedExamples.html#SecEventAdminExample">Event Admin</a> support.</li>
+<li>Added JBossXB based <a href="http://jbmuc.dyndns.org/jboss-osgi-1.0.0.Beta5/userguide/html/ChapProvidedBundles.html#SecBundleXMLBinding">XML Binding</a> support.</li>
+<li>Added <a href="http://jbmuc.dyndns.org/jboss-osgi-1.0.0.Beta5/userguide/html/ChapDeveloperGuide.html#SecLifecycleInterceptors">Lifecycle Interceptor</a> support.</li>
</ul>
<p/>
-<p>For details please have a look at the latest version of our <a href="http://jbmuc.dyndns.org/jboss-osgi-1.0.0.Beta4/userguide/html/"><span class="jive-link-external-small">User Guide</span></a>.</p>
+<p>For details please have a look at the latest version of our <a href="http://jbmuc.dyndns.org/jboss-osgi-1.0.0.Beta5/userguide/html/">User Guide</a>.</p>
<p/>
<p>Here are the change log details</p>
<p/>
-<h4>Feature Request</h4>
+<h2>Bug</h2>
<ul>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-110'>JBOSGI-110</a>] - Support WAR deployments in the OSGi runtime</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-127'>JBOSGI-127</a>] - Provide build and hudson support for MC facade</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-128'>JBOSGI-128</a>] - Add Framework launch API</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-129'>JBOSGI-129</a>] - Filter behaviour change in r4v42</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-137'>JBOSGI-137</a>] - Cannot parse Bundle-SymbolicName</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-153'>JBOSGI-153</a>] - Cannot parse Import-Package parameters</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-187'>JBOSGI-187</a>] - Husky SocketInvocation may block forever</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-199'>JBOSGI-199</a>] - Use thread safe collections where information is mutable</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-212'>JBOSGI-212</a>] - Cannot refresh Microcontainer service</li>
</ul>
-
-<h4>Task</h4>
+
+<h2>Feature Request</h2>
<ul>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-80'>JBOSGI-80</a>] - Add support for Framework Launching (RFC-132)</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-132'>JBOSGI-132</a>] - Release JBoss MC Framework 1.0.0.Alpha1</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-134'>JBOSGI-134</a>] - Add support for BundleContext.getDataFile()</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-142'>JBOSGI-142</a>] - Investigate classloading space</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-148'>JBOSGI-148</a>] - Autostart bundles when deployed in JBossAS</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-156'>JBOSGI-156</a>] - Setup r4v42 core TCK</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-159'>JBOSGI-159</a>] - Fire events asynchronously</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-160'>JBOSGI-160</a>] - Use Pax Web instead of Apache Http-Service</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-164'>JBOSGI-164</a>] - Update Blueprint to 1.0.0.Alpha2</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-165'>JBOSGI-165</a>] - Update to jboss-osgi-common-1.0.2</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-166'>JBOSGI-166</a>] - Update to jboss-osgi-common-core-2.2.13.GA</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-167'>JBOSGI-167</a>] - Update to jboss-osgi-husky-1.0.1</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-168'>JBOSGI-168</a>] - Update to jboss-osgi-jmx-1.0.1</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-169'>JBOSGI-169</a>] - Update to jboss-osgi-jndi-1.0.1</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-170'>JBOSGI-170</a>] - Update to jboss-osgi-microcontainer-1.0.2</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-171'>JBOSGI-171</a>] - Update to Eclipse Equinox-3.5</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-172'>JBOSGI-172</a>] - Update to Apache Felix-2.0.0</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-173'>JBOSGI-173</a>] - Update to jboss-osgi-spi-1.0.2</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-174'>JBOSGI-174</a>] - Update to jboss-osgi-webconsole-1.0.1</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-175'>JBOSGI-175</a>] - Update to osgi core/compendium R4v42</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-176'>JBOSGI-176</a>] - Release JBoss OSGi 1.0.0.Beta4</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-133'>JBOSGI-133</a>] - Pass all example tests with MC Framework</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-125'>JBOSGI-125</a>] - Add ManagedFramework service</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-202'>JBOSGI-202</a>] - Allow override of where the bootstrap file comes from</li>
</ul>
-
-<h4>Bug</h4>
+
+<h2>Task</h2>
<ul>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-78'>JBOSGI-78</a>] - ResourceNotFoundException too verbose</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-130'>JBOSGI-130</a>] - Bundle is still in state INSTALLED after bundle.start()</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-135'>JBOSGI-135</a>] - Cannot handle package being imported and exported by the same bundle</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-136'>JBOSGI-136</a>] - Cannot resolve dependency against unstarted bundle</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-140'>JBOSGI-140</a>] - Invalid delivery of framework events</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-144'>JBOSGI-144</a>] - Framework does not handle ServiceFactory provided services properly</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-151'>JBOSGI-151</a>] - Cannot resolve circular dependencies</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-155'>JBOSGI-155</a>] - OutOfMemoryError on repeated install/unstall bundle</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-158'>JBOSGI-158</a>] - Framework itself must be a bundle</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-161'>JBOSGI-161</a>] - Cannot use commons-logging</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-162'>JBOSGI-162</a>] - Cannot load classes from Bundle-ClassPath</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-163'>JBOSGI-163</a>] - Husky invocation before async extender processing</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-157'>JBOSGI-157</a>] - JTA (RFC-98) - Initial Implementation</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-181'>JBOSGI-181</a>] - Add EventAdmin as available service</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-182'>JBOSGI-182</a>] - Release JBoss OSGi 1.0.0.Beta5</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-183'>JBOSGI-183</a>] - Introduce notion of OSGi Interceptors</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-188'>JBOSGI-188</a>] - Separate DeployerService from SPI</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-190'>JBOSGI-190</a>] - Allign getting started guide with latest release</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-200'>JBOSGI-200</a>] - Split getParameter(s) calls into getDirective(s) and getAttribute(s)</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-215'>JBOSGI-215</a>] - Update Blueprint to 1.0.0.Alpha3</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-216'>JBOSGI-216</a>] - Update to Apache Felix-2.0.2</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-217'>JBOSGI-217</a>] - Update to Eclipse Equinox-3.5.1</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-218'>JBOSGI-218</a>] - Update to jboss-osgi-common-1.0.3</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-219'>JBOSGI-219</a>] - Update to jboss-osgi-husky-1.0.2</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-220'>JBOSGI-220</a>] - Update to jboss-osgi-jmx-1.0.2</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-221'>JBOSGI-221</a>] - Update to jboss-osgi-jndi-1.0.2</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-222'>JBOSGI-222</a>] - Update to jboss-osgi-microcontainer-2.0.9</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-223'>JBOSGI-223</a>] - Update to jboss-osgi-spi-1.0.3</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-224'>JBOSGI-224</a>] - Update to jboss-osgi-xml-binding-2.0.2.Beta3</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-225'>JBOSGI-225</a>] - Update to jboss-osgi-apache-xerces-2.9.1.SP3</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-226'>JBOSGI-226</a>] - Update to jboss-osgi-hotdeploy-1.0.3</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-227'>JBOSGI-227</a>] - Update to jboss-osgi-framework-1.0.0.Alpha2</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-228'>JBOSGI-228</a>] - Update to jboss-osgi-jaxb-2.1.10.SP3</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-229'>JBOSGI-229</a>] - Add jboss-osgi-deployment-1.0.0</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-230'>JBOSGI-230</a>] - Add jboss-osgi-jta-1.0.0</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-231'>JBOSGI-231</a>] - Add jboss-osgi-reflect-2.0.2</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-232'>JBOSGI-232</a>] - Add jboss-osgi-webapp-0.7.2</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-233'>JBOSGI-233</a>] - Update to org.apache.felix.configadmin-1.2.4</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBOSGI-234'>JBOSGI-234</a>] - Add org.apache.felix.eventadmin-1.0.0</li>
</ul>
<p/>
More information about the jboss-osgi-commits
mailing list