问题标签 [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.
java - 如何使用 maven pax:provision 加速部署
我最近开始与大约 40 名其他开发人员一起开展一个项目。我们将 OSGi 与 Apache Felix 一起使用。我们使用 Maven 和 maven-pax-plugin 构建和部署。OSGi 和 pax 对我来说都很新,所以我不知道有关项目设置的任何细节。
要部署到我自己的机器上,我使用命令
pax:provision 命令启动 pax-runner,日志中的最后几行如下:
在某些正在使用的电脑上,在这行之后大约需要 30 秒到 1 分钟,Apache Felix 才会启动并且可以通过浏览器访问应用程序。但是,在我同事的电脑上,这大约需要 8-9 分钟,而在我的电脑上大约需要 16 分钟。
在这 16 分钟内,没有过多的 CPU 使用或网络流量。好像什么事都没有发生。
我尝试将日志记录级别更改为调试,这为我提供了大量有关 pax-runner 的信息,但在“侦听传输 dt_socket ...”行之后,这是 16 分钟的沉默。在那段时间里,我可以将我的远程调试器 (IntelliJ) 连接到服务器,所以必须运行一些东西。
我的同事似乎都不知道这段时间会发生什么,以及为什么我们两个人花了这么长时间,而其他人却匆匆而过。谷歌也没有给我任何线索,所以我想我会在这里问。
这是一个相当复杂的项目设置,所以我想一次编写小块并进行大量测试,但是不得不等待 16 分钟来测试一个小改动当然会降低生产力。
我希望有人可以帮助我。谢谢!
java - Pax runner eclipse 插件更新站点
我在设置 Pax Runner Eclipse 插件时遇到了困难,因此我可以在 Eclipse 中运行 Felix。
我按照https://ops4j1.jira.com/wiki/display/paxrunner/Plugin+Installation上的说明进行操作,但看起来更新站点(http://www.ops4j.org/pax/eclipse/update/)不可用。
我从公共 maven 存储库下载了 pax-runner-assembly-1.8.5-jdk15.zip 以尝试手动安装插件,但我认为我的文件有误。
我需要下载哪些文件以及应该将这些文件复制到哪里(Eclipse 插件文件夹?)?
osgi - 使用 felix、osgi 和 PaxRunner 框架为 osgi 创建集成测试时出现 java.lang.AbstractMethodError/ClassCastException
我正在尝试为我的包创建集成测试。基本上我想模仿我在普通网络应用程序项目中的设置(其中测试在 src/test 文件夹中)
我几乎就在那里,只是当捆绑包尝试激活时出现异常
本机容器异常
分叉容器异常
我尝试向他们的官方 JIRA 委员会提交,但我无权这样做:
有人可以帮我解决我的问题吗?我已经走到尽头了:(
示例项目(如果项目文件不起作用,请告诉我):
http://www.mediafire.com/download/qnh2gzgygys9982/cq-training.zip
命令: mvn clean 验证
谢谢
osgi - Blueprint/OSGi 中的类加载问题
我有两个托管服务工厂的蓝图,如下所示:
在集成测试(OPS4j Pax Exam)中使用上述服务时,偶尔会出现以下异常:
似乎蓝图正在尝试在两个不同的线程中初始化服务实例,并且当第二个线程到达 OSGi 容器(Felix)时,面临这个错误。因为包已经被第一个线程加载了。
正如我所提到的,这不是永久性的行为,并且会发生 10-20% 的时间。
有人对原因和潜在解决方案有任何想法吗?
osgi - 是否可以在没有 Gogo shell 的情况下启动 pax-run?
我正在尝试部署一个使用 pax-run 配置的应用程序。但是,它似乎坚持安装 Gogo 捆绑包。由于应用程序执行时没有分配终端,Gogo 关闭并停止应用程序。
我发现没有办法删除到 Gogo 捆绑包或至少阻止它们停止。我怎样才能做到这一点?
apache-felix - OSGi 和传递依赖
我正在为我的 OSGi 项目使用 Felix 框架,但我遇到了一个关于第三方依赖项的严重问题。
我正在使用 eclipse 和 maven-bundle-plugin 从源代码和 POM.XML 文件中的 MANIFEST.MF 生成我的包。到目前为止,一切都很好。但是,当我的包中有一些第三方依赖项时,我发现自己正在寻找一个无限的 JAR 列表,这些 JAR 通常不是包,并将它们放在我的 /bundle Felix 目录中,直到不再缺少依赖项。
我将此过程称为“下载 Internet 以使我的 OSGi 应用程序正常工作”。
我究竟做错了什么?当然我一定做错了什么,因为我无法想象任何人拥有一个依赖于 B 的捆绑 A,然后依赖于 C 和 D,然后这两个将依赖于其他几个等等......去寻找所有这些依赖项都使用 google 或 maven Central 手动完成!这太疯狂了!
自动化的正确方法是什么?我很想拥有以下两种解决方案之一:
1) 能够创建一个嵌入了所有依赖项的大型 JAR 文件,但只导出我想要的包,而且,更确切地说,不导入任何包。
2)(我的首选解决方案)有一种方法可以将我的所有依赖项放入单独的 JAR 文件中,我可以简单地将其粘贴到 /bundle 目录中。
3)(甚至更受欢迎)有一种方法可以使用第三方 JAR,而无需将 8GB 的依赖项下载到我的项目中。
我找到了可以做到这一点的工具,但仅适用于直接(一级)依赖项,而传递依赖项则由我手动解决。
这个问题很关键。缺乏这样的工具阻碍了 OSGi 的使用。搜了搜搜了搜,PAX、bndtools、朋友之类的101个解决方案都遇到过,但是好像都没有解决这个问题……</p>
请帮我。如果可以的话,请提供一个活生生的例子,世界各地像我这样的人将从这个问题的解决方案中受益。
谢谢!
-
-
编辑:我附上了一个示例项目,我在其中尝试使用 JScience,但生成的 JAR 包一直要求我提供新的 Imports,即它不是独立的。
示例链接:https ://www.dropbox.com/s/svo3nu3vawvv2xn/RequireJscienceExample.zip?dl=0
我通常尝试使用 Eclipse 将 3rd 方 JAR 转换为包,但他们总是必须导入我没有的包,所以正如你所说,这是一个无穷无尽的情况。
我找不到任何关于 maven-bundle-plugin 的标签 Conditional_Package 的文档。然而,相关搜索向我展示了我之前尝试过但没有成功的内联选项。
我创建了一个基本项目,其中我有一个使用 JScience 库的类,在它的 POM.XML 中我有以下内容:
我是说 maven 内联所有不是来自 osgi 框架本身的包。看看生成的 JAR,它看起来相当不错,我现在只嵌入了包而不是整个 JAR(但是在我看来,我不需要所有这些内联包,因为我只使用了其中两个)。此外,如果我打开 MANIFEST.MF 文件,我可以看到这个有问题的行:
说我缺少 org.joda.convert 和 org.xml.sax。
令我惊讶的是,我们正在谈论一个声明与 OSGi 兼容的库(JScience):http: //jscience.org/
我错过了什么?我真的不能不使用 JScience。而且我之前拒绝了几个 3rd 方库,因为这些 OSGi 3rd 方集成困难,这可以节省我的开发时间。
java - Maven Pax Runner 无法解析配置文件
如果我在 Maven 插件中定义如下配置文件:
然后我收到以下错误:
该插件不理解网络战争配置文件。为什么??
osgi - Pax Exam 对 Karaf 执行命令
我正在尝试运行一个 PAX 考试测试,它启动一个 Karaf 实例版本 4.0.2,然后部署一些功能。到目前为止一切正常。
但是,我还想运行一些命令来检查捆绑包是否已安装,即运行“bundle:list”命令。
我在此处添加了 executeCommand 和 getOsgiService 方法: https ://github.com/christian-posta/rider-auto-osgi/blob/master/itests/src/test/java/org/jboss/fuse/example/support /FuseTestSupport.java#L80
但我得到了 RuntimeException:
这是导致异常的代码。
CommandProcessor 的某些东西不起作用。任何提示或帮助将不胜感激。塔肯
pax-exam - 使用 --definitionURL 配置 pax-exam
从Dmytro Pishchukhin 的博客中,我了解到 pax-exam 的运行器可以通过以下方式从包含平台定义的扩展 xml 配置自己:
@Configuration
public static Option[] configurePlatform() {
return options(
...
rawPaxRunnerOption("--definitionURL", "file:platform-equinox-3.6M7.xml")
);
}
但它似乎rawPaxRunnerOption
已被弃用和删除。这些天有没有办法加载这个定义?(Pax Runner Docs上的文档)似乎没有更新。
osgi - 如何在 karaf paxexam 配置中提供存储库 url
下面的代码尝试从这个位置安装特性中定义的工件http://repository.apache.org/content/groups/snapshots-group/ 有没有办法提供另一个存储库位置以供下载和安装。
当前执行上述代码时,我收到以下错误