如何获取 Eclipse RCP 应用程序的 OSGi BundleContext?

2023-12-28

我刚刚开始使用 Eclipse RCP 应用程序,它基本上只是提供的“hello world”示例之一。

当应用程序启动时,我想查看我的命令行参数并根据它们启动一些服务。我可以在以下位置获取命令行参数IApplication.start:

public Object start(IApplicationContext context) {
   String[] argv = (String[]) 
       context.getArguments().get(IApplicationContext.APPLICATION_ARGS)));
}

但是我如何获取 BundleContext,以便我可以注册服务呢?它似乎不在 IApplicationContext 中。


刚刚在网络搜索中发现了这一点,并认为我应该推广新的标准 OSGi R4.2 方式(由 Eclipse 3.5 附带的 Equinox 提供)。如果您没有激活器,并且不想创建一个激活器来缓存捆绑上下文,则可以使用 FrameworkUtil.getBundle。修改前面的例子:

import org.osgi.framework.FrameworkUtil;

public class ExportClassDigestApplication implements IApplication {
    public Object start(IApplicationContext context) throws Exception {
        context.applicationRunning();
        BundleContext bundleContext = FrameworkUtil.getBundle(this.getClass())
                                                   .getBundleContext();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取 Eclipse RCP 应用程序的 OSGi BundleContext? 的相关文章

随机推荐

  • 获取PostGIS版本

    我如何知道我拥有哪个版本的 PostGIS 由于某些功能依赖于其他库 例如 GEOS 和 proj4 您可能也想获取它们的版本 然后使用 SELECT PostGIS full version
  • Java 的 Facebook Messenger bot 对象结构

    有没有人创建过一个开源项目 用 java 公开 facebook Messenger bot API 或者我可以转换的另一种语言 本质上是堆栈的对象层次结构 位于 https developers facebook com docs mes
  • 在 Angularjs 中提交后重置表单

    您好 我有一个可以在单击按钮时更新的表单 scope action Update var id routeParams editId scope item updateRecord get id id 更新项目后 不会删除表单字段中输入的信
  • CSS 样式无法识别数字[重复]

    这个问题在这里已经有答案了 可能的重复 CSS 类名中哪些字符有效 https stackoverflow com questions 448981 what characters are valid in css class names
  • Elasticsearch 中的通配符搜索或部分匹配

    我试图向最终用户提供搜索类型 这更像是 sqlserver 我能够为给定的sql场景实现ES查询 select from table where name like pete and type xyz and type abc 但是ES查询
  • 从 Qt 应用程序获取原始数据包数据

    我正在寻找一种方法来访问和篡改 Qt 应用程序发送和接收的原始数据包数据 但找不到任何东西 有什么方法吗 或者 如果不是应用程序 至少有一个从 QWebView 访问数据包数据的方法 有没有什么方法可以实现以上两者中的任何一个 对不起 萨姆
  • Excel:间接(地址(...))与偏移量(...)

    看来用Excel函数INDIRECT ADDRESS and OFFSET 可以互换使用 例如 以下两个公式将相同的结果返回给绝对引用 INDIRECT ADDRESS 1 1 OFFSET
  • Node.js 中 Jade 模板的全局变量

    我在用node js with Jade模板系统 假设 我有这些路由规则 routes first js exports first function req res res render first author Edward title
  • JSR 352:如何从分区步骤的每个分区的写入器收集数据?

    因此 我在写入数据库的步骤中有 2 个分区 我想记录每个分区写入的行数 得到总和 打印到日志中 我正在考虑使用staticWriter 中的变量并使用 Step Context Job Context 获取它afterStep 步骤监听器的
  • Kafka给出:“组成员在实际进入消费者组之前需要有一个有效的成员ID”

    我正在使用 Kafka 来消费 Java 中的消息 我想通过在本地机器上多次启动同一个应用程序来进行测试 当我启动时 我第一次能够开始使用该主题的消息 当我启动第二个时 我得到 Join group failed with org apac
  • 使用 iText 阅读 PDF 注释

    我试图将 PDF 注释的内容获取为字符串 以便我可以将该信息存储在数据库中以供搜索之用 有谁知道如何使用 iText iTextSharp 来完成此任务 是的 但具体细节实际上取决于您所讨论的注释类型 一般来说 PdfDictionary
  • ASP.NET Core 在一次调用服务器中直接返回 excel 文件 (xlsx)(即时)?

    我找到了在服务器上生成 Excel 文件 xlsx 的解决方案 第一次调用时 它会删除文件 demo xlsx 如果存在 并生成新的 demo xlsx 第一次通话http localhost 8000 api importexport e
  • Swift UITableView reloadData 在闭包中

    我相信我遇到了一个问题 我的关闭发生在后台线程上 并且我的 UITableView 更新得不够快 我正在打电话给 REST 服务 在我的关闭中我有一个tableView reloadData 打电话 但这需要几秒钟的时间才能发生 如何使数据
  • 将矩阵(包括值)显示为热图

    我想做的是采用这个矩阵 gt partb 0 5 1 5 1a 1b 2 3 A1FCLYRBAB430F 0 26 0 00 0 74 0 00 0 00 0 00 A1SO604B523Q68 0 67 0 33 0 00 0 00 0
  • PyCharm 如何以及为何改变 Python 的导入逻辑?

    我在 Windows 上有 PyCharm 1 2 1 我必须编辑同一项目的不同分支 有点重的分支 因为它们位于磁盘上的不同文件夹中 可以这么说c apps alpha and c apps beta 对于每个此类文件夹 应调整 PYTHO
  • 为什么匿名用户会被Spring Security重定向到expiredsessionurl

    我真的很想了解 Spring Security 是如何工作的 但目前我有点迷失 这是一个简单的场景 用户访问网站首页但未登录 SecurityContextPersistenceFilter记录没有可用的 SecurityContext 并
  • 如何显示 Mercurial 中特定于命名分支的差异

    假设我有一个命名分支 foo 有两个提交 a b a b c o o o default d e o o branch foo 我想看看 a 和 e 之间的差异 不包括 a 我当然可以使用修订 ID 但这不太实用 在 git 中 只需执行
  • 链接到 Microsoft Open XML SDK 教程 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有人知道 Microsoft Open XML 教程的链接吗 这是了解 Open XML 的官方位置 h
  • 使“类”瞬态或可序列化,但该类是可序列化的

    在检查我的代码后 SonarQube 5 1 标记了许多关键问题 然而 类本身和字段中引用的类也是可序列化的 引用的类通过类继承了可序列化接口 这是我的例子 public class A implements Serializable pr
  • 如何获取 Eclipse RCP 应用程序的 OSGi BundleContext?

    我刚刚开始使用 Eclipse RCP 应用程序 它基本上只是提供的 hello world 示例之一 当应用程序启动时 我想查看我的命令行参数并根据它们启动一些服务 我可以在以下位置获取命令行参数IApplication start pu