#
#
#    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.
#
#
h1. Synopsis

${project.name}

${project.description}

Maven URL
[mvn:${pct.groupId}/${project.artifactId}/${project.version}]

h1. Description

The Karaf KAR is an archive (similar to JAR) containing a set of bundles jar files and features descriptors.

Karaf deployer explores the KAR archive and deploy the features descriptors and bundles.

h1. See also

* Deployer - section of Karaf User Guide
* KAR - section of the Karaf Developer Guide
