//
// Licensed 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.
//

=== Deploy Cellar

This chapter describes how to deploy and start Cellar into a running Apache Karaf instance. This chapter
assumes that you already know Apache Karaf basics, especially the notion of features and shell usage.

==== Registering Cellar features

Karaf Cellar is provided as a Karaf features XML descriptor.

Simply register the Cellar feature URL in your Karaf instance:

----
karaf@root()> feature:repo-add cellar
----

Now you have Cellar features available in your Karaf instance:

----
karaf@root()> feature:list |grep -i cellar
----

[NOTE]
====
If you build Cellar on your machine with `mvn clean install`, the Cellar artifacts are on your local
Maven repository (.m2/repository). If you use a Karaf with the same user on the same machine, then it
will use your local artifacts. If you use a "remote" Karaf instance, then, you have to deploy the Cellar
artifacts on a Maven repository (or filesystem) shared by all Karaf instances where you plan
to use Cellar (you can change etc/org.ops4j.pax.url.mvn.cfg repositories).
====

==== Starting Cellar

To start Cellar in your Karaf instance, you only need to install the Cellar feature:

----
karaf@root()> feature:install cellar
----

You can now see the Cellar components (bundles) installed:

----
karaf@root()> la|grep -i cellar
----

And Cellar cluster commands are now available:

----
karaf@root()> cluster:<TAB>
----

==== Optional features

Optionally, you can install additional features.

The cellar-event feature adds support of OSGi EventAdmin on the cluster:

----
karaf@root()> feature:install cellar-eventadmin
----

The cellar-obr feature adds support of OBR sync on the cluster:

----
karaf@root()> feature:install cellar-obr
----

The cellar-dosgi feature adds support of DOSGi (Distributed OSGi):

----
karaf@root()> feature:install cellar-dosgi
----

The cellar-cloud feature adds support of cloud blobstore, allowing to use instances located on a cloud provider:

----
karaf@root()> feature:install cellar-cloud
----

The cellar-http feature adds HTTP support:

----
karaf@root()> feature:install cellar-http
----

The cellar-log feature adds centralized log support:

----
karaf@root()> feature:install cellar-log
----

Please, see the sections dedicated to these features for details.
