问题标签 [pax-runner]

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 投票
1 回答
1308 浏览

java - 如何分析 OSGi 部署的执行?

我正在开始为一个应用程序开发一个 OSGi 包,该应用程序将部署在具有一些硬件限制的设备中。我想知道如何分析该捆绑包的执行情况,以始终确保它符合最终设备中的依赖关系。最好有一个分析器来了解每个捆绑包使用了多少内存、定位瓶颈并比较同一服务的不同实现。

是否有任何用于 OSGi 部署的分析器,或者我应该使用通用 Java 分析器吗?

对于开发,我使用 Pax runner 和 Apache felix 来运行包和 maven 来管理项目依赖项和构建。

0 投票
2 回答
974 浏览

eclipse - 如何调试在 OSGi 上运行的 GWT 应用程序?

我正在使用 GWT 开发 Web UI。虽然只使用我可以使用 Firefox 扩展从 Eclipse 调试的小部件,但现在我正在将 UI 与其他 OSGi 捆绑包集成,我无法使用此解决方案。

为了部署 GWT 应用程序,我创建了 .war 并使用BND将其转换为 OSGi 包。然后我使用 Pax Runner 和 Pax Web 启动带有所有捆绑包的 OSGi 容器,并且应用程序可以正常工作,但是当生成的 javascript 代码出现问题时,我没有任何像样的输出错误或调试工具。

有什么方法可以从 OSGi 以“调试模式”启动 GWT 应用程序?

在这种情况下还有什么其他的想法可以帮助吗?

更新:是否可以com.google.gwt.dev.DevMode使用来自的浏览器连接器实例化或其部分Activator

0 投票
2 回答
811 浏览

osgi - 使用 pax-runner 在 spring-OSGI 中登录

我们正在使用 pax-runner 运行OSGI包。我们在 slf4j 上使用 logback 进行日志记录。

问题是logback尝试在类路径中查找 logback.xml,但是在pax-runner中我应该将 logback.xml 放在哪里,以便 pax-runner 相应地配置 logback?

我已经尝试使用 JoranConfigurator 加载包含在包类路径中的 logback.xml,但它假定类路径是运行包的容器(在我的情况下,它是放置所有包 jar 的运行器文件夹)。

任何帮助,将不胜感激。

预先感谢。

0 投票
1 回答
1457 浏览

intellij-idea - 尝试运行 OSGi 调试目标时支持“不支持平台”

我正在尝试从 IntelliJ Idea 运行一个小型 OSGi 项目。我在 Idea 的 OSGi 配置部分中添加了 Equinox 容器。然后我将 OSGi 方面添加到项目中。到目前为止,一切看起来都很好。

但是,一旦我尝试运行该项目,我就会遇到麻烦。我使用 IntelliJ Idea 的“OSGi Bundles”运行器。在那里我选择我的项目包和 OSGi 容器并运行它。问题从这里开始。我总是同样的错误信息:

我尝试使用其他 OSGi 容器,例如 Felix 或 Knopflerfish,但也遇到了同样的问题。有谁知道我做错了什么。或者 IntelliJ 支持哪些版本的 OSGi 容器?

0 投票
1 回答
255 浏览

osgi - Pax Runner:有关于进程内执行器的经验吗?

