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 2014/01/21 13:00:09 UTC

svn commit: r1559992 - in /karaf/site/production/manual/cellar/latest: ./ architecture-guide/ images/ user-guide/

Author: jbonofre
Date: Tue Jan 21 12:00:08 2014
New Revision: 1559992

URL: http://svn.apache.org/r1559992
Log:
[scm-publish] Updating main site with Karaf Cellar manual

Added:
    karaf/site/production/manual/cellar/latest/architecture-guide/
    karaf/site/production/manual/cellar/latest/architecture-guide/broadcasting_commands.html
    karaf/site/production/manual/cellar/latest/architecture-guide/design.html
    karaf/site/production/manual/cellar/latest/architecture-guide/hazelcast.html
    karaf/site/production/manual/cellar/latest/architecture-guide/index.html
    karaf/site/production/manual/cellar/latest/architecture-guide/overview.html
    karaf/site/production/manual/cellar/latest/architecture-guide/supported_events.html
    karaf/site/production/manual/cellar/latest/images/
    karaf/site/production/manual/cellar/latest/images/architecture.jpg   (with props)
    karaf/site/production/manual/cellar/latest/images/cross_topology.jpg   (with props)
    karaf/site/production/manual/cellar/latest/images/event_flow.jpg   (with props)
    karaf/site/production/manual/cellar/latest/images/shared_architecture.jpg   (with props)
    karaf/site/production/manual/cellar/latest/images/star_topology.jpg   (with props)
    karaf/site/production/manual/cellar/latest/index.html
    karaf/site/production/manual/cellar/latest/overview.html
    karaf/site/production/manual/cellar/latest/user-guide/
    karaf/site/production/manual/cellar/latest/user-guide/cloud.html
    karaf/site/production/manual/cellar/latest/user-guide/deploy.html
    karaf/site/production/manual/cellar/latest/user-guide/event.html
    karaf/site/production/manual/cellar/latest/user-guide/groups.html
    karaf/site/production/manual/cellar/latest/user-guide/index.html
    karaf/site/production/manual/cellar/latest/user-guide/installation.html
    karaf/site/production/manual/cellar/latest/user-guide/introduction.html
    karaf/site/production/manual/cellar/latest/user-guide/nodes.html
    karaf/site/production/manual/cellar/latest/user-guide/obr.html
    karaf/site/production/manual/cellar/latest/user-guide/services_registries.html
    karaf/site/production/manual/cellar/latest/user-guide/transport.html

Added: karaf/site/production/manual/cellar/latest/architecture-guide/broadcasting_commands.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/architecture-guide/broadcasting_commands.html?rev=1559992&view=auto
==============================================================================
--- karaf/site/production/manual/cellar/latest/architecture-guide/broadcasting_commands.html (added)
+++ karaf/site/production/manual/cellar/latest/architecture-guide/broadcasting_commands.html Tue Jan 21 12:00:08 2014
@@ -0,0 +1,56 @@
+<!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 Cellar 2.3.3-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+              <h1 id="Broadcastingcommands">Broadcasting commands</h1><p>Commands are a special kind of events. They imply that when they are handled, a Result event will be fired<br/>containing the outcome of the command. For each command, we have one result per recipient. Each command<br/>contains an unique id (unique for all cluster nodes, created from Hazelcast). This id is used to correlate<br/>the request with the result. For each result successfully correlated the result is added to list of results<br/>on the command object. If the list gets full or if 10 seconds from the command execution have elapsed, the<br/>list is moved to a blocking queue from which the result can be retrieved.</p><p>The following code snippet shows what happens when a command is sent for execution:</p><pre>
+public Map&lt;node,result> execute(Command command) throws Exception {  
+   if (command == null) {  
+      throw new Exception("Command store not found");  
+   } else {  
+      //store the command to correlate it with the result.  
+      commandStore.getPending().put(command.getId(), command);  
+      //I create a timeout task and schedule it  
+      TimeoutTask timeoutTask = new TimeoutTask(command, commandStore);  
+      ScheduledFuture timeoutFuture = timeoutScheduler.schedule(timeoutTask, command.getTimeout(), TimeUnit.MILLISECONDS);  
+   }  
+   if (producer != null) {  
+      //send the command to the topic  
+      producer.produce(command);  
+      //retrieve the result list from the blocking queue.  
+      return command.getResult();  
+   }  
+   throw new Exception("Command producer not found");  
+}  
+</pre>
\ No newline at end of file

Added: karaf/site/production/manual/cellar/latest/architecture-guide/design.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/architecture-guide/design.html?rev=1559992&view=auto
==============================================================================
--- karaf/site/production/manual/cellar/latest/architecture-guide/design.html (added)
+++ karaf/site/production/manual/cellar/latest/architecture-guide/design.html Tue Jan 21 12:00:08 2014
@@ -0,0 +1,37 @@
+<!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 Cellar 2.3.3-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+              <h1 id="Design">Design</h1><p>The design works with the following entities:</p><ul><li><strong>OSGi Listener</strong> An interface which implements a listener for specific OSGi events (e.g. ConfigurationListener).</li><li><strong>Event</strong> The object that contains all the required information required to describe the event (e.g. PID changed).</li><li><strong>Event Topic</strong> The distributed topic used to broadcast events. It is common for all event types.</li><li><strong>Shared Map</strong> The distributed collection that serves as shared resource. We use one per event type.</li><li><strong>Event Handler</strong> The processor which processes remote events received through the topic.</li><li><strong>Event Dispatcher</strong> The unit which decides which event should be processed by which event handlers.</li><li><strong>Command</strong> A special type of event that is linked to a list of events that represent the outcome of the command.</li><li><strong>Result</
 strong> A special type of event that represents the outcome of a command. Commands and results are correlated.</li></ul><p><img border="0" src="../images/event_flow.jpg"/></p><p>The OSGi specification uses the Events and Listener paradigm in many situations (e.g. ConfigurationChangeEvent<br/>and ConfigurationListener). By implementing such Listener and exposing it as an OSGi service to the Service<br/>Registry, we can be sure that we are "listening" for the events that we are interested in.</p><p>When the listener is notified of an event, it forwards the Event object to a Hazelcast distributed topic. To keep<br/>things as simple as possible, we keep a single topic for all event types. Each node has a listener<br/>registered on that topic and gets/sends all events to the event dispatcher.</p><p>When the Event Dispatcher receives an event, it looks up an internal registry (in our case the OSGi Service Registry)<br/>to find an Event Handler that can handle the received Event. The handl
 er found receives the event and processes it.</p>
