Bundle开发过程中如何调试一直是个困扰的问题,今天我们看看Eclipse在这方面是如何解决的。
我用的Eclipse JavaEE Indigo 3.7.2版本。
第一步:开启Eclipse,新增一个Plug-in项目。
第二步:输入项目名称HelloWorldBundle,注意这里的插件运行方式要选择an OSGi Framework。
第三步:输入Bundle有关的元数据信息,这里我们使用默认值。我们选择自动产生Activator类,以便简化我们后面的处理。
第四步:我们选择从Hello OSGi Bundle模板生成Bundle项目。
第五步:输入Hello OSGi Bundle模板需要的启动和停止信息。
第六步:到此为止,Eclipse依据我们的选择自动生成了HelloWorldBundle插件。虽然这是一个非常简单的Bundle,但是毫无疑问,这个是一个完整的Bundle,它是可以直接运行的。
HelloWorldBundle的目录结构:
Activator.java文件的内容:
package helloworldbundle;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
public class Activator implements BundleActivator {
/*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
*/
public void start(BundleContext context) throws Exception {
System.out.println("Hello World!!");
}
/*
* (non-Javadoc)
* @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
*/
public void stop(BundleContext context) throws Exception {
System.out.println("Goodbye World!!");
}
}
MANIFEST.MF的内容:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: HelloWorldBundle
Bundle-SymbolicName: HelloWorldBundle
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: helloworldbundle.Activator
Import-Package: org.osgi.framework;version="1.3.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
第七步:在Activator.java的start()和stop()方法处增加两个断点:
第八步:在HelloWorldBundle项目上点击鼠标右键,在弹出的Debug As功能里面选择OSGi Framework:
第九步:一切OK,Eclipse切换到了Debug视图,Console窗口出现了OSGi>提示符,代码也在我们定义的start断点处停了下来。
第十步:在OSGi>提示符后面输入close命令,以便停止OSGi框架(shutdown and exit)。这个时候,代码就会在stop断点处停下来。
使用Eclipse提供的调试功能,将可以让我们在Bundle的开发过程中如虎添翼了。
分享到:
相关推荐
OSGI(Open Services Gateway Initiative)是一种模块化系统和Java服务框架,它允许应用程序由一系列可独立更新和替换的模块组成,这些模块称为“bundle”。在本实例中,我们将探讨如何利用OSGI技术来开发Eclipse...
osgi发布http服务的各种bundle,各种jar包,全全全~非常好用的技术包 包括:org.eclipse.equinox.http_1.0.0.v20060601a.jar org.eclipse.equinox.ds_1.0.0.v20060601a.jar org.eclipse.equinox.servlet.api_1.0.0...
**SpringDM笔记7-开发SpringDM Bundle** SpringDM(Spring Dynamic Modules)是Spring框架的一个扩展,专门用于OSGi(Open Service Gateway Initiative)环境中的应用程序开发。OSGi是一种Java模块化系统,它允许...
为了使用OSGi和Eclipse Equinox,首先需要安装Eclipse IDE,并确保安装了Eclipse Equinox插件。此外,还需要配置开发环境,包括设置必要的构建路径和类路径等。 #### 3. OSGi控制台 OSGi控制台是用于管理OSGi框架...
每一个Eclipse插件本质上就是一个OSGi bundle,可以独立开发、部署和更新。通过“org.eclipse.osgi-3.7.2”,Eclipse能够支持插件的生命周期管理,确保插件之间的兼容性和协作。 最后,压缩包中的唯一文件“org....
1. **环境准备**:安装一个支持OSGi的运行时环境,比如Apache Felix或Equinox,以及相应的集成开发环境(IDE),如Eclipse,它有一个内置的OSGi插件。 2. **创建bundle**:创建一个新的Java项目,并将其转换为OSGi ...
**Eclipse插件开发环境(PDE)**则提供了创建Eclipse插件的框架,这些插件通常也是OSGi Bundle的形式。虽然这些工具各自侧重不同方面,但它们共同促进了OSGi生态系统的繁荣和发展。 #### OSGi在企业Java领域的未来...
例如,`org.eclipse.osgi.framework.internal.core.BundleHost`类负责管理bundle的启动和停止,`org.eclipse.osgi.framework.eventmgr.EventAdmin`则展示了OSGi事件模型的实现。 五、应用场景 OSGi在许多领域有着...
这篇博文将深入探讨如何使用Eclipse IDE和Equinox框架来开发OSGi Bundle应用。 **OSGi基本概念** 1. **Bundle**:OSGi的核心单元,类似于Java的JAR文件,但包含了额外的元数据,描述了其依赖和其他模块的关系。 2....
3. 更新Eclipse Java IDE:解释了如何更新基于OSGi的Eclipse IDE,以便开发者可以开始使用OSGi模块化功能。 实践教程部分介绍: 1. 创建第一个OSGi模块:详细介绍了创建OSGi模块的步骤,包括创建新的Bundle、编写...
6. **版本管理**:每个bundle和它导出的包都有版本号,OSGi框架负责处理版本冲突,确保正确版本的包被加载和使用。 7. **源代码包**:"org.eclipse.osgi-3.7.0.v20110613-sources.jar" 提供了框架的源代码,对于...
OSGi的核心特性在于它的服务导向、组件化环境,这使得它在诸如Eclipse和BMW等项目中扮演了重要角色,因为这两个项目中的几乎所有功能都是通过插件驱动的。 在OSGi框架中,一个应用被分解为多个模块,称为“Bundle”...
Eclipse是一个广泛使用的开源集成开发环境(IDE),它支持OSGi框架,使开发者能够在Eclipse平台上构建模块化的应用程序。本文将通过一个实例,详细讲解如何使用Eclipse进行OSGi开发,包括SpringDM(Spring Dynamic ...
Eclipse OSGi在Eclipse IDE中的应用体现在插件系统上,每个Eclipse插件本质上就是一个OSGi Bundle,它们可以独立开发、部署,并根据需要启动或关闭,极大地增强了Eclipse的可扩展性和可维护性。 总之,"org.eclipse...
8. **Eclipse OSGi 的应用**:Eclipse IDE 使用 OSGi 作为其核心架构,每个插件都可以视为一个 OSGi bundle。此外,OSGi 也被用于服务器端应用,如 Apache Karaf 或 GlassFish,以及嵌入式系统和物联网设备。 9. **...
在"OSGI.rar_OSGI eclipse_eclipse osgi_java OSGI_osgi"这个压缩包中,我们可以找到"OSGI实战.pdf",这很可能是关于如何在Eclipse环境下使用OSGI进行实际开发的详细指南。该书可能会涵盖以下关键知识点: 1. **...
书中涵盖了从基础概念到高级特性的全面讲解,包括如何创建和管理Bundle,如何使用服务,以及如何在实际项目中应用OSGi。通过书中的源代码,读者可以动手实践,加深理解。 6. 示例代码分析: "osgi-in-action"目录...
通过学习这些资源,你可以了解到如何创建、配置和管理OSGI Bundle,如何在Eclipse中开发和调试OSGI插件,以及如何利用OSGI的动态性来优化大型Java项目。理解并掌握OSGI将有助于提升你的Java开发技能,尤其是在构建...
将服务接口和服务实现打包成一个OSGi bundle,并在bundle中声明服务组件。 4. **配置服务**:配置服务的元数据,如服务接口、服务实现、以及任何依赖的服务。这可以通过XML配置文件或注解来完成。 5. **消费服务**...