这几天一直在学习与加深osgi中的一些东西,又去看了下apache felix中的几个example,于是决定将felix中的一些example写出来,但是不在使用felix官网中那样运行,而是从新搭建一个osgi的运行环境进行相应的学习,在这使用了karaf作为osgi的运行容器,同时整合camel进来,因为在后续会有更多的osgi中的运用,因此,本次全部整合进来。
本文在此先对几个框架和容器进行相应介绍。
karaf
Karaf是2001年Apache旗下的一个开源项目.Karaf同时也是一个基于OSGi的运行环境,Karaf提供了一个轻量级的OSGi容器。
在此选择karaf作为osgi容器,其中诸多用途在后面运用中会有所讲解,但karaf的各种命令,进本用途就不再单独进行讲解,在本项目中,karaf将会当做组件出现,在maven工程中,会以插件的形式出现。
camel
Apache Camel是Apache基金会下的一个开源项目,它是一个基于规则路由和中介引擎,提供企业集成模式的Java对象的实现,通过应用程序接口(或称为陈述式的Java领域特定语言(DSL))来配置路由和中介的规则。领域特定语言意味着Apache Camel支持你在的集成开发工具中使用平常的,类型安全的,可自动补全的Java代码来编写路由规则,而不需要大量的XML配置文件。同时,也支持在Spring中使用XML配置定义路由和中介规则。
camel集成了大量的开源框架,进行相应微服务开发的时候,非常方便,在单独整合cxf和blueprint的时候很容易。
felix
apache felix是osgi规范的另外一种实现,在此原本就是要对felix官网中10多个example进行编写,因此在此就选择felix实现相应osgi。
项目管理工具maven
在本运行环境整合中,需要用到大量的插件和jar,普通java工程的话,太过麻烦和存在许多问题,因此在此使用maven进行相应依赖和插件管理。
开发工具intellij
intellij有着丰富的插件,与良好的智能提示,并且对maven支持非常好,eclipse在此虽然说插件极多,但是对maven支持并不十分好,因此不选择eclipse当做开发工具。
总结
本文仅只对基本所需的框架和容器进行讲解,下一篇博客将会对具体的环境整合步骤进行描述,涉及到本文中的camel和karaf之类的就不会再进行讲解了。