标签:
6月17日是Apache Karaf作为Apache顶级项目。Karaf是个运行时包,包含了一个OSGi框架(Equinox或Felix)、一个命令shell(Felix Gogo)及默认情况下内置的大量实用工具。
虽然Equinox与Felix可以单独使用,但Karaf旨在结合这两个框架出色的OSGi功能,并且保证其开箱即用。比如说,它包含了一个可配置的日志系统(基于Log4J,但针对众多通用的日志系统进行了包装)、通过SSH实现的远程访问、通过ConfigAdmin(源代码位于etc目录中)的配置以及内建的JAAS支持。不仅如此,Karaf还安装了Pax URL的MVN协议,这样就可以从Maven中央仓库(在必要的情况下会自动将其包装为bundle)安装bundle了。
此外,Karaf还提出了特性的概念,所谓特性就是bundle的集合,能以组的形式安装到运行着的OSGi运行时当中。特性包含了对obr、jetty以及spring的支持,做到了开箱即用。这样,如果需要安装多个bundle,但这些bundle之间并没有严格的运行期依赖,那么这种支持就可以大大简化这种情况。
在迁移到Apache Felix项目中前Karaf是ServiceMix Kernel,并且最终成为了Apache的顶级项目。Karaf还加入到了其他框架当中,如Eclipse Virgo和EclipseRT packages,提供了预先配置的框架与好用的OSGi bundle,这样在上手使用OSGi运行时时就会比以往更加简单。
http://felix.apache.org/downloads.cgi#framework
http://git.eclipse.org/c/equinox/rt.equinox.framework.git/commit/bundles/org.eclipse.osgi
Karaf作为一款成熟而且优秀的OSGi运行环境以及容器已经被诸多Apache项目作为基础容器,例如:Apache Geronimo, ApacheServiceMix, Fuse ESB,由此可见Karaf在性能,功能和稳定性上都是个不错的选择。
从四个方面对karf进行了分析,分别为karaf的环境变量、启动级别、karaf中出现的新概念和核心技术。
karaf涉及两个环境变量,分别为KARAF_HOME和KARAF_BASE,KARAF_HOME目录下存放的是启动karaf的必需文件,目录结构如下所示:
lib目录中包含三个文件,分别为karaf.jar、karaf-client.jar和karaf-jaas-boot.jar,这些文件会缺省加入karaf的CLASSPATH中。
etc目录中主要包含了OSGi Framework的选择配置,如使用何种OSGi Framework实现。
system目录中包含了eclipse和felix实现的OSGi Framework实现jar包。
karaf拥有6个启动级别,分别为5、8、10、15、30、40。其启动顺序是先启动数字小的级别。
karaf设置了两个缺省级别,分别为60和100,60是指当有外部应用部署至karaf时,karaf将会把此应用的启动级别设置为60;100是指karaf启动时会缺省启动到级别100,即100以下的所有bundle都会被启动。
karaf中引用了feature的概念。feature是符合某个功能特性的bundle集的部署描述符,配置文件如下所示:
krarf可以静态的切换OSGi Framework实现,它的实现方法如下所示:
Karaf 依赖equinox and felix,karaf 本Apache的很多项目作为基础框架
标签:
原文地址:http://www.cnblogs.com/viewcozy/p/4898527.html