\ No newline at end of file

Added: karaf/site/production/manual/cellar/latest/architecture-guide/hazelcast.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/architecture-guide/hazelcast.html?rev=1559992&view=auto
==============================================================================
--- karaf/site/production/manual/cellar/latest/architecture-guide/hazelcast.html (added)
+++ karaf/site/production/manual/cellar/latest/architecture-guide/hazelcast.html Tue Jan 21 12:00:08 2014
@@ -0,0 +1,37 @@
+<!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 Cellar 2.3.3-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+              <h1 id="TheroleofHazelcast">The role of Hazelcast</h1><p>The idea behind the clustering engine is that for each unit that we want to replicate, we create an event,<br/>broadcast the event to the cluster and hold the unit state to a shared resource, so that the rest of the<br/>nodes can look up and retrieve the changes.</p><p><img border="0" src="../images/shared_architecture.jpg"/></p><p>For instance, we want all nodes in our cluster to share configuration for PIDs a.b.c and x.y.z. On node<br/>"Karaf A" a change occurs on a.b.c. "Karaf A" updated the shared repository data for a.b.c and then notifies<br/>the rest of the nodes that a.b.c has changed. Each node looks up the shared repository and retrieves changes.</p><p>The architecture as described so far could be implemented using a database/shared filesystem as a shared<br/>resource and polling instead of multicasting events. So why use Hazelcast ?</p><p>Hazelcast fits in perfectly because it offers:</p><ul><li>Auto d
 iscovery<ul><li>Cluster nodes can discover each other automatically.</li><li>No configuration is required.</li></ul></li><li>No single point of failure<ul><li>No server or master is required for clustering</li><li>The shared resource is distributed, hence we introduce no single point of failure.</li></ul></li><li>Provides distributed topics<ul><li>Using in memory distributed topics allows us to broadcast events/commands which are valuable for management and monitoring.</li></ul></li></ul><p>In other words, Hazelcast allows us to setup a cluster with zero configuration and no dependency to external<br/>systems such as a database or a shared file system.</p><p>See the Hazelcast documentation at http://www.hazelcast.com/documentation.jsp for more information.</p>
\ No newline at end of file

Added: karaf/site/production/manual/cellar/latest/architecture-guide/index.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/architecture-guide/index.html?rev=1559992&view=auto
==============================================================================
--- karaf/site/production/manual/cellar/latest/architecture-guide/index.html (added)
+++ karaf/site/production/manual/cellar/latest/architecture-guide/index.html Tue Jan 21 12:00:08 2014
@@ -0,0 +1,37 @@
+<!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 Cellar 2.3.3-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+              <h1 id="KarafCellarArchitectureGuide">Karaf Cellar Architecture Guide</h1><ul><li><a href="overview.html">Overview</a></li><li><a href="supported_events.html">Supported Events</a></li><li><a href="hazelcast.html">Why Hazelcast ?</a></li><li><a href="design.html">Cellar Design</a></li><li><a href="broadcasting_commands.html">Broadcasting Commands</a></li></ul>
\ No newline at end of file

Added: karaf/site/production/manual/cellar/latest/architecture-guide/overview.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/architecture-guide/overview.html?rev=1559992&view=auto
==============================================================================
--- karaf/site/production/manual/cellar/latest/architecture-guide/overview.html (added)
+++ karaf/site/production/manual/cellar/latest/architecture-guide/overview.html Tue Jan 21 12:00:08 2014
@@ -0,0 +1,37 @@
+<!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 Cellar 2.3.3-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+              <h1 id="ArchitectureOverview">Architecture Overview</h1><p>The core concept behind Karaf Cellar is that each node can be a part of one or more groups that<br/>provide the node distributed memory for keeping data (e.g. configuration, features information, other)<br/>and a topic which is used to exchange events with the rest of the group nodes.</p><p><img border="0" src="../images/architecture.png"/></p><p>Each group comes with a configuration, which defines which events are to be broadcast and which are<br/>not. Whenever a local change occurs to a node, the node will read the setup information of all the<br/>groups that it belongs to and broadcasts the event to the groups that whitelisted to the specific event.</p><p>The broadcast operation happens via a distributed topic provided by the group. For the groups<br/>that the broadcast reaches, the distributed configuration data will be updated so that nodes<br/>that join in the future can pickup the change.</p>
\ No newline at end of file

Added: karaf/site/production/manual/cellar/latest/architecture-guide/supported_events.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/architecture-guide/supported_events.html?rev=1559992&view=auto
==============================================================================
--- karaf/site/production/manual/cellar/latest/architecture-guide/supported_events.html (added)
+++ karaf/site/production/manual/cellar/latest/architecture-guide/supported_events.html Tue Jan 21 12:00:08 2014
@@ -0,0 +1,37 @@
+<!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 Cellar 2.3.3-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+              <h1 id="SupportedEvents">Supported Events</h1><p>There are 3 types of events:</p><ul><li>Configuration change event.</li><li>Features repository added/removed event.</li><li>Features installed/uninstalled event.</li></ul><p>For each of the event types above a group may be configured to enabled synchronization, and to provide<br/>a whitelist/blacklist of specific event IDs.</p><p>For instance, the default group is configured to allow synchronization of configuration. This means that<br/>whenever a change occurs via the config admin to a specific PID, the change will pass to the distributed<br/>memory of the default group and will also be broadcasted to all other default group nodes using the topic.</p><p>This happens for all PIDs but not for org.apache.karaf.cellar.node which is marked as blacklisted<br/>and will never be written or read from the distributed memory, nor will be broardcasted via the topic.</p><p>The user can add/remove any PID he wishes to the whitelist/
 blacklist.</p>
\ No newline at end of file

Added: karaf/site/production/manual/cellar/latest/images/architecture.jpg
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/images/architecture.jpg?rev=1559992&view=auto
==============================================================================
Binary file - no diff available.

Propchange: karaf/site/production/manual/cellar/latest/images/architecture.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: karaf/site/production/manual/cellar/latest/images/cross_topology.jpg
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/images/cross_topology.jpg?rev=1559992&view=auto
==============================================================================
Binary file - no diff available.

