from: http://aniketos.eu/content/easy-installation-bundles-apache-karaf
Apache Karaf provides many convenient ways for bundles installation:
- Use of the install command in Karaf's command prompt
- Copying of bundles to the deploy directory
- Use of Apache Karaf features
From these three alternatives Karaf features seems to be the most advantageus. It allows the installation and uninstallation of many bundles in one go. No bundles will be installed, if there is a problem even with a single one. This helps you keep a clean container and spot errors easier. It supports mvn, http and file protocols making the installation of bundles from different locations easier. Last, but not least, it can also install non-OSGi jars (jars without an OGSi manifest), with the aid of the wrap protocol.
In a previous post about Spring-JDBC in an OSGi environment the usage of Karaf features with the Maven protocol was presented. A features.xml file pointing to bundles in Maven repositories was created. The features.xml file was hosted by a Maven project, making it possible to add a features Maven URL in Karaf.
However bundles are not always available in Maven repositories. Sometimes all you have is a zip file with all necessary jars or some HTTP URLs. This is especially true in Aniketos project, where there are contributions from many partners, using both Maven and Eclipse RCP for development and there is also some legacy code involved. In these cases Apache Karaf are still useful.
This is an example of a features.xml file that points to jar files in the local file system:
<features> <feature name='greeter_server' version='1.0'> <bundle>file:///c:/Tools/Aniketos/bundles/common/org.osgi.compendium-4.2.0.jar</bundle> <bundle>file:///c:/Tools/Aniketos/bundles/greeter_sample/cxf-dosgi-ri-singlebundle-distribution-1.3.1.jar</bundle> <bundle>file:///c:/Tools/Aniketos/bundles/greeter_sample/cxf-dosgi-ri-samples-greeter-interface-1.3.1.jar</bundle> <bundle>file:///c:/Tools/Aniketos/bundles/greeter_sample/cxf-dosgi-ri-samples-greeter-client-1.3.1.jar</bundle> </feature> </features>
These can easily be installed in one go:
karaf@root> features:addURl file:///path/to/features.xml karaf@root> features:install greeter_server
If you modify one of the jar files and you want to re-install, then you can use:
karaf@root> features:uninstall greeter_server karaf@root> features:install greeter_server
If you want to remove or add a jar file in the features.xml file, then you can refresh the URL:
karaf@root> features:refreshURl file:///path/to/features.xml karaf@root> features:install greeter_server
In another post I am going to explain how the wrap protocol supported by Karaf can help in certain situations.
相关推荐
Learning Apache Karaf will help guide you through the complexity of an OSGi container using sample code and configuration snippets to demonstrate the important aspects of managing and running a Karaf ...
Apache Karaf是一款轻量级的服务平台,基于OSGi标准,用于构建、部署和管理Java应用程序。它是Apache ServiceMix项目的一部分,被广泛应用于企业级Java应用的开发和运行环境。Apache Karaf 2.3是其特定的一个版本,...
Apache Karaf用户指南2.2.8版是针对Apache Karaf这一开源OSGi运行时环境的用户手册。Karaf提供了一个轻量级容器,用于部署各种组件和应用程序。以下是手册中涉及的一些关键知识点: 1. **热部署**:Karaf支持热部署...
3. **Karaf部署与运行**:学习如何安装和启动Karaf,创建和管理OSGi bundles,以及如何通过Karaf的命令行工具进行操作,如部署、启动、停止和更新bundle。 4. **Karaf特性**:了解Karaf的特性,如Features(特性集...
- 在 Karaf 控制台输入命令 `feature:repo-add mvn:org.apache.cxf.karaf/apache-cxf/xx.xx.xx/xml/features`,其中 `xx.xx.xx` 需替换为实际的 CXF 版本号。 2. **查看 Feature Repositories**: - 输入命令 `...
标题中的"org.apache.servicemix.bundles.elasticsearch-1.0.1_1.zip"表明这是一个与Apache ServiceMix相关的软件包,特别地,它包含了Elasticsearch的一个特定版本(1.0.1)的bundle。Apache ServiceMix是基于Java...
在"servicemix-bundles-master"这个压缩包中,很可能是包含了Apache ServiceMix所有核心捆绑包的源码或者构建版本。开发者可以通过分析和修改这些捆绑包来定制自己的ServiceMix环境,以满足特定项目的需求。 总的来...
org.apache.servicemix.bundles.xmlbeans-2.4.0_1.jar
【标题】"Apache ServiceMix Bundles - Spring JDBC 4.0.2.RELEASE_1" Apache ServiceMix 是一个全面的企业级服务导向架构(SOA)平台,它基于Java语言和OSGi规范。这个压缩包“org.apache.servicemix.bundles....
标题 "org.apache.servicemix.bundles.spring-jdbc-3.2.8.RELEASE_2.zip" 提供的信息表明,这个压缩包包含了 Apache ServiceMix 的一个捆绑包,具体是 Spring JDBC 模块的 3.2.8.RELEASE 版本的第二次更新。Apache ...
All-in-one bundles是指将GTK+的完整集合打包在一起,包括库、开发工具和其他相关组件,方便开发者进行一站式下载和安装。 标题中的"gtk+ All-in-one bundles"暗示我们这里讨论的是一个包含所有GTK+组件的综合包。...
smaller-dev-server.zip,一个开发服务器,利用较小的程序为本地
标题中的"org.apache.servicemix.bundles.spring-aspects-3.2.8.RELEASE_2.zip"指示了这是一个与Apache ServiceMix相关的软件包,特别地,它包含了Spring框架的一个特定版本——3.2.8.RELEASE的面向切面编程(AOP)...
标题中的"org.apache.servicemix.bundles.spring-test-3.2.8.RELEASE_2.zip"表明这是一个关于Apache ServiceMix的Spring测试框架的版本包。Apache ServiceMix是基于Java的全面企业级服务总线(ESB),它集成了许多...
Apache POI是Apache软件基金会提供的100%开源库。大多数中小规模的应用程序开发主要依赖于Apache POI(HSSF+ XSSF)。它支持Excel 库的所有基本功能; 然而,呈现和文本提取是它的主要特点。
捆绑结构(Bundles)** - **定义**:在密码学协议中,多个消息或操作可能被组合成一组,称为“捆绑”。捆绑可以被视为一系列操作或消息的集合。 - **作用**:通过分析捆绑结构,可以更好地理解协议的行为和安全性...
embedly-java.zip,用于api的嵌入式客户端库和用于embed.ly api的projava客户端
在Laravel框架中,"Bundles"是早期版本(主要在Laravel 3)中用于组织和管理应用程序组件的一种方式。然而,在Laravel 4及其后续版本中,Bundles的概念被弃用,取而代之的是更现代的包管理机制,如服务提供者...