blob: fa77a585c08ec55fa531e581227d48ceabf72522 [file] [view]
<!--
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.
-->
# Apache Karaf Profile example
## Abstract
This example shows you how to create several profiles (in a registry) and use these profiles to create custom distributions.
## Artifacts
* **karaf-profile-example-registry** is a main container for profiles (registry).
* **karaf-profile-example-dynamic** is a custom Karaf distribution where we apply profiles "on the fly".
* **karaf-profile-example-static** is a custom Karaf distribution "static", for instance, very convenient to run on Docker.
## Build
The build uses Apache Maven. Simply use:
```
mvn clean install
```
## Registry
The `karaf-profile-example-registry` module contains several profiles (with inheritance). A profile is described with a `profile.cfg` and contains
resources used in the Karaf container (cfg file, bundles, features, ...).
You can build the registry simply using:
```
mvn clean install
```
## Assembly & Distributions
### Dynamic
The `karaf-profile-example-dynamic` module uses the profile registry (using `<profileUri/>`) to create an assembly applying profiles as boot profiles:
* `karaf`
* `loanbroker-bank1`
* `loanbroker-bank2`
* `loanbroker-bank3`
* `loanbroker-broker`
* `activemq-broker`
To build the distribution, simply do:
```
mvn clean install
```
You can find the resulting distribution in the `target` folder: `karaf-profile-example-dynamic*.tar.gz`.
### Static
The `karaf-profile-example-static` module uses also the profiles to create a distribution using the same profiles, however, it uses a static approach. It's especially
designed to run a docker or a simple JVM without dynamic change of configuration.
The build the distribution, simply do:
```
mvn clean install
```
You can find the resulting distribution in the `target` folder: `karaf-profile-example-static-xxxx.tar.gz`.
### Profile & shell
On a running Karaf instance, you can install the `profile` feature using:
```
karaf@root()> feature:install profile
```
Then, you have new commands available in the shell, allowing you to create, edit, apply profiles.