Propchange: karaf/site/production/manual/cellar/latest/images/cross_topology.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: karaf/site/production/manual/cellar/latest/images/event_flow.jpg
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/images/event_flow.jpg?rev=1559992&view=auto
==============================================================================
Binary file - no diff available.

Propchange: karaf/site/production/manual/cellar/latest/images/event_flow.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: karaf/site/production/manual/cellar/latest/images/shared_architecture.jpg
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/images/shared_architecture.jpg?rev=1559992&view=auto
==============================================================================
Binary file - no diff available.

Propchange: karaf/site/production/manual/cellar/latest/images/shared_architecture.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: karaf/site/production/manual/cellar/latest/images/star_topology.jpg
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/images/star_topology.jpg?rev=1559992&view=auto
==============================================================================
Binary file - no diff available.

Propchange: karaf/site/production/manual/cellar/latest/images/star_topology.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: karaf/site/production/manual/cellar/latest/index.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/index.html?rev=1559992&view=auto
==============================================================================
--- karaf/site/production/manual/cellar/latest/index.html (added)
+++ karaf/site/production/manual/cellar/latest/index.html Tue Jan 21 12:00:08 2014
@@ -0,0 +1,37 @@
+<!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 Cellar 2.3.3-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+              <h1 id="ApacheKarafCellar">Apache Karaf Cellar</h1><p>This project contains documentation about Apache Karaf Cellar.</p><ul><li><a href="architecture-guide/overview.html">Overview</a></li><li><a href="user-guide/index.html">User Guide</a></li><li><a href="architecture-guide/index.html">Architecture Guide</a></li></ul>
\ No newline at end of file

