Author: thomas.diesler(a)jboss.com
Date: 2009-10-13 07:22:08 -0400 (Tue, 13 Oct 2009)
New Revision: 94764
Modified:
projects/jboss-osgi/trunk/distribution/docbook/en/images/jbossas-integration-future.png
projects/jboss-osgi/trunk/distribution/docbook/en/images/jbossas-integration.png
projects/jboss-osgi/trunk/distribution/docbook/en/images/jbossosgi-runtime.png
projects/jboss-osgi/trunk/distribution/docbook/en/images/webconsole.png
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/ch070-provided-bundles.xml
projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch080-provided-examples.xml
projects/jboss-osgi/trunk/distribution/docbook/src/main/graphics/jbossosgi-runtime.odp
projects/jboss-osgi/trunk/distribution/installer/src/main/resources/installer/install-definition.xml
Log:
More work on userguide
Modified:
projects/jboss-osgi/trunk/distribution/docbook/en/images/jbossas-integration-future.png
===================================================================
(Binary files differ)
Modified:
projects/jboss-osgi/trunk/distribution/docbook/en/images/jbossas-integration.png
===================================================================
(Binary files differ)
Modified: projects/jboss-osgi/trunk/distribution/docbook/en/images/jbossosgi-runtime.png
===================================================================
(Binary files differ)
Modified: projects/jboss-osgi/trunk/distribution/docbook/en/images/webconsole.png
===================================================================
(Binary files differ)
Modified: projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch030-runtime.xml
===================================================================
--- projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch030-runtime.xml 2009-10-13
09:46:29 UTC (rev 94763)
+++ projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch030-runtime.xml 2009-10-13
11:22:08 UTC (rev 94764)
@@ -24,7 +24,7 @@
<para>The JBoss OSGi Runtime has an integration layer for the underlying OSGi
frameworks. It comes with a choice of
<link linkend="SecIntegrationFelix">Apache Felix</link>,
<link linkend="SecIntegrationEquinox">Eclipse Equinox</link> or
- <link linkend="SecIntegrationKnopflerfish">MakeWave
Knopflerfish</link>.</para>
+ <link linkend="SecIntegrationJBossMC">JBoss
Microcontainer</link>.</para>
<para>Through local and remote management capabilities the JBoss OSGi Runtime
can be provisioned with new or updated bundles.
Similar to <ulink
url="http://http://jboss.org/jbossas">JBossAS</ulink> it supports
hot-deployment by dropping bundles
@@ -32,7 +32,7 @@
<para>Integration of the <ulink
url="http://www.jboss.org/jbossmc">JBoss Microcontainer</ulink> as an
OSGi service allows you
to write your applications in a POJO programming model without much
"pollution" of OSGi specific API - the MC will do the
- wiring for you. JBoss OSGi now also comes with an early alpha implementation of
+ wiring for you. JBoss OSGi also comes with an implementation of
<ulink
url="http://jbossosgi.blogspot.com/2009/04/osgi-blueprint-service-rf...
Service (RFC-124)</ulink>,
which standardizes this idea and takes it further.</para>
@@ -68,7 +68,7 @@
<listitem><emphasis role="bold">Multiple OSGi
Frameworks</emphasis> -
The Installer can setup the JBoss OSGi Runtime using <link
linkend="SecIntegrationFelix">Felix</link>,
- <link linkend="SecIntegrationEquinox">Equinox</link> or
<link linkend="SecIntegrationKnopflerfish">Knopflerfish</link>.
+ <link linkend="SecIntegrationEquinox">Equinox</link> or
<link linkend="SecIntegrationJBossMC">JBossMC</link>.
</listitem>
<listitem><emphasis role="bold">Local and Remote JMX
Support</emphasis> -
@@ -89,8 +89,8 @@
There is a bundle that provides JAXB support.
</listitem>
- <listitem><emphasis role="bold">HttpService
Support</emphasis> -
- HttpService support is provided by a customized version of the <ulink
url="http://felix.apache.org/site/apache-felix-web-console.html"... Felix
Web Console</ulink>.
+ <listitem><emphasis role="bold">HttpService and WebApp
Support</emphasis> -
+ HttpService and WebApp support is provided by <ulink
url="http://wiki.ops4j.org/display/paxweb/Pax+Web">Pax Web</ulink>.
</listitem>
<listitem><emphasis role="bold">ConfigAdmin
Support</emphasis> -
@@ -102,8 +102,7 @@
</listitem>
<listitem><emphasis role="bold">Logging
System</emphasis> -
- The logging bridge writes OSGi LogEntries to the configured logging framework (e.g.
Log4J). A local OSGi Runtime can receive LogEntries
- from a remote instance.
+ The logging bridge writes OSGi LogEntries to the configured logging framework (e.g.
Log4J).
</listitem>
<listitem><emphasis role="bold">Microcontainer
Support</emphasis> -
@@ -144,16 +143,15 @@
=========================================================================
- 10:33:13,758 INFO [FelixIntegration] OSGi Integration Felix - 1.0.0.Beta4
- 10:33:14,185 INFO [FelixIntegration] Installed bundle [1]: org.osgi.compendium
- 10:33:14,194 INFO [FelixIntegration] Installed bundle [2]: org.apache.felix.log
- 10:33:14,203 INFO [FelixIntegration] Installed bundle [3]: jboss-osgi-common
- 10:33:14,212 INFO [FelixIntegration] Installed bundle [4]: jboss-osgi-hotdeploy
- 10:33:14,247 INFO [FelixIntegration] Started bundle: org.apache.felix.log
- 10:33:14,315 INFO [FelixIntegration] Started bundle: jboss-osgi-common
- 10:33:14,357 INFO [jboss-osgi-hotdeploy] Start DeploymentScanner:
[scandir=.../server/minimal/deploy,interval=2000ms]
- 10:33:14,401 INFO [FelixIntegration] Started bundle: jboss-osgi-hotdeploy
- <emphasis role="bold">10:33:14,403 INFO [OSGiBootstrap] JBossOSGi
Runtime booted in 0.644sec</emphasis>
+ 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>
</programlisting>
<emphasis role="bold">Minimal Profile</emphasis>
@@ -189,7 +187,8 @@
<itemizedlist>
<listitem><emphasis
role="bold">org.apache.felix.configadmin.jar</emphasis> - Apache
ConfigAdmin service</listitem>
- <listitem><emphasis
role="bold">org.apache.felix.http.jetty.jar</emphasis> - Apache
HttpService</listitem>
+ <listitem><emphasis
role="bold">pax-web-jetty-bundle.jar</emphasis> - Pax Web
HttpService</listitem>
+ <listitem><emphasis
role="bold">pax-web-extender-war.jar</emphasis> - Pax Web WebApp
Extender</listitem>
<listitem><emphasis
role="bold">jboss-osgi-webconsole.jar</emphasis> - JBoss OSGi Web
Console</listitem>
</itemizedlist>
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-10-13
09:46:29 UTC (rev 94763)
+++
projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch040-framework-integration.xml 2009-10-13
11:22:08 UTC (rev 94764)
@@ -5,6 +5,35 @@
<title>Framework Integration</title>
+ <sect1 xml:id="SecIntegrationJBossMC">
+ <title>JBossMC Framework Integration</title>
+
+ <para>Starting from 1.0.0.Beta4 JBoss OSGi provides integration for our native
<ulink
url="http://www.jboss.org/jbossmc/">Microcontainer
based</ulink>
+ OSGi Framework. When deployed in JBossAS this Framework will eventually allow us to
integrate with components from other programming models.
+ (i.e. OSGi services can access MC beans, EJB3 can access OSGi services,
etc.)</para>
+
+ <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>
+ ]]></programlisting>
+
+ <para>In the <ulink
url="http://www.jboss.org/jbossas">JBossAS</ulink> integration we also
use
+ <ulink
url="http://www.jboss.org/jbossmc">JBoss
Microcontainer</ulink> beans configuration.</para>
+
+ </sect1>
+
<sect1 xml:id="SecIntegrationFelix">
<title>Apache Felix Integration</title>
@@ -13,7 +42,6 @@
<itemizedlist>
<listitem><ulink
url="http://felix.apache.org/site/apache-felix-log-service.html"...
Service</ulink> - General purpose message logger</listitem>
- <listitem><ulink
url="http://felix.apache.org/site/apache-felix-http-service.html&quo...
Service</ulink> - Http access to servlets and resources</listitem>
<listitem><ulink
url="http://felix.apache.org/site/apache-felix-configuration-admin-s...
Admin Service</ulink> - Management of configuration data for configurable
components</listitem>
</itemizedlist>
@@ -23,9 +51,6 @@
<programlisting>
cat conf/jboss-osgi-framework.properties
- # The OSGiFramework implementation
- org.jboss.osgi.spi.framework.impl=org.jboss.osgi.felix.framework.FelixIntegration
-
# Properties to configure the Framework
org.osgi.framework.storage=${osgi.server.home}/data/osgi-store
org.osgi.framework.storage.clean=onFirstInit
@@ -55,7 +80,7 @@
<deployment xmlns="urn:jboss:bean-deployer:2.0">
<!-- The OSGiFramework -->
- <bean name="jboss.osgi:service=Framework"
class="org.jboss.osgi.felix.framework.FelixIntegration">
+ <bean name="jboss.osgi:service=Framework"
class="org.jboss.osgi.felix.FelixIntegration">
<property name="properties">
...
</property>
@@ -116,9 +141,6 @@
<programlisting role="XML"><![CDATA[
cat conf/jboss-osgi-framework.properties
- # The OSGiFramework implementation
-
org.jboss.osgi.spi.framework.impl=org.jboss.osgi.equinox.framework.EquinoxIntegration
-
# Properties to configure the Framework
org.osgi.framework.storage=${osgi.server.home}/data/osgi-store
org.osgi.framework.storage.clean=onFirstInit
@@ -146,7 +168,7 @@
<deployment xmlns="urn:jboss:bean-deployer:2.0">
<!-- The OSGiFramework -->
- <bean name="jboss.osgi:service=Framework"
class="org.jboss.osgi.equinox.framework.EquinoxIntegration">
+ <bean name="jboss.osgi:service=Framework"
class="org.jboss.osgi.equinox.EquinoxIntegration">
<property name="properties">
...
</property>
@@ -162,60 +184,4 @@
</sect1>
- <sect1 xml:id="SecIntegrationKnopflerfish">
- <title>Knopflerfish Integration</title>
-
- <para>JBoss OSGi provides basic integration for the <ulink
url="http://www.knopflerfish.org">Makewave Knopflerfish</ulink> OSGi
Framework.</para>
-
- <para>Knopflerfish 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
-
- # The OSGiFramework implementation
-
org.jboss.osgi.spi.framework.impl=org.jboss.osgi.knopflerfish.framework.KnopflerfishIntegration
-
- # 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[
- <deployment xmlns="urn:jboss:bean-deployer:2.0">
-
- <!-- The OSGiFramework -->
- <bean name="jboss.osgi:service=Framework"
class="org.jboss.osgi.knopflerfish.KnopflerfishIntegration">
- <property name="properties">
- ...
- </property>
- <property name="autoStart">
- <list elementClass="java.net.URL">
- ...
- </list>
- </property>
- </bean>
- ...
- </deployment>
- ]]></programlisting>
-
- </sect1>
-
</chapter>
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-10-13
09:46:29 UTC (rev 94763)
+++
projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch050-developer-guide.xml 2009-10-13
11:22:08 UTC (rev 94764)
@@ -87,93 +87,6 @@
</tip>
</sect1>
- <sect1 xml:id="SecDeployers">
- <title>Bundle Deployers</title>
-
- <para>JBoss OSGi comes with a number of <ulink
url="http://www.jboss.org/jbossmc">JBoss Microcontainer</ulink> based
deployers. Each deployer
- takes care of a specific aspect of bundle deployment.</para>
-
- <itemizedlist>
- <listitem><emphasis
role="bold">BundleClassLoaderDeployer</emphasis> - Creates a
BundleClassLoader for the deployed Bundle</listitem>
- <listitem><emphasis
role="bold">BundleContainedBeansDeployer</emphasis> - Deploy the bundle
contained MC beans onto the Kernel</listitem>
- <listitem><emphasis
role="bold">BundleManagementDeployer</emphasis> - Register the Bundle
as MBean with JMX</listitem>
- <listitem><emphasis
role="bold">BundleMetaDataDeployer</emphasis> - Create BundleMetaData
from Manifest Headers</listitem>
- <listitem><emphasis
role="bold">BundleRealDeployer</emphasis> - Installs the Bundle into
the Framework's SystemContext</listitem>
- <listitem><emphasis
role="bold">BundleStartLevelDeployer</emphasis> - Sets the bundle's
start level on the StartLevel service</listitem>
- <listitem><emphasis
role="bold">BundleStartStopDeployer</emphasis> - Starts the Bundle when
dependencies are resolved</listitem>
- <listitem><emphasis
role="bold">BundleStructureDeployer</emphasis> - Determine the
structure of a Bundle deployment</listitem>
- </itemizedlist>
-
- <emphasis role="bold">BundleClassLoaderDeployer</emphasis>
-
- <para>The BundleClassLoaderDeployer attaches a ClassLoaderFactory that creates
a BundleClassLoader for the deployed Bundle.
- A BundleClassLoader delegates all classloading concerns to the underlying
Bundle.</para>
-
- <emphasis role="bold">BundleContainedBeansDeployer</emphasis>
-
- <para>The BundleContainedBeansDeployer is a ComponentDeployer that deployes the
MC bean components onto
- the Kernel.</para>
-
- <emphasis role="bold">BundleManagementDeployer</emphasis>
-
- <para>The BundleManagementDeployer registers the Bundle as <ulink
url="http://java.sun.com/j2se/1.5.0/docs/api/javax/management/Standa...
with JMX.
- Please see the section on <link linkend="SecJMXView">Management
View</link> for details.</para>
-
- <emphasis role="bold">BundleMetaDataDeployer</emphasis>
-
- <para>The BundleMetaDataDeployer creates the BundleMetaData from Manifest
Headers. If the manifest does not contain
- a header named <emphasis
role="bold">Bundle-SymbolicName</emphasis> this deployer does nothing.
</para>
-
- <emphasis role="bold">BundleRealDeployer</emphasis>
-
- <para>The BundleRealDeployer installs the Bundle into the Framework's
SystemContext. Optionally you can configure a list of
- bundle locations that should be skipped and hence not installed. Typically, these
bundles are already installed during
- Framework startup.</para>
-
- <para>On undeploy the Bundle gets uninstalled from the Framework's
SystemContext.</para>
-
- <emphasis role="bold">BundleStartLevelDeployer</emphasis>
-
- <para>Sets the bundle's start level on the StartLevel service. A start
level can be given when
- the bundle is deployed through the WebConsole. Currently, neither hot deployment nor
SPI test
- framework deployments support start levels.</para>
-
- <emphasis role="bold">BundleStartStopDeployer</emphasis>
-
- <para>The BundleStartStopDeployer currently works in two modes:</para>
-
- <itemizedlist>
- <listitem>deferredStart (default)</listitem>
- <listitem>simpleStart</listitem>
- </itemizedlist>
-
- <para>In mode <emphasis
role="bold">deferredStart</emphasis> the Bundle is added to a list of
unresolved Bundles, which then get passed
- on to <ulink
url="http://www.osgi.org/javadoc/r4v41/org/osgi/service/packageadmin...;.
- The deployer then iterates over the unresolved Bundles and only starts those Bundles
that are in state
- <ulink
url="http://www.osgi.org/javadoc/r4v41/org/osgi/framework/Bundle.htm...;.
- In this mode Bundles can be deployed in any order and only get started when all their
respective dependencies can be resolved.</para>
-
- <para>In mode <emphasis
role="bold">simpleStart</emphasis> the deployer attempts to start the
Bundle regardless of whether its
- dependencies can get resolved. In case the Bundle has a dependency oin a package that
is not yet available, deployment will fail.
- In this mode Bundles must be deployed in the order required to start
them.</para>
-
- <para>The start mode is a configurable property on the Framework's
SystemContext.</para>
-
- <programlisting role="XML"><![CDATA[
- <!--
- If set to 'true' bundles can be deployed in any order. Deployed bundle will
get started when their dependencies can be resolved.
- If set to 'false' bundles must be deployed in the order that is required to
start them.
- -->
-
<entry><key>org.jboss.osgi.deferred.start</key><value>true</value></entry>
- ]]></programlisting>
-
- <emphasis role="bold">BundleStructureDeployer</emphasis>
-
- <para>The BundleStructureDeployer determines the structure of a Bundle
deployment. It ignores all deployments that
- are not top-level or do not have a manifest header named <emphasis
role="bold">Bundle-SymbolicName</emphasis></para>
-
- </sect1>
-
<sect1 xml:id="SecJMXView">
<title>Management View</title>
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-10-13
09:46:29 UTC (rev 94763)
+++
projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch070-provided-bundles.xml 2009-10-13
11:22:08 UTC (rev 94764)
@@ -111,85 +111,6 @@
</sect1>
- <sect1 xml:id="SecBundleCommon">
- <title>Logging Service</title>
-
- <para>The JBoss OSGi <emphasis
role="bold">jboss-osgi-common.jar</emphasis> bundle contains a simple
Logging Bridge Service to
- <ulink
url="http://www.jboss.org/community/docs/DOC-11280">JBoss
Logging</ulink>. It registers a trivial LogListener with the
- LogReaderService in case that service is registered with the Framework.</para>
-
- <itemizedlist>
- <listitem><ulink
url="http://www.osgi.org/javadoc/r4v41/org/osgi/service/log/LogListe...
- Subscribes to LogEntry objects from the LogReaderService</listitem>
- <listitem><ulink
url="http://www.osgi.org/javadoc/r4v41/org/osgi/service/log/LogReade...
- Provides methods to retrieve LogEntry objects from the log</listitem>
- </itemizedlist>
-
- <para>The LogReaderService is part of the standard <ulink
url="http://www.osgi.org/Download/File?url=/download/r4v41/r4.cmpn.p...
- Compendium Services</ulink>. JBoss OSGi currently uses the <ulink
url="http://felix.apache.org/site/apache-felix-log-service.html"...
Service</ulink>
- from <ulink url="http://felix.apache.org">Apache Felix</ulink>,
which gets deployed as Bundle <emphasis
role="bold">org.apache.felix.log.jar</emphasis>
- </para>
-
- <para>The LogListener itself logs messages under the Bundle's symbolic
name. You can change the logging for specific Bundles by
- <ulink
url="http://www.jboss.org/community/docs/DOC-12490">setting
the respective logging level</ulink>.</para>
- </sect1>
-
- <sect1 xml:id="SecBundleRemoteLog">
- <title>Remote Log Service</title>
-
- <para>The JBoss OSGi <emphasis
role="bold">jboss-osgi-remotelog.jar</emphasis> bundle contains a
client side
- <ulink
url="http://www.osgi.org/javadoc/r4v41/org/osgi/service/log/LogReade...
that remotely
- communicates with a server side <ulink
url="http://www.osgi.org/javadoc/r4v41/org/osgi/service/log/LogListe...;.
- </para>
-
- <para>The Remote Log Service is configured with these properties.</para>
-
- <table>
-
<tr><th>Key</th><th>Value</th><th>Description</th></tr>
- <tr valign="top">
- <td>org.jboss.osgi.service.remote.log.sender</td>
- <td>true/false</td>
- <td>Enable the server side LogListener</td>
- </tr>
- <tr valign="top">
- <td>org.jboss.osgi.service.remote.log.reader</td>
- <td>true/false</td>
- <td>Enable the client side LogReaderService</td>
- </tr>
- <tr valign="top">
- <td>org.jboss.osgi.service.remote.log.host</td>
- <td>localhost</td>
- <td>The remote host that log messages are sent to</td>
- </tr>
- <tr valign="top">
- <td>org.jboss.osgi.service.remote.log.port</td>
- <td>5400</td>
- <td>The remote port that log messages are sent to</td>
- </tr>
- </table>
-
- <para>On the client side you can install an arbitrary <ulink
url="http://www.osgi.org/javadoc/r4v41/org/osgi/service/log/LogListe...
- with the <ulink
url="http://www.osgi.org/javadoc/r4v41/org/osgi/service/log/LogReade...;.
The testsuite typically
- installs an <ulink
url="http://jbmuc.dyndns.org/jboss-osgi-1.0.0.Beta4/apidocs/org/jbos...
- that filters the received log messages.</para>
-
- <programlisting role="JAVA">
- LogEntryCache logEntryCache = new LogEntryCache();
- logEntryCache.addFilter(new LogEntryFilter("example-log(.*)",
LogService.LOG_INFO, "\\[ServiceA\\](.*)"));
-
- // Track the RemoteLogReaderService to add the LogEntryCache as LogListener
- ServiceTracker tracker = new ServiceTracker(sysContext,
RemoteLogReaderService.class.getName(), null)
- {
- @Override
- public Object addingService(ServiceReference sref)
- {
- LogReaderService service = (LogReaderService)super.addingService(sref);
- service.addLogListener(logEntryCache);
- return service;
- }
- };
- tracker.open();
- </programlisting>
- </sect1>
-
<sect1 xml:id="SecBundleMicrocontainer">
<title>Microcontainer Service</title>
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-10-13
09:46:29 UTC (rev 94763)
+++
projects/jboss-osgi/trunk/distribution/docbook/en/modules/ch080-provided-examples.xml 2009-10-13
11:22:08 UTC (rev 94764)
@@ -18,53 +18,42 @@
<programlisting>
[tdiesler@tddell example]$ mvn test
- [INFO] ------------------------------------------------------------------------
- [INFO] Building JBoss OSGi - Testsuite Examples
- [INFO] task-segment: [test]
- [INFO] ------------------------------------------------------------------------
- ...
- build-test-jars:
- # example-blueprint (example-blueprint.jar) 6
- # example-http (example-http.jar) 4
- # example-jmx (example-jmx.jar) 4
- # example-jndi (example-jndi.jar) 1
- # example-log (example-log.jar) 2
- # example-mcservice-bundleA (example-mcservice-bundleA.jar) 2
- # example-mcservice-bundleB (example-mcservice-bundleB.jar) 3
- # example-simple (example-simple.jar) 2
- # example-simple-husky (example-simple-husky.jar) 4
- # example-xml-jaxb (example-xml-jaxb.jar) 8
- # example-xml-parser (example-xml-parser.jar) 4
-------------------------------------------------------
T E S T S
-------------------------------------------------------
+ Running org.jboss.test.osgi.example.webapp.WebAppTestCase
+ Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.202 sec
Running org.jboss.test.osgi.example.blueprint.BlueprintTestCase
- Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.222 sec
+ Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.447 sec
Running org.jboss.test.osgi.example.xml.jaxb.JAXBTestCase
- Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.685 sec
+ Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.722 sec
Running org.jboss.test.osgi.example.microcontainer.MicrocontainerTestCase
- Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.917 sec
+ Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.444 sec
Running org.jboss.test.osgi.example.xml.parser.SAXParserTestCase
- Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.01 sec
+ Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.452 sec
Running org.jboss.test.osgi.example.http.HttpServiceTestCase
- Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 6.45 sec
+ Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.562 sec
Running org.jboss.test.osgi.example.xml.parser.DOMParserTestCase
- Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.016 sec
- Running org.jboss.test.osgi.example.log.LogServiceTestCase
- Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.923 sec
+ Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.032 sec
Running org.jboss.test.osgi.example.jndi.JNDITestCase
- Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.921 sec
+ Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.836 sec
Running org.jboss.test.osgi.example.jmx.JMXTestCase
- Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.937 sec
+ Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.058 sec
Running org.jboss.test.osgi.example.simple.SimpleTestCase
- Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.588 sec
+ Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.772 sec
Running org.jboss.test.osgi.example.simple.SimpleHuskyTestCase
- Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.813 sec
+ Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.262 sec
- Results :
+ Tests run: 21, Failures: 0, Errors: 0, Skipped: 0
- Tests run: 19, Failures: 0, Errors: 0, Skipped: 0
+ [INFO] ------------------------------------------------------------------------
+ [INFO] BUILD SUCCESSFUL
+ [INFO] ------------------------------------------------------------------------
+ [INFO] Total time: 49 seconds
+ [INFO] Finished at: Tue Oct 13 13:04:20 CEST 2009
+ [INFO] Final Memory: 25M/47M
+ [INFO] ------------------------------------------------------------------------
</programlisting>
<para>To run the examples against a remote OSGi Runtime, you need to provide
the
@@ -85,6 +74,20 @@
<listitem>jboss600</listitem>
</itemizedlist>
+ <para>To run the examples against a different OSGi Framework, you need to
define the
+ <emphasis role="bold">framework</emphasis> system
property.</para>
+
+ <programlisting>
+ mvn -Dframework=felix test
+ </programlisting>
+
+ <para>Suported framework values are:</para>
+
+ <itemizedlist>
+ <listitem>jbossmc</listitem>
+ <listitem>equinox</listitem>
+ <listitem>felix</listitem>
+ </itemizedlist>
</sect1>
<sect1 xml:id="SecSimpleExample">
@@ -282,36 +285,52 @@
<para>The test then verifies that the registered servlet context and the
registered resource can be accessed.</para>
</sect1>
- <sect1 xml:id="SecLogServiceExample">
- <title>Log Service Example</title>
+ <sect1 xml:id="SecWebAppExample">
+ <title>Web App Example</title>
- <para>The <emphasis
role="bold">example-log.jar</emphasis> bundle contains a Service
- that logs messages to the <ulink
url="http://www.osgi.org/javadoc/r4v41/org/osgi/service/log/LogServi...;.
-
+ <para>The <emphasis
role="bold">example-webapp.war</emphasis> archive is an OSGi Bundle as
well as an Web Application Archive (WAR)
+ at the same time. Similar to <link
linkend="SecHTTPServiceExample">HTTP Service Example</link> it
registers a servlet and resources with
+ the WebApp container. This is done through a standard web.xml descriptor.
</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>
+ ]]></programlisting>
+
+ <para>The test verifies that we can access the servlet and some
resourtces.</para>
+
<programlisting role="JAVA">
- public ServiceA(BundleContext context)
+ @Test
+ public void testResourceAccess() throws Exception
{
- log = new LogServiceTracker(context);
- log.log(LOG_INFO, "[ServiceA] new Service");
+ assertEquals("Hello from Resource",
getHttpResponse("/message.txt"));
}
+
+ @Test
+ public void testServletAccess() throws Exception
+ {
+ assertEquals("Hello from Servlet",
getHttpResponse("/servlet?test=plain"));
+ }
</programlisting>
-
- <para>The test then filters and verifies the log messages.</para>
- <programlisting role="JAVA">
- LogEntryCache logEntryCache = new LogEntryCache();
- logEntryCache.addFilter(new LogEntryFilter(null, 0,
"\\[ServiceA\\](.*)"));
- startLogEntryTracking(logEntryCache);
-
- // Verify the received log entries
- List entries = logEntryCache.getLog();
- assertEquals("Number of entries", 1, entries.size());
- assertEquals("[ServiceA] new Service", entries.get(0).getMessage());
- </programlisting>
-
- <para>The test is available both for embedded and remote LogService
testing.</para>
</sect1>
<sect1 xml:id="SecMicrocontainerServiceExample">
Modified:
projects/jboss-osgi/trunk/distribution/docbook/src/main/graphics/jbossosgi-runtime.odp
===================================================================
(Binary files differ)
Modified:
projects/jboss-osgi/trunk/distribution/installer/src/main/resources/installer/install-definition.xml
===================================================================
---
projects/jboss-osgi/trunk/distribution/installer/src/main/resources/installer/install-definition.xml 2009-10-13
09:46:29 UTC (rev 94763)
+++
projects/jboss-osgi/trunk/distribution/installer/src/main/resources/installer/install-definition.xml 2009-10-13
11:22:08 UTC (rev 94764)
@@ -87,14 +87,6 @@
<name>jbossTargetServer</name>
<value>minimal</value>
</condition>
- <condition type="or" id="isFelixOrEquinox">
- <condition type="ref" refid="isFelix" />
- <condition type="ref" refid="isEquinox" />
- </condition>
- <condition type="and" id="isJBossMCAndJBoss600">
- <condition type="ref" refid="isJBossMC" />
- <condition type="ref" refid="isJBoss600" />
- </condition>
</conditions>
<!-- Panels -->
@@ -103,7 +95,7 @@
<panel classname="TargetPanel" />
<panel classname="TreePacksPanel" />
<panel classname="UserInputPanel" id="framework.select" />
- <panel classname="UserInputPanel"
id="jbossas.select.felix.equinox" condition="isFelixOrEquinox" />
+ <panel classname="UserInputPanel"
id="jbossas.select.felix.equinox" condition="isFelix|isEquinox" />
<panel classname="UserInputPanel" id="jbossas.select.jbossmc"
condition="isJBossMC" />
<panel classname="UserInputPanel" id="jboss.home.select"
/>
<panel classname="SummaryPanel" />