Tag: osgi

如何在执行java.io.File或FileInputStream时引用OSGi包中的包含文件

我正在使用aQute Bnd工具集来创建一个OSGi包,并打包了一些相关的“资源”文件。 这包括我创建的资源目录中的* .css文件和* .xsd文件。 我在bundle.bnd文件中包含以下内容: Include-Resource: resources/=resources/ 当我进行构建时,生成的* .jar文件在jar包文件的顶级目录的resources目录中包含* .css和* .xsd文件。 但是,在实际代码中,我很难尝试将其作为类路径的一部分引用: 我尝试过以下方法: new File(“resources/example.css”); 我也尝试过: URL cssFile = this.getClass().getResource(“resources/example.css”); try { file = new File(cssFile.toURI())); } catch(Exception e) { e.printStackTrace(); } 我得到一个NullPointException错误或无法找到文件IOException错误(取决于我使用的是哪一个)。 我在调试配置模式下运行Eclipse Equinox以及Apache Felix(我们用于部署)时遇到此错误。 注意我试图在BundleActivator之外的Java类中执行此操作。 我是否需要始终参考BundleActivator的上下文,例如? /* * (non-Javadoc) * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext) */ @Override public void start(BundleContext context) throws Exception { /* […]

Eclipse:OSGI首选项与PreferenceStore

我正在开发一个Eclipse插件(或者实际上是一个基于Eclipse的应用程序的插件),它需要用户输入一些配置。 通过查看文档,似乎有两个首选API – 一个在org.eclipse.core.runtime.preferences ,扩展/实现OSGI优先API ,另一个是特定于JFace的org.eclipse.jface.preference 。 然后我们也有org.eclipse.ui.preferences 。 OSGI API具有分层节点树 – 首选节点( Preferences或IEclipsePreferences )可以有多IEclipsePreferences节点,这些子节点本身可以​​包含单个名称 – 值对以及更多子节点。 这似乎适合我的用例 – 我有一个动态数量的“首选项组”,每个都有大约三个字符串属性(名称,描述,命令),这将很好地映射到这些节点。 JFace API没有这样的层次结构,每个插件只有一个平坦的IPreferenceStore 。 但它提供了首选项编辑器页面,然后可以通过实现IWorkbenchPreferencePage并使用“org.eclipse.ui.preferencePages”扩展点将其包含在常用首选项对话框(窗口/首选项)中。 (我仍然需要自己实现首选项页面的一部分,但似乎这个API为此提供了良好的基础。) 似乎org.eclipse.ui.preferences API通过提供基于IEclipsePreferences的IPreferenceStore实现以某种方式桥接这两个API,但我仍然看不到如何使用它。 所以我的问题是: 如何在首选项对话框中使用分层OSGI Preferences选项? 我只需要一个级别,但我需要用户能够动态添加新节点(每个节点大约有三个首选项)。 (但是,这些节点不必具有新的首选项页面。)

从OSGi bundle访问命令行参数

我有一个作为OSGi包集合运行的应用程序。 我使用嵌入Felix框架的非常小的包装器启动它。 这个包装器的必要性让我感到烦恼,因为它依赖于Felix(而应用程序本身也可以在Equinox中运行得很好),所以我想摆脱它,并使用默认的Felix发射器。 包装器唯一真正做的就是将命令行参数传递给已启动的OSGi框架,以便可以对它们做出反应。 请注意,它实际上并不解析参数,只是将String []推送到我的应用程序中。 是否有标准方式(或至少是Felix标准方式)从包中访问命令行参数,以便我可以取消自定义启动器?

OSGI缺少需求错误

我是OSGI的新手,我正在试图弄清楚如何解决下面的错误 org.osgi.framework.BundleException:bundle org.foo.serviceBundle中未解决的约束[253]:无法解析253.0:缺少需求[253.0]包; (&(包= org.slf4j)(版本> = 1.6.0)(!(版本> = 2.0.0))) 我使用maven原型生成一个包,并在我的Activator类中添加了一些简单的slf4j日志记录。 我也使用maven bundle插件如下: org.apache.felix maven-bundle-plugin 2.2.0 true org.shoppingsite.Activator 我尝试了其他组合,我得到一个或另一个无法解析的包。 我正在尝试将捆绑包部署到GlassFish appserver上。 任何帮助将不胜感激 谢谢

从命令行运行osgi bundle

我开发了一个OSGi包,我通常从Eclipse测试。 Aftrer导出捆绑包,我得到一个bundle.jar文件。 我希望能够从命令行运行生成的文件。 就像是: C:\ java -jar bundle.jar osgi_framework路径 但是,如何在其中包含osgi框架? 而且,我怎么能立即启动捆绑?

osgi应用程序中的非osgi库使用

是否可以将非osgi库与OSGi应用程序一起使用? 举个例子,我正在开发一个基于语义的搜索引擎,我正在使用第三方自然语言处理库( http://wiki.opencog.org/w/RelEx_Dependency_Relationship_Extractor )。 是否有可能将这样一个不支持OSGi的库作为几个jar文件与我的OSGi应用程序接口?

如何在通常的java代码中运行OSGi框架?

任何人都可以给我一个如何使用osgi框架类的例子吗? 我不知道如何使用这些类…… BR, 马库斯

bundle的激活器无效

我正试图在eclipse中创建一个简单的插件。 当我运行应用程序时,我在日志文件中看到此错误: org.osgi.framework.BundleException:bundle org.xy的bundle org.xyActivator的激活器无效。 你对这个错误有任何想法吗?

使用哪个富客户端平台

我们最近开始开发Java桌面应用程序,管理层要求我们使用Rich Client Platform。 我知道Java有四个: Eclipse RCP – www链接到ecipse rcp , Netbean RCP – Netbeans RCP网站 , Spring RCP – spring丰富的客户端 Valkyrie RCP – Valkyrie富客户端 有没有人有任何这方面的经验,如果有的话,每个人的力量和弱点是什么? 谢谢

为OSGi包寻找一个好的开发环境

我正在调查OSGi包的开发环境领域。 我的目标是找到一种方法来轻松地开发,测试和调试我将编写的包。 此外,我有一些“文化”要求。 我希望能够使用java持续集成服务器(通常是Hudson ) 作为第一个要求的结果,我希望有一个可重复的一键构建过程。 我的典型工具是maven 。 最后,作为长期的Eclipse用户,并且手头有m2eclipse将我的eclipse env与我的maven合并,我显然希望能够使用该IDE进行测试和调试。 到目前为止,这是我所知道的信息 我可以使用(并且已经测试过) maven-bundle-plugin , maven-ipojo-plugin ,它们都提供干净的包装设施 我已经测试了maven pax (和eclipse pax)并且对两者都不满意:maven pax生成了一个非常繁重的项目,其中添加依赖项非常容易出错(maven pax:import-bundle命令行及其所有参数,本身就是一个地狱) 我看了一下Karaf ,它似乎有一些不错的直接maven配置,但我不知道如何将它与我的Eclipse集成,除了使用传统的JPDA桥。 然而,它似乎比面向开发人员更注重生产,因此可能需要大量配置以满足我的需求(尽管其用户手册的阅读并未对此进行说明)。 你有什么想法吗? 一些maven / eclipse插件? 编辑 :我的目标不是提供eclipse插件或function,它实际上是创建独立的应用程序,可能最终打包为webapp(以类似的方式,例如, 吊索 )。 第谷能够做到吗? 它似乎不是这样,因为它的打包类型页面只列出了eclipse特定的包类型(但我可能错了)