h1. OBR Support Apache Karaf Cellar is able to "broadcast" OBR actions between cluster nodes of the same group. h2. Enable OBR support To enable Cellar OBR support, the cellar-obr feature must first be installed: {code} karaf@root> features:install cellar-obr {code} Of course, if the Cellar core feature is already installed, you can use it to install the cellar-core features on all nodes of the same group: {code} karaf@root> cluster:feature-install group cellar-obr {code} The Cellar OBR feature will install the Karaf OBR feature which provides the OBR service (RepositoryAdmin). h2. Register repository URL in a cluster The cluster:obr-addurl command registers a OBR repository URL (repository.xml) in a cluster group: {code} 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 {code} The OBR repository URLs are stored in a cluster distributed set. It allows new nodes to register the distributed URLs: {code} karaf@root> cluster:obr-list-url group file://path/to/repository.xml http://karaf.cave.host:9090/cave/repo-repository.xml {code} When a repository is registered in the distributed OBR, Cave maintains a distributed set of bundles available on the OBR of a cluster group: {code} 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 ] {code} When you remove a repository URL from the distributed OBR, the bundles' distributed set is updated: {code} karaf@root> cluster:obr-remove-url group http://karaf.cave.host:9090/cave/repo-repository.xml {code} h2. Deploying bundles using the cluster OBR You can deploy a bundle (and that bundle's dependent bundles) using the OBR on a given cluster group: {code} karaf@root> cluster:obr-deploy group bundleId {code} 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 available. To provide the version, use a comma after the symbolic name: {code} 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 {code} The OBR will automatically install the bundles required to satisfy the bundle dependencies. The deploy command doesn't start bundles by default. To start the bundles just after deployment, you can use the -s option: {code} karaf@root> cluster:obr-deploy -s group org.ops4j.pax.web.pax-web-runtime {code}