| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd";> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <html> |
| <head> |
| <link rel="shortcut icon" href="http://aries.apache.org/images/favicon.ico"></link> |
| <link type="text/css" rel="stylesheet" href="http://aries.apache.org/resources/site.css"></link> |
| </script><script src="http://aries.apache.org/resources/menus.js" language="javascript" type="text/javascript"></script> |
| <meta name="keywords" content="..."/> |
| <meta name="description" content="..." /> |
| <title> |
| Apache Aries - Subsystems |
| </title> |
| </head> |
| <body onload="SetMenu()"> |
| |
| <table width="100%" cellpadding="0" cellspacing="0"> |
| <tr width="100%"> |
| <td id="cell-0-0" colspan="2"> </td> |
| <td id="cell-0-1"> </td> |
| <td id="cell-0-2" colspan="2"> </td> |
| </tr> |
| <tr width="100%"> |
| <td id="cell-1-0"> </td> |
| <td id="cell-1-1"> </td> |
| <td id="cell-1-2"> |
| <div style="padding: 5px;"> |
| <div id="banner"> |
| <!-- Banner --> |
| <table border="0" cellpadding="0" cellspacing="0" width="100%"> |
| <tr> |
| <td align="left" class="topbardiv" nowrap=""> |
| <a href="http://aries.apache.org/" title="Apache Aries"> <img border="0" src="http://aries.apache.org/images/Arieslogo_Horizontal.gif"> </a> |
| </td> |
| <td align="right" nowrap=""> |
| <a href="http://www.apache.org/" title="The Apache Software Foundation"> <img border="0" src="http://aries.apache.org/images/apache_feather.png"> </a> |
| </td> |
| </tr> |
| </table> |
| <!-- Banner --> |
| </div> |
| </div> |
| <div id="top-menu"> |
| <table border="0" cellpadding="1" cellspacing="0" width="100%"> |
| <tr> |
| <td> |
| <div align="left"> |
| <!-- Breadcrumbs --> |
| <!-- Breadcrumbs --> |
| </div> |
| </td> |
| <td> |
| <div align="right"> |
| <!-- Quicklinks --> |
| <DIV style="padding: 5px 5px 0px 25px;"> |
| <FORM action="http://www.google.com/search" method="get" style="font-size: 10px;"> |
| <A href="http://www.apache.org/licenses/LICENSE-2.0.html" class="external-link" rel="nofollow">License</A> |
| <INPUT name="ie" type="hidden" value="UTF-8"></INPUT> |
| <INPUT name="oe" type="hidden" value="UTF-8"></INPUT> |
| <INPUT maxlength="255" name="q" size="15" type="text" value></INPUT> |
| <INPUT name="btnG" type="submit" value="Search"></INPUT> |
| <INPUT name="domains" type="hidden" value="aries.apache.org"></INPUT> |
| <INPUT name="sitesearch" type="hidden" value="aries.apache.org"></INPUT> |
| </FORM> |
| </DIV> |
| <!-- Quicklinks --> |
| </div> |
| </td> |
| </tr> |
| </table> |
| </div> |
| </td> |
| <td id="cell-1-3"> </td> |
| <td id="cell-1-4"> </td> |
| </tr> |
| <tr width="100%"> |
| <td id="cell-2-0" colspan="2"> </td> |
| <td id="cell-2-1"> |
| <table> |
| <tr height="100%" valign="top"> |
| <td height="100%"> |
| <div id="wrapper-menu-page-right"> |
| <div id="wrapper-menu-page-top"> |
| <div id="wrapper-menu-page-bottom"> |
| <div id="menu-page"> |
| <!-- NavigationBar --> |
| <style type="text/css"> |
| /* The following code is added by mdx_elementid.py |
| It was originally lifted from http://subversion.apache.org/style/site.css */ |
| /* |
| * Hide class="elementid-permalink", except when an enclosing heading |
| * has the :hover property. |
| */ |
| .headerlink, .elementid-permalink { |
| visibility: hidden; |
| } |
| h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> |
| <div onclick="SwitchMenu('documentation')" id="documentationTitle" class="menutitle">Documentation</div> |
| |
| <div id="documentation" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="/documentation/integrators-guide.html">Integrators Guide</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/documentation/articles.html">Articles</a> |
| </div> |
| <div class="menuitem"> |
| <a href="https://svn.apache.org/repos/asf/aries/slides/">Slides</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/documentation/tutorials.html">Tutorials</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/documentation/tools.html">Tools</a> |
| </div> |
| </div> |
| |
| <div onclick="SwitchMenu('modules')" id="modulesTitle" class="menutitle">Modules</div> |
| |
| <div id="modules" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="/modules/samples.html">Samples</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/modules/async-svcs.html">Asynchronous Services</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/modules/blueprint.html">Blueprint</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/modules/blueprint-maven-plugin.html">Blueprint-maven-plugin</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/modules/blueprintannotation.html">Blueprint Annotations</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/modules/blueprintnoosgi.html">Blueprint No-OSGi</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/modules/blueprintweb.html">Blueprint Web</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/modules/esaanttask.html">ESA Ant Task </a> |
| </div> |
| <div class="menuitem"> |
| <a href="/modules/ebamavenpluginproject.html">EBA Maven Plugin </a> |
| </div> |
| <div class="menuitem"> |
| <a href="/modules/esamavenpluginproject.html">ESA Maven Plugin </a> |
| </div> |
| <div class="menuitem"> |
| <a href="/modules/jmx.html">JMX</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/modules/jndiproject.html">JNDI</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/modules/jpaproject.html">JPA</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/modules/transactionsproject.html">Transactions</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/modules/spi-fly.html">SPI Fly</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/modules/subsystems.html">Subsystems</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/modules/applications.html">Applications (obsolete)</a> |
| </div> |
| </div> |
| |
| <div onclick="SwitchMenu('downloads')" id="downloadsTitle" class="menutitle">Downloads</div> |
| |
| <div id="downloads" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="/downloads/currentreleases.html">Current Releases</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/downloads/testresults.html">Compliance Tests</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/downloads/archived-releases.html">Archived Releases</a> |
| </div> |
| </div> |
| |
| <div onclick="SwitchMenu('community')" id="communityTitle" class="menutitle">Community</div> |
| |
| <div id="community" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="/community/resources.html">Community Resources</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/community/gettinginvolved.html">Getting Involved</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/community/people.html">Who we are</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/community/boardreports.html">Board Reports</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/community/logos.html">Logos for Users</a> |
| </div> |
| </div> |
| |
| <div onclick="SwitchMenu('development')" id="developmentTitle" class="menutitle">Development</div> |
| |
| <div id="development" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="/development/buildingaries.html">Building Aries </a> |
| </div> |
| <div class="menuitem"> |
| <a href="/development/guidelines.html">Cording Guidelines</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/development/architecture.html">Architecture</a> |
| </div> |
| <div class="menuitem"> |
| <a href="/development/releasingaries.html">Releasing Aries </a> |
| </div> |
| <div class="menuitem"> |
| <a href="/development/compliancetesting.html">OSGi Compliance Tests </a> |
| </div> |
| <div class="menuitem"> |
| <a href="/development/maintainingthewebpages.html">Web Site Maintenance </a> |
| </div> |
| </div> |
| |
| <div onclick="SwitchMenu('sponsorship')" id="sponsorshipTitle" class="menutitle">Sponsorship</div> |
| |
| <div id="sponsorship" class="menuitemgroup"> |
| <div class="menuitem"> |
| <a href="http://www.apache.org/foundation/thanks.html">Thanks</a> |
| </div> |
| <div class="menuitem"> |
| <a href="http://www.apache.org/foundation/sponsorship.html">Sponsoring Apache</a> |
| </div> |
| </div> |
| <!-- NavigationBar --> |
| </div> |
| </div> |
| </div> |
| </div> |
| </td> |
| <td height="100%" width="100%"> |
| <!-- Content --> |
| <div class="wiki-content"><style type="text/css"> |
| /* The following code is added by mdx_elementid.py |
| It was originally lifted from http://subversion.apache.org/style/site.css */ |
| /* |
| * Hide class="elementid-permalink", except when an enclosing heading |
| * has the :hover property. |
| */ |
| .headerlink, .elementid-permalink { |
| visibility: hidden; |
| } |
| h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> |
| <h1 id="osgi-subsystems">OSGi Subsystems<a class="headerlink" href="#osgi-subsystems" title="Permanent link">¶</a></h1> |
| <h2 id="introduction">Introduction<a class="headerlink" href="#introduction" title="Permanent link">¶</a></h2> |
| <p>Apache Aries Subsystems is the Reference Implementation of the OSGi Subsystems Specification, chapter 134 of the |
| <a href="http://www.osgi.org/Specifications/HomePage" title="OSGi Enterprise specifications">OSGi Enterprise specifications</a>. The Aries 1.x components implement the 1.0 version of the Subsystem spec. Aries 2.x and newer implement the 1.1 version of OSGi Subsystems.</p> |
| <h2 id="getting-started">Getting started<a class="headerlink" href="#getting-started" title="Permanent link">¶</a></h2> |
| <p>This section shows the bundles to install to get the Subsystems implementation running in your favourite OSGi Framework.</p> |
| <p>The Aries Subsystem implementation uses the OSGi Coordination service, the OSGi |
| Resolver service, the OSGi Repository service and integrates with the OSGi Configuration Admin service. Additional |
| dependencies are the Aries Util bundle, the Equinox Region bundle and SLF4J for logging.</p> |
| <p>The following are downloadable links (from Maven central) that |
| provide all the required components to get subsystems up and running with Apache |
| Felix. Note that the Felix Framework distribution comes with OSGi Repository and Resolver implementations so these |
| do not need to be added. (When running Aries Subsystems with another OSGi Framework these |
| must be provided.)</p> |
| <ul> |
| <li><a href="https://repo1.maven.org/maven2/org/apache/aries/subsystem/org.apache.aries.subsystem.api/2.0.2/org.apache.aries.subsystem.api-2.0.2.jar">org.apache.aries.subsystem.api</a></li> |
| <li><a href="https://repo1.maven.org/maven2/org/apache/aries/subsystem/org.apache.aries.subsystem.core/2.0.2/org.apache.aries.subsystem.core-2.0.2.jar">org.apache.aries.subsystem.core</a></li> |
| <li><a href="http://repo1.maven.org/maven2/org/apache/aries/org.apache.aries.util/1.1.0/org.apache.aries.util-1.1.0.jar">org.apache.aries.util</a></li> |
| <li><a href="https://repo1.maven.org/maven2/org/apache/felix/org.apache.felix.configadmin/1.8.6/org.apache.felix.configadmin-1.8.6.jar">org.apache.felix.configadmin</a></li> |
| <li><a href="http://repo1.maven.org/maven2/org/apache/felix/org.apache.felix.coordinator/1.0.0/org.apache.felix.coordinator-1.0.0.jar">org.apache.felix.coordinator</a></li> |
| <li><a href="http://repo1.maven.org/maven2/org/eclipse/equinox/org.eclipse.equinox.region/1.1.0.v20120522-1841/org.eclipse.equinox.region-1.1.0.v20120522-1841.jar">org.eclipse.equinox.region</a></li> |
| <li><a href="http://repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.12/slf4j-api-1.7.12.jar">slf4j-api</a></li> |
| <li><a href="http://repo1.maven.org/maven2/org/slf4j/slf4j-simple/1.7.12/slf4j-simple-1.7.12.jar">slf4j-simple</a> (or another slf4j binding)</li> |
| </ul> |
| <p>After installing and starting all these components the Felix runtime looks like this:</p> |
| <div class="codehilite"><pre><span class="n">g</span>! <span class="n">lb</span> |
| <span class="n">START</span> <span class="n">LEVEL</span> 1 |
| <span class="n">ID</span><span class="o">|</span><span class="n">State</span> <span class="o">|</span><span class="n">Level</span><span class="o">|</span><span class="n">Name</span> |
| 0<span class="o">|</span><span class="n">Active</span> <span class="o">|</span> 0<span class="o">|</span><span class="n">System</span> <span class="n">Bundle</span> <span class="p">(</span>5<span class="p">.</span>0<span class="p">.</span>1<span class="p">)</span> |
| 1<span class="o">|</span><span class="n">Active</span> <span class="o">|</span> 1<span class="o">|</span><span class="n">Apache</span> <span class="n">Felix</span> <span class="n">Bundle</span> <span class="n">Repository</span> <span class="p">(</span>2<span class="p">.</span>0<span class="p">.</span>4<span class="p">)</span> |
| 2<span class="o">|</span><span class="n">Active</span> <span class="o">|</span> 1<span class="o">|</span><span class="n">Apache</span> <span class="n">Felix</span> <span class="n">Gogo</span> <span class="n">Command</span> <span class="p">(</span>0<span class="p">.</span>14<span class="p">.</span>0<span class="p">)</span> |
| 3<span class="o">|</span><span class="n">Active</span> <span class="o">|</span> 1<span class="o">|</span><span class="n">Apache</span> <span class="n">Felix</span> <span class="n">Gogo</span> <span class="n">Runtime</span> <span class="p">(</span>0<span class="p">.</span>16<span class="p">.</span>2<span class="p">)</span> |
| 4<span class="o">|</span><span class="n">Active</span> <span class="o">|</span> 1<span class="o">|</span><span class="n">Apache</span> <span class="n">Felix</span> <span class="n">Gogo</span> <span class="n">Shell</span> <span class="p">(</span>0<span class="p">.</span>10<span class="p">.</span>0<span class="p">)</span> |
| 5<span class="o">|</span><span class="n">Active</span> <span class="o">|</span> 1<span class="o">|</span><span class="n">Apache</span> <span class="n">Aries</span> <span class="n">Subsystem</span> <span class="n">API</span> <span class="p">(</span>2<span class="p">.</span>0<span class="p">.</span>2<span class="p">)</span> |
| 6<span class="o">|</span><span class="n">Active</span> <span class="o">|</span> 1<span class="o">|</span><span class="n">Apache</span> <span class="n">Aries</span> <span class="n">Subsystem</span> <span class="n">Core</span> <span class="p">(</span>2<span class="p">.</span>0<span class="p">.</span>2<span class="p">)</span> |
| 7<span class="o">|</span><span class="n">Active</span> <span class="o">|</span> 1<span class="o">|</span><span class="n">Apache</span> <span class="n">Aries</span> <span class="n">Util</span> <span class="p">(</span>1<span class="p">.</span>1<span class="p">.</span>0<span class="p">)</span> |
| 8<span class="o">|</span><span class="n">Active</span> <span class="o">|</span> 1<span class="o">|</span><span class="n">Apache</span> <span class="n">Felix</span> <span class="n">Configuration</span> <span class="n">Admin</span> <span class="n">Service</span> <span class="p">(</span>1<span class="p">.</span>8<span class="p">.</span>6<span class="p">)</span> |
| 9<span class="o">|</span><span class="n">Active</span> <span class="o">|</span> 1<span class="o">|</span><span class="n">Apache</span> <span class="n">Felix</span> <span class="n">Coordinator</span> <span class="n">Service</span> <span class="p">(</span>1<span class="p">.</span>0<span class="p">.</span>0<span class="p">)</span> |
| 10<span class="o">|</span><span class="n">Active</span> <span class="o">|</span> 1<span class="o">|</span><span class="n">Region</span> <span class="n">Digraph</span> <span class="p">(</span>1<span class="p">.</span>1<span class="p">.</span>0<span class="p">.</span><span class="n">v20120522</span><span class="o">-</span>1841<span class="p">)</span> |
| 11<span class="o">|</span><span class="n">Active</span> <span class="o">|</span> 1<span class="o">|</span><span class="n">slf4j</span><span class="o">-</span><span class="n">api</span> <span class="p">(</span>1<span class="p">.</span>7<span class="p">.</span>12<span class="p">)</span> |
| 12<span class="o">|</span><span class="n">Resolved</span> <span class="o">|</span> 1<span class="o">|</span><span class="n">slf4j</span><span class="o">-</span><span class="n">simple</span> <span class="p">(</span>1<span class="p">.</span>7<span class="p">.</span>12<span class="p">)</span> |
| 13<span class="o">|</span><span class="n">Active</span> <span class="o">|</span> 1<span class="o">|</span><span class="n">org</span><span class="p">.</span><span class="n">osgi</span><span class="p">.</span><span class="n">service</span><span class="p">.</span><span class="n">subsystem</span><span class="p">.</span><span class="n">region</span><span class="p">.</span><span class="n">context</span><span class="p">.</span>0 <span class="p">(</span>1<span class="p">.</span>0<span class="p">.</span>0<span class="p">)</span> |
| </pre></div> |
| |
| |
| <p>The slf4j-simple bundle is a fragment, so it can not be started. |
| You can see that the Subsystems implementation is operational as it created a synthesized |
| bundle (13) to represent the root context. The subsystems implementation sometimes |
| synthesizes a bundle to represent a subsystem. Whether or not this happens depends on |
| the isolation model of a subsystem.</p> |
| <p>You can also see that the Subsystem service for the root subsystem has been registered |
| by looking at the services registered by the Subsystem Core bundle (6):</p> |
| <div class="codehilite"><pre><span class="n">g</span>! <span class="n">inspect</span> <span class="n">cap</span> <span class="n">service</span> 6 |
| <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">aries</span><span class="p">.</span><span class="n">subsystem</span><span class="p">.</span><span class="n">core</span> <span class="p">[</span>6<span class="p">]</span> <span class="n">provides</span><span class="p">:</span> |
| <span class="o">---------------------------------------------</span> |
| <span class="n">service</span><span class="p">;</span> <span class="n">org</span><span class="p">.</span><span class="n">osgi</span><span class="p">.</span><span class="n">service</span><span class="p">.</span><span class="n">subsystem</span><span class="p">.</span><span class="n">Subsystem</span><span class="p">,</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">aries</span><span class="p">.</span><span class="n">subsystem</span><span class="p">.</span><span class="n">AriesSubsystem</span> <span class="n">with</span> <span class="k">properties</span><span class="p">:</span> |
| <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">aries</span><span class="p">.</span><span class="n">subsystem</span><span class="p">.</span><span class="n">service</span><span class="p">.</span><span class="n">regions</span> <span class="p">=</span> <span class="p">[</span><span class="n">org</span><span class="p">.</span><span class="n">eclipse</span><span class="p">.</span><span class="n">equinox</span><span class="p">.</span><span class="n">region</span><span class="p">.</span><span class="n">kernel</span><span class="p">]</span> |
| <span class="n">subsystem</span><span class="p">.</span><span class="n">id</span> <span class="p">=</span> 0 |
| <span class="n">subsystem</span><span class="p">.</span><span class="n">state</span> <span class="p">=</span> <span class="n">ACTIVE</span> |
| <span class="n">subsystem</span><span class="p">.</span><span class="n">symbolicName</span> <span class="p">=</span> <span class="n">org</span><span class="p">.</span><span class="n">osgi</span><span class="p">.</span><span class="n">service</span><span class="p">.</span><span class="n">subsystem</span><span class="p">.</span><span class="n">root</span> |
| <span class="n">subsystem</span><span class="p">.</span><span class="n">type</span> <span class="p">=</span> <span class="n">osgi</span><span class="p">.</span><span class="n">subsystem</span><span class="p">.</span><span class="n">application</span> |
| <span class="n">subsystem</span><span class="p">.</span><span class="n">version</span> <span class="p">=</span> 1<span class="p">.</span>0<span class="p">.</span>0 |
| <span class="p">...</span> <span class="n">other</span> <span class="k">properties</span> <span class="n">and</span> <span class="n">services</span> |
| </pre></div> |
| |
| |
| <p>Each installed subsystem is represented by a serparate service.</p> |
| <h2 id="tools">Tools<a class="headerlink" href="#tools" title="Permanent link">¶</a></h2> |
| <p>The Apache Aries community provides a number of tools that facilitate working with OSGi Subsystems:</p> |
| <ul> |
| <li>Subsystem Gogo Command - a Gogo command to work with subsystems, for more info see below.</li> |
| <li><a href="http://aries.apache.org/modules/esaanttask.html">esa-ant-task</a> - an Ant task to create .esa archives.</li> |
| <li><a href="http://aries.apache.org/modules/esamavenpluginproject.html">eas-maven-plugin</a> - a Maven plugin to create .esa archives.</li> |
| </ul> |
| <h3 id="subsystem-gogo-command">Subsystem Gogo Command<a class="headerlink" href="#subsystem-gogo-command" title="Permanent link">¶</a></h3> |
| <p><a href="https://svn.apache.org/repos/asf/aries/trunk/subsystem/subsystem-gogo-command">https://svn.apache.org/repos/asf/aries/trunk/subsystem/subsystem-gogo-command</a> contains a simple bundle with Gogo commands |
| to control subsystems. This bundle can also be downloaded from <a href="http://search.maven.org/remotecontent?filepath=org/apache/aries/subsystem/org.apache.aries.subsystem.gogo-command/1.0.0/org.apache.aries.subsystem.gogo-command-1.0.0.jar">Maven Central here</a>.</p> |
| <p>After installing the gogo command bundle you can execute subsystem commands, for example:</p> |
| <div class="codehilite"><pre><span class="n">g</span>! <span class="n">subsystem</span><span class="p">:</span><span class="n">list</span> |
| 0 <span class="n">ACTIVE</span> <span class="n">org</span><span class="p">.</span><span class="n">osgi</span><span class="p">.</span><span class="n">service</span><span class="p">.</span><span class="n">subsystem</span><span class="p">.</span><span class="n">root</span> 1<span class="p">.</span>0<span class="p">.</span>0 |
| </pre></div> |
| |
| |
| <p>Use <code>subsystem:install</code> to install additional subsystems, for example one that is part of the <code>subsystem-itests</code> module:</p> |
| <div class="codehilite"><pre><span class="n">g</span>! <span class="n">subsystem</span><span class="p">:</span><span class="n">install</span> <span class="n">file</span><span class="p">:</span><span class="o">/</span><span class="n">checkouts</span><span class="o">/</span><span class="n">aries</span><span class="o">/</span><span class="n">subsystem</span><span class="o">/</span><span class="n">subsystem</span><span class="o">-</span><span class="n">itests</span><span class="o">/</span><span class="n">target</span><span class="o">/</span><span class="n">feature1</span><span class="p">.</span><span class="n">esa</span> |
| <span class="p">...</span> |
| <span class="n">Subsystem</span> <span class="n">successfully</span> <span class="n">installed</span><span class="p">:</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">aries</span><span class="p">.</span><span class="n">subsystem</span><span class="p">.</span><span class="n">feature1</span><span class="p">;</span> <span class="n">id</span><span class="p">:</span> 1 |
| </pre></div> |
| |
| |
| <p>This subsystem embeds another subsystem which automatically gets installed too. When you list all subsystems you can see both:</p> |
| <div class="codehilite"><pre><span class="n">g</span>! <span class="n">subsystem</span><span class="p">:</span><span class="n">list</span> |
| 0 <span class="n">ACTIVE</span> <span class="n">org</span><span class="p">.</span><span class="n">osgi</span><span class="p">.</span><span class="n">service</span><span class="p">.</span><span class="n">subsystem</span><span class="p">.</span><span class="n">root</span> 1<span class="p">.</span>0<span class="p">.</span>0 |
| 1 <span class="n">INSTALLED</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">aries</span><span class="p">.</span><span class="n">subsystem</span><span class="p">.</span><span class="n">feature1</span> 1<span class="p">.</span>0<span class="p">.</span>0 |
| 2 <span class="n">INSTALLED</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">aries</span><span class="p">.</span><span class="n">subsystem</span><span class="p">.</span><span class="n">feature2</span> 1<span class="p">.</span>0<span class="p">.</span>0 |
| </pre></div> |
| |
| |
| <p>Together, these subsystems contain 3 bundles:</p> |
| <div class="codehilite"><pre><span class="n">g</span>! <span class="n">lb</span> |
| <span class="n">START</span> <span class="n">LEVEL</span> 1 |
| <span class="n">ID</span><span class="o">|</span><span class="n">State</span> <span class="o">|</span><span class="n">Level</span><span class="o">|</span><span class="n">Name</span> |
| 0<span class="o">|</span><span class="n">Active</span> <span class="o">|</span> 0<span class="o">|</span><span class="n">System</span> <span class="n">Bundle</span> <span class="p">(</span>5<span class="p">.</span>0<span class="p">.</span>1<span class="p">)</span> |
| <span class="p">...</span> |
| 16<span class="o">|</span><span class="n">Installed</span> <span class="o">|</span> 1<span class="o">|</span><span class="n">TB3</span> <span class="p">(</span>1<span class="p">.</span>0<span class="p">.</span>0<span class="p">)</span> |
| 17<span class="o">|</span><span class="n">Installed</span> <span class="o">|</span> 1<span class="o">|</span><span class="n">TB1</span> <span class="p">(</span>1<span class="p">.</span>0<span class="p">.</span>0<span class="p">)</span> |
| 18<span class="o">|</span><span class="n">Installed</span> <span class="o">|</span> 1<span class="o">|</span><span class="n">TB2</span> <span class="p">(</span>2<span class="p">.</span>0<span class="p">.</span>0<span class="p">)</span> |
| </pre></div> |
| |
| |
| <p>Use <code>subsystem:start</code> to start a subsystem. This will start all its bundles and all the bundles of dependent subsystems. So the |
| following single command, starts 3 bundles:</p> |
| <div class="codehilite"><pre><span class="n">g</span>! <span class="n">subsystem</span><span class="p">:</span><span class="n">start</span> 1 |
| <span class="n">g</span>! <span class="n">lb</span> |
| <span class="n">START</span> <span class="n">LEVEL</span> 1 |
| <span class="n">ID</span><span class="o">|</span><span class="n">State</span> <span class="o">|</span><span class="n">Level</span><span class="o">|</span><span class="n">Name</span> |
| 0<span class="o">|</span><span class="n">Active</span> <span class="o">|</span> 0<span class="o">|</span><span class="n">System</span> <span class="n">Bundle</span> <span class="p">(</span>5<span class="p">.</span>0<span class="p">.</span>1<span class="p">)</span> |
| <span class="p">...</span> |
| 16<span class="o">|</span><span class="n">Active</span> <span class="o">|</span> 1<span class="o">|</span><span class="n">TB3</span> <span class="p">(</span>1<span class="p">.</span>0<span class="p">.</span>0<span class="p">)</span> |
| 17<span class="o">|</span><span class="n">Active</span> <span class="o">|</span> 1<span class="o">|</span><span class="n">TB1</span> <span class="p">(</span>1<span class="p">.</span>0<span class="p">.</span>0<span class="p">)</span> |
| 18<span class="o">|</span><span class="n">Active</span> <span class="o">|</span> 1<span class="o">|</span><span class="n">TB2</span> <span class="p">(</span>2<span class="p">.</span>0<span class="p">.</span>0<span class="p">)</span> |
| </pre></div> |
| |
| |
| <h3 id="subsystem-gogo-commands">Subsystem gogo commands<a class="headerlink" href="#subsystem-gogo-commands" title="Permanent link">¶</a></h3> |
| <p>The following commands are available from the subsystem-gogo-command bundle:</p> |
| <ul> |
| <li><code>subsystem:install <url></code> - Install and resolve a subsystem.</li> |
| <li><code>subsystem:list <subsystemId></code> - List installed subsystems.</li> |
| <li><code>subsystem:start <subsystemId></code> - Start a subsystem and its dependencies.</li> |
| <li><code>subsystem:stop <subsystemId></code> - Stop a subsystem and its dependencies.</li> |
| <li><code>subsystem:uninstall <subsystemId></code> - Uninstall a subsystem and its dependencies. </li> |
| </ul> |
| <p>Note that, following the OSGi Subsystem specification, dependent subsystems are only stopped and uninstalled when the last using subsystem |
| is stopped/uninstalled.</p> |
| <h2 id="development">Development<a class="headerlink" href="#development" title="Permanent link">¶</a></h2> |
| <p>The Aries Subsystems code base can be found at the following location: <a href="https://svn.apache.org/repos/asf/aries/trunk/subsystem">https://svn.apache.org/repos/asf/aries/trunk/subsystem</a></p></div> |
| <!-- Content --> |
| </td> |
| </tr> |
| </table> |
| </td> |
| <td id="cell-2-2" colspan="2"> </td> |
| </tr> |
| <tr width="100%"> |
| <td id="cell-3-0"> </td> |
| <td id="cell-3-1"> </td> |
| <td id="cell-3-2"> |
| <div id="footer"> |
| <!-- Footer --> |
| <div id="site-footer"> |
| <a href="http://aries.apache.org/privacy-policy.html";>Privacy |
| Policy</a> |
| </div> |
| <!-- Footer --> |
| </div> |
| </td> |
| <td id="cell-3-3"> </td> |
| <td id="cell-3-4"> </td> |
| </tr> |
| <tr width="100%"> |
| <td id="cell-4-0" colspan="2"> </td> |
| <td id="cell-4-1"> </td> |
| <td id="cell-4-2" colspan="2"> </td> |
| </tr> |
| </table> |
| </body> |
| </html> |