Added: karaf/site/production/manual/cellar/latest/overview.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/overview.html?rev=1559992&view=auto
==============================================================================
--- karaf/site/production/manual/cellar/latest/overview.html (added)
+++ karaf/site/production/manual/cellar/latest/overview.html Tue Jan 21 12:00:08 2014
@@ -0,0 +1,37 @@
+<!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 Cellar 2.3.3-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+              <h1 id="KarafCellarOverview">Karaf Cellar Overview</h1><p>Apache Karaf Cellar is a Apache Karaf sub-project which provides clustering support between Karaf instances.</p><p>Cellar allows you to manage a cluster of several Karaf instances, providing synchronization between instances.</p><p>Here is a short list of Cellar features:</p><ul><li><strong>Discovery</strong>: when you install Cellar into a Karaf instance, it automatically tries to join the cluster of other Cellar -running Karaf instances it discovers. There is no configuration required to join the cluster, the discovery is made behind the scenes, which multicast or unicast used for discovery.</li><li><strong>Cluster Group</strong>: a Karaf node can be part of one or more cluster groups. In Cellar, you can define cluster groups per your requirements. Resources will be sync'ed between nodes of the same group.</li><li><strong>Distributed Configuration Admin</strong>: Cellar distributes configuration data, both of 
 Cellar-specific and Karaf etc/*.cfg configuration files. The distribution is event driven and filtered by group. You can tune the configuration replication using blacklists/whitelists on the configuration ID (PID).</li><li><strong>Distributed Features Service</strong>: Cellar distributes the features and features repository information, also an event-driven process.</li><li><strong>Provisioning</strong>: Cellar provides shell commands for basic provisioning. It can also use an OBR backend or another provisioning tool such as Apache ACE.</li></ul>
\ No newline at end of file

Added: karaf/site/production/manual/cellar/latest/user-guide/cloud.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/user-guide/cloud.html?rev=1559992&view=auto
==============================================================================
--- karaf/site/production/manual/cellar/latest/user-guide/cloud.html (added)
+++ karaf/site/production/manual/cellar/latest/user-guide/cloud.html Tue Jan 21 12:00:08 2014
@@ -0,0 +1,39 @@
+<!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 Cellar 2.3.3-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+              <h1 id="Cellarclouddiscovery">Cellar cloud discovery</h1><p>Cellar relies on Hazelcast in order to discover cluster nodes. This can happen either by using multicast or by unicast (specifying the ip address of each node).<br/>Unfortunately multicast is not allowed in most IaaS providers and specifying the all the ip addresses is not very flexible, since in most cases they are not known in advance.</p><p>Cellar solves this problem using a cloud discovery service powered by jclouds.</p><h2 id="Clouddiscoveryservice">Cloud discovery service</h2><p>Most cloud providers among other provide cloud storage. Cellar uses the cloud storage via jclouds, in order to put there the ip addresses of each node so that Hazelcast can found them.<br/>This approach is also called blackboard and in other words is the process where each nodes registers itself in a common storage, so that other nodes know its existence.</p><h2 id="InstallingCellarclouddiscoveryservice">Installing Cellar cloud d
 iscovery service</h2><p>To install the cloud discovery service simply the appropriate jclouds provider and then install cellar-cloud feature. For the rest of this manual I will use amazon s3 as an example, but it applies to any provider supported by jclouds.</p><pre>
+features:install cellar-cloud
+</pre><p>Once the feature is installed, it requires you to create a configuration that contains credentials and type of the cloud storage (aka blobstore).<br/>To do that add a configuration file under etc with the name org.apache.karaf.cellar.cloud-&lt;provider>.cfg and put there the following information:</p><p>provider=aws-s3 (this varries according to the blobstore provider)<br/>identity=&lt;the identity of the blobstore account><br/>credential=&lt;the credential/password of the blobstore account)<br/>container=&lt;the name of the bucket><br/>validity=&lt;the amount of time an entry is considered valid, after that time the entry is removed></p><p>After creating the file the service will check for new nodes. If new nodes are found the Hazelcast instance configuration is updated and the instance is restarted.</p>
\ No newline at end of file

Added: karaf/site/production/manual/cellar/latest/user-guide/deploy.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/user-guide/deploy.html?rev=1559992&view=auto
==============================================================================
--- karaf/site/production/manual/cellar/latest/user-guide/deploy.html (added)
+++ karaf/site/production/manual/cellar/latest/user-guide/deploy.html Tue Jan 21 12:00:08 2014
@@ -0,0 +1,73 @@
+<!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 Cellar 2.3.3-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+              <h1 id="DeployCellar">Deploy Cellar</h1><p>This chapter describes how to deploy and start Cellar into a running Apache Karaf instance. This chapter<br/>assumes that you already know Apache Karaf basics, especially the notion of features and shell usage.</p><h2 id="RegisteringCellarfeatures">Registering Cellar features</h2><p>Karaf Cellar is provided as a Karaf features XML descriptor.</p><p>Simply register the Cellar feature URL in your Karaf instance:</p><pre>
+karaf@root> features:addurl mvn:org.apache.karaf.cellar/apache-karaf-cellar/2.3.2/xml/features
+</pre><p>Now you have Cellar features available in your Karaf instance:</p><pre>
+karaf@node1> features:list|grep -i cellar
+[uninstalled] [2.3.2          ] cellar-core                   karaf-cellar-2.3.2 Karaf clustering core
+[uninstalled] [2.5            ] hazelcast                     karaf-cellar-2.3.2 In memory data grid
+[uninstalled] [2.3.2          ] cellar-hazelcast              karaf-cellar-2.3.2 Cellar implementation based on Hazelcast
+[uninstalled] [2.3.2          ] cellar-config                 karaf-cellar-2.3.2 ConfigAdmin cluster support
+[uninstalled] [2.3.2          ] cellar-features               karaf-cellar-2.3.2 Karaf features cluster support
+[uninstalled] [2.3.2          ] cellar-bundle                 karaf-cellar-2.3.2 Bundle cluster support
+[uninstalled] [2.3.2          ] cellar-shell                  karaf-cellar-2.3.2 Cellar shell commands
+[uninstalled] [2.3.2          ] cellar-management             karaf-cellar-2.3.2 Cellar management
+[uninstalled] [2.3.2          ] cellar                        karaf-cellar-2.3.2 Karaf clustering
+[uninstalled] [2.3.2          ] cellar-dosgi                  karaf-cellar-2.3.2 DOSGi support
+[uninstalled] [2.3.2          ] cellar-obr                    karaf-cellar-2.3.2 OBR cluster support
+[uninstalled] [2.3.2          ] cellar-event                  karaf-cellar-2.3.2 OSGi events broadcasting in clusters
+[uninstalled] [2.3.2          ] cellar-cloud                  karaf-cellar-2.3.2 Cloud blobstore support in clusters
+[uninstalled] [2.3.2          ] cellar-webconsole             karaf-cellar-2.3.2 Cellar plugin for Karaf WebConsole
+</pre><h2 id="StartingCellar">Starting Cellar</h2><p>To start Cellar in your Karaf instance, you only need to install the Cellar feature:</p><pre>
+karaf@root> features:install cellar
+</pre><p>You can now see the Cellar components (bundles) installed:</p><pre>
+karaf@node1> la|grep -i cellar
+[  55] [Active     ] [Created     ] [   30] Apache Karaf :: Cellar :: Core (2.3.2)
+[  56] [Active     ] [Created     ] [   31] Apache Karaf :: Cellar :: Utils (2.3.2)
+[  57] [Active     ] [Created     ] [   33] Apache Karaf :: Cellar :: Hazelcast (2.3.2)
+[  58] [Active     ] [Created     ] [   40] Apache Karaf :: Cellar :: Shell (2.3.2)
+[  59] [Active     ] [Created     ] [   40] Apache Karaf :: Cellar :: Config (2.3.2)
+[  60] [Active     ] [Created     ] [   40] Apache Karaf :: Cellar :: Bundle (2.3.2)
+[  61] [Active     ] [Created     ] [   40] Apache Karaf :: Cellar :: Features (2.3.2)
+[  62] [Active     ] [Created     ] [   40] Apache Karaf :: Cellar :: Management (2.3.2)
+</pre><p>And Cellar cluster commands are now available:</p><pre>
+karaf@root> cluster:&lt;TAB>
+cluster:config-list           cluster:config-proplist       cluster:config-propset        cluster:consumer-start        cluster:consumer-status       cluster:consumer-stop         cluster:feature-install      cluster:features-list
+cluster:feature-uninstall     cluster:group-create          cluster:group-delete          cluster:group-join            cluster:group-list            cluster:group-quit            cluster:group-set             cluster:handler-start
+cluster:handler-status        cluster:handler-stop          cluster:list-nodes            cluster:ping                  cluster:producer-start        cluster:producer-status       cluster:producer-stop
+...
+</pre>
\ No newline at end of file

Added: karaf/site/production/manual/cellar/latest/user-guide/event.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/user-guide/event.html?rev=1559992&view=auto
==============================================================================
--- karaf/site/production/manual/cellar/latest/user-guide/event.html (added)
+++ karaf/site/production/manual/cellar/latest/user-guide/event.html Tue Jan 21 12:00:08 2014
@@ -0,0 +1,41 @@
+<!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 Cellar 2.3.3-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+              <h1 id="OSGiEventBroadcastingsupport">OSGi Event Broadcasting support</h1><p>Apache Karaf Cellar is able to listen all OSGi events on the cluster nodes, and broadcast each events to other nodes.</p><h2 id="EnableOSGiEventBroadcastingsupport">Enable OSGi Event Broadcasting support</h2><p>OSGi Event Broadcasting is an optional feature. To enable it, you have to install the cellar-event feature:</p><pre>
+karaf@root> feature:install cellar-event
+</pre><p>Of course, if Cellar is already installed, you can use Cellar itself to install cellar-event feature on all nodes:</p><pre>
+karaf@root> cluster:feature-install group cellar-event
+</pre><h2 id="OSGiEventBroadcastinaction">OSGi Event Broadcast in action</h2><p>As soon as the cellar-event feature is installed, Cellar listens all OSGi events, and broadcast these events to all nodes of the same cluster group.</p>
\ No newline at end of file

Added: karaf/site/production/manual/cellar/latest/user-guide/groups.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/user-guide/groups.html?rev=1559992&view=auto
==============================================================================
--- karaf/site/production/manual/cellar/latest/user-guide/groups.html (added)
+++ karaf/site/production/manual/cellar/latest/user-guide/groups.html Tue Jan 21 12:00:08 2014
@@ -0,0 +1,155 @@
+<!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 Cellar 2.3.3-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+              <h1 id="Cellargroups">Cellar groups</h1><p>You can define groups in Cellar. A group allows you to define specific nodes and resources that are to be<br/>working together. This permits some nodes (those outside the group) not to need to sync'ed with changes of<br/>a node within a group.</p><p>By default, the Cellar nodes go into the default group:</p><pre>
+karaf@node1> cluster:group-list
+   Group                  Members
+* [default             ] [vostro.local:5701* ]
+</pre><p>As for node, the starting * shows the local node/group.</p><h2 id="Newgroup">New group</h2><p>You can create a new group using the group-create command:</p><pre>
+karaf@root> cluster:group-create test
+</pre><p>For now, the test group hasn't any nodes:</p><pre>
+karaf@node1> cluster:group-list
+   Group                  Members
+* [default             ] [vostro.local:5701* ]
+  [test                ] []
+</pre><p>You can use cluster:group-join, cluster:group-quit, cluster:group-set commands to add/remove a node into a cluster group.</p><p>For instance, to set the local into the test cluster group:</p><pre>
+karaf@node1> cluster:group-join test
+</pre><p>The cluster:group-delete command deletes the given cluster group:</p><pre>
+karaf@node1> cluster:group-delete test
+</pre><h2 id="Groupconfiguration">Group configuration</h2><p>You can see the configuration PID associated with a given group, for instance the default group:</p><pre>
+karaf@root> cluster:config-list default
+PIDs for group:default
+PID                                     
+org.apache.felix.fileinstall.3e4e22ea-8495-4612-9839-a537c8a7a503
+org.apache.felix.fileinstall.1afcd688-b051-4b12-a50e-97e40359b24e
+org.apache.karaf.features               
+org.apache.karaf.log                    
+org.apache.karaf.features.obr           
+org.ops4j.pax.logging                   
+org.apache.karaf.cellar.groups          
+org.ops4j.pax.url.mvn                   
+org.apache.karaf.jaas                   
+org.apache.karaf.shell  
+</pre><p>You can use the cluster:config-proplist and config-propset commands to list, add and edit the configuration.</p><p>For instance, in the test group, we don't have any configuration:</p><pre>
+karaf@root> cluster:config-list test
+No PIDs found for group:test
+</pre><p>We can create a tstcfg config in the test group, containing name=value property:</p><pre>
+karaf@root> cluster:config-propset test tstcfg name value
+</pre><p>Now, we have this property in the test group:</p><pre>
+karaf@root> cluster:config-list test
+PIDs for group:test
+PID                                     
+tstcfg                                  
+karaf@root> cluster:config-proplist test tstcfg
+Property list for PID:tstcfg for group:test
+Key                                      Value
+name                                     value
+</pre><h2 id="Groupnodes">Group nodes</h2><p>You can define a node member of one of more group:</p><pre>
+karaf@root> cluster:group-join test node1.local:5701
+  Node                 Group
+  node1:5701 default
+* node2:5702 default
+  node1:5701 test
+</pre><p>The node can be local or remote.</p><p>Now, the nodes of a given group will inherit of all configuration defined in the group. This means that<br/>node1 now knows the tstcfg configuration because it's a member of the test group:</p><pre>
+karaf@root> config:edit tstcfg
+karaf@root> proplist
+  service.pid = tstcfg
+  name = value
+</pre><h2 id="Groupfeatures">Group features</h2><p>Configuration and features can be assigned to a given group.</p><pre>
+karaf@root> cluster:features-list default
+Features for group:default
+Name                                                  Version Status 
+spring-dm                                               1.2.1 true 
+kar                                                     2.3.1 false
+config                                                  2.3.1 true
+http-whiteboard                                         2.3.1 false
+application-without-isolation                             0.3 false 
+war                                                     2.3.1 false
+standard                                                2.3.1 false
+management                                              2.3.1 false
+transaction                                               0.3 false 
+jetty                                         7.4.2.v20110526 false 
+wrapper                                                 2.3.1 false
+jndi                                                      0.3 false 
+obr                                                     2.3.1 false
+jpa                                                       0.3 false 
+webconsole-base                                         2.3.1 false
+hazelcast                                               1.9.3 true 
+eventadmin                                              2.3.1 false
+spring-dm-web                                           1.2.1 false 
+ssh                                                     2.3.1 true
+spring-web                                      3.0.5.RELEASE false 
+hazelcast-monitor                                       1.9.3 false 
+jasypt-encryption                                       2.3.1 false
+webconsole                                              2.3.1 false
+spring                                          3.0.5.RELEASE true 
+</pre><pre>
+karaf@root> cluster:features-list test
+Features for group:test
+Name                                                  Version Status 
+webconsole                                              2.3.1 false
+spring-dm                                               1.2.1 true 
+eventadmin                                              2.3.1 false
+http                                                    2.3.1 false
+war                                                     2.3.1 false
+http-whiteboard                                         2.3.1 false
+obr                                                     2.3.1 false
+spring                                          3.0.5.RELEASE true 
+hazelcast-monitor                                       1.9.3 false 
+webconsole-base                                         2.3.1 false
+management                                              2.3.1 true
+hazelcast                                               1.9.3 true 
+jpa                                                       0.3 false 
+jndi                                                      0.3 false 
+standard                                                2.3.1 false
+jetty                                         7.4.2.v20110526 false 
+application-without-isolation                             0.3 false 
+config                                                  2.3.1 true
+spring-web                                      3.0.5.RELEASE false 
+wrapper                                                 2.3.1 false
+transaction                                               0.3 false 
+spring-dm-web                                           1.2.1 false 
+ssh                                                     2.3.1 true
+jasypt-encryption                                       2.3.1 false
+kar                                                     2.3.1 false
+</pre><p>Now we can "install" a feature for a given cluster group:</p><pre>
+karaf@root> cluster:feature-install test eventadmin
+karaf@root> cluster:feature-list test|grep -i event
+eventadmin                                     2.3.1 true
+</pre><p>Below, we see that the eventadmin feature has been installed on this member of the test group:</p><pre>
+karaf@root> features:list|grep -i event
+[installed  ] [2.3.1 ] eventadmin                    karaf-2.3.1
+</pre>
\ No newline at end of file

Added: karaf/site/production/manual/cellar/latest/user-guide/index.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/user-guide/index.html?rev=1559992&view=auto
==============================================================================
--- karaf/site/production/manual/cellar/latest/user-guide/index.html (added)
+++ karaf/site/production/manual/cellar/latest/user-guide/index.html Tue Jan 21 12:00:08 2014
@@ -0,0 +1,37 @@
+<!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 Cellar 2.3.3-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+              <h1 id="KarafCellarUserGuide">Karaf Cellar User Guide</h1><ul><li><a href="introduction.html">Karaf Cellar Introduction</a></li><li><a href="installation.html">Installing Karaf Cellar</a></li><li><a href="deploy.html">Start Karaf Cellar</a></li><li><a href="nodes.html">Nodes in Karaf Cellar</a></li><li><a href="groups.html">Groups in Karaf Cellar</a></li><li><a href="obr.html">OBR in Karaf Cellar</a></li><li><a href="event.html">OSGi Event broadcast with Karaf Cellar</a></li><li><a href="cloud.html">Cellar Cloud Discovery</a></li></ul>
\ No newline at end of file

Added: karaf/site/production/manual/cellar/latest/user-guide/installation.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/user-guide/installation.html?rev=1559992&view=auto
==============================================================================
--- karaf/site/production/manual/cellar/latest/user-guide/installation.html (added)
+++ karaf/site/production/manual/cellar/latest/user-guide/installation.html Tue Jan 21 12:00:08 2014
@@ -0,0 +1,50 @@
+<!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 Cellar 2.3.3-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+              <h1 id="Installation">Installation</h1><p>This chapter describes how to install Apache Karaf Cellar into your existing Karaf based installation.</p><h2 id="PreInstallationRequirements">Pre-Installation Requirements</h2><p>As Cellar is a Karaf sub-project, you need a running Karaf instance.</p><p>Check in etc/config.properties of your Karaf instances, if the following property is set:</p><pre>
+org.apache.aries.blueprint.synchronous=true
+</pre><p>Karaf Cellar is provided under a Karaf features descriptor. The easiest way to install is just to<br/>have an internet connection from the Karaf running instance.</p><h2 id="BuildingfromSources">Building from Sources</h2><p>If you intend to build Karaf Cellar from the sources, the requirements are:</p><p><strong>Hardware:</strong></p><ul><li>100MB of free disk space for the Apache Karaf Cellar x.y source distributions or SVN checkout, the Maven build and the dependencies that Maven downloads.</li></ul><p><strong>Environment:</strong></p><ul><li>Java SE Development Kit 1.6.x or greater (<a href="http://www.oracle.com/technetwork/java/javase/">http://www.oracle.com/technetwork/java/javase/</a>).</li><li>Apache Maven 3.0.3 (<a href="http://maven.apache.org/download.html">http://maven.apache.org/download.html</a>).</li></ul><p><strong>Note:</strong> Karaf Cellar requires Java 6 to compile, build and run.</p><h3 id="BuildingonWindows">Building on Windows</h3><p>This procedure ex
 plains how to download and install the source distribution on a Windows system.</p><ol><li>From a browser, navigate to <a href="http://karaf.apache.org/sub-projects/cellar/download.html">http://karaf.apache.org/sub-projects/cellar/download.html</a>.</li><li>Select the desired distribution.<p>For a source distribution, the filename will be similar to: <tt>apache-karaf-cellar-x.y-src.zip</tt>.</p></li><li>Extract Karaf Cellar from the ZIP file into a directory of your choice. Please remember the restrictions concerning illegal characters in Java paths, e.g. !, % etc.</li><li><span id="WindowsSourceInstallation"></span> Build Karaf Cellar using Maven 3.0.3 or greater and Java 6.<p>The recommended method of building Karaf Cellar is the following:</p><pre>
+cd [cellar_install_dir]\src
+</pre><p>where <tt>[cellar_install_dir]</tt> is the directory in which Karaf Cellar was uncompressed.</p><pre>
+mvn
+</pre></li><li>Proceed to the <a href="deploy#Deploy Cellar.html">Deploy Cellar</a> chapter.</li></ol><h3 id="BuildingonUnix">Building on Unix</h3><p>This procedure explains how to download and install the source distribution on an Unix system.</p><ol><li>From a browser, navigate to <a href="http://karaf.apache.org/sub-projects/cellar/download.html">http://karaf.apache.org/sub-projects/cellar/download.html</a>.</li><li>Select the desired distribution.<p>For a source distribution, the filename will be similar to: <tt>apache-karaf-cellar-x.y-src.tar.gz</tt>.</p></li><li>Extract the files from the tarball file into a directory of your choice. For example:<pre>
+gunzip apache-karaf-cellar-x.y-src.tar.gz
+tar xvf apache-karaf-cellar-x.y-src.tar
+</pre><p>Please remember the restrictions concerning illegal characters in Java paths, e.g. !, % etc.</p></li><li>Build Karaf using Maven:<p>The preferred method of building Karaf is the following:</p><pre>
+cd [karaf_install_dir]/src
+</pre><p>where [karaf_install_dir] is the directory in which Karaf Cellar was uncompressed.</p><pre>
+mvn
+</pre></li><li>Proceed to the <a href="deploy#Deploy Cellar.html">Deploy Cellar</a> chapter.</li></ol>
\ No newline at end of file

Added: karaf/site/production/manual/cellar/latest/user-guide/introduction.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/user-guide/introduction.html?rev=1559992&view=auto
==============================================================================
--- karaf/site/production/manual/cellar/latest/user-guide/introduction.html (added)
+++ karaf/site/production/manual/cellar/latest/user-guide/introduction.html Tue Jan 21 12:00:08 2014
@@ -0,0 +1,58 @@
+<!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 Cellar 2.3.3-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+              <h1 id="Introduction">Introduction</h1><h2 id="KarafCellarusecases">Karaf Cellar use cases</h2><p>The first purpose of Cellar is to synchronize the state of several Karaf instances (named nodes).</p><p>It means that all resources modified (installed, started, etc) on one Karaf instance will be propagated to all others<br/>nodes.<br/>Concretely, Cellar will broadcast an event to others nodes when you perform an action.</p><p>The nodes list could be discovered (using multicast/unicast), or explicitly defined (using a couple hostname or IP<br/>and port list).</p><p>Cellar is able to synchronize:</p><ul style="list-style: square"><li>bundles (remote, local, or from an OBR)</li><li>config</li><li>features</li><li>OSGi events (optional)</li><li>OBR events (optional)</li></ul><p>The second purpose is to provide a Distributed OSGi runtime. It means that using Cellar, you are able to call an OSGi<br/>service located on a remote instance. See the <a href="Transport and DOSGi.htm
 l">Transport and DOSGi</a> section of the user guide.</p><h2 id="Cellarnetwork">Cellar network</h2><p>Cellar relies on Hazelcast (http://www.hazelcast.com), a memory data grid implementation.</p><p>You have a full access to the Hazelcast configuration (in etc/hazelcast.xml) allowing you to specify the network<br/>configuration.</p><p>Especially, you can enable or not the multicast support and choose the multicast group and port number.</p><p>You can also configure on which interface and IP address you configure Cellar and port number used by Cellar:</p><pre>
+    &lt;network>
+        &lt;port auto-increment="true">5701&lt;/port>
+        &lt;join>
+            &lt;multicast enabled="true">
+                &lt;multicast-group>224.2.2.3&lt;/multicast-group>
+                &lt;multicast-port>54327&lt;/multicast-port>
+            &lt;/multicast>
+            &lt;tcp-ip enabled="false">
+                &lt;interface>127.0.0.1&lt;/interface>
+            &lt;/tcp-ip>
+            &lt;aws enabled="false">
+                &lt;access-key>my-access-key&lt;/access-key>
+                &lt;secret-key>my-secret-key&lt;/secret-key>
+                &lt;region>us-east-1&lt;/region>
+            &lt;/aws>
+        &lt;/join>
+        &lt;interfaces enabled="false">
+            &lt;interface>10.10.1.*&lt;/interface>
+        &lt;/interfaces>
+    &lt;/network>
+</pre><p>By default, the Cellar node will start from network port 5701, each new node will use an incremented port number.</p><h2 id="Crosstopology">Cross topology</h2><p><img border="0" src="../images/cross_topology.jpg"/></p><p>This is the default Cellar topology. Cellar is installed on every nodes, each node has the same function.</p><p>It means that you can perform actions on any node, it will be broadcasted to all others nodes.</p><h2 id="Startopology">Star topology</h2><p><img border="0" src="../images/star_topology.jpg"/></p><p>In this topology, if Cellar is installed on all nodes, you perform actions only on one specific node (the "manager").</p><p>To do that, the "manager" is a standard Cellar node, and the event producing is disable on all others nodes<br/>(cluster:producer-stop on all "managed" nodes).</p><p>Like this, only the "manager" will send event to the nodes (which are able to consumer and handle), but no event can<br/>be produced on the nodes.</p>
\ No newline at end of file

Added: karaf/site/production/manual/cellar/latest/user-guide/nodes.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/user-guide/nodes.html?rev=1559992&view=auto
==============================================================================
--- karaf/site/production/manual/cellar/latest/user-guide/nodes.html (added)
+++ karaf/site/production/manual/cellar/latest/user-guide/nodes.html Tue Jan 21 12:00:08 2014
@@ -0,0 +1,55 @@
+<!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 Cellar 2.3.3-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+              <h1 id="Cellarnodes">Cellar nodes</h1><p>This chapter describes the Cellar nodes manipulation commands.</p><h2 id="Nodesidentification">Nodes identification</h2><p>When you installed the Cellar feature, your Karaf instance became automatically a Cellar cluster node,<br/>and hence tries to discover the others Cellar nodes.</p><p>You can list the known Cellar nodes using the list-nodes command:</p><pre>
+karaf@node1> cluster:node-list
+   ID                               Host Name              Port
+* [vostro.local:5701             ] [vostro.local        ] [ 5701]
+</pre><p>The starting * indicates that it's the Karaf instance on which you are logged on (the local node).</p><h2 id="Testingnodes">Testing nodes</h2><p>You can ping a node to test it:</p><pre>
+karaf@node1> cluster:node-ping vostro.local:5701
+PING vostro.local:5701
+from 1: req=vostro.local:5701 time=67 ms
+from 2: req=vostro.local:5701 time=10 ms
+from 3: req=vostro.local:5701 time=8 ms
+from 4: req=vostro.local:5701 time=9 ms
+</pre><h2 id="Nodessync">Nodes sync</h2><p>Cellar allows nodes to 'sync' state. It currently covers features, configs, and bundles.</p><p>For instance, if you install a feature (eventadmin for example) on node1:</p><pre>
+karaf@node1> features:install eventadmin
+karaf@node1> features:list|grep -i eventadmin
+[installed  ] [2.3.1 ] eventadmin                    karaf-2.3.1
+</pre><p>You can see that the eventadmin feature has been installed on node2:</p><pre>
+karaf@node2> features:list|grep -i eventadmin
+[installed  ] [2.3.1 ] eventadmin                    karaf-2.3.1
+</pre><p>Features uninstall works in the same way. Basically, Cellar synchronisation is completely transparent.</p><p>Configuration is also synchronized.</p>
\ No newline at end of file

Added: karaf/site/production/manual/cellar/latest/user-guide/obr.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/user-guide/obr.html?rev=1559992&view=auto
==============================================================================
--- karaf/site/production/manual/cellar/latest/user-guide/obr.html (added)
+++ karaf/site/production/manual/cellar/latest/user-guide/obr.html Tue Jan 21 12:00:08 2014
@@ -0,0 +1,70 @@
+<!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 Cellar 2.3.3-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+              <h1 id="OBRSupport">OBR Support</h1><p>Apache Karaf Cellar is able to "broadcast" OBR actions between cluster nodes of the same group.</p><h2 id="EnableOBRsupport">Enable OBR support</h2><p>To enable Cellar OBR support, the cellar-obr feature must first be installed:</p><pre>
+karaf@root> features:install cellar-obr
+</pre><p>Of course, if the Cellar core feature is already installed, you can use it to install the cellar-core features on all<br/>nodes of the same group:</p><pre>
+karaf@root> cluster:feature-install group cellar-obr
+</pre><p>The Cellar OBR feature will install the Karaf OBR feature which provides the OBR service (RepositoryAdmin).</p><h2 id="RegisterrepositoryURLinacluster">Register repository URL in a cluster</h2><p>The cluster:obr-addurl command registers a OBR repository URL (repository.xml) in a cluster group:</p><pre>
+karaf@root> cluster:obr-add-url group file://path/to/repository.xml
+karaf@root> cluster:obr-add-url group http://karaf.cave.host:9090/cave/repo-repository.xml
+</pre><p>The OBR repository URLs are stored in a cluster distributed set. It allows new nodes to register the distributed URLs:</p><pre>
+karaf@root> cluster:obr-list-url group
+file://path/to/repository.xml
+http://karaf.cave.host:9090/cave/repo-repository.xml
+</pre><p>When a repository is registered in the distributed OBR, Cave maintains a distributed set of bundles available on the<br/>OBR of a cluster group:</p><pre>
+karaf@root> cluster:obr-list group
+  NAME                                                                                   SYMBOLIC NAME                                                 VERSION
+[Apache ServiceMix :: Specs :: Java Persistence API 1.4                               ] [org.apache.servicemix.specs.java-persistence-api-1.1.1     ] [1.9.0.SNAPSHOT          ]
+[camel-jms                                                                            ] [org.apache.camel.camel-jms                                 ] [2.9.0.SNAPSHOT          ]
+[camel-example-spring-javaconfig                                                      ] [org.apache.camel.camel-example-spring-javaconfig           ] [2.8.1.SNAPSHOT          ]
+[Apache ServiceMix :: Features :: Examples :: WSDL First OSGi Package :: CXF BC Bundle] [wsdl-first-cxfbc-bundle                                    ] [4.4.0.SNAPSHOT          ]
+[camel-dozer                                                                          ] [org.apache.camel.camel-dozer                               ] [2.9.0.SNAPSHOT          ]
+[OPS4J Pax Web - Extender - Whiteboard                                                ] [org.ops4j.pax.web.pax-web-extender-whiteboard              ] [1.0.6                   ]
+[OPS4J Pax Web - Runtime                                                              ] [org.ops4j.pax.web.pax-web-runtime                          ] [1.0.6.SNAPSHOT          ]
+[camel-mina                                                                           ] [org.apache.camel.camel-mina                                ] [2.9.0.SNAPSHOT          ]
+[camel-jackson                                                                        ] [org.apache.camel.camel-jackson                             ] [2.9.0.SNAPSHOT          ]
+[camel-example-route-throttling                                                       ] [org.apache.camel.camel-example-route-throttling            ] [2.9.0.SNAPSHOT          ]
+</pre><p>When you remove a repository URL from the distributed OBR, the bundles' distributed set is updated:</p><pre>
+karaf@root> cluster:obr-remove-url group http://karaf.cave.host:9090/cave/repo-repository.xml
+</pre><h2 id="DeployingbundlesusingtheclusterOBR">Deploying bundles using the cluster OBR</h2><p>You can deploy a bundle (and that bundle's dependent bundles) using the OBR on a given cluster group:</p><pre>
+karaf@root> cluster:obr-deploy group bundleId
+</pre><p>The bundle ID is the symbolic name, viewable using the cluster:obr-list command. If you don't provide the version, the OBR deploys the latest version<br/>available. To provide the version, use a comma after the symbolic name:</p><pre>
+karaf@root> cluster:obr-deploy group org.apache.servicemix.specs.java-persistence-api-1.1.1
+karaf@root> cluster:obr-deploy group org.apache.camel.camel-jms,2.9.0.SNAPSHOT
+</pre><p>The OBR will automatically install the bundles required to satisfy the bundle dependencies.</p><p>The deploy command doesn't start bundles by default. To start the bundles just after deployment, you can use the -s option:</p><pre>
+karaf@root> cluster:obr-deploy -s group org.ops4j.pax.web.pax-web-runtime
+</pre>
\ No newline at end of file

Added: karaf/site/production/manual/cellar/latest/user-guide/services_registries.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/user-guide/services_registries.html?rev=1559992&view=auto
==============================================================================
--- karaf/site/production/manual/cellar/latest/user-guide/services_registries.html (added)
+++ karaf/site/production/manual/cellar/latest/user-guide/services_registries.html Tue Jan 21 12:00:08 2014
@@ -0,0 +1,37 @@
+<!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 Cellar 2.3.3-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+              <h1 id="ServiceRegistriesandFederation">Service Registries and Federation</h1>
\ No newline at end of file

Added: karaf/site/production/manual/cellar/latest/user-guide/transport.html
URL: http://svn.apache.org/viewvc/karaf/site/production/manual/cellar/latest/user-guide/transport.html?rev=1559992&view=auto
==============================================================================
--- karaf/site/production/manual/cellar/latest/user-guide/transport.html (added)
+++ karaf/site/production/manual/cellar/latest/user-guide/transport.html Tue Jan 21 12:00:08 2014
@@ -0,0 +1,45 @@
+<!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 Cellar 2.3.3-SNAPSHOT Guides
+    </title>
+  </head>
+  <body>
+    <table width="100%" cellpadding="0" cellspacing="0">
+      <tr width="100%">
+        <td id="cell-0-0" colspan="2">
+          &nbsp;
+        </td>
+        <td id="cell-0-1">
+          &nbsp;
+        </td>
+        <td id="cell-0-2" colspan="2">
+          &nbsp;
+        </td>
+      </tr>
+      <tr width="100%">
+        <td id="cell-1-0">
+          &nbsp;
+        </td>
+        <td id="cell-1-1">
+          &nbsp;
+        </td>
+        <td id="cell-1-2">
+          <div style="padding: 5px;">
+            <div id="banner">
+              <h1 id="DOSGiandTransport">DOSGi and Transport</h1><p>DOSGi (Distributed OSGi) enables the distribution of OSGi services across the Cellar nodes.</p><p>The purpose of the Cellar DOSGi is to leverage the Cellar resources (Hazelcast instances, distributed map, etc), and<br/>to be very easy to use.</p><p>DOSGi is part of the core Cellar feature.</p><p>To be available and visible for the others nodes, the OSGi service should only have the service.exported.interfaces<br/>property:</p><pre>
+&lt;service ref="MyService" interface="my.interface">
+  &lt;service-properties>
+    &lt;entry key="service.exported.interfaces" value="*"/>
+  &lt;/service-properties>
+&lt;/service>
+</pre><p>You can see all OSGi services "flagged" as distributed (available for the nodes) using the cluster:list-service command:</p><pre>
+karaf@root> cluster:list-service
+</pre><p>A "client" bundle could use this service. If the service is not available locally, Cellar will "route" the service call<br/>to the remote remote containing the service.</p>
\ No newline at end of file