问题标签 [pax]
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.
osgi - 带有普通 Maven JAR 的 OSGi 捆绑存储库
我正在努力寻求一种解决方案,将 Web 应用程序作为捆绑包部署到 Virgo 3.0.1.RELEASE。我的情况是:
- 我使用Maven Bundle Plugin来生成清单。
- 我使用Maven WAR 插件排除了所有 JAR 依赖项。
- 我需要命令 Virgo 在本地存储库中托管普通的Maven JAR 工件。作为一个实例,Apache Karaf 和 PAX可以提供纯 JAR 文件作为 OSGi 包。
所以,
- 关于如何配置 Virgo 以托管 Maven 存储库纯JAR 的任何想法?
- 一般来说,根据您的经验,使用现成的 Maven 存储库并将其作为 OBR 托管的最佳解决方案是什么?
提前致谢。
linux - 使用 PaX+Linux+Eclipse 进行调试,构建后执行脚本以移除 PaX 保护
我是 Linux PaX用户,因此要调试任何二进制文件,我需要使用 paxctl 命令禁用保护标志(每个二进制文件)。PaX 通过随机化为用户提供针对缓冲区溢出攻击等的保护,但它也禁止有意义的调试。我可以手动执行此操作,但是每次重建后我都必须重复它。我在考虑这4个选项:
- 使用 /proc/sys/kernel/pax/softmode 临时禁用 PaX
- 让 Eclipse 在构建后运行某种批处理文件(或修改默认生成文件)
- 从内核中删除一些 PaX 以保留地址空间(正如Gentoo 文档所建议的那样)
- 使 Eclipse CDT 调试器 (gdb) 使用硬件断点 (hbreak) 而不是普通断点 (break)
2)似乎是一种方法(不牺牲安全性或性能)。
有没有办法在(重新)构建后执行脚本/批处理文件?
还有另一个问题,即使我以某种方式设法运行禁用保护的脚本,我如何使其安全,使其不能被其他人使用?我正在考虑让 ide 在“eclipse”用户下运行,该用户将在适当的组中执行 paxctl 或类似的东西。
提前感谢您的任何提示。
java - 将 Jacoco 与 Pax-Exam 一起使用
我目前正在开发基于 OSGi 模型的应用程序。我的应用程序的所有测试过程都是使用 Pax-Exam 完成的,它使用 Karaf 创建了一个新的 JVM。
我尝试将 Jacoco 用于我的集成测试代码覆盖率,但它似乎不起作用。当我使用它(使用 maven 插件)时,创建的 jacoco.exec 文件是空的。
由于 Pax-Exam 正在创建一个新的 JVM 来通过 Karaf 进行测试,因此我使用 javaagent 设置了一个 Pax-Exam 选项,以便为将执行测试的新 JVM 使用完全相同的 arg 行。不幸的是,它不起作用。
我已经尝试在没有所有 Pax-Exam/Karaf/OSGi 部分的情况下使用 Jacoco,它运行良好,但我不知道如何使它与我的 OSGi 包一起使用。
我希望有人可以帮忙!
java - BundleContext 在使用 pax-exam 的单元测试中为空
我正在使用 pax-exam 来加载、激活和访问 osgi 包。
以下源代码是我的 pax-exam 测试,它使用本机容器使用 pax-exam 2.3 运行。
但我有以下问题:
checkBundleContext 方法都失败了,捆绑上下文注入(使用
@Inject
)或作为测试方法的参数传递始终为 null即使包在包的 Export-package 中,从包中的类
getRodinDb()
访问静态方法也会抛出about 。RodinCore
org.rodinp.core_1.5.0.r14093.jar
ClassNotFoundException
org.rodinp.core.RodinCore
org.rodinp.core
java - 使用 pax-maven-plugin 构建时将我自己的包源添加到 pax-exam
我正在尝试使用pax-maven-build构建我的 OSGI 包,同时使用pax-exam对其进行测试。它提供了一些捆绑包,我可以使用以下 pax-exam 测试配置进行测试:
在这里,我可以看到我可以从我提供的 jar 中访问 IRodinDB 实例。
现在我编写了自己的包,它将使用所有预置的 jar。但我什至无法测试自己的代码,例如:
在编译时给出错误:
[错误] 无法执行目标 org.ops4j:maven-pax-plugin:1.5:testCompile (default-testCompile) : 编译失败
[错误] 找不到符号
[错误] 符号:VTGService 类
似乎测试编译看不到“src/main/java”,这与 maven-compiler-plugin 的默认行为相反。但在我的情况下,您可以看到 maven 不使用编译器插件,而是使用 maven-pax-plugin。
问题是:如何使用 pax-exam 测试我自己的捆绑包?
更新1
这似乎是最新版本的 maven-pax-plugin 的问题,因为ops4j pax maven 插件中可用的基本示例(在POM 中使用 Pax 插件部分)似乎遇到了同样的问题。
更新2
根据 Dmytro 的要求,这是我的包的 pom.xml:
我不确定它是不是最优雅的解决方案,但是当我可以像在我的问题的源代码中那样导入我自己的包时,我创建了一个新的 maven 项目。
有没有一种优雅的方法可以将我自己的 java 源代码直接添加为新包以在同一个 Maven 项目中进行测试?这可能是不可能的(因为捆绑组装操作是在编译和测试之后完成的)......
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 做错了什么。
我目前的捆绑清单是:
testing - Arquillian 与用于 OSGi(集成)测试的 Pax 考试相比如何?
我目前正在研究如何最好地测试我们打算在 Apache Karaf 上运行的 OSGi 应用程序。显而易见的选择是使用labs-paxexam-karaf进行的 Pax 考试(有关教程,请参见http://iocanel.blogspot.com/2012/01/advanced-integration-testing-with-pax.html)。但是,我担心性能(因为 Pax Exam 显然为每种测试方法启动了一个新框架)。我还发现Arquillian 有一些 OSGi 支持,尽管这不是它的主要关注点。JUnit4osgi 不是一个选项,因为它只支持 JUnit 3。
对于不熟悉这两种框架的人来说,从哪个开始更好?有哪些权衡?
pax - Pax Web Whiteboard ResourceMapping 的路径可以指向捆绑包之外吗?
我尝试将以下内容注册ResourceMapping
为 OSGi 服务:
但在浏览器下看不到结果http://127.0.0.1:8282/resources/aFileUnderMyPath
。我可以看到 Pax Web 正在日志中访问我的映射。这是可能的还是我需要编写一个servlet?
nlp - 我想使用 GATE 谓词-参数提取器组件 (PAX)
我想使用 GATE 谓词-参数提取器组件(PAX),但我不知道如何在 GATE 开发人员(版本 7)上加载插件
请帮我。我如何加载它?
java - 运行 Pax Exam 时出现 IllegalStateException
运行 Pax Exam 时出现以下异常。我的配置仅包括来自文件系统和 junit 和 felix 的单个捆绑包。知道为什么会这样吗?
编辑:我正在使用 Pax Exam 2.5.0,以下是我的配置方法。