OSGi教程:Class Space Consistency
OSGi类空间的一致性
详细内容上面英文教程有详细解答
下面主要是一些个人见解,若有不当之处,欢迎指出:
"Class space consistency can only be ensured if a bundle has only one exporter for each package."
也就是说要想保证类空间的一致性,就要保证一个bundle的每个import的package只能有一个来源。
比如像下图这个就会导致冲突:

图1
如何解决这个问题呢?在org.tripplanner中使用uses指令
“If a bundle imports a package from an exporter then the export definition of that package can imply constraints on a number of other packages through the “uses” directive” – OSGi Specification R4.
Export-Package: org.tripplanner;version=”1.0”;uses:org.transportation
现在关系就可以变成如下图所示了:

图2
Note:
大家可能会问,为什么在图1中org.travel.agency 已经明确声明依赖org.transportation version = 1.0 ,后来却依赖了2.0呢?
因为在OSGi中,声明明确依赖单个版本意味着依赖这个package latest available version,这个被声明的版本代表着要被满足的最低版本。
文章参考自:
Understanding OSGi uses directive
相关问题:
Solving OSGi "Uses" Constraint Violations
OSGi教程:Class Space Consistency的更多相关文章
- OSGi教程:Resource API Specification
此教程基于OSGi Core Release 7 OSGi Resource API规范 详细内容上面英文教程有详细解答 下面主要是一些个人见解,若有不当之处,欢迎指出: Resource:就是能够被 ...
- OSGi教程:Framework Namespaces Specification
此教程基于OSGi Core Release 7 OSGi命名空间规范 详细的教程上面的英文教程里面有详细说明. 我就记录一下自己看完之后的简单理解: OSGi的Namespace规范就是规定了你Ma ...
- 源于《Unity官方实例教程 “Space Shooter”》思路分析及相应扩展
教程来源于:Unity官方实例教程 Space Shooter(一)-(五) http://www.jianshu.com/p/8cc3a2109d3b 一.经验总结 教程中步骤清晰,并且 ...
- Space and GridLayout 教程
Ice Cream Sandwich (ICS) sports two new widgets that have been designed to support the richer user i ...
- Hive/Hbase/Sqoop的安装教程
Hive/Hbase/Sqoop的安装教程 HIVE INSTALL 1.下载安装包:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.3 ...
- 第五章:Reminders实验:第一部分[Learn Android Studio 汉化教程]
Learn Android Studio 汉化教程 By now you are familiar with the basics of creating a new project, program ...
- MySQL 教程--检视阅读
MySQL 教程--检视阅读 准备:Windows 上安装 MySQL 教程地址,PHP语言基础 教程地址2 教程地址3,有讲数据库的备份和恢复 教程地址4,w3c.china,php基础,扩展阅读 ...
- 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之集群概念介绍(一)
集群概念介绍(一)) 白宁超 2015年7月16日 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习 ...
- 【译】Unity3D Shader 新手教程(6/6) —— 更好的卡通Shader
本文为翻译,附上原文链接. 转载请注明出处--polobymulberry-博客园. 动机 如果你想了解以下几件事,我建议你阅读以下这篇教程: 想知道如何写一个multipass的toon shade ...
随机推荐
- CAAnimation动画
具有动画效果的keyPath //CATransform3D Key Paths : (example)transform.rotation.z //rotation.x //rotation.y / ...
- Hie with the Pie (POJ 3311) 旅行商问题
昨天想练习一下状态压缩,百度搜索看到有博客讨论POJ 3311,一看就是简单的旅行商问题,于是快速上手写了状态压缩,死活样例都没过... 画图模拟一遍原来多个城市可以重复走,然后就放弃思考了... 刚 ...
- [原创]Java调用PageOffice给Word中的Table赋值
Word中的table操作需要借助数据区域(DataRegion)实现的,要求数据区域完整的包含了整个Table的内容,这样才可以通过数据区域控制和操作table.因此,要想使用table,则必须在w ...
- <el-tag></el-tag>部分属性与vue版本的兼容问题
[01]标签使用按钮样式<el-tag effect="dark" v-if="myhotelinfo.runstatus=='T'" type=&quo ...
- js 实现横向滚动轮播并中间暂停下
效果: html: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...
- C开发系列-指针
指针 通过一段简单的程序,引入指针的概念 #include <iostream> using namespace std; // changeValue函数的定义 void changeV ...
- springBoot 项目 jar/war打包 并运行
一:idea 打jar 包 简述:springboor 项目最好的打包方式就是打成jar ,下边就是简单的过程 1.打开idea工具 ,选着要打开的项目, 然后打开view--> too ...
- Errors were encountered while processing: mysql-server-5.5
ubuntu 中运行完sudo apt-get install curl之后,最后出现: ldconfig deferred processing now taking place Errors we ...
- 百度ueditor解决页面组件被覆盖问题
本文不再更新,可能存在内容过时的情况,实时更新请移步原文地址:百度ueditor解决页面组件被覆盖问题: 在使用ueditor的过程中,会出现表单组件被ueditor覆盖的问题,解决的方式如下: ue ...
- Android Studio && NDK开发
Android Studio下载安装网址:http://www.android-studio.org/index.php/download/hisversion 在下载界面可以查看安装包内是否包含SD ...