`
snoopy7713
  • 浏览: 1148801 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

在Apache Felix中运行bundle

    博客分类:
  • OSGi
阅读更多

在前面搭建了一个Apache Felix的运行环境,下面就写一个简单的bundle,测试测试。

1、新建一个插件工程,如下图:


 

点击下一步。

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


 

点击下一步。

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


 

点击下一步。

4、去掉Create a plug-in using one of the templates,如下图:


 

点击Finish。

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

Java代码  收藏代码
  1. /*  
  2.      * (non-Javadoc)  
  3.      *   
  4.      * @see  
  5.      * org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext  
  6.      * )  
  7.      */   
  8.     public   void  start(BundleContext bundleContext)  throws  Exception  
  9.     {  
  10.         Activator.context = bundleContext;  
  11.         System.out.println("start pig1" );  
  12.     }  
  13.   
  14.     /*  
  15.      * (non-Javadoc)  
  16.      *   
  17.      * @see  
  18.      * org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)  
  19.      */   
  20.     public   void  stop(BundleContext bundleContext)  throws  Exception  
  21.     {  
  22.         Activator.context = null ;  
  23.         System.out.println("stop pig1" );  
  24.     }  

 
 6、代码也写好后,就可以导出插件工程发布了。如何让这个工程作为一个bundle被部署到Felix容器中呢?右击插件工程pig1,选择Export。可看下图:


 

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



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


 

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


 

7、接着就是安装、运行了。

有三种方法可以安装、运行一个bundle。

(1)使用命令。

首先,启动Felix,在Console中先使用install命令安装bundle,接着使用start命令启动bundle,如下图:



 
启动的时候,start命令后接着那个bundle的启动ID就可以启动bundle了,如上图的12。

可以看到,当启动bundle的时候,输出了Activator类中start方法的输出语句,即"start pig1"。

Pig1的状态为Active,说明bundle启动成功了。

当然,你也可以使用uninstall命令卸载一个bundle,用法如install命令。

 

(2)使用Felix配置文件,打开conf/config.properties,如下图:


打开config.properties,找到felix.auto.start.1参数,值写成file:plugins/pig1_1.0.0.201109291700.jar,如:

(如果你有多个bundle,之间用空格隔开)。

 

参数代码  收藏代码
  1. # The following property is a space-delimited list of bundle URLs  
  2. # to install and start when the framework starts. The ending numerical  
  3. # component is the target start level. Any number of these properties  
  4. # may be specified for different start levels.  
  5. 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,完成了。

分享到:
评论
1 楼 chenyuguxing 2015-09-23  
你好, 为什么我的bundle export到felix工程中时 , 用lb查看不到呢?

相关推荐

    apache-felix-demo

    Apache Felix 演示(apache-felix-demo)通常是为了展示如何在 OSGi 环境中开发和运行应用程序,帮助开发者理解 Felix 的工作原理和使用方法。 在这个 demo 中,"order" 可能代表一个订单处理系统的实例,展示了...

    OSGi and Apache Felix 3.0 Beginner's Guide

    在设置OSGi和Apache Felix环境的过程中,需要检查是否安装了合适的Java开发工具包(JDK)。接着,下载并解压Felix发行版,执行启动命令来验证环境是否安装成功。Felix框架提供的功能和子项目,以及与Maven2集成的...

    Apache Felix 框架整理包 开箱即用

    在描述中提到的“框架运行环境”是指 Apache Felix 为运行 OSGi 应用程序提供的基础环境,包括启动器、类加载器、服务注册表等核心组件。这些组件共同确保了 OSGi bundle 之间的隔离性和协作性,使得不同 bundle ...

    org.apache.felix.main.distribution-4.2.1.zip

    6. **配置管理**:Felix 提供了配置管理服务,允许 bundle 在运行时动态地获取和更改配置信息,这使得应用能够根据环境或需求进行自我调整。 7. **事件机制**:Felix 支持事件广播,当 bundle 状态发生变化或服务被...

    osgi选型比较 实例Equinox、Apache Felix与Spring DM

    在Apache Felix和Knopflerfish中也有类似的命令。 选择哪个OSGi实现主要取决于具体需求,如是否需要IDE集成、对性能的要求、社区支持、已有的技术栈等。对于新手,Apache Felix可能是一个好的起点,因为其文档全面...

    《OSGi and Apache Felix 3.0 Beginner's Guide》源代码

    每个bundle都包含自己的类路径,且可以在运行时安装、启动、停止和卸载,而不影响其他模块。这种灵活性使得OSGi成为构建可扩展和可维护的应用程序的理想选择。 Apache Felix是OSGi联盟标准的实现之一,它提供了一个...

    org.apache.felix.framework:Apache Felix OSGi框架

    4. **动态性**:Apache Felix允许在运行时动态地添加、移除和更新bundle,这使得开发者可以在不影响整个系统的情况下进行热更新和调试,极大地提高了开发效率。 5. **安全机制**:OSGi框架提供了一套权限模型,允许...

    OSGi and Apache Felix 3.0 Beginner's Guide 代码和书

    9. **最佳实践和案例研究**:书中可能会包含实际项目中的案例,展示如何在真实场景中应用OSGi和Apache Felix,提供最佳实践和避免常见问题的建议。 10. **安全性和权限管理**:学习OSGi的安全模型,如何控制bundle...

    org.apache.felix.main-6.0.3.rar

    1. DEPENDENCIES 文件通常列出项目所依赖的其他库或模块,这对于了解Felix主程序在运行时需要哪些外部组件至关重要。 2. LICENSE 文件包含了该项目的许可信息,这告诉用户可以如何使用、修改和分发Felix.main的源...

    OSGi and Apache Felix 3.0 Beginner.pdf

    OSGi(Open Service Gateway Initiative)是一种Java平台上的模块化系统和动态模块加载环境,它允许在运行时安装、启动、停止和更新模块,而无需重启整个应用程序或服务。这种特性使得OSGi成为构建大型企业级系统、...

    org.apache.felix.main.distribution-5.0.1

    2. **动态性**:OSGi 允许在运行时安装、卸载、启动和停止模块,无需重启应用服务器,提供了强大的热部署能力。 3. **服务导向**:模块通过服务接口进行交互,而不是直接引用彼此的类,增加了组件间的解耦。 4. **元...

    Eclipse中搭建Felix运行环境

    本篇文章将详细介绍如何在Eclipse中搭建Felix运行环境,以便进行OSGI企业应用的开发。 首先,我们需要安装Eclipse IDE,这是一个广泛用于Java开发的强大工具。确保你的Eclipse版本支持插件开发,例如Eclipse IDE ...

    org.apache.felix.main.distribution-3.2.2.tar.gz

    这个文件包含了Apache Felix框架的所有组件和必要的依赖,方便用户在自己的环境中部署和使用。 Apache Felix是Apache软件基金会的一个开源项目,它是OSGi(Open Services Gateway Initiative)规范的实现。OSGi是一...

    gradle-felix-launcher-plugin:Gradle 构建系统的 Apache Felix 插件

    该插件允许创建 apache felix 框架安装以准备运行 osgi bundle 应用程序。 特征 Felix Launcher 插件的特点: 下载所需的 apache felix 框架包 felix 框架的配置、组装和执行 将自定义包编译并包含到 felix 框架中...

    org.apache.felix.main:Apache Felix OSGi框架启动器

    5. **配置管理**:Apache Felix Main还提供了配置管理功能,允许外部对bundle进行配置更改,这些更改会实时反映到运行中的bundle中,增强了系统的灵活性。 6. **事件机制**:通过监听和发布事件,bundles可以响应...

    ApacheFelix框架

    3. **动态性**:Apache Felix允许模块和服务在运行时动态地安装、启动、更新和卸载,这在传统Java应用程序中是难以实现的。 4. **配置管理**:Felix提供了一种机制来管理和更改组件的配置,使得应用程序可以在运行...

    Felix华为Felix开发和运行包。

    【描述】:“华为Felix开发和运行包”暗示这个包包含了所有必要的工具、库和文档,以便于开发者在华为的环境下构建、测试和运行基于Felix的OSGi应用。这通常会包括Felix框架的实现、配置文件、开发者工具(如IDE插件...

    felix软件包

    - **动态性**:bundle可以在运行时被添加、移除或更新,无需重启框架,提供了高度的灵活性。 Apache Felix还提供了额外的服务,比如Gogo命令行接口,用于交互式管理OSGI环境,以及PAX Exam这样的集成测试框架,用于...

    felix 文档

    OSGi 是一个面向服务的架构,旨在为 Java 应用程序提供模块化支持,使应用程序能够在运行时动态加载、更新和卸载组件,而不会对整个系统的稳定性造成影响。 **特点:** - **模块化:**OSGi 支持模块化开发,每个...

    Felix 2.0.4

    在Felix 2.0.4版本中,我们看到了OSGi技术的强大应用和持续改进。 首先,让我们深入了解OSGi的优势。OSGi通过提供动态模块系统解决了Java平台上的类加载器问题,使得模块间依赖关系得以清晰管理和控制。开发者可以...

Global site tag (gtag.js) - Google Analytics