问题标签 [apache-felix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
909 浏览

osgi - 带有普通 Maven JAR 的 OSGi 捆绑存储库

我正在努力寻求一种解决方案,将 Web 应用程序作为捆绑包部署到 Virgo 3.0.1.RELEASE。我的情况是:

所以,

  1. 关于如何配置 Virgo 以托管 Maven 存储库JAR 的任何想法?
  2. 一般来说,根据您的经验,使用现成的 Maven 存储库并将其作为 OBR 托管的最佳解决方案是什么?

提前致谢。

0 投票
1 回答
739 浏览

java - 使用 OSGi 将 JMenuItems 附加到 GUI

我已经创建了一个应用程序,现在我希望它准备好一个插件。我决定使用 Apache Felix,在阅读了教程之后,我不确定这是否是我想要的选择。

我想更改我的应用程序,以便它在 /plugins 文件夹的开头 Bundles 加载,并将每个 Bundle 作为 JMenuItem 添加到 JMenu。我本可以使用 ClassLoader 完成它,但我认为 OSGi 正是我想要的,但后来我遇到了一些问题:

  • OSGi 有一个命令行,但我需要在我的应用程序中实现它,无需任何用户交互,在代码中硬编码其默认行为。

  • Bundle 在开始时调用的 Bundle (start()以及从 Bundlestop()继承的方法org.osgi.framework.BundleActivator)的行为,但我实际上希望我的应用程序对 Bundle 执行某些操作,而不是使用 Bundle 对应用程序执行某些操作。

那么你能告诉我,是否可以使用 OSGi(等 Apache Felix)来实现它,或者我应该使用 ClassLoader 实现它,然后将 .jar 插件的 Main Class 显式转换为 JMenuItem 并将其添加到我的 JMenu 中(更糟糕的是,因为它不支持应用程序的动态变化,也不给我学习OSGi的机会)。

编辑:我正在考虑类似: http: //karussell.wordpress.com/2009/09/16/plugable-swing-a-hello-world-osgi-example/,但我找不到任何教程。

0 投票
4 回答
41446 浏览

java - OSGI 缺少需求错误

我是 OSGI 的新手,我正在尝试弄清楚如何解决以下错误

org.osgi.framework.BundleException:捆绑包 org.foo.serviceBundle [253] 中未解决的约束:无法解析 253.0:缺少需求 [253.0] 包;(&(package=org.slf4j)(version>=1.6.0)(!(version>=2.0.0)))

我使用了一个 maven 原型来生成一个包,并在我的 Activator 类中添加了一些简单的 slf4j 日志记录。我也在使用 maven bundle 插件,如下所示:

我尝试了其他组合,但我得到了一个或另一个无法解析的包。我正在尝试将包部署到 GlassFish 应用服务器上。任何帮助将不胜感激

谢谢

0 投票
2 回答
6293 浏览

osgi - 这些 OSGi 命令的真正作用是什么?

使用 Felix / Equinox,以下在幕后做了什么?

某处是否有状态机图或更简洁的文档?

0 投票
1 回答
189 浏览

osgi - 从批处理文件更新 osgi 包

(我使用 glassfish 3.1 和 felix osgi)我需要编写一个批处理脚本来更新我的一个 OSGI 包。

最基本的想法是从 autodeploy 文件夹中移动 bundle jar,并在几秒钟后返回它。有没有一种“更清洁”的方式来做到这一点?我可以从批处理文件轻松地在 felix telnet 中运行命令吗?

谢谢你

0 投票
1 回答
512 浏览

android - Android 应用程序(使用 felix)崩溃,LinearAlloc 超出容量

我在 android (3.2) 上运行 apache felix 和一个 osgi 应用程序。到目前为止,这工作得很好,但是我有相当大的数据块要加载到应用程序中(osgi 包)。问题在于,当我加载我得到的最大数据块时

LinearAlloc 超出容量

错误似乎来自

线性分配器

afaik 在 3.2/4.x 中甚至是 8*1024*1024,但我仍然达到了这个限制。我希望更好地了解导致此问题的原因以及如何解决此问题。任何帮助,将不胜感激。

0 投票
2 回答
463 浏览

java - IPojo - @Reference 不注入服务

在一个包中具有接口 IService,由类 ServiceImpl 实现:

在第二个包中,我有另一个类 ServiceConsumer(一个 GoGo shell 命令;不包括特定注释),使用第一个包中提供的服务:

当我在 Felix 中导入并启动这两个包时,我可以看到我的所有服务都使用 ipojo:instances 正确实例化,并且 ServiceImpl 提供了 IService。但是,执行 doIt() 时,service 为空。

由于 IService 似乎可用,我希望 @Requires 注入好的实例,但似乎没有这样做。

我有一种很明显的感觉,我没有做,但我不知道是什么。

0 投票
3 回答
2009 浏览

java - 在 OSGi 环境中开始使用 bundle DI

一段时间以来,我一直在开发一个使用 Apache Felix 作为我的 OSGi 运行时的应用程序,到目前为止进展非常顺利。但是,我现在想采用依赖注入,Apache Felix 的“默认”机制似乎是 iPOJO。

但是,我发现有关 Apache felix 的文档和教程太薄弱了,我没有设法得到任何结果。所以我准备改变,但首先我最好解释一下我正在尝试做的(非常简单的)想法。

给定两个捆绑包;

消费捆绑

制作人捆绑包

我希望 OSGi 运行时启动 Consumer 包,意识到它需要一个 Producer 才能工作,然后框架启动 Producer 包并将实例注入到 Consumer 中。简单的。iPOJO 建议仅使用注释(@Singleton、@Inject)或类似的方法来实现这一点,但我根本无法让它工作。OSGi 显然具有声明式服务,但这意味着要编写大量 XML,而我真的想避免这种情况。

Anywoo,我准备适应 JBoss、Equinox 或替代 OSGi 运行时和替代依赖注入机制,无论是 Peaberry、Spring DM 还是完全不同的东西。我已经在使用 Maven。

我要问的是,有人可以使用生产者和消费者的想法创建一个 Hello World 来帮助我入门吗?我真的花了很多时间阅读并发现学习曲线无法克服!


编辑,我尝试使用 SCR:http ://tydus.net/codeExamples/mvnScr.tar

0 投票
2 回答
3498 浏览

unit-testing - 在 Adob​​e CQ5 CRXDE 中编译引用 Felix OSGI 捆绑 JUnit 代码的单元测试

我想编写一些在 Adob​​e CQ 5.4 中运行的单元测试。我正在做本文中描述的在 CQ 中进行测试的内容:

http://jtoee.com/2011/09/799/

但是,在我的 Java 代码中创建单元测试类之后,它不会在 CRXDE 中编译,因为它无法解析 org.junit 命名空间。我按照描述(Apache Sling JUnit Core)在 Felix 中安装并激活了 JUnit 包,但我猜我还需要做一些其他事情才能在 CRXDE 中找到这个活动的 Felix 包。我连接的 CQ5 实例中的 Felix 包显示了这些导出的包:

在下面的这个示例单元测试代码中,最后三个导入语句“无法解析”。

我的新手理解是,安装在 Felix 中的 OSGI 包应该可供我使用 CRXDE 在我的 Java 类中引用,但我安装的 JUnit 包没有发生这种情况。为什么不?我需要做什么才能让CRXDE找到 OSGI 包引用并在 CRXDE 中编译?

0 投票
1 回答
265 浏览

java - felix.xml 的目的是什么?

在一些由 Maven 构建并与 OSGi 和 OSGi Container Felix 相关的项目中,有一个名为 felix.xml 的文件。这个文件有什么用?

它的内容大多是这样的:

示例: https ://www.assembla.com/code/appdapter/subversion/nodes/trunk/maven/Appdapter_OSGi/src/main/assembly/felix.xml?rev=32

https://trac.neo4j.org/browser/laboratory/users/akollegger/neo4j-osgi-hello-cmd/src/main/assembly/felix.xml?rev=7595