在前面搭建了一个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启动和停止时的标识。
/*
* (non-Javadoc)
*
* @see
* org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext
* )
*/
public void 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)
*/
public void stop(BundleContext bundleContext) throws Exception
{
Activator.context = null;
System.out.println("stop pig1");
}
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,之间用空格隔开)。
# 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,完成了。
- 大小: 39.5 KB
- 大小: 46 KB
- 大小: 45 KB
- 大小: 34 KB
- 大小: 34.7 KB
- 大小: 36.9 KB
- 大小: 53.4 KB
- 大小: 24.4 KB
- 大小: 39.9 KB
- 大小: 13.5 KB
- 大小: 34.8 KB
分享到:
相关推荐
Apache Felix 演示(apache-felix-demo)通常是为了展示如何在 OSGi 环境中开发和运行应用程序,帮助开发者理解 Felix 的工作原理和使用方法。 在这个 demo 中,"order" 可能代表一个订单处理系统的实例,展示了...
在设置OSGi和Apache Felix环境的过程中,需要检查是否安装了合适的Java开发工具包(JDK)。接着,下载并解压Felix发行版,执行启动命令来验证环境是否安装成功。Felix框架提供的功能和子项目,以及与Maven2集成的...
在描述中提到的“框架运行环境”是指 Apache Felix 为运行 OSGi 应用程序提供的基础环境,包括启动器、类加载器、服务注册表等核心组件。这些组件共同确保了 OSGi bundle 之间的隔离性和协作性,使得不同 bundle ...
6. **配置管理**:Felix 提供了配置管理服务,允许 bundle 在运行时动态地获取和更改配置信息,这使得应用能够根据环境或需求进行自我调整。 7. **事件机制**:Felix 支持事件广播,当 bundle 状态发生变化或服务被...
在Apache Felix和Knopflerfish中也有类似的命令。 选择哪个OSGi实现主要取决于具体需求,如是否需要IDE集成、对性能的要求、社区支持、已有的技术栈等。对于新手,Apache Felix可能是一个好的起点,因为其文档全面...
每个bundle都包含自己的类路径,且可以在运行时安装、启动、停止和卸载,而不影响其他模块。这种灵活性使得OSGi成为构建可扩展和可维护的应用程序的理想选择。 Apache Felix是OSGi联盟标准的实现之一,它提供了一个...
4. **动态性**:Apache Felix允许在运行时动态地添加、移除和更新bundle,这使得开发者可以在不影响整个系统的情况下进行热更新和调试,极大地提高了开发效率。 5. **安全机制**:OSGi框架提供了一套权限模型,允许...
9. **最佳实践和案例研究**:书中可能会包含实际项目中的案例,展示如何在真实场景中应用OSGi和Apache Felix,提供最佳实践和避免常见问题的建议。 10. **安全性和权限管理**:学习OSGi的安全模型,如何控制bundle...
1. DEPENDENCIES 文件通常列出项目所依赖的其他库或模块,这对于了解Felix主程序在运行时需要哪些外部组件至关重要。 2. LICENSE 文件包含了该项目的许可信息,这告诉用户可以如何使用、修改和分发Felix.main的源...
OSGi(Open Service Gateway Initiative)是一种Java平台上的模块化系统和动态模块加载环境,它允许在运行时安装、启动、停止和更新模块,而无需重启整个应用程序或服务。这种特性使得OSGi成为构建大型企业级系统、...
2. **动态性**:OSGi 允许在运行时安装、卸载、启动和停止模块,无需重启应用服务器,提供了强大的热部署能力。 3. **服务导向**:模块通过服务接口进行交互,而不是直接引用彼此的类,增加了组件间的解耦。 4. **元...
本篇文章将详细介绍如何在Eclipse中搭建Felix运行环境,以便进行OSGI企业应用的开发。 首先,我们需要安装Eclipse IDE,这是一个广泛用于Java开发的强大工具。确保你的Eclipse版本支持插件开发,例如Eclipse IDE ...
这个文件包含了Apache Felix框架的所有组件和必要的依赖,方便用户在自己的环境中部署和使用。 Apache Felix是Apache软件基金会的一个开源项目,它是OSGi(Open Services Gateway Initiative)规范的实现。OSGi是一...
该插件允许创建 apache felix 框架安装以准备运行 osgi bundle 应用程序。 特征 Felix Launcher 插件的特点: 下载所需的 apache felix 框架包 felix 框架的配置、组装和执行 将自定义包编译并包含到 felix 框架中...
5. **配置管理**:Apache Felix Main还提供了配置管理功能,允许外部对bundle进行配置更改,这些更改会实时反映到运行中的bundle中,增强了系统的灵活性。 6. **事件机制**:通过监听和发布事件,bundles可以响应...
3. **动态性**:Apache Felix允许模块和服务在运行时动态地安装、启动、更新和卸载,这在传统Java应用程序中是难以实现的。 4. **配置管理**:Felix提供了一种机制来管理和更改组件的配置,使得应用程序可以在运行...
【描述】:“华为Felix开发和运行包”暗示这个包包含了所有必要的工具、库和文档,以便于开发者在华为的环境下构建、测试和运行基于Felix的OSGi应用。这通常会包括Felix框架的实现、配置文件、开发者工具(如IDE插件...
- **动态性**:bundle可以在运行时被添加、移除或更新,无需重启框架,提供了高度的灵活性。 Apache Felix还提供了额外的服务,比如Gogo命令行接口,用于交互式管理OSGI环境,以及PAX Exam这样的集成测试框架,用于...
OSGi 是一个面向服务的架构,旨在为 Java 应用程序提供模块化支持,使应用程序能够在运行时动态加载、更新和卸载组件,而不会对整个系统的稳定性造成影响。 **特点:** - **模块化:**OSGi 支持模块化开发,每个...
在Felix 2.0.4版本中,我们看到了OSGi技术的强大应用和持续改进。 首先,让我们深入了解OSGi的优势。OSGi通过提供动态模块系统解决了Java平台上的类加载器问题,使得模块间依赖关系得以清晰管理和控制。开发者可以...