| // |
| // 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. |
| // |
| |
| === Artifacts repositories and URLs |
| |
| The main information provided by a feature is the set of OSGi bundles that defines the application. |
| Such bundles are URLs pointing to the actual bundle jars. For example, one would write the following definition: |
| |
| ---- |
| <bundle>http://repo1.maven.org/maven2/org/apache/servicemix/nmr/org.apache.servicemix.nmr.api/1.0.0-m2/org.apache.servicemix.nmr.api-1.0.0-m2.jar</bundle> |
| ---- |
| |
| Doing this will make sure the above bundle is installed while installing the feature. |
| |
| However, Karaf provides several URL handlers, in addition to the usual ones (file, http, etc...). |
| One of these is the Maven URL handler, which allow reusing maven repositories to point to the bundles. |
| |
| You can deploy bundles from file system without using Maven |
| |
| As we can use file: as protocol handler to deploy bundles, you can use the following syntax to deploy bundles when they are |
| located in a directory which is not available using Maven |
| |
| ---- |
| <bundle>file:base/bundles/org.apache.servicemix.nmr.api-1.0.0-m2.jar</bundle> |
| ---- |
| |
| [NOTE] |
| ==== |
| The path is relative to the Apache Karaf installation directory |
| ==== |
| |
| ==== Maven URL Handler |
| |
| The equivalent of the above bundle would be: |
| |
| ---- |
| <bundle>mvn:org.apache.servicemix.nmr/org.apache.servicemix.nmr.api/1.0.0-m2</bundle> |
| ---- |
| |
| In addition to being less verbose, the Maven url handlers can also resolve snapshots and can use a local copy of the jar if one is available in your Maven local repository. |
| |
| The `org.ops4j.pax.url.mvn` bundle resolves `mvn` URLs. It can be configured using the file `etc/org.ops4j.pax.url.cfg` |
| |
| The most important property is : |
| |
| * `org.ops4j.pax.url.mvn.repositories` : Comma separated list of repository remote repository URLs that are checked in order of occurence when resolving maven artifacts |
| |
| By default, snapshots are disabled. To enable an URL for snapshots append @snapshots to a repository entry. For example |
| |
| ---- |
| http://www.example.org/repo@snapshots |
| ---- |
| |
| Repositories on the local machine are supported through `file:/` URLs. |