设为首页 收藏本站
查看: 656|回复: 0

[经验分享] 在Apache Felix中运行bundle

[复制链接]

尚未签到

发表于 2018-11-23 09:51:35 | 显示全部楼层 |阅读模式
  在前面搭建了一个Apache Felix的运行环境,下面就写一个简单的bundle,测试测试。
  1、新建一个插件工程,如下图:
DSC0000.jpg

  点击下一步。
  2、给插件工程命名一个名字,这里叫pig1。This plug-in is targeted to run with中选择an OSGI framework -->standard,如下图红框中所示:
DSC0001.jpg

  点击下一步。
  3、bundle中有一个启动类,默认是Activator,相当于普通工程中的Main类。你也可以把它更改成其他名字,这里使用默认的名字。如下图:
DSC0002.jpg

  点击下一步。
  4、去掉Create a plug-in using one of the templates,如下图:
DSC0003.jpg

  点击Finish。
  5、插件工程建好后,打开Activator类,可以看到里面有一个start方法和一个stop方法,可以在bundle启动和停止的时候做一些事情。这里只是简单地输出一个字符串,作为bundle启动和停止时的标识。
Java代码 DSC0004.jpg

  •   /*
  •   * (non-Javadoc)
  •   *
  •   * @see
  •   * org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext
  •   * )
  •   */
  •   publicvoid start(BundleContext bundleContext) throws Exception
  •   {
  •   Activator.context = bundleContext;
  •   System.out.println("start pig1");
  •   }

  •   /*
  •   * (non-Javadoc)
  •   *
  •   * @see
  •   * org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
  •   */
  •   publicvoid stop(BundleContext bundleContext) throws Exception
  •   {
  •   Activator.context = null;
  •   System.out.println("stop pig1");
  •   }
  6、代码也写好后,就可以导出插件工程发布了。如何让这个工程作为一个bundle被部署到Felix容器中呢?右击插件工程pig1,选择Export。可看下图:
DSC0005.jpg

  出现Export视图之后,选择Plug-in Development下的Deployable plug-ins and fragments,如下图:
DSC0006.jpg

  点击下一步,选择要导出的插件,Destination选项卡的Directory选择我们的Felix环境的物理地址,导出后,会在Felix工程的根目录自动创建一个plugins目录,bundle会默认导出这个目录。如下图:
DSC0007.jpg

  点击Finish,你就可以看到Felix工程下面多了一个plugins目录,我们所导出的bundle就在里面,如下图:
DSC0008.jpg

  7、接着就是安装、运行了。
  有三种方法可以安装、运行一个bundle。
  (1)使用命令。
  首先,启动Felix,在Console中先使用install命令安装bundle,接着使用start命令启动bundle,如下图:
DSC0009.jpg

  启动的时候,start命令后接着那个bundle的启动ID就可以启动bundle了,如上图的12。
  可以看到,当启动bundle的时候,输出了Activator类中start方法的输出语句,即"start pig1"。
  Pig1的状态为Active,说明bundle启动成功了。
  当然,你也可以使用uninstall命令卸载一个bundle,用法如install命令。
  (2)使用Felix配置文件,打开conf/config.properties,如下图:
DSC00010.jpg

  打开config.properties,找到felix.auto.start.1参数,值写成file:plugins/pig1_1.0.0.201109291700.jar,如:
  (如果你有多个bundle,之间用空格隔开)。
参数代码

  •   # The following property is a space-delimited list of bundle URLs
  •   # to install and start when the framework starts. The ending numerical
  •   # component is the target start level. Any number of these properties
  •   # may be specified for different start levels.
  •   felix.auto.start.1=file:plugins/pig1_1.0.0.201109291700.jar
  参数写好后,启动Felix,你就可以看到bundle Pig1自动安装并启动了,如下图所示:

  (3)第三种方法就是使用File Install了,使用Apache Felix的File Install bundle,我们可以安装和启动bundle而无需启动Felix,这个将在下面的章节中讲解。
  8、OK,完成了。
  原创地址:http://zqc-0101.iteye.com/blog/1183452


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-638517-1-1.html 上篇帖子: php 与apache 的整合 下篇帖子: Apache 配置说明
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表