2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

比较 Eclipse 扩展和 OSGi 服务

  • 2008-01-29
  • 本文字数:1213 字

    阅读完需:约 4 分钟

Eclipse 扩展和 OSGi 服务的本质及意图都非常相像。尽管它们很类似,但是由于它们背景不同,因此还是有很多不同点。Neil Bartlett 曾经写了一篇文章,对 Eclipse 扩展及多种用途的 OSGi 服务进行了比较分析,最近,他又在其博客上以 PDF 的形式重新发布了这篇文章。这篇文章是特别为那些熟悉 Eclipse 注册库但不熟悉 OSGi 的 Java 开发者编写的。

比较开始于对常见混淆概念的解释,Eclipse 扩展注册和 OSGi 服务层的共存导致了这些概念的混淆:

因为 Eclipse 在版本 3.0 中采用了 OSGi 运行时,在扩展注册(从一开始就是 Eclipse 的特性)和服务层(来自 OSGi 且先于 Eclipse 相关特性存在)之间就有了一些牵连。导致这种牵连的原因是这两种模型有些重叠,而且它们意图解决的问题都非常相似。然而常言道“the Devil is in the details(细节决定成败)”,这两种模型的差别还是非常大的,想将它们合并是不切实际的。因此,Eclipse plugin 和 RCP 应用的开发者需要从这两者中做出选择。

Eclipse 扩展注册基于的是定义在针对每个 Eclipse plug-in 的 XML 文件中的一系列条目。Bartlett 描述了 XML 标记优于严格地使用可执行 Java 的各种好处。与 Eclipse 扩展相比,基础 OSGi 服务用规矩的 Java 代码来定义和注册,代码提供了多个行为实现。在描述到 OSGi 服务的时候,Bartlett 解释了与 Eclipse 扩展相比其实现的内在区别以及相关的优缺点,并得出这一观点:

因此我们真正想要的是结合扩展和服务两者优点的某些东西。某些像服务一样是隐式动态的、但是像扩展一样是“按需”装载的东西。理想情况下,是可以简化应用程序开发者必须要编写的代码的某些东西。

那种认为 Declarative Services 可以满足各种情况的观点是不对的。因为 Eclipse 扩展和 OSGi 服务在不同的方面各有优缺点,创建 Declarative OSGi Services 是为了试图提供一种兼顾两种技术优点的方法。Declarative Services 仍是相对较新的技术,适用于 Eclipse3.3 版(最新稳定版本),Declarative Services 的初始版本已经可用了,可从 Equinox 下载站点单独下载。这篇文章的关键要素被总结成了一个用于比较的表格,该表格回答了 Eclipse 扩展以及所有以前描述过的各种 OSGi 服务(Services、Declarative Services、以及 Spring-OSGi)的如下问题。

  • 什么是已注册的?
  • 它们是如何注册的?
  • 它们是如何消费的?
  • 什么是基数(cardinality)?
  • 它们何时被装载?
  • 怎样处理动态安装 / 卸载?
  • 缓存扩展 / 服务的引用会导致问题出现吗?

Neil Bartlett 以如下看法作为文章的结论:

在这篇文章中,我已经概括地描述了 Eclipse 风格的扩展和 OSGi 风格的服务的优缺点。然而,我不希望我的读者不要单纯地认为“扩展不是动态的”或者“服务不能用于 RCP 应用”。恐怕这个问题太过敏感,根据你的需求的上下文自己做出评估是不可替代的。

想了解更多关于 Eclipse Equinox 和 OSGi 的关系,请访问 Eclipse Equinox 站点查看英文原文: Comparing Eclipse Extensions and OSGi Services

2008-01-29 00:021560
用户头像

发布了 150 篇内容, 共 49.8 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

详细剖析Java动态线程池的扩容以及缩容操作

电子尖叫食人鱼

Java

最佳实践:RunnerGo API性能测试实战与高并发调优

数据追梦人

怎么用drawio一键生成图表?drawio必备的使用技巧盘点!

职场工具箱

人工智能 drawio 办公软件 AIGC Ai绘图

4.29 晚直播预告 | 清华团队揭秘,时序大模型如何让数据“活”起来?

Apache IoTDB

最新字节跳动运维云原生面经分享

王中阳Go

Go 字节跳动 面经

文献解读-The chromosome-scale genome of the raccoon dog: Insights into its evolutionary characteristics

INSVAST

生物信息学 Sentieon 变异检测 全基因组测序 生物信息分析服务

什么是DNS缓存?怎么清理DNS缓存?

国科云

通义灵码正式上线 Qwen3,编程智能体马上来了!

阿里云云效

阿里云 云原生 通义灵码 Qwen

使用 Amazon Nova Lite 实现多快好省的智能视频审核

亚马逊云科技 (Amazon Web Services)

AI智能体的技术架构

北京木奇移动技术有限公司

AI智能体 软件外包公司 AI技术应用

深入解析 Spring AI 系列:解析函数调用

不在线第一只蜗牛

人工智能 spring

金仓数据库:在网信领域持续打造有竞争力的产业生态

科技热闻

呼声超高的 TiDB 性能调优最佳实践来啦,这些“绝招”让你事半功倍!5 月 29 日,TiDB vs MySQL 线上 Meetup 第四期,欢迎 TiDBer 们参与!转发海报参与 TiDB Chaos Mesh 马克杯抽奖!

TiDB 社区干货传送门

MySQL 数据库 SQL优化 TiDB

AI智能体平台的搭建

北京木奇移动技术有限公司

AI智能体 软件外包公司 AI技术应用

稳定币迎来ChatGPT 时刻,如何驱动DeCloud?

PowerVerse

defi 稳定币 DeCloud

数据可溯破局!iVX 可视化调试如何改写 AI 编程规则

代码制造者

AI编程

中国联通网络资源湖仓一体应用实践

Apache Flink

大数据 flink 实时计算 实时湖仓 实时分析

SQLShift 全新上线:Oracle→OceanBase 迁移利器

爱可生开源社区

oracle dba 存储过程 oceanbase

什么是委外管理?委外管理到底有什么用?

积木链小链

数字化转型 智能制造 中小企业 委外管理

通义灵码正式上线 Qwen3,编程智能体马上来了!

阿里巴巴云原生

阿里云 云原生 通义灵码 Qwen

Nacos 3.0 正式发布:MCP Registry、安全零信任、链接更多生态

阿里巴巴云原生

nacos MCP

通义灵码 CCF 算法大会首秀,解码研发智能落地「黄金三角」| 文末领取PPT

阿里云云效

阿里云 云原生 通义灵码

国内首个「混合推理模型」Qwen3深夜开源,盘点它的N种对接方式!

王磊

PAI Model Gallery 支持云上一键部署 Qwen3 全尺寸模型

阿里云大数据AI技术

人工智能 阿里云 LLM PAI Qwen3

AI智能体平台的开发流程

北京木奇移动技术有限公司

AI智能体 软件外包公司 AI技术应用

自己写插件-实现时间戳自由

京东科技开发者

A2A与MCP:理解它们的区别以及何时使用

数据追梦人

通义灵码 CCF 算法大会首秀,解码研发智能落地「黄金三角」| 文末领取PPT

阿里巴巴云原生

阿里云 云原生 通义灵码

蚂蚁数科发布金融智能体开发平台Agentar 内测上线超百个金融MCP服务

Lily

Taro on Harmony :助力业务高效开发纯血鸿蒙应用

京东科技开发者

云交易技术对接全景

京东科技开发者

比较Eclipse扩展和OSGi服务_Java_R.J. Lorimer_InfoQ精选文章