osgi 2
基础的API
BundleActivator BundleContext ServiceReference HelloServiceFactory ServiceTracker
osgi
疑惑:
Import-Package
最最基础的bundle中包含哪些 package?
很多, org.osgi.framework 是其中一个, org.osgi.framework.BundleActivator 则是位于其下。
为什么只导入package ‘org.osgi.framework ’ 即可,不需要导入整个org.eclipse.osgi_3.2.0.v20060601.jar bundle吗?
org.eclipse.osgi_3.2.0.v20060601.jar 对应几个bundle ———— osgi中 一个jar 只能对应一个bundle吗? 是的!
看看其中的MANIFEST.MF就知道了吧
Manifest-Version: 1.0
Bundle-Activator: org.eclipse.osgi.framework.internal.core.SystemBundl
eActivator
Bundle-RequiredExecutionEnvironment: J2SE-1.4,OSGi/Minimum-1.0
Export-Package: org.eclipse.osgi.event;version="1.0",org.eclipse.osgi.
framework.console;version="1.0",org.eclipse.osgi.framework.eventmgr;v
ersion="1.0",org.eclipse.osgi.framework.log;version="1.0",org.eclipse
.osgi.service.datalocation;version="1.0",org.eclipse.osgi.service.deb
ug;version="1.0",org.eclipse.osgi.service.environment;version="1.0",o
rg.eclipse.osgi.service.localization;version="1.0",org.eclipse.osgi.s
ervice.pluginconversion;version="1.0",org.eclipse.osgi.service.resolv
er;version="1.0",org.eclipse.osgi.service.runnable;version="1.0",org.
eclipse.osgi.service.urlconversion;version="1.0",org.eclipse.osgi.sto
ragemanager;version="1.0",org.eclipse.osgi.util;version="1.0",org.osg
i.framework;version="1.3",org.osgi.service.condpermadmin;version="1.0
",org.osgi.service.packageadmin;version="1.2",org.osgi.service.permis
sionadmin;version="1.2",org.osgi.service.startlevel;version="1.0",org
.osgi.service.url;version="1.0",org.osgi.util.tracker;version="1.3.1"
,org.eclipse.core.runtime.adaptor;x-friends:="org.eclipse.core.runtim
e",org.eclipse.core.runtime.internal.adaptor;x-internal:=true,org.ecl
ipse.core.runtime.internal.stats;x-friends:="org.eclipse.core.runtime
",org.eclipse.osgi.baseadaptor;x-internal:=true,org.eclipse.osgi.base
adaptor.bundlefile;x-internal:=true,org.eclipse.osgi.baseadaptor.hook
s;x-internal:=true,org.eclipse.osgi.baseadaptor.loader;x-internal:=tr
ue,org.eclipse.osgi.framework.adaptor;x-internal:=true,org.eclipse.os
gi.framework.debug;x-internal:=true,org.eclipse.osgi.framework.intern
al.core;x-internal:=true,org.eclipse.osgi.framework.internal.protocol
;x-internal:=true,org.eclipse.osgi.framework.internal.protocol.bundle
entry;x-internal:=true,org.eclipse.osgi.framework.internal.protocol.b
undleresource;x-internal:=true,org.eclipse.osgi.framework.internal.pr
otocol.reference;x-internal:=true,org.eclipse.osgi.framework.internal
.reliablefile;x-internal:=true,org.eclipse.osgi.framework.launcher;x-
internal:=true,org.eclipse.osgi.framework.util;x-internal:=true,org.e
clipse.osgi.internal.baseadaptor;x-internal:=true,org.eclipse.osgi.in
ternal.module;x-internal:=true,org.eclipse.osgi.internal.profile;x-in
ternal:=true,org.eclipse.osgi.internal.resolver;x-internal:=true,org.
eclipse.osgi.internal.verifier;x-internal:=true,org.eclipse.osgi.inte
rnal.provisional.verifier;x-friends:="org.eclipse.update.core,org.ecl
ipse.ui.workbench"
Bundle-Version: 3.2..v20060601
Eclipse-SystemBundle: true
Bundle-Copyright: %copyright
Bundle-Name: %systemBundle
Bundle-Description: %systemBundle
Bundle-DocUrl: http://www.eclipse.org
Bundle-ManifestVersion:
Export-Service: org.osgi.service.packageadmin.PackageAdmin,org.osgi.se
rvice.permissionadmin.PermissionAdmin,org.osgi.service.startlevel.Sta
rtLevel,org.eclipse.osgi.service.debug.DebugOptions
Bundle-Vendor: %eclipse.org
Main-Class: org.eclipse.core.runtime.adaptor.EclipseStarter
Bundle-SymbolicName: org.eclipse.osgi; singleton:=true
Bundle-Localization: systembundle
Eclipse-ExtensibleAPI: true
osgi 2的更多相关文章
- OSGi规范的C#实现开源
这是大约在3-4年前完成的一个C#实现的OSGi框架,实现的过程参照了OSGi规范与与一些实现思路(感谢当时的那些资料与项目),此框架虽然仅在几个小型项目有过实际的应用,但OSGi的规范实现还是相对比 ...
- 分享在Linux下使用OSGi.NET插件框架快速实现一个分布式服务集群的方法
在这篇文章我分享了如何使用分层与模块化的方法来设计一个分布式服务集群.这个分布式服务集群是基于DynamicProxy.WCF和OSGi.NET插件框架实现的.我将从设计思路.目标和实现三方面来描述. ...
- OSGi 基本原理
定义 OSGi(Open Service Gateway Initiative)技术是面向Java的动态模型系统. 这个框架实现了一个优雅.完整和动态地组价模型.应用程序(称为bundle)无序重新引 ...
- 重新诠释的OSGi规范
上周五部门开会讨论新一代产品(基于.net Winform)的设计规范,从设计规范慢慢讨论到体系结构等架构存在的问题,诸如菜单.工具条.状态条.界面布局等不能实现配置化和自动化,子系统之间拥有强依赖, ...
- Liferay7 BPM门户开发之38: OSGi模块化Bndtools、Maven、Gradle开发构建入门
前言 OSGi是目前动态模块系统的事实上的工业标准,它适用于任何需要模块化.面向服务.面向组件的应用程序.Eclipse如此庞大和复杂的插件体系,就是基于OSGi.Liferay也是基于OSGi.OS ...
- 开源协议:LGPL协议、OSGi协议---打酱油的日子
本文介绍开源的协议. LGPL 是 GNU Lesser General Public License (GNU 宽通用公共许可证)的缩写形式,旧称 GNU Library General Publi ...
- 原创:Equinox OSGi应用嵌入Jersey框架搭建REST服务
一.环境 eclipse版本:eclipse-luna 4.4 jre版本:1.8 二.Equinox OSGi应用嵌入Jersey框架搭建REST服务 1.新建插件工程HelloWebOSGI a. ...
- 转:OSGi 入门篇:模块层
OSGi 入门篇:模块层 1 什么是模块化 模块层是OSGi框架中最基础的一部分,其中Java的模块化特性在这一层得到了很好的实现.但是这种实现与Java本身现有的一些模块化特性又有明显的不同. 本文 ...
- 转:OSGi 入门篇:生命周期层
OSGi 入门篇:生命周期层 前言 生命周期层在OSGi框架中属于模块层上面的一层,它的运作是建立在模块层的功能之上的.生命周期层一个主要的功能就是让你能够从外部管理应用或者建立能够自我管理的应用(或 ...
- osgi笔记
Bundle-Classpath可以实现内嵌jar. 一个Bundle的Activator不需要进行Export 一个Package中的类被两个ClassLoader加载,包中的Private cla ...
随机推荐
- 用Backbone.js创建一个联系人管理系统(三)
原文: Build a Contacts Manager Using Backbone.js: Part 3 欢迎回到这系列的教程,关注使用Backbone.js构建应用程序. 如果你还没看过第一,二 ...
- 一行css代码调试中学到的javascript知识,很有意思
现在到处都是JavaScript,每天都能知道点新东西.一旦你入了门,你总能从这里或是那里领悟到很多知识.今天我想分享Addy Osmani的一行代码 ,这行代码对于你调试你的CSS是很有用的.为了可 ...
- iframe的自适应
iframe标签的应用感觉很强大,但是有的低版本好像不是很兼容,所以有的时候需要注意这个的兼容问题,iframe 元素会创建包含另外一个文档的内联框架(即行内框架),他的属性有很多,也很容易理解,就不 ...
- OpenResty(nginx_lua_module)做ES代理以及备份ES数据
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #erro ...
- Sql Server插入数据并返回自增ID,@@IDENTITY,SCOPE_IDENTITY和IDENT_CURRENT的区别
预备知识:SQLServer的IDENTITY关键字IDENTITY关键字代表的是一个函数,而不是identity属性.在access里边没有这个函数,所以在access不能用这个语句.语法:iden ...
- ASP.NET Core 1.0 入门——Application Startup
var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...
- 使用jigdo下载debian [windows环境下]
使用jigdo下载debian 本文地址:http://www.cnblogs.com/yhLinux/p/4104451.html 准备工作: 下载jigdo:http://atterer.org ...
- HTML5-链接
链接:外部,图片,内部 <!DOCTYPE html> <html> <head lang="en"> <meta charset=&qu ...
- STM32串口接收不定长数据原理与源程序(转)
今天说一下STM32单片机的接收不定长度字节数据的方法.由于STM32单片机带IDLE中断,所以利用这个中断,可以接收不定长字节的数据,由于STM32属于ARM单片机,所以这篇文章的方法也适合其他的A ...
- linux指令之文件的创建、查询、修改
mkdir(make directory) 功能:创建目录 案例: mkdir test 点评:将创建一个目录名为test的目录 rmdir(remove directory) 功能:删除目录 案例: ...