You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2015/07/01 19:06:45 UTC
svn commit: r1688692 [26/30] - in
/karaf/site/production/manual/latest-3.0.x: ./ commands/ css/ css/scalate/
developers-guide/ images/ users-guide/
Added: karaf/site/production/manual/latest-3.0.x/users-guide/migration.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest-3.0.x/users-guide/migration.html?rev=1688692&view=auto
==============================================================================
--- karaf/site/production/manual/latest-3.0.x/users-guide/migration.html (added)
+++ karaf/site/production/manual/latest-3.0.x/users-guide/migration.html Wed Jul 1 17:06:42 2015
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
+<html lang="en">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <meta name="description" content="description goes here"/>
+ <meta name="keywords" content="keywords,goes,here"/>
+ <meta name="author" content="The Apache Karaf Team"/>
+ <link href="../css/style.css" rel="stylesheet" type="text/css"/>
+ <link href="../css/pygmentize.css" rel="stylesheet" type="text/css"/>
+ <title>
+ Apache Karaf 3.0.5-SNAPSHOT Guides
+ </title>
+ </head>
+ <body>
+ <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">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td align="left" class="topbardiv" nowrap="">
+<a href="http://karaf.apache.org/" title="A server side OSGi distribution">
+ <img border="0" src="../images/karaf-logo.png" width="400px"></img>
+</a>
+ </td>
+ <td align="right" nowrap="">
+<a href="http://www.apache.org/" title="The Apache Sofware Foundation">
+ <img border="0" src="../images/asf-logo.png">
+</a>
+ </td>
+ </tr>
+ </table>
+
+ </div>
+ <div id="top-menu">
+ <table border="0" cellpadding="1" cellspacing="0" width="100%">
+ <tr>
+ <td>
+ <div align="left"></div>
+ </td>
+ <td>
+ <div align="right">
+ <p>
+<a href="../index.html" title="Home">Home</a>
+|
+<a href="index.html" title="Users Guide">Users Guide</a>
+|
+<a href="../developers-guide/index.html" title="Developers Guide">Developers Guide</a>
+</p>
+
+
+ </div>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </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">
+ <h3 id="Homeindex"><a href="../index.html">Home</a></h3><ul style="list-style: square"><li><a href="../overview.html">Overview</a></li><li><a href="../quick-start.html">Quick Start</a></li></ul><h3 id="UsersGuideusersguideindex"><a href="index.html">Users Guide</a></h3><ul style="list-style: square"><li><a href="installation.html">Installation</a></li><li><a href="directory-structure.html">Directory structure</a></li><li><a href="start-stop.html">Start, stop, restart, connect</a></li><li><a href="wrapper.html">Integration in the operating system: the Service Wrapper</a></li><li><a href="console.html">Console</a></li><li><a href="remote.html">Remote</a></li><li><a href="log.html">Log</a></li><li><a href="configuration.html">Configuration</a></li><li><a href="urls.html">Artifacts repositories and URLs</a></li><li><a href="provisioning.html">Provisioning and features</a></li><li><a href="deployers.html">Deployers</a></li><li><a href="kar.html">KAR</a></li><li><a
href="instances.html">Instances</a></li><li><a href="security.html">Security</a></li><li><a href="obr.html">OBR</a></li><li><a href="enterprise.html">Enterprise</a><ul><li><a href="webcontainer.html">WebContainer (JSP/Servlet)</a></li><li><a href="jndi.html">Naming (JNDI)</a></li><li><a href="jta.html">Transaction (JTA)</a></li><li><a href="jdbc.html">DataSource (JDBC)</a></li><li><a href="jms.html">MOM (JMS)</a></li><li><a href="jpa.html">Persistence (JPA)</a></li><li><a href="ejb.html">EJB</a></li><li><a href="cdi.html">CDI</a></li><li><a href="failover.html">HA/failover and cluster</a></li></ul></li><li><a href="monitoring.html">Monitoring and Management using JMX</a></li><li><a href="webconsole.html">WebConsole</a></li><li><a href="tuning.html">Tuning</a></li></ul><h3 id="DevelopersGuidedevelopersguideindex"><a href="../developers-guide/index.html">Developers Guide</a></h3><ul style="list-style: square"><li><a href="../developers-guide/developer-commands.html">Developer command
s</a></li><li><a href="../developers-guide/scripting.html">Scripting</a></li><li><a href="../developers-guide/connect.html">Programmatically connect</a></li><li><a href="../developers-guide/branding.html">Branding</a></li><li><a href="../developers-guide/extending.html">Extending</a></li><li><a href="../developers-guide/karaf-maven-plugin.html">Karaf Maven plugin</a></li><li><a href="../developers-guide/custom-distribution.html">Custom distribution</a></li><li><a href="../developers-guide/services.html">OSGi services</a></li><li><a href="../developers-guide/creating-bundles.html">Create OSGi bundle</a></li><li><a href="../developers-guide/blueprint.html">Blueprint</a></li><li><a href="../developers-guide/cdi.html">CDI</a></li><li><a href="../developers-guide/archetypes.html">Maven Archetypes</a></li><li><a href="../developers-guide/security-framework.html">Security Framework</a></li><li><a href="../developers-guide/debugging.html">Troubleshooting, Debugging, Profiling</a></li><li><a
href="../developers-guide/writing-tests.html">Integration testing</a></li><li><a href="../developers-guide/github-contributions.html">Github Contributions</a></li></ul><h3 id="Commandscommandscommands"><a href="../commands/commands.html">Commands</a></h3>
+ </div>
+ </div>
+ </div>
+ </div>
+ </td>
+ <td height="100%" width="100%">
+ <div class="wiki-content">
+<h1 id="MigrationfromKaraf2.xto3.x">Migration from Karaf 2.x to 3.x</h1><p>This section shows the necessary changes you have to consider when upgrading karaf.</p><h2 id="Updatinganexistinginstance">Updating an existing instance</h2><p>There is no simple upgrade path for an existing instance. The simplest way of upgraing is to redeploy your application to the new karaf instance and copy over the changed configurations. </p><h2 id="Changesincommandnames">Changes in command names</h2><p>In general the command names now have the scheme <object in singular>:<command on object>.<br/>For cases when one scope cares for more than one object type like feature:* that cares for features and feature repositories the sheme is partly: <scope>:<object-command>.<br/>The following table shows side by side the old and new command names.</p><div class="table-wrap"><table class="confluenceTable"><tr><th class="confluenceTh"> Name 2.x </th><th class="confluenceTh"> Name 3.x </th></tr><tr><td
class="confluenceTd"> features:add-url </td><td class="confluenceTd"> feature:repo-add </td></tr><tr><td class="confluenceTd"> features:chooseurl </td><td class="confluenceTd"> feature:repo-add </td></tr><tr><td class="confluenceTd"> features:chooseurl </td><td class="confluenceTd"> feature:repo-add </td></tr><tr><td class="confluenceTd"> features:listrepositories </td><td class="confluenceTd"> feature:repo-list </td></tr><tr><td class="confluenceTd"> features:listurl </td><td class="confluenceTd"> feature:repo-list </td></tr><tr><td class="confluenceTd"> features:listversions </td><td class="confluenceTd"> feature:version-list </td></tr><tr><td class="confluenceTd"> features:refreshurl </td><td class="confluenceTd"> feature:repo-add </td></tr><tr><td class="confluenceTd"> features:removerepository </td><td class="confluenceTd"> feature:repo-remove </td></tr><tr><td class="confluenceTd"> features:removeurl </td><td class="confluenceTd"> feature:repo-remove </td></tr><tr><td class="c
onfluenceTd"> features:* </td><td class="confluenceTd"> feature:* </td></tr><tr><td class="confluenceTd"> osgi:* </td><td class="confluenceTd"> bundle:* </td></tr><tr><td class="confluenceTd"> dev:dynamic-import </td><td class="confluenceTd"> bundle:dynamic-import </td></tr><tr><td class="confluenceTd"> dev:framework </td><td class="confluenceTd"> system:framework </td></tr><tr><td class="confluenceTd"> dev:print-stack-traces </td><td class="confluenceTd"> shell:print-stack-traces </td></tr><tr><td class="confluenceTd"> dev:restart </td><td class="confluenceTd"> system:shutdown -r </td></tr><tr><td class="confluenceTd"> dev:show-tree </td><td class="confluenceTd"> bundle:tree-show </td></tr><tr><td class="confluenceTd"> dev:watch </td><td class="confluenceTd"> bundle:watch </td></tr><tr><td class="confluenceTd"> admin:* </td><td class="confluenceTd"> instance:* </td></tr><tr><td class="confluenceTd"> config: </td><td class="confluenceTd"> config: </td></tr><tr><td class="confluenceT
d"> jaas: </td><td class="confluenceTd"> jaas: </td></tr></table></div><h2 id="ChangesinMBeans">Changes in MBeans</h2><p>For Karaf 3 we did a major refactoring of the module and package structure of Karaf. So almost all mbean interfaces moved to a new package. So if you use the Java interface to access an mbean you will most likely have to change that.</p><p>Like the commands the bean types have bean renamed to the singular form:</p><div class="table-wrap"><table class="confluenceTable"><tr><th class="confluenceTh"> Type Karaf 2.x </th><th class="confluenceTh"> Type Karaf 3.x </th></tr><tr><td class="confluenceTd"> admin </td><td class="confluenceTd"> instance </td></tr><tr><td class="confluenceTd"> bundles </td><td class="confluenceTd"> bundle </td></tr><tr><td class="confluenceTd"> features </td><td class="confluenceTd"> feature </td></tr><tr><td class="confluenceTd"> packages </td><td class="confluenceTd"> package </td></tr><tr><td class="confluenceTd"> services </td><td class="c
onfluenceTd"> service </td></tr></table></div><p>Besides the type in the objectname a lot of the operations / attributes changed. </p>
+ </div>
+ </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">
+ <div id="site-footer">
+ © 2008-2011 The Apache Software Foundation
+ <br/>
+ Apache Karaf, Karaf, Apache, the Apache feather logo, and the Apache Karaf project logo are trademarks of The Apache Software Foundation.
+ </div>
+ </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>
\ No newline at end of file
Added: karaf/site/production/manual/latest-3.0.x/users-guide/monitoring.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest-3.0.x/users-guide/monitoring.html?rev=1688692&view=auto
==============================================================================
--- karaf/site/production/manual/latest-3.0.x/users-guide/monitoring.html (added)
+++ karaf/site/production/manual/latest-3.0.x/users-guide/monitoring.html Wed Jul 1 17:06:42 2015
@@ -0,0 +1,345 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
+<html lang="en">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <meta name="description" content="description goes here"/>
+ <meta name="keywords" content="keywords,goes,here"/>
+ <meta name="author" content="The Apache Karaf Team"/>
+ <link href="../css/style.css" rel="stylesheet" type="text/css"/>
+ <link href="../css/pygmentize.css" rel="stylesheet" type="text/css"/>
+ <title>
+ Apache Karaf 3.0.5-SNAPSHOT Guides
+ </title>
+ </head>
+ <body>
+ <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">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td align="left" class="topbardiv" nowrap="">
+<a href="http://karaf.apache.org/" title="A server side OSGi distribution">
+ <img border="0" src="../images/karaf-logo.png" width="400px"></img>
+</a>
+ </td>
+ <td align="right" nowrap="">
+<a href="http://www.apache.org/" title="The Apache Sofware Foundation">
+ <img border="0" src="../images/asf-logo.png">
+</a>
+ </td>
+ </tr>
+ </table>
+
+ </div>
+ <div id="top-menu">
+ <table border="0" cellpadding="1" cellspacing="0" width="100%">
+ <tr>
+ <td>
+ <div align="left"></div>
+ </td>
+ <td>
+ <div align="right">
+ <p>
+<a href="../index.html" title="Home">Home</a>
+|
+<a href="index.html" title="Users Guide">Users Guide</a>
+|
+<a href="../developers-guide/index.html" title="Developers Guide">Developers Guide</a>
+</p>
+
+
+ </div>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </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">
+ <h3 id="Homeindex"><a href="../index.html">Home</a></h3><ul style="list-style: square"><li><a href="../overview.html">Overview</a></li><li><a href="../quick-start.html">Quick Start</a></li></ul><h3 id="UsersGuideusersguideindex"><a href="index.html">Users Guide</a></h3><ul style="list-style: square"><li><a href="installation.html">Installation</a></li><li><a href="directory-structure.html">Directory structure</a></li><li><a href="start-stop.html">Start, stop, restart, connect</a></li><li><a href="wrapper.html">Integration in the operating system: the Service Wrapper</a></li><li><a href="console.html">Console</a></li><li><a href="remote.html">Remote</a></li><li><a href="log.html">Log</a></li><li><a href="configuration.html">Configuration</a></li><li><a href="urls.html">Artifacts repositories and URLs</a></li><li><a href="provisioning.html">Provisioning and features</a></li><li><a href="deployers.html">Deployers</a></li><li><a href="kar.html">KAR</a></li><li><a
href="instances.html">Instances</a></li><li><a href="security.html">Security</a></li><li><a href="obr.html">OBR</a></li><li><a href="enterprise.html">Enterprise</a><ul><li><a href="webcontainer.html">WebContainer (JSP/Servlet)</a></li><li><a href="jndi.html">Naming (JNDI)</a></li><li><a href="jta.html">Transaction (JTA)</a></li><li><a href="jdbc.html">DataSource (JDBC)</a></li><li><a href="jms.html">MOM (JMS)</a></li><li><a href="jpa.html">Persistence (JPA)</a></li><li><a href="ejb.html">EJB</a></li><li><a href="cdi.html">CDI</a></li><li><a href="failover.html">HA/failover and cluster</a></li></ul></li><li><a href="monitoring.html">Monitoring and Management using JMX</a></li><li><a href="webconsole.html">WebConsole</a></li><li><a href="tuning.html">Tuning</a></li></ul><h3 id="DevelopersGuidedevelopersguideindex"><a href="../developers-guide/index.html">Developers Guide</a></h3><ul style="list-style: square"><li><a href="../developers-guide/developer-commands.html">Developer command
s</a></li><li><a href="../developers-guide/scripting.html">Scripting</a></li><li><a href="../developers-guide/connect.html">Programmatically connect</a></li><li><a href="../developers-guide/branding.html">Branding</a></li><li><a href="../developers-guide/extending.html">Extending</a></li><li><a href="../developers-guide/karaf-maven-plugin.html">Karaf Maven plugin</a></li><li><a href="../developers-guide/custom-distribution.html">Custom distribution</a></li><li><a href="../developers-guide/services.html">OSGi services</a></li><li><a href="../developers-guide/creating-bundles.html">Create OSGi bundle</a></li><li><a href="../developers-guide/blueprint.html">Blueprint</a></li><li><a href="../developers-guide/cdi.html">CDI</a></li><li><a href="../developers-guide/archetypes.html">Maven Archetypes</a></li><li><a href="../developers-guide/security-framework.html">Security Framework</a></li><li><a href="../developers-guide/debugging.html">Troubleshooting, Debugging, Profiling</a></li><li><a
href="../developers-guide/writing-tests.html">Integration testing</a></li><li><a href="../developers-guide/github-contributions.html">Github Contributions</a></li></ul><h3 id="Commandscommandscommands"><a href="../commands/commands.html">Commands</a></h3>
+ </div>
+ </div>
+ </div>
+ </div>
+ </td>
+ <td height="100%" width="100%">
+ <div class="wiki-content">
+<h1 id="MonitoringandManagementusingJMX">Monitoring and Management using JMX</h1><p>Apache Karaf provides a complete JMX layer.</p><p>You can remotely connect to a running Apache Karaf instance using any JMX client (like jconsole).</p><p>The Apache Karaf features provide a set of MBeans, dedicating for the monitoring and management.</p><h2 id="Connecting">Connecting</h2><p>Apache Karaf exposes a complete MBean server that you can use remotely.</p><p>The default port number is 1099.</p><p>The JMX URL to use by default is:</p><pre>
+service:jmx:rmi:///jndi/rmi://localhost:1099/karaf-root
+</pre><p>You have to provide an username and password to access to the JMX layer.<br/>The JMX layer user the security framework, and so, by default, it uses the users defined in <tt>etc/users.properties</tt>.</p><p>You can change the port numbers of the JMX layer in the <tt>etc/org.apache.karaf.management.cfg</tt> configuration file.</p><h2 id="Configuration">Configuration</h2><p>The Apache Karaf JMX management layer is configured in the <tt>etc/org.apache.karaf.management.cfg</tt> configuration file:</p><pre>
+################################################################################
+#
+# 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.
+#
+################################################################################
+
+#
+# The properties in this file define the configuration of Apache Karaf's JMX Management
+#
+
+#
+# Port number for RMI registry connection
+#
+rmiRegistryPort = 1099
+
+#
+# Port number for RMI server connection
+#
+rmiServerPort = 44444
+
+#
+# Name of the JAAS realm used for authentication
+#
+jmxRealm = karaf
+
+#
+# The service URL for the JMXConnectorServer
+#
+serviceUrl = service:jmx:rmi://0.0.0.0:${rmiServerPort}/jndi/rmi://0.0.0.0:${rmiRegistryPort}/karaf-${karaf.name}
+
+#
+# Whether any threads started for the JMXConnectorServer should be started as daemon threads
+#
+daemon = true
+
+#
+# Whether the JMXConnectorServer should be started in a separate thread
+#
+threaded = true
+
+#
+# The ObjectName used to register the JMXConnectorServer
+#
+objectName = connector:name=rmi
+
+
+* {{rmiRegistryPort}} property contains the port number of the JMX RMI registry. Default is {{1099}}.
+* {{rmiServerPort}} property contains the port number of the JMX RMI server. Default is {{44444}}.
+* {{jmxRealm}} is the security realm to use as authentication backend. By default it uses the {{karaf}} realm.
+
+h2. MBeans
+
+Apache Karaf provides a bunch of MBeans.
+
+The MBeans object names have the same format:
+
+</pre><p>org.apache.karaf:type=<a href="feature.html">feature</a>,name=<a href="instance.html">instance</a></p><pre>
+
+Installing additional Apache Karaf features and external applications can provide new MBeans.
+
+The following MBeans list is non exhaustive:
+
+* {{org.apache.karaf:type=bundle,name=*}}: management of the OSGi bundles.
+* {{org.apache.karaf:type=config,name=*}}: management of the configurations.
+* {{org.apache.karaf:type=diagnostic,name=*}}: creation of dumps containing the current Apache Karaf activity (used for diagnostic).
+* {{org.apache.karaf:type=feature,name=*}}: management of the Apache Karaf features.
+* {{org.apache.karaf:type=http,name=*}}: management of the HTTP service (provided by the {{http}} feature).
+* {{org.apache.karaf:type=instance,name=*}}: management of the instances.
+* {{org.apache.karaf:type=jdbc,name=*}}: management of the JDBC service (provided by the {{jdbc}} feature).
+* {{org.apache.karaf:type=jms,name=*}}: management of the JMS service (provided by the {{jms}} feature).
+* {{org.apache.karaf:type=jndi,name=*}}: management of the JNDI service (provided by the {{jndi}} feature).
+* {{org.apache.karaf:type=kar,name=*}}: management of the KAR file.
+* {{org.apache.karaf:type=log,name=*}}: management of the log service.
+* {{org.apache.karaf:type=obr,name=*}}: management of the OBR service (provided by the {{obr}} feature).
+* {{org.apache.karaf:type=package,name=*}}: details about packages exported/imported.
+* {{org.apache.karaf:type=service,name=*}}: management of the OSGi services.
+* {{org.apache.karaf:type=system,name=*}}: management of the Apache Karaf container itself (halt, restart, etc).
+* {{org.apache.karaf:type=web,name=*}}: management of WebApplications (provided by the {{war}} feature).
+* {{org.apache.karaf:type=wrapper,name=*}}: management of the service wrapper (provided by the {{wrapper}} feature).
+
+h2. RBAC
+
+Apache Karaf provides a complete Role-Based Access Control to the JMX MBeans and operations.
+
+Whenever a JMX operation is invoked, the roles of the user are checked against the required roles for this operation.
+
+The access lists are defined in configuration file in the {{etc}} folder.
+
+The relevant configuration is prefixed with {{jmx.acl}} and based on the JMX ObjectName that it applies to.
+
+For instance, specific configuration for a MBean with the object name {{foo.bar:type=Test}} can be placed in the
+{{etc/jmx.acl.foo.bar.Test.cfg}} configuration file.
+
+More generic configurations can be placed in the domain (e.g. jmx.acl.foo.bar.cfg) or at the top level (jmx.acl.cfg).
+
+A simple configuration file looks like:
+
+</pre><p> # operation = role<br/> test = admin<br/> getVal = manager, viewer</p><pre>
+
+Apache Karaf looks for required roles using the following process
+.
+The most specific configuration file is tried first. It means that in the previous example, the {{etc/jmx.acl.foo.bar.Test.cfg}} is looked at first.
+In this configuration, Apache Karaf looks for a:
+
+1. Specific match for the invocation, e.g. {{test(int)["17"] = role1}}
+
+2. Regex match for the invocation, e.g. {{test(int)[/[0-9]/] = role2}}
+ In both cases, the passed argument is converted to a String for the comparison.
+ If any of the above match, the search stops and the associated roles are used.
+
+3. Signature match for the invocation, e.g. {{test(int) = role3}}
+ If matched, the search stops and the associated roles are used.
+
+4. Method name match for the invocation, e.g. {{test = role4}}
+ If matched, the search stops and the associated roles are used.
+
+5. A method name wildcard match, e.g. {{te* = role5}}
+ For all the wildcard matches found in the current configuration file, the roles associated with the longest match are used.
+ So if you have te* and * and the method invoked is 'test', then the roles defined with te* are used, not the ones defined with *.
+
+If no matching definition is found, the most specific definition always takes the precedence.
+
+You can find some configuration examples:
+
+* Only a {{manager}} can call GC on the Memory MBean:
+</pre><ol><li>etc/jmx.acl.java.lang.Memory.cfg<p> gc = manager</p><pre>
+
+* Bundles with ID between 0 and 49 can be stopped only by an {{admin}}, other bundles can be stopped by a {{manager}}:
+</pre></li><li>etc/jmx.acl.org.apache.karaf.bundles.cfg<p> stop(java.lang.String)[/(<a href="1-4.html">1-4</a>)?(<a href="0-9]/.html">0-9]/</a> = admin<br/> stop = manager</p><pre>
+
+The {{etc/jmx.acl.cfg}} configuration file contains the global configuration for the invocation on any MBean that
+doesn't have a specific configuration:
+
+</pre></li><li>etc/jmx.acl.cfg<p> list* = viewer<br/> get* = viewer<br/> is* = viewer<br/> set* = admin<br/> * = admin</p><pre>
+
+By default, all "read-only" operations ({{list*}}, {{get*}}, {{is*}}) can be performed by a {{viewer}}, whereas the "read-write" operations can be performed only by an {{admin}}.
+
+The {{org.apache.karaf:type=security,area=jmx}} MBean can be used to check whether the current user can access a certain MBean or invoke a specific operation on it.
+This MBean can be used by management clients (monitoring tools, etc) to decide whether to show certain MBeans or operations to the end user.
+
+h2. JMX-HTTP bridge with Jolokia
+
+It's not always easy to use a JMX client with the RMI protocol.
+
+Some monitoring tools (Nagios, Zabbix, ...) are not native JMX clients.
+
+But most of them can use HTTP.
+
+More over, you may want to write your own application/web application. In that case, HTTP and JSON can be very interesting and easy to remotely manage Apache Karaf.
+
+[Jolokia|http://www.jolokia.org/] can be installed in Apache Karaf as a remote JMX-HTTP bridge.
+
+First, you have to install the {{http}} feature:
+
+</pre><p>karaf@root()> feature:install http</p><pre>
+
+Now, you can install directly the Jolokia bundle:
+
+</pre><p>karaf@root()> bundle:install -s mvn:org.jolokia/jolokia-osgi/1.1.5</p><pre>
+
+By default, Jolokia is listening on the port {{8181}} (see the [WebContainer (JSP/Servlet)|webcontainer] page for details about the HTTP configuration).
+
+If you point a browser on [http://localhost:8181/jolokia] you will see a JSON output like:
+
+</pre><p>{"timestamp":1387552680,"status":200,"request":{"type":"version"},"value":{"protocol":"7.0","agent":"1.1.5","info":{"product":"felix","vendor":"Apache","version":"4.2.1"}}}</p><pre>
+
+You can manipulate the Apache Karaf JMX layer via HTTP and JSON, via system tools (like {{curl}}, {{jmx4perl}}, monitoring tools (supporting HTTP/JSON), or web applications.
+
+For instance, you can send a JSON request to get details about the current Apache Karaf heap memory usage.
+
+The format of the request is:
+
+</pre><p>{<br/> "type":"read",<br/> "mbean":"java.lang:type=Memory",<br/> "attribute":"HeapMemoryUsage",<br/> "path":"used"<br/>}</p><pre>
+
+We can send this JSON request using {{curl}} and get the result:
+
+</pre><p>curl -d "{\"type\":\"read\",\"mbean\":\"java.lang:type=Memory\",\"attribute\":\"HeapMemoryUsage\",\"path\":\"used\"}" http://localhost:8080/jolokia/ && echo ""</p><pre>
+
+You can find details on the [Jolokia website|http://www.jolokia.org] and in the [documentation|http://www.jolokia.org/reference/html/].
+</pre></li></ol>
+ </div>
+ </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">
+ <div id="site-footer">
+ © 2008-2011 The Apache Software Foundation
+ <br/>
+ Apache Karaf, Karaf, Apache, the Apache feather logo, and the Apache Karaf project logo are trademarks of The Apache Software Foundation.
+ </div>
+ </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>
\ No newline at end of file
Added: karaf/site/production/manual/latest-3.0.x/users-guide/obr.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/latest-3.0.x/users-guide/obr.html?rev=1688692&view=auto
==============================================================================
--- karaf/site/production/manual/latest-3.0.x/users-guide/obr.html (added)
+++ karaf/site/production/manual/latest-3.0.x/users-guide/obr.html Wed Jul 1 17:06:42 2015
@@ -0,0 +1,291 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
+<html lang="en">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <meta name="description" content="description goes here"/>
+ <meta name="keywords" content="keywords,goes,here"/>
+ <meta name="author" content="The Apache Karaf Team"/>
+ <link href="../css/style.css" rel="stylesheet" type="text/css"/>
+ <link href="../css/pygmentize.css" rel="stylesheet" type="text/css"/>
+ <title>
+ Apache Karaf 3.0.5-SNAPSHOT Guides
+ </title>
+ </head>
+ <body>
+ <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">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td align="left" class="topbardiv" nowrap="">
+<a href="http://karaf.apache.org/" title="A server side OSGi distribution">
+ <img border="0" src="../images/karaf-logo.png" width="400px"></img>
+</a>
+ </td>
+ <td align="right" nowrap="">
+<a href="http://www.apache.org/" title="The Apache Sofware Foundation">
+ <img border="0" src="../images/asf-logo.png">
+</a>
+ </td>
+ </tr>
+ </table>
+
+ </div>
+ <div id="top-menu">
+ <table border="0" cellpadding="1" cellspacing="0" width="100%">
+ <tr>
+ <td>
+ <div align="left"></div>
+ </td>
+ <td>
+ <div align="right">
+ <p>
+<a href="../index.html" title="Home">Home</a>
+|
+<a href="index.html" title="Users Guide">Users Guide</a>
+|
+<a href="../developers-guide/index.html" title="Developers Guide">Developers Guide</a>
+</p>
+
+
+ </div>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </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">
+ <h3 id="Homeindex"><a href="../index.html">Home</a></h3><ul style="list-style: square"><li><a href="../overview.html">Overview</a></li><li><a href="../quick-start.html">Quick Start</a></li></ul><h3 id="UsersGuideusersguideindex"><a href="index.html">Users Guide</a></h3><ul style="list-style: square"><li><a href="installation.html">Installation</a></li><li><a href="directory-structure.html">Directory structure</a></li><li><a href="start-stop.html">Start, stop, restart, connect</a></li><li><a href="wrapper.html">Integration in the operating system: the Service Wrapper</a></li><li><a href="console.html">Console</a></li><li><a href="remote.html">Remote</a></li><li><a href="log.html">Log</a></li><li><a href="configuration.html">Configuration</a></li><li><a href="urls.html">Artifacts repositories and URLs</a></li><li><a href="provisioning.html">Provisioning and features</a></li><li><a href="deployers.html">Deployers</a></li><li><a href="kar.html">KAR</a></li><li><a
href="instances.html">Instances</a></li><li><a href="security.html">Security</a></li><li><a href="obr.html">OBR</a></li><li><a href="enterprise.html">Enterprise</a><ul><li><a href="webcontainer.html">WebContainer (JSP/Servlet)</a></li><li><a href="jndi.html">Naming (JNDI)</a></li><li><a href="jta.html">Transaction (JTA)</a></li><li><a href="jdbc.html">DataSource (JDBC)</a></li><li><a href="jms.html">MOM (JMS)</a></li><li><a href="jpa.html">Persistence (JPA)</a></li><li><a href="ejb.html">EJB</a></li><li><a href="cdi.html">CDI</a></li><li><a href="failover.html">HA/failover and cluster</a></li></ul></li><li><a href="monitoring.html">Monitoring and Management using JMX</a></li><li><a href="webconsole.html">WebConsole</a></li><li><a href="tuning.html">Tuning</a></li></ul><h3 id="DevelopersGuidedevelopersguideindex"><a href="../developers-guide/index.html">Developers Guide</a></h3><ul style="list-style: square"><li><a href="../developers-guide/developer-commands.html">Developer command
s</a></li><li><a href="../developers-guide/scripting.html">Scripting</a></li><li><a href="../developers-guide/connect.html">Programmatically connect</a></li><li><a href="../developers-guide/branding.html">Branding</a></li><li><a href="../developers-guide/extending.html">Extending</a></li><li><a href="../developers-guide/karaf-maven-plugin.html">Karaf Maven plugin</a></li><li><a href="../developers-guide/custom-distribution.html">Custom distribution</a></li><li><a href="../developers-guide/services.html">OSGi services</a></li><li><a href="../developers-guide/creating-bundles.html">Create OSGi bundle</a></li><li><a href="../developers-guide/blueprint.html">Blueprint</a></li><li><a href="../developers-guide/cdi.html">CDI</a></li><li><a href="../developers-guide/archetypes.html">Maven Archetypes</a></li><li><a href="../developers-guide/security-framework.html">Security Framework</a></li><li><a href="../developers-guide/debugging.html">Troubleshooting, Debugging, Profiling</a></li><li><a
href="../developers-guide/writing-tests.html">Integration testing</a></li><li><a href="../developers-guide/github-contributions.html">Github Contributions</a></li></ul><h3 id="Commandscommandscommands"><a href="../commands/commands.html">Commands</a></h3>
+ </div>
+ </div>
+ </div>
+ </div>
+ </td>
+ <td height="100%" width="100%">
+ <div class="wiki-content">
+<h1 id="OBR">OBR</h1><p>The goal of OBR (OSGi Bundle Repository) is:</p><p>1. to simplify deploying and using bundles<br/>2. to encourage independent bundle development.</p><p>OBR achieves the first goal by providing a service that can automatically install a bundle, with its deployment dependencies,<br/>from a bundle repository. This makes it easier for people to experiment with existing bundles.</p><p>The second goal is achieved by raising the visibility of the available bundles in a repository.</p><p>OBR is an optional Apache Karaf feature. You have to install the <tt>obr</tt> feature to use OBR service:</p><pre>
+karaf@root()> feature:install obr
+</pre><p>The OBR feature turns Apache Karaf as an OBR client. It means that Apache Karaf can use a OBR repository to the installation<br/>of the bundles, and during the installation of the features.</p><p>The installation of the <tt>obr</tt> feature adds in Apache Karaf:</p><ul><li>the OBR service</li><li>the features OBR resolver</li><li>the <tt>obr:*</tt> commands</li><li>the JMX ObrMBean</li></ul><p>The OBR repository contains all bundles. The OBR service knows all requirements and capabilities of each bundle on an<br/>OBR repository (it's the OBR metadata).</p><p>Thanks to that, when you install ("deploy" in OBR wording) a bundle using the OBR service, it looks for all bundles<br/>providing the capabilities matching the bundle requirements.<br/>It will automatically install the bundles needed for the bundle.</p><h2 id="FeaturesOBRresolver">Features OBR resolver</h2><p>If the feature specifies <tt>obr</tt> in the <tt>resolver</tt> attribute, Apache Karaf can use the OBR service t
o construct the list<br/>of bundles to install with the features.</p><p>The feature default resolver just consider the bundles described in the feature itself.</p><p>Using the OBR resolver, Apache Karaf can extend the bundle list at the feature installation time using the OBR service.</p><h2 id="Commands">Commands</h2><h3 id="obrurladd"><tt>obr:url-add</tt></h3><p>The <tt>obr:url-add</tt> command registers the OBR repository at a given URL in the OBR service.</p><p>Basically, an OBR repository is described by a <tt>repository.xml</tt> file.</p><p>The <tt>obr:url-add</tt> command expects an <tt>url</tt> argument. The <tt>url</tt> argument is the URL to the OBR repository <tt>repository.xml</tt> file.<br/>Any URL described in the <a href="urls.html">Artifacts repositories and URLs section</a> is supported.</p><p>For instance:</p><pre>
+karaf@root()> obr:url-add file:///user/.m2/repository/repository.xml
+</pre><h3 id="obrurllist"><tt>obr:url-list</tt></h3><p>The <tt>obr:url-list</tt> command lists the OBR repository (with URL) registered in the OBR service:</p><pre>
+karaf@root()> obr:url-list
+Index | OBR URL
+---------------------------------------------------------
+0 | file:/user/.m2/repository/repository.xml
+</pre><h3 id="obrurlrefresh"><tt>obr:url-refresh</tt></h3><p>The <tt>obr:url-refresh</tt> command refresh an OBR repository (reloading the URL).</p><p>The OBR service doesn't take "on the fly" the changes performed on an OBR repository <tt>repository.xml</tt>. You have to<br/>reload the <tt>repository.xml</tt> URL to take the changes. It's the purpose of the <tt>obr:url-refresh</tt> command.</p><p>Without argument, the <tt>obr:url-refresh</tt> command refreshes all repositories:</p><pre>
+karaf@root()> obr:url-refresh
+</pre><p>You can refresh only one repository by specifying the URL as argument:</p><pre>
+karaf@root()> obr:url-refresh file:/user/.m2/repository/repository.xml
+</pre><p>Instead of using the URL, you can use the repository index as displayed by the <tt>obr:url-list</tt> command.<br/>To do so, you have to use the <tt>-i</tt> option:</p><pre>
+karaf@root()> obr:url-refresh -i 0
+</pre><h3 id="obrurlremove"><tt>obr:url-remove</tt></h3><p>The <tt>obr:url-remove</tt> command removes an OBR repository from the OBR service.</p><p>The <tt>obr:url-remove</tt> command expects the repository URL as argument:</p><pre>
+karaf@root()> obr:url-remove file:/user/.m2/repository/repository.xml
+</pre><p>Instead of using the URL, you can use the repository index as displayed by the <tt>obr:url-list</tt> command.<br/>To do so, you have to use the <tt>-i</tt> option:</p><pre>
+karaf@root()> obr:url-remove -i 0
+</pre><h3 id="obrlist"><tt>obr:list</tt></h3><p>The <tt>obr:list</tt> command lists all bundles available on the registered OBR repositories:</p><pre>
+karaf@root()> obr:list|more
+Name | Symbolic Name | Version
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+activemq-blueprint | org.apache.activemq.activemq-blueprint | 5.10.0.SNAPSHOT
+activemq-camel | org.apache.activemq.activemq-camel | 5.10.0.SNAPSHOT
+activemq-karaf | activemq-karaf | 5.10.0.SNAPSHOT
+activemq-osgi | org.apache.activemq.activemq-osgi | 5.10.0.SNAPSHOT
+Apache Aries Application API | org.apache.aries.application.api | 1.0.1.SNAPSHOT
+...
+</pre><h3 id="obrinfo"><tt>obr:info</tt></h3><p>The <tt>obr:info</tt> command displays the details about bundles available on the OBR service. Especially, it provides details about<br/>capabilities and requirements of bundles.</p><p>The <tt>obr:info</tt> command expects a bundle symbolic name as argument:</p><pre>
+karaf@root()> obr:info org.apache.karaf.wrapper.core
+-------------------------------
+Apache Karaf :: Wrapper :: Core
+-------------------------------
+id: org.apache.karaf.wrapper.core/3.0.0
+description: Core implementation and integration of the Java Service Wrapper. It provides a complete integration of Karaf with your Operating System.
+documentation: http://www.apache.org/
+symbolicname: org.apache.karaf.wrapper.core
+presentationname: Apache Karaf :: Wrapper :: Core
+license: http://www.apache.org/licenses/LICENSE-2.0.txt
+uri: file:/user/.m2/repository/org/apache/karaf/wrapper/org.apache.karaf.wrapper.core/3.0.0/org.apache.karaf.wrapper.core-3.0.0.jar
+size: 1281352
+version: 3.0.0
+Requires:
+ service:(&(service=org.apache.aries.blueprint.NamespaceHandler)(osgi.service.blueprint.namespace=http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0))
+ package:(&(package=javax.management))
+ package:(&(package=org.apache.karaf.wrapper))
+ package:(&(package=org.apache.karaf.wrapper.management))
+ package:(&(package=org.fusesource.jansi)(version>=1.11.0)(!(version>=2.0.0)))
+ package:(&(package=org.osgi.framework)(version>=1.7.0)(!(version>=2.0.0)))
+ package:(&(package=org.osgi.framework.launch)(version>=1.1.0)(!(version>=2.0.0)))
+ package:(&(package=org.osgi.framework.startlevel)(version>=1.0.0)(!(version>=2.0.0)))
+ package:(&(package=org.osgi.service.blueprint)(version>=1.0.0)(!(version>=2.0.0)))
+ package:(&(package=org.slf4j)(version>=1.7.0)(!(version>=2.0.0)))
+Capabilities:
+ bundle:{manifestversion=2, symbolicname=org.apache.karaf.wrapper.core, presentationname=Apache Karaf :: Wrapper :: Core, version=3.0.0}
+ service:{service=org.apache.karaf.wrapper.WrapperService}
+ package:{package=org.apache.karaf.wrapper, version=3.0.0}
+ package:{package=org.apache.karaf.wrapper.management, uses:=javax.management, version=3.0.0}
+</pre><p>The <tt>obr:info</tt> command uses the following syntax to identify the bundles: <tt>symbolic_name,version</tt> where <tt>version</tt> is optional.<br/>It means that you have to use the following command to see the info about the wrapper core bundle with version 3.0.0:</p><pre>
+karaf@root()> obr:info org.apache.karaf.wrapper.core,3.0.0
+...
+</pre><p>You can specific multiple bundles separated by space:</p><pre>
+karaf@root()> obr:info org.apache.karaf.wrapper.core,3.0.0 org.apache.karaf.wrapper.command,3.0.0
+...
+</pre><h3 id="obrsource"><tt>obr:source</tt></h3><p>In addition of the bundles executable, the OBR service can also store the bundles sources.</p><p>The <tt>obr:source</tt> command check the source URL in the OBR metadata for a given bundle, and download the sources on a target folder:</p><pre>
+karaf@root()> obr:source /tmp org.apache.karaf.wrapper.core
+</pre><p>The <tt>obr:source</tt> command uses the following syntax to identify the bundles: <tt>symbolic_name,version</tt> where <tt>version</tt> is optional.<br/>It means that you have to use the following command to download the source of wrapper core bundle with version 3.0.0:</p><pre>
+karaf@root()> obr:source /tmp org.apache.karaf.wrapper.core,3.0.0
+</pre><p>You can specify multiple bundles separated by space:</p><pre>
+karaf@root()> obr:source /tmp org.apache.karaf.wrapper.core,3.0.0 org.apache.karaf.wrapper.command,3.0.0
+...
+</pre><h3 id="obrresolve"><tt>obr:resolve</tt></h3><p>The <tt>obr:resolve</tt> command displays the resolution output for a given set of requirements. Actually, it show the bundles providing<br/>the capabilities to match the requirements. It's what the OBR service does when executing <tt>obr:deploy</tt>.</p><p>Optionally, the <tt>obr:resolve</tt> command can deploy the bundles as the <tt>obr:deploy</tt> command does.</p><p>For instance, to know the OBR bundle resolving the <tt>org.apache.karaf.wrapper</tt> package requirement, you can do:</p><pre>
+karaf@root()> obr:resolve package=org.apache.karaf.wrapper
+Required resource(s):
+---------------------
+ Apache Karaf :: Wrapper :: Core (3.0.0)
+</pre><h3 id="obrfind"><tt>obr:find</tt></h3><p>The <tt>obr:find</tt> command is similar to the <tt>obr:resolve</tt> one. It displays the bundles resolving the provided requirements, with details.</p><p>For instance, to find the OBR bundle providing the <tt>org.apache.karaf.wrapper</tt> package, you can do:</p><pre>
+karaf@root()> obr:find package=org.apache.karaf.wrapper
+-------------------------------
+Apache Karaf :: Wrapper :: Core
+-------------------------------
+id: org.apache.karaf.wrapper.core/3.0.0
+description: Core implementation and integration of the Java Service Wrapper. It provides a complete integration of Karaf with your Operating System.
+documentation: http://www.apache.org/
+symbolicname: org.apache.karaf.wrapper.core
+presentationname: Apache Karaf :: Wrapper :: Core
+license: http://www.apache.org/licenses/LICENSE-2.0.txt
+uri: file:/user/.m2/repository/org/apache/karaf/wrapper/org.apache.karaf.wrapper.core/3.0.0/org.apache.karaf.wrapper.core-3.0.0.jar
+size: 1281352
+version: 3.0.0
+Requirements:
+ service:(&(service=org.apache.aries.blueprint.NamespaceHandler)(osgi.service.blueprint.namespace=http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0))
+ package:(&(package=javax.management))
+ package:(&(package=org.apache.karaf.wrapper))
+ package:(&(package=org.apache.karaf.wrapper.management))
+ package:(&(package=org.fusesource.jansi)(version>=1.11.0)(!(version>=2.0.0)))
+ package:(&(package=org.osgi.framework)(version>=1.7.0)(!(version>=2.0.0)))
+ package:(&(package=org.osgi.framework.launch)(version>=1.1.0)(!(version>=2.0.0)))
+ package:(&(package=org.osgi.framework.startlevel)(version>=1.0.0)(!(version>=2.0.0)))
+ package:(&(package=org.osgi.service.blueprint)(version>=1.0.0)(!(version>=2.0.0)))
+ package:(&(package=org.slf4j)(version>=1.7.0)(!(version>=2.0.0)))
+Capabilities:
+ bundle:{manifestversion=2, symbolicname=org.apache.karaf.wrapper.core, presentationname=Apache Karaf :: Wrapper :: Core, version=3.0.0}
+ service:{service=org.apache.karaf.wrapper.WrapperService}
+ package:{package=org.apache.karaf.wrapper, version=3.0.0}
+ package:{package=org.apache.karaf.wrapper.management, uses:=javax.management, version=3.0.0}
+</pre><h3 id="obrdeploy"><tt>obr:deploy</tt></h3><p>The <tt>obr:deploy</tt> command installs a bundle from the OBR repository, including all bundles required to satisfy the bundle requirements.</p><pre>
+karaf@root()> obr:deploy org.ops4j.pax.web.samples.helloworld-hs
+Target resource(s):
+-------------------
+ OPS4J Pax Web - Samples - Hello World - HttpService (4.0.0.SNAPSHOT)
+
+Required resource(s):
+---------------------
+ Apache ServiceMix :: Specs :: Activation API 1.4 (2.3.0.SNAPSHOT)
+ OPS4J Pax Web - Jetty Bundle (4.0.0.SNAPSHOT)
+
+Deploying...done.
+</pre><p>By default, the bundles are just installed, not started. You can use the <tt>-s</tt> option to start the bundles.</p><p>The <tt>obr:deploy</tt> command uses the following syntax to identify the bundles: <tt>symbolic_name,version</tt> where <tt>version</tt> is optional.<br/>It means that you have to use the following command to deploy the wrapper core bundle with version 3.0.0:</p><pre>
+karaf@root()> obr:deploy org.apache.karaf.wrapper.core,3.0.0
+</pre><p>You can specify multiple bundles separated by space:</p><pre>
+karaf@root()> obr:deploy org.apache.karaf.wrapper.core,3.0.0 org.apache.karaf.wrapper.command,3.0.0
+...
+</pre><h2 id="obrstart"><tt>obr:start</tt></h2><p>The <tt>obr:start</tt> command does the same as <tt>obr:deploy -s</tt> command. It installs the bundle (and all required bundles to<br/>satisfy the requirements) and starts all installed bundles.</p><pre>
+karaf@root()> obr:start org.ops4j.pax.web.samples.helloworld-hs
+Target resource(s):
+-------------------
+ OPS4J Pax Web - Samples - Hello World - HttpService (4.0.0.SNAPSHOT)
+
+Required resource(s):
+---------------------
+ Apache ServiceMix :: Specs :: Activation API 1.4 (2.3.0.SNAPSHOT)
+ OPS4J Pax Web - Jetty Bundle (4.0.0.SNAPSHOT)
+
+Deploying...done.
+</pre><p>The <tt>obr:start</tt> command uses the following syntax to identify the bundles: <tt>symbolic_name,version</tt> where <tt>version</tt> is optional.<br/>It means that you have to use the following command to deploy and start the wrapper core bundle with version 3.0.0:</p><pre>
+karaf@root()> obr:start org.apache.karaf.wrapper.core,3.0.0
+</pre><p>You can specify multiple bundles separated by space:</p><pre>
+karaf@root()> obr:start org.apache.karaf.wrapper.core,3.0.0 org.apache.karaf.wrapper.command,3.0.0
+...
+</pre><h2 id="JMXObrMBean">JMX ObrMBean</h2><p>On the JMX layer, Apache Karaf provides a MBean dedicated to the management of the OBR service: the ObrMBean.</p><p>The ObjectName to use is <tt>org.apache.karaf:type=obr,name=*</tt>.</p><h3 id="Attributes">Attributes</h3><p>The <tt>Urls</tt> attribute provides the list of registered OBR repositories URLs.</p><p>The <tt>Bundles</tt> attribute provides a tabular data containing all bundles available on the registered OBR repositories.</p><h3 id="Operations">Operations</h3><ul><li><tt>addUrl(url)</tt> registers the OBR repository using the <tt>url</tt> to the <tt>repository.xml</tt>.</li><li><tt>removeUrl(url)</tt> removes the OBR repository at the given <tt>url</tt>.</li><li><tt>refreshUrl(url)</tt> refreshes the OBR repository at the given <tt>url</tt>.</li><li><tt>deployBundle(name)</tt> deploys a bundle (and all bundles required to satisfy the requirements) using the OBR service. The bundles are not automatically started.</li><li><tt>
deployBundle(name, start, deployOptional)</tt> deploys a bundle (and all bundles required to satisfy the requirements) using the OBR service.<p> If <tt>start</tt> is <tt>true</tt>, the bundles are automatically started. If <tt>deployOptional</tt> is <tt>true</tt>, even the optional requirements will be resolved<br/> by the OBR service (meaning installing more bundles to satisfy the optional requirements).</p><p>The name to identify a bundle uses the following syntax: <tt>symbolic_name,version</tt> where version is optional.</p><h2 id="ApacheKarafCave">Apache Karaf Cave</h2><p>In addition of being an OBR client, Apache Karaf can act as an OBR repositories server, thanks to Apache Karaf Cave.</p><p>See the <a href="http://karaf.apache.org/index/subprojects/cave.html">Apache Karaf Cave sub-project</a> for details.</p></li></ul>
+ </div>
+ </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">
+ <div id="site-footer">
+ © 2008-2011 The Apache Software Foundation
+ <br/>
+ Apache Karaf, Karaf, Apache, the Apache feather logo, and the Apache Karaf project logo are trademarks of The Apache Software Foundation.
+ </div>
+ </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>
\ No newline at end of file