如何在Eclipse平台上自动启动/热启动OSGi服务

2023-11-23

我开发了一个 Eclipse RCP 应用程序,该应用程序大量使用 OSGi 捆绑包,这些捆绑包提供服务以供以后使用。该用例要求捆绑包注册其服务(例如导入过滤器)以便稍后在不同情况下使用。 OSGi 捆绑包是使用 maven-bundle-plugin 构建的。

我如何告诉 Equinox 自动启动 OSGi 包?通过 Activator 的正常方法不起作用。只有惰性模式有效,但我无法触及未知包中的类。我阅读了 OSGi 规范,但没有提供与延迟加载相反的急切加载。是否还有机会将捆绑包标记为自动加载?

在 Eclipse 中,我有机会将自动启动设置为 true,但是在 Maven 和 Tycho 构建的发行版中我该怎么办?

由于未加载 org.eclipse.equinox.ds 的问题,声明性服务无法工作。我可以以某种方式启动它而不是激活器吗?这也是一个解决方案,但我不知道如何构建发行版或设置什么配置。

这里的最佳实践是什么?还有其他的可能性吗? Eclipse 平台上的 OSGi 包的文档有点薄。


叹。您是 Eclipse 中防止(愚蠢的)程序员延长启动时间的误导策略的受害者。他们没有发出警告,而是决定根本不开始捆绑销售。这与 OSGi 建议的相反:-( 只有当有人从中加载类时,捆绑包才能被激活(它们基本上无效启动)(这就是延迟激活。)

迄今为止最好的解决方案是使用声明式服务。您可以声明立即服务,该服务将在启动时激活,也可以声明惰性服务,该服务在使用时激活。懒惰的人当然是首选(当你不是一个愚蠢的程序员时),但某些用例需要立即执行,例如通过互联网提供服务的服务器。您必须确保在 config.ini 中 DS 已启动。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Eclipse平台上自动启动/热启动OSGi服务 的相关文章

  • 按下按钮时清除编辑文本焦点并隐藏键盘

    我正在制作一个带有编辑文本和按钮的应用程序 当我在 edittext 中输入内容然后单击按钮时 我希望键盘和焦点在 edittext 上消失 但我似乎无法做到这一点 我在 XML 中插入了这两行代码 android focusable tr
  • Cq5.5 将 servlet 过滤器应用于特定路径

    我正在 cq5 5 中开发自定义表单处理程序 一切都很顺利 我现在正在努力锁定一些安全性 我的任务之一是对表单处理程序路径实施请求限制过滤器 目前我有类似的东西 Component immediate true metatype true
  • java.lang.UnsatisfiedLinkError:java.library.path中没有opencv_java2411

    我正在尝试将 opencv 添加到我的 Spring Boot Maven 项目中 为了使用 opencv 库 我必须在 java library path 中提供本机库 我已将以下命令添加到 Eclipse VM 参数中 Djava li
  • 如何正确地将MapStruct与Eclipse集成? (包括Lombok java代理)

    我愿意在一些官方项目中使用MapStruct 所以我决定先对其进行一些测试 我需要让它与 eclipse 集成工作 并遵循 MapStruct 网站上提供的所有说明 但是 到目前为止还没有运气 有人成功实现了这种整合吗 如果是的话我可以缺少
  • android eclipse 中显示的是单独的屏幕而不是 tabhost

    我是android的自学者 我有两个屏幕 第一个屏幕包含一个编辑文本和一个按钮 编辑文本用于获取用户的输入 按钮用于调用第二个屏幕上的 tabhost 活动 在运行时 收到用户输入后 它应该显示适当的值 根据用户的输入 到第二个屏幕上的 t
  • 将 Tomcat 插件添加到 Flex Builder

    无论如何 我们可以将 tomcat eclipse 插件添加到 Adob e Flex Builder 3 中吗 换句话说 我们可以将所有 Eclipse 插件也添加到 Flex Builder 中吗 我不确定 Tomcat 的情况如何 但
  • 如何使用 Eclipse 从我的设备检索我的应用程序的沙箱?

    我有一个 Android 应用程序 它使用共享首选项 我使用 Eclipse 在 Android 设备中运行该应用程序 我想拉整个sandbox来自设备到桌面这样我就可以手动查看sharedPreferences的内容 我点击了DDMS并点
  • Eclipse java 断点 - 目的是什么?

    我正在学习 Android 教程 刚刚进入调试部分 我想知道断点的用途是什么 我还不能告诉 它实际上停止了应用程序 以便我可以确定它运行到该点 或者我可以设置多个断点并将它们用作标记来从断点到断点检查 停止和运行 我的代码 断点是执行停止的
  • 我可以在 NetBeans 中使用或导入 Eclipse 格式化程序吗?

    我们已经使用 Eclipse 很长时间了 我们的每个项目都有格式化程序 现在 我们中的一些人正在转向 NetBeans 是否可以将 Eclipse 格式化程序迁移 同步 导入到 NetBeans 我尝试将 Eclipse 项目导入 NetB
  • TestNG 启动期间发生内部错误

    我创建了一个 TestNG 类 FirstTest java 当我将测试用例作为 TestNG Test 运行时 出现以下错误 期间发生内部错误 启动 FirstTest java lang NullPointerException Ecl
  • Eclipse:C/C++ 插件下载链接?

    我下载了 Eclipse 3 5 1 的 Java EE 版本 我现在可以使用它通过适当的插件来编辑 C C 吗 我去了Help gt gt 安装新软件但我不知道使用哪个 URL 来获取 C C 插件 我在 Eclipse 网站上也找不到它
  • 在 Eclipse 中生成 POJO 的所有 setXXX 调用?

    我目前正在对 JPA 实体进行大量测试 其中我必须不断调用实体上的 setter 方法 如下所示 myEntity setXXX value myEntity setYYY value myEntity setZZZ value Eclip
  • 从 Android 函数更新 Textview

    有人可以告诉我如何从函数更新 Android Textview 控件吗 我在互联网上进行了深入搜索 看到很多人都问同样的问题 我测试了线程但无法工作 有人有一个简单的工作示例吗 例如 调用一个函数 在循环中运行多次 并且该函数在 TextV
  • XPage Osgi 插件开发中

    背景在过去一年左右的时间里 我设计了许多工具 旨在帮助我进行 XPages 编程 这些工具主要包括辅助 java 类 扩展日志记录 利用 OpenLogger 和我自己的东西 以及我个人认为没有我就无法工作的其他一些东西 已经与我的雇主讨论
  • Eclipse Oxygen - 项目消失

    为什么项目会从 Oxygen 的项目资源管理器中消失 启动 Eclipse 后我可以短暂地看到它们 但随后它们就消失了 无法重新添加或导入它们 因为它表示它们已经存在 我将项目从 git 重新克隆到另一个目录中 删除了 classpath
  • 获取Eclipse中当前编辑文件的绝对路径

    我想编写一个插件来对 Eclipse 中当前编辑的文件执行某些操作 但我不确定如何正确获取文件的完整路径 这就是我现在所做的 IFile file IFile window getActivePage getActiveEditor get
  • Android ClassNotFoundException:在路径上找不到类

    10 22 15 29 40 897 E AndroidRuntime 2561 FATAL EXCEPTION main 10 22 15 29 40 897 E AndroidRuntime 2561 java lang Runtime
  • Eclipse 在单独的窗口中打开代码

    我正在 eclipse 中编程 在两个显示器设置上运行 在其中一台显示器上 我只获得了项目资源管理器和编辑器作为自定义透视图 而在另一台显示器上 我获得了其他工具 例如控制台 调试 任务 变量 断点等 例如 当我单击任务视图中的任务时 这将
  • 如何从 jenkins 的现有项目生成 .hpi 插件

    我正在尝试使用 jenkins 的性能插件 但最新版本存在一些问题 如链接中所述 https issues jenkins ci org browse JENKINS 27100 https issues jenkins ci org br
  • 如何从 Anaconda 更新 Pandas 以及最后是否可以使用 eclipse

    我已经使用以下文档通过 Anaconda 安装了 Python http www kevinsheppard com images 0 09 Python introduction pdf http www kevinsheppard co

随机推荐

  • 更改当前正在运行的进程的所有者

    我有一个当前正在运行的进程pid PID 并由user foo这是not root 我想将此进程的所有权转移给另一个进程user bar这也是not root 是否有一个 shell 命令可以更改进程的所有者 我正在考虑一个chown但对于
  • Stripe:为订阅添加免费天数

    是否可以为 Stripe 上的有效订阅添加免费天数 我想这样做是为了创建一个推荐计划 当用户推荐某人时 他将获得 10 天的免费时间 我认为一个好方法是更新current period endvar 但我在文档中找不到如何执行此操作 例如
  • Array.Sum() 导致溢出

    我有一个像这样的 int 数组 int arr 256741038 623958417 467905213 714532089 938071625 然后我创建了一个 int64 var Int64 sum arr Sum 但这导致了溢出 运
  • Delphi XE - RawByteString 与 AnsiString

    我在这里有一个类似的问题 Delphi XE 我应该使用 String 还是 AnsiString 在决定在我的 大型 库中使用 ANSI 字符串是正确的之后 我意识到我实际上可以使用 RawByteString 而不是 ANSI 因为我将
  • 创建可下载的自定义主题并在运行时应用它

    我正在制作一个 Android 应用程序 需要允许客户端维护来自服务器的资源 其中包括字符串 可绘制对象等 我已经创建了一种机制来下载包含所有这些文件的 zip 文件 并且它们能够非常轻松地更改字符串 我还创建了一种允许客户端更改 UI 控
  • Java抽象类和接口[重复]

    这个问题在这里已经有答案了 在面试中我被问到以下问题 我试图回答这个问题 但我想要问题的确切答案 如果我可以将抽象类模拟为接口 为什么java还要提供接口呢 这意味着如果在抽象类中我可以将所有方法标记为抽象 然后抽象类将充当接口 那么为什么
  • 将包含字典列表的列转换为 pandas 数据框中的多列

    我有一个 Pandas 数据框 如下所示 pd DataFrame a 1 2 b c 1 d 5 c 3 d 7 c 10 d 50 Out 2 a b 0 1 u c 1 u d 5 u c 3 u d 7 1 2 u c 10 u d
  • Mongoid:如何仅加载通过引用延迟加载的对象的某些字段?

    出于性能原因 我尽可能经常使用only 编写 mongoid 查询时使用关键字来指定我想要加载的字段 通常的嫌疑是 例如 当我希望所有管理员的用户电子邮件仅用于显示目的时 我会写 User where groups gt admins on
  • Linq to Entity 从 DateTime 获取日期

    var islemList 来自Entity Islemler中的isl 其中 isl KayitTarihi 日期 gt dbas isl KayitTarihi Value Date 它给出错误 LINQ to Entities 不支持
  • 如何获取包含图像的 contenteditable div 的插入符位置

    我有这个 contenteditable div div minubyv img src class emojiText iubyvt div Here is an image description of the code output
  • android 自定义对话框背景

    我需要在我的 Android 应用程序中显示自定义对话框 标准AlertDialog设计是不可接受的 Android 文档说 提示 如果您想要自定义对话框 您可以显示一个 Activity 作为对话框而不是使用对话框 API 只需创建一个
  • 有没有办法在匹配 url 之前更改 request.path?

    当我收到包含 self 一词的路径请求时 我想在将其与 URL 匹配之前将其替换为用户 ID 我尝试使用这样的中间件 def process request self request if self in request path requ
  • 在Linux中,如何使用外部jar文件执行Java jar文件?

    在Linux中 如何使用外部jar文件执行Java jar文件 要么使用 cp flag java cp path to somefolder jar path to otherfolder jar com YourMainClass 或者
  • 通过 https 从 C# 使用 POST 进行发布

    浪费了两天时间后这个问题 并试图让它发挥作用 我决定退后一步 问一个更基本的问题 因为显然有些东西我不知道或者我做错了 要求很简单 我需要通过 https 进行 HTTP post 传递一些值 来自 C 该网站 如果给定了适当的值 将返回一
  • 浏览器会解析/预渲染/绘制显示:无HTML吗?

    我想阻止浏览器执行解析和预渲染或绘制一些 隐藏 HTML 的工作 直到我准备好显示它 以便我可以快速显示一组最小的内容 让浏览器只执行以下操作渲染可见的部分 我正在寻找初始页面加载的最大渲染 绘制速度 我当前的 HTML div div c
  • pygame 错误:“ImportError:没有名为 'pygame' 的模块”

    这是我的情况 我尝试导入pygame在 python 3 4 2 和 python 3 6 3 中都使用pip and pip3分别 在 python 3 4 2 shell 中 回溯 最近一次调用最后一次 是 文件 第 1 行 位于导入p
  • 评估 100 * 2.55 值时得到错误结果

    我使用以下方法得到错误的结果 public double evaluate final double leftOperand final double rightOperand Double rtnValue new Double left
  • Service Fabric 微服务与 Azure 云服务/Web 应用程序集合的优势

    我有一个可以分解为多个通信服务的应用程序 我当前的实现是整体的 我想重新组织它 以便可以独立地部署 迭代和扩展各个组件 我发现使用 Azure 有两种方法可以实现此目的 Service Fabric 服务由一组通信微服务 无状态 Web A
  • 应用 ElementStyle 时 DataGridCheckBoxColumn 丢失 IsReadOnly 状态

    我需要垂直居中DataGridCheckBoxColumn 因为我没有找到里面的房产DataGridCheckBoxColumn 我应用了ElementStyle 然而 当应用这种风格时 我的CheckBox再次变为可检查 尽管它被设置为R
  • 如何在Eclipse平台上自动启动/热启动OSGi服务

    我开发了一个 Eclipse RCP 应用程序 该应用程序大量使用 OSGi 捆绑包 这些捆绑包提供服务以供以后使用 该用例要求捆绑包注册其服务 例如导入过滤器 以便稍后在不同情况下使用 OSGi 捆绑包是使用 maven bundle p