我目前正在决定在从 IDE 运行 OSGi 应用程序时使用哪个 pax 执行程序(请参阅http://paxrunner.ops4j.org/space/Executors以获得可用的列表)。当我想使用 pax runner 从 IDE 运行进程时,基本上有两种选择:

In-Process-Executor(在与 Pax Runner 本身相同的 Java 进程中运行 OSGi 进程):

  • PRO:易于附加调试器。
  • PRO:很容易杀死 OSGi 进程,因为没有启动第二个 Java VM。
  • PRO:启动速度更快。

  • CON:严重限制 paxrunner 对非 javaVM 设置的功能(来自 Pax Runner 的文档)。

默认执行器:(在新的 Java 进程中运行 OSGi 进程)

  • PRO:使 Pax Runner 能够设置各种 JavaVM 设置。

  • CON:更难附加调试器(需要一些远程调试设置)。

  • 缺点:如果 Pax Runner 没有正确执行,几乎不可能杀死 OSGi 进程。
  • CON : 随着两个 JVM 的启动,启动时间更长。

所以我的问题基本上是,如果有人遇到 Pax Runner 的 JVM 设置功能至关重要并且 OSGi 进程在使用进程内执行程序时无法工作的情况。我还没有找到这样的例子,但是我需要确定我是否支持进程内执行程序、默认执行程序或两者都支持,所以一些利用默认执行程序的 JVM 设置功能的实际用例将真正帮助我做出那个决定。

0 投票
2 回答
2908 浏览

osgi - 如何在 Apache Felix OSGi 框架中更新 Bundle

我在从gogo shell. 我gogo shell在终端上运行。我的捆绑包在那里活跃。

现在,当我对代码进行更改时,需要哪些步骤将这些更改转发到正在运行的 OSGi 框架中?

我运行了更新<bundleId>,但没有任何反应。它仍然运行我启动框架时编译的相同版本。在更新命令之前,我打开了另一个终端并运行mvn clean install(我maven-bundle-plugin与 一起使用pax-construct)。

0 投票
2 回答
327 浏览

java - 加快 PAX(OSGI 测试)框架的技巧

我知道 PAX 正在做很多事情,创建容器并复制所有这些 jar 并不便宜,但有任何提高性能的一般技巧。我有一些测试可以在几分之一秒的时间内在容器外执行,而在容器内则需要更长的时间。我主要使用 PAX 来验证我的清单是否准确,并且该捆绑包可以部署而不会丢失任何依赖项。我尝试过 Knopflerfish、Equinox、Felix,总的来说,它们对于准系统无容器运行来说相对较慢,几乎没有什么区别。

0 投票
1 回答
4045 浏览

osgi - 在 Apache Felix 中部署战争文件?

我正在尝试将应用程序部署到 Apache Felix。这是一个 gwt 应用程序,但我一直在简化问题,直到只是一个 hello world html 文件,所以我的问题是在 war 文件中部署任何类型的 Web 应用程序。我还尝试在 Apache Karaf 中部署生成的战争,并且它们可以正常工作(一旦您安装了功能 war)。

所以,现在我有这个:

pom.xml 非常简单,有趣的部分与 felix 插件有关,但对于这场没有任何编译代码的战争来说,这并不重要......

pax 插件也在那里,因为我尝试使用它运行应用程序,但我得到了相同的结果。web.xml 是一个空的:

一旦你执行mvn package来生成 war 文件,如果我在 Apache Felix 中部署它,我不会收到任何错误,捆绑状态是活动的,但我在尝试访问 /sample 路径时只会收到 404 错误。我尝试将 sample 和 /sample 作为上下文路径值。运行mvn pax:run 也会发生相同的行为。如果我在 Apache karaf 中部署战争,它会起作用,所以我会假设我对 felix 做错了什么。

我目前的捆绑清单是:

0 投票
1 回答
1457 浏览

java - Logback 在 OSGi 容器中包含片段

我有一个a-conf带有src/main/resources/logback/conf/a/CommonAppenders.xml文件的项目:

我还有另一个a-runable带有logback.xml配置的项目导入CommonAppenders.xml

我可以a-runable在包含所有依赖项(是其中之一)的独立 jar中编译,也可以a-conf作为 OSGi 包编译。当我运行独立应用程序时,一切正常 - 日志文件显示为CommonAppenders.xml. 但是当我运行 OSGi 容器时,不会创建任何日志文件。我认为 logback 不能包含来自类路径的资源,因为 OSGi 容器中的每个包都有自己的类加载器(logback 用于ClassLoader.getResource()包含文件)。

我已经签Export-Package: logback.conf.aa-conf.jar/META-INF/MANIFEST.MF(这是由 maven bundlor 插件完成的) - 没关系。添加Import-Package: logback.conf.aa-runable没有效果。

我不知道我能做什么(没有要更改的代码,只是配置)。欢迎任何帮助。

PS我在这里发现了类似的问题,但logback.xml已经在类路径中并且它自己的附加程序工作正常。FileNotFoundException此外,我在现有日志中没有任何s。

0 投票
4 回答
5487 浏览

jenkins - 在 jenkins 上持续部署基于 OSGi 的应用程序

在花了几个小时试图了解如何在基于 OSGi 的应用程序的情况下进行持续部署之后,我终于在 stackoverflow 上提出了我的第一个问题,希望能找到一些迹象表明我可能做错了什么或错过了什么——不知何故感觉走错路了。。。

这就是我想要实现的目标:

  1. 构建一些包并将它们安装到 maven 存储库(这里没问题,使用 bnd)

  2. 现在有了构成我的应用程序的所有包(通过所有测试等),我想部署和运行应用程序,即使用这些包启动一些 OSGi 框架。

  3. 开始不是问题——“mvn pax:provision -Dframework=equinox”可以解决问题。我的应用程序启动了 jetty,因此很容易通过浏览器进行验证以查看一切是否正常(除了所有测试)

  4. 但是,现在,尝试“连续”,下次我想应用这个过程时,我真的应该确保首先关闭我的应用程序的运行实例(至少释放正在使用的端口)。所以,要重新运行一切,我必须先关闭旧的安装。

这就是我的问题开始的地方:有什么可以帮助我解决这个问题吗?我知道有maven-deploy-plugin,但这似乎只有在将一些 WAR/EAR 文件部署到一些标准应用程序容器中时才有用(似乎不需要重新启动它)。

我真的只需要运行一些脚本来启动OSGi 环境——然后,下一次,在我再次启动它之前优雅地关闭它。用tomcat、jetty、jboss之类的,有一些shutdown.sh脚本或者mvn jetty:stop指令,但是真的要自己写那种脚本吗?这就是我认为我开始走错路的地方,我猜肯定有人在我之前遇到过这些问题并解决了它们;)

我知道我可以以某种方式尝试使用JMX或使用telnet 控制台来访问正在运行的实例以发出“stop 0”命令,但这感觉不对

从詹金斯开始的进程应该编译/构建/部署项目,但我猜不是启动长时间运行的线程,所以我必须以某种方式启动一些“外部”进程,我想在下次再次尝试时首先杀死它。

有任何想法吗?也许我错过了什么?提前感谢您对此的任何意见!