OSGI初学者教程已经过时。有新标准吗?

时间:2014-04-19 01:47:44

标签: java eclipse osgi bundle apache-felix

我一直试图开始研究OSGI几天来安静。我已经尝试了许多教程来处理eclipse,特别是从apache felix或Equinox开始,但是一步一步的教程从来没有让我结束甚至创建一个包。

我甚至没有运气就尝试过控制台命令。 OSGI过时了吗?联盟网站上的所有教程都非常陈旧,我无法跟进它们。我也尝试了BndTools Totorial here但是在日食时它无法解决" @Component"当我达到4.3所以我停在那里。在关注Osgi Book Preview时,我也无法找到" Make Bundle"所以我又停了下来我真的很沮丧。难道没有办法让初学者进入OSGI吗?

更新:

对于有兴趣开始使用OSGI的其他人,我发现这本书Osgi in Action非常有用,也是初学者的好指南。

6 个答案:

答案 0 :(得分:3)

Bndtools教程在原始问题中被提及并被驳回;但是我们能够解决这个问题。所以我发布这个作为其他可能正在寻找介绍性OSGi教程的人的答案:查看Bndtools Tutorial

答案 1 :(得分:2)

答案 2 :(得分:2)

实际上这里提出了两个问题,我最近也问过自己,一个在标题中,一个在内容中。标题中的问题似乎主要是修辞。它表达了你在文本末尾找到的真实问题的一个名义答案:“我真的很沮丧。初学者没有办法进入OSGI吗?”

答案:有方法,但它们并不像应该的那样容易。该问题的“更新”提到了“OSGi in Action”。这是一本好书(我发现太晚了,它不是真正在搜索结果的顶部),但在工具方面已经过时了(例如Bndtools仅出现在附录中)。

对于初学者来说,找不到简单的方法,我最终开始使用网络上的各种资源来挖掘我的主题。我记录了我可能称之为log of my (ongoing) journey的经历,希望它可能对其他人有所帮助。毕竟,我会留给你判断这个问题是否可以被认为是一个害羞的“是”。

尚未达到“我的旅程结束”,我不完全确定为什么初学者进入OSGi的资源很少。我想OSGi从很多人那里得到的关注,因为它在Eclipse中被使用是最初的问题之一。 OSGi联盟与企业版功能一致的尝试是另一个(有参考,但我不允许发布超过2个链接)。这两起事件首先引发了炒作(以及大量文章)然后令人失望。在接下来的时间里,专家们更好,更好地理解了这项技术,并将其成功应用于有用的问题领域。 (并且这些比最初的炒作还要少 - 或者不同,OSGi可能会重新获得物联网的注意力。)但是在这种情况下经常出现这种情况,(现在)专家从来没有想过要写这种介绍的诱惑你在新技术的炒作期间发现的。

毕竟,这让我回到标题中的问题:“是否有新标准?” (这意味着是否值得花时间研究OSGi)。答案取决于OSGi的哪些方面对您很重要。项目JigSaw旨在将模块引入Java平台和开发人员。对于中央JSR 376的目标日期为2017年3月,我会说这可能被称为“即将推出的标准”(如果它已完成)。但OSGi不仅仅是模块。其他关键功能是动态配置(我看不到任何有关此功能的竞争标准)和微服务(注意该术语,目前似乎有两种不同的解释)。最后,你必须自己看一下OSGi,以决定它对你的项目的用处。

答案 3 :(得分:2)

那里有很多过时的教程,过时的文档,以及深入Java EE思维的东西 - 如果你不熟悉解决某些问题所引起的问题而产生的问题是不可理解的在上一个千年中,Java的决定模糊不清,你现在已经在你庞大的EE应用程序中坚持了下来。

今天,有OSGi enRoute项目提供了一套非常好的教程,以及一个OSGi“发行版”,它使依赖项解析更容易。我的理解是enRoute中的许多附加服务都在途中(ha!)成为OSGi Release 7标准。

如果您想在OSGi中进行新的开发,那么我肯定会这样做。事实上,即使你想在一些遗留支持功能中使用OSGi,我还是先阅读enRoute方法,然后再考虑遗留所需的所有丑陋妥协。

答案 4 :(得分:1)

如果您主要寻找服务器端OOGi,那么使用maven和maven bundle插件可以很好地工作。见http://www.liquid-reality.de/display/liquid/2011/02/15/Karaf+Tutorial+Part+1+-+Installation+and+First+application

答案 5 :(得分:1)

Apache Karaf是一个OSGi容器,我相信它使OSGi“更容易”理解和使用。您可以考虑安装此功能,然后尝试一下。文档也很好。花一些时间了解正在运行的OSGi容器;看它运行首先尝试一些命令,然后部署一些简单的包,同时在karaf.log上放尾。

看到Karaf运行将帮助您更多地了解OSGi以及如何构建和部署/运行捆绑包。

恕我直言:BndTools和Maven Bundle插件都是OSGi开发的绝佳资源。