Eclispe Manifest Header

一个插件通过META-INF/MANIFEST.MF 文件,定义了一些描述自己的信息。

下面主要讲述Eclipse 对OSGI Manifest Header 的扩展。
OSGI R4.1 框架规范中定义了一系列这样的信息,如:Export-Package 和Bundle-Classpath 等等。开发者要为插件配置相关的信息。
Eclipse OSGI 框架完整的实现了OSGI R4.1 框架的规范和核心框架服务。

OSGI 核心框架服务包括:
    1 Package Admin Service Specification
    2 URL Handlers Service Specification
    3 Start Level Service Specification
    4 Conditional Permission Admin Specification
    5 Permission Admin Service Specification
OSGI 框架还定义了一些可以选择的服务,这些可选择服务,Eclipse OSGI 框架并没有实现。关于更多的OSGI 信息请参考:http://www.osgi.org/Download/Release4V41

 

Eclispe Bundle Manifest Headers
Eclipse OSGI 框架支持一些额外的bundle manifest headers 和指令。就是说,Eclipse OSGI 框架对OSGI 框架做了一些扩展。


额外的Export-Package 指令:
    1 Export-Package: org.eclipse.foo.internal; x-internal:=true
    注释:Export-Package 叫作"header", 而x-internal 叫做"指令"。
    这个x-internal:=true x-internal:=true指令说明: 包org.eclipse.foo.internal 是一个内部包。如果不指定,则默认为false。
小提示:在Eclispe 的编程约定中,包名中带有"internal" 的包为内部包,你编写的程序(通常称为客户端程序)不应该使用内部包中的类。

    2 Export-Package: org.eclipse.foo.formyfriends; x-friends:="org.eclipse.foo.friend1, org.eclipse.foo.friend2"
    表示:插件"org.eclipse.foo.friend1" 和 插件"org.eclipse.foo.friend2" 被鼓励使用这个包"org.eclipse.foo.formyfriends"。

 

Eclipse-LazyStart Header
    这个Header 定义:当这个插件中的类或资源被访问前,是否启动该插件。(就是提供了一种方式,当插件中的类被访问了,但是可以不启动这个插件)。当Eclipse-LazyStart 为true时, 'exceptions' 属性指定了一些包,这些包被访问时,这个插件不被启动。
    Eclipse-LazyStart: true; exceptions="org.eclipse.foo1, org.eclipse.foo2"
    解释:当其他插件访问"org.eclipse.foo1, org.eclipse.foo2 包的时候,该插件不被启动。
    Eclipse-LazyStart的默认值为假
    注意:在Eclispe 3.4 以后的版本中,Eclipse-AutoStart and Eclipse-LazyStart headers  已经被标记为"不被鼓励"。取而带之的是Bundle-ActivationPolicy: lazy
    Eclipse-LazyStart: false; exceptions="org.eclipse.foo1, org.eclipse.foo2" 和
    Bundle-ActivationPolicy: lazy; include:="org.eclipse.foo1, org.eclipse.foo2" 是等效的。

小提示:插件被启动时,BundleActivator.start(BundleContext) 方法被容器调用。

 

The Eclipse-PlatformFilter Header
       指定平台过滤器,当插件制定的过滤器为真时,插件才处在resolve 状态。(一个插件有几个状态,如安装,启动等等)。
       支持的过滤器:
           osgi.nl - 平台的语言设置
           osgi.os - 平台的操作系统
           osgi.arch - 平台的架构
           osgi.ws - 平台的窗口系统
       如:Eclipse-PlatformFilter: (& (osgi.ws=win32) (osgi.os=win32) (osgi.arch=x86))
       解释:当这几个过滤器为真时,这个插件才能被启动。

 

注意:其他的Eclipse Header,可以在下面的连接中找到参考。主要是Eclispe 扩展的Header, 即:Eclispe- 开头的Header。http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.pde.doc.user/tasks/pde_feature_build.htm

本文只翻译了常见的Eclipse 扩展的Header。其他的可以参考原文。

本文翻译http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.pde.doc.user/tasks/pde_feature_build.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值