问题标签 [gogo-shell]
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.
eclipse - 使用 Eclipse 启动任务将展开的捆绑包部署到 Apache Felix
我正在寻找一种方法来从 Eclipse 中(重新)部署一个分解的捆绑包(意味着不是 jarred,而是在一个文件夹中)到一个正在运行的 Apache Felix OSGi 容器,最好使用启动任务。
我发现了这个问题,它有一个接近的答案,但它取决于在 Gogo shell 中输入命令,这不方便长期开发使用。我想为此使用 Eclipse 的启动任务机制,但如果有同样快速和方便的替代方案,我也愿意接受。
现在我认为,如果我可以从 Eclipse 启动任务中触发 Gogo shell 命令,那将是一个解决方案,但我也无法理解如何做到这一点。我想我需要 Remote Shell 捆绑包,对吗?
我开始考虑用 Java 编写一个 telnet 客户端,它可以连接到 Remote Shell 包并以自动方式执行 Gogo 命令。我已经看到了一些 示例,我可以对其进行修改以满足我的需要……但是,我从中得到了一种“重新发明轮子”的感觉。肯定有更好的方法吗?
一些背景可以帮助您了解我在做什么:
我已经建立了一个 Eclipse 'OSGiContainer' 项目,它基本上包含 Apache Felix jar 和我想要部署的第三方包(如 Gogo shell),类似于此处描述的项目设置。然后我创建了第二个包含我的包的“MyBundle”项目。我想通过启动 OSGiContainer 项目来启动 OSGi 容器,然后在我的包上进行开发并通过将 MyBundle 项目启动到我只想在开发过程中一直运行的 OSGiContainer 中来测试我的更改。
项目布局:
- OSGi容器
- bin(包含 felix jar)
- 捆绑包(第三方捆绑包)
- conf(Felix 的 config.properties 文件)
- 我的捆绑
- 源代码
- 目标
- 班级
然后我可以通过在 Gogo shell 上调用这些命令将我的包部署到 OSGi 容器:
要重新部署,我调用这些命令:
您可以想象每次必须在 shell 上调用 4 个命令并没有那么有趣……因此,即使您可以给我一种方法来将其归结为更少的命令来键入,这已经是一个很大的改进了。
更新
我修改了一下,想出了下面的课程。它是对 telnet 示例的改编,做了一些小改动,并提供了一个带有必要命令的 main 方法,用于卸载捆绑包,然后重新安装并启动它。捆绑包的路径应作为程序的参数给出,如下所示:
我仍然非常欢迎这个问题的答案,因为我根本不喜欢这个解决方案。然而,我已经证实这有效:
osgi - Gemini Blueprint Extender 线程中偶尔出现死锁
在启动我的 osgi 应用程序时,我偶尔会遇到死锁问题。我的项目具有以下外部依赖项(不包含我的项目特定捆绑包):
我的应用程序的线程转储如下:
线程EclipseGeminiBlueprintExtenderThread-24
和EclipseGeminiBlueprintExtenderThread-12
死锁并以某种方式涉及Gogo shell。
我的问题是导致这种僵局的原因是什么?- 是我的代码中的某些东西还是双子座中的错误?我该如何解决这个问题?他将高度赞赏任何指点。
osgi - gogo 控制台捆绑包的启动级别问题
我刚刚将一个较旧的 OSGi 项目迁移到当前的 equinox 版本 (Kepler SR1)。在使用 gogo 控制台时,我在启动 gogo 捆绑包时遇到了一个问题,启动级别为 1(这就是我通常对所有相关框架捆绑包所做的事情)。尽管所有四个捆绑包都处于活动状态并正在运行,但 gogo 控制台不会启动。键入帮助将导致 NullPointerException。解决方案是使用默认启动级别启动所有 gogo 捆绑包。我是否遗漏了什么,或者这只是捆绑生命周期设计不佳的一个案例?捆绑包不应该依赖于启动级别才能工作。
麦克风
fuseesb - FuseFabric - 通过控制台添加配置文件
在 FuseFabric 中,我们可以使用 Web 控制台添加配置文件,使用 Config Files 选项卡,只需编写 configFile 的名称和其中的属性 foo=foo
好吧,这很简单,我的问题是:如何使用 Fabric 控制台来做到这一点?
只是输入命令??????丁:
我已经看到了 fabric:profile 及其选项,我可以编辑属性,但前提是已经存在 PID。
谢谢你的每一个答案!
apache-karaf - org.apache.felix.shell.Command 和 Servicemix
我已经实现了一组“org.apache.felix.shell.Command”,目的是在 Apache Servicemix 中使用它。这些命令正在使用“org.osgi.framework.BundleActivator”注册(不涉及蓝图,因为它经常与我广泛使用的 Spring 冲突)。我已经用 Pax-Exam 测试了这些命令,一切似乎都运行良好。但是,当部署到实际的 Servicemix 容器时,这些命令不可用。
我偶然发现了以下内容(http://t20025.apache-karaf-user.apachetalks.us/getting-felix-scr-commands-to-show-up-in-karaf-t20025.html),但是建议的解决方案不适合我。
有没有人遇到过类似的问题并设法找到了可行的解决方案?
osgi - 使用 gogo gosh 脚本时,如何从所有命令中获取打印输出
我正在尝试自动化服务的配置和搜索,以加快对 OSGi 系统更改的测试。我使用 Maven Pax:Provision 从各种存储库中设置环境。
我有一些命令从 xml 文件加载数据,然后有一些命令来搜索服务。搜索命令都返回一个描述结果的字符串。
我有一个 provision.tsl 文件,其中包含加载 osgi 环境的命令和一个运行搜索命令的 search.tsl 文件。在 search.tsl 我有一个搜索命令列表,每个命令用于我加载的各种表。例如
但是,当我运行搜索命令 EG
我只得到文件中最后一个命令的结果。回声虽然正常工作,但看起来像。
这是天哪的预期行为吗?
osgi - 是否可以在没有 Gogo shell 的情况下启动 pax-run?
我正在尝试部署一个使用 pax-run 配置的应用程序。但是,它似乎坚持安装 Gogo 捆绑包。由于应用程序执行时没有分配终端,Gogo 关闭并停止应用程序。
我发现没有办法删除到 Gogo 捆绑包或至少阻止它们停止。我怎样才能做到这一点?
osgi - gogoshell自己的命令管道
我正在尝试使用 gogo-shell 添加一些控制台命令例如我正在创建命令添加和显示
当我像使用它们时
我得到类似的东西
或者
我认为这是因为管道(添加)并行运行。那么我如何编写命令,管道将是顺序的。
osgi - 我如何实际运行 Apache Felix OSGi 的 shell?
- 我从http://felix.apache.org/downloads.cgi下载了当前的 Felix jar 链接(对于 4.4.1 版)
- 提取.zip
- 使用“java -jar felix.jar”运行 bin/felix.jar
- 观察到创建了felix-cache/目录
我知道那时我应该坐在 Felix shell 中。但是我没有输出。我按照这里的说明输入“帮助”:http: //felix.apache.org/documentation/subprojects/apache-felix-framework/apache-felix-framework-usage-documentation.html
但就外壳而言,我一无所获。只是一个空白终端,可以让我输入但根本不响应。
此外,如“远程外壳”说明中所述,我尝试“远程登录 localhost 6666”但也一无所获。
我想做什么是错的吗?gogo shell 是一个单独的应用程序吗?如果没有,并且我正确地期望看到 shell,我应该在哪里进一步调试这个问题?
osgi - 没有 gogo shell 的 pax-provision
我最近开始使用 osgi。我正在使用 pax 工具来生成和部署我的包。我正在尝试创建一个控制台应用程序,但每次我启动 pax-provision 命令时都会触发 gogo shell。我也想知道 pax-provision 和 pax-run 有什么区别(我不使用 pax-run )。