…或如何在Java EE应用程序服务器中使用Ceylon。
Ceylon语言本质上是模块化的,并且附带了完整的基础架构,可以立即使用此模块化功能。 然而,锡兰并没有被自己的基础设施束缚 。 经过Java和JS互操作性的努力,1.1.0版本带来了与OSGI的即开即用的兼容性,该功能允许在许多其他容器中运行Ceylon代码。
Ceylon编译器生成的每个模块档案都在其MANIFEST文件中包含OSGI标头,这些标头描述了OSGI容器应该看到的模块。
到目前为止测试的容器是:
- Apache Felix 4.4.1,
- Oracle Glassfish v4.1,
- Equinox平台,
- JBoss WildFly 8.0.0.alpha3(已安装JBossOSGi)
当然,应先将Ceylon发行版和SDK模块作为OSGI捆绑包添加到OSGI容器中。
但是,与其在这里写下冗长的解释,不如让我将您引到以下存储库中的一些带有所需说明的具体示例: https : //github.com/davidfestal/Ceylon-Osgi-Examples/
目前,它仅包含一个示例,尽管非常简单,但将为您提供开始的主要步骤。 它还显示了在Glassfish v4.1应用程序服务器上运行的Web应用程序servlet中 ,甚至完全不在Ceylon的标准基础结构中 ,甚至在JBoss世界之外 ,都使用了Ceylon模块。 但是,当然,您应该能够在其他启用了OSGI的应用程序服务器或容器中运行它。
在下一个示例中,我们将尝试做更多有趣的事情,例如提供服务,使用Ceylon注释(与Java注释兼容)或使用OSGI服务。
请报告您在测试期间可能遇到的任何问题,并随时针对您可能构建的任何其他成功用例提交拉取请求。
期待您的发言,并有时间编写以下示例。
翻译自: https://www.javacodegeeks.com/2014/10/write-in-ceylon-deploy-as-osgi-use-in-jee.html