编程语言
首页 > 编程语言> > java – OSGi与JSR-223 Scripting Language Discovery根本不兼容吗?

java – OSGi与JSR-223 Scripting Language Discovery根本不兼容吗?

作者:互联网

我最近编写了一个小的专业脚本语言,并使用Maven导出符合OSGi的包,该包也将服务描述符导出到“META-INF / services / javax.script.ScriptEngineFactory”服务注册表文件中.

问题是虽然OSGi导入和导出包很好,但服务注册表似乎与OSGi不兼容(因为OSGi将其捆绑包保留在通用类路径之外,并为模块使用单独的类加载器).

我的问题是,我认为OSGi与服务发现机制不兼容是正确的,如果没有,我可以添加到我的包元数据中,以便ScriptEngineManager.getEngineFactories()在OSGi环境中列出我的脚本引擎?

解决方法:

Apache Sling确实在OSGi环境中使用这种机制来管理它的JSR-233兼容脚本引擎,主要是通过它的ScriptEngineManagerFactory类[1].有关示例自定义脚本引擎,另请参见[2].

如果JSR-233兼容,则将脚本引擎添加到Sling应该可以正常工作.最简单的测试方法可能是使用你的语言而不是那里使用的服务器端javascript语言,遵循15分钟内的“Sling”教程[3].

[1] http://svn.apache.org/repos/asf/sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/impl/ScriptEngineManagerFactory.java

[2] http://svn.apache.org/repos/asf/sling/trunk/bundles/scripting/javascript

[3] http://sling.apache.org/site/discover-sling-in-15-minutes.html

标签:jsr223,java,osgi
来源: https://codeday.me/bug/20190927/1822640.html