我对Apache Karaf究竟是什么感到有些困惑。
你能否说Apache Karaf包含以下内容:
TLDR:Apache Karaf更加“包含电池”。它也可以在任何OSGI运行时上运行。
Apache Felix(这是OSGi 4.2框架的一个实现)
有点。 Apache Karaf可以使用Apache Felix。 Apache Karaf也可以使用Equinox或其他OSGi运行时。默认情况下,Apache Karaix会附带Apache Karaf标准下载。
Apache Aries(蓝图标准的实现)
再说一遍。 Apache Karaf的标准下载确实默认带有Apache Aries。
现在让我们来谈谈OSGI(Apache Felix,Equinox)是什么以及Apache Karaf是什么:
OSGI非常简单。您可以在应用程序中启动OSGI运行时,甚至不会注意到它。 shell,从文件夹热部署的能力,从maven仓库安装等等。这些都是OSGI不需要做的额外工作,并由其他项目提供,如Karaf,GOGO或Pax
现在来到Apache Karaf:
它基本上是一个OSGI环境,它在标准的OSGI实现之上提供了一些额外的好处。因为Apache Karaf只是基于标准OSGI构建的,所以它理论上可以在任何OSGI运行时运行。这为您提供了一个统一的界面来处理OSGI运行时。
Apache Karaf提供的一些好东西,如果没有额外的工作,你将无法在Apache Felix中看到:
几乎任何东西在这里:
http://mvnrepository.com/search.html?query=org.apache.karaf *
我提到了Karaf有自己的方式来配置捆绑和启动级别。 Apache Karaf还附带了一系列预先定义的开始。我知道Apache Felix也有一些,通过OBR,但Apache Karaf更多'包含电池'。
Apache Karaf是一个瑞士军刀,用于运行OSGi“东西”和非OSGi捆绑为OSGi的东西。
Felix和Aries是默认的,但框架是可插拔的,所以equinox也可以。
需要注意的是,Karaf是ServiceMix的一部分(初始名称是ServiceMix内核),因此它与Apache Camel,Apache CXF和Apache ActiveMQ紧密集成。将Karaf变成具有这些功能的ESB是微不足道的。