该helloworld例子程序主要的功能是在启动和停止一个Bundle的时候来做些事情(输出信息)。
1、创建bundle工程
(1)在eclipse中创建一个Plug-in工程

(2)输入工程相关信息

(3)输入Bundle的相关元数据信息:
Plug_in ID指的是Bundle的唯一标识,在实际项目中可以采用类似java的包名组织策略来保证标识的唯一性
Plug-in Version 指的是Bundle的版本
Plug-in Name 指的是BundleBundle的更具有意义的名称
Plug-in Provider 指的是Bundle的提供商
Execution Environment 指的是Bundle运行需要的环境
剩下的关键就是Activitor部分了,填入自己的一个类名就可以了,在工程建立时Eclipse会自动建立这个类

(4)完成了Bundle工程的创建后,在Package视图中就可以看到如下图所示,表明工程创建成功:

2、完成Activator的代码
(1)打开默认的Activator.java

这个类实现了BundleActivator接口,其中有两个空的方法--start和stop。start方法是在Bundle被启动的时候调用的,stop是在Bundle被停止时调用的,加入代码:

HelloWorld的例子完成!
3、运行
(1)首先创建一个HelloWorld用的运行配置
(2)然后设置HelloWorldde 的Auto-Start属性为false

(3)点击Run,在Console中出现"osgi>"提示。表明成功启动一个OSGi应用。
在osgi>提示符后面输入 ss,按回车键,如下图:

可以看到,HelloWorld Bundle已经被安装并且完成了解析,但是 还没有启动。下面在osgi>提示符下输入 start 1,然后回车,然后再输入ss:

看到HelloWorld启动了,通过ss可以看到HelloWorld Bundle的状态改变为ACTIVE,说明启动成功。并且在Activitor的start方法中加入的输出信息也正确的打印出来了。
接着 输入 stop 1 ,并且再用ss命令查看bundle的状态:

这个时候Bundle停止。
至此,一个OSGi Bundle顺利完成,第一个OSGi程序顺利运行!

- 大小: 39.8 KB

- 大小: 70 KB

- 大小: 60.5 KB

- 大小: 18.5 KB

- 大小: 51.4 KB

- 大小: 45.8 KB

- 大小: 154.8 KB

- 大小: 25.5 KB

- 大小: 30.7 KB

- 大小: 43.3 KB

- 大小: 47.6 KB
分享到:
相关推荐
"OSGi HelloWorld实例"是一个典型的入门教程,旨在帮助初学者理解如何在OSGi环境中创建和运行一个简单的程序。 首先,我们需要了解OSGi的基本概念: 1. **模块(Bundle)**:在OSGi中,模块是软件的基本单元,它们...
"osgi helloworld"是一个入门级的示例,旨在帮助初学者理解OSGi的基本概念和工作原理。这个实例包括了两个部分:`server`和`client`,它们都是OSGi的bundle。 首先,我们来看`server` bundle。这个bundle通常扮演...
**IntelliJ IDEA OSGI HelloWorld程序详解** OSGi(Open Service Gateway Initiative)是一个Java模块化系统和标准,它允许开发人员将应用程序分解为独立的模块,这些模块可以在运行时动态地安装、卸载和升级,而不...
本教程将引导你通过创建一个简单的“Hello World”项目来了解OSGi的基础。 首先,你需要准备合适的开发环境。在这里,我们推荐使用Eclipse IDE的Java EE版本(例如eclipse-jee-kepler-R-win32,版本为4.3),并且...
在"OSGi -- Helloworld 学习记录一"这篇博文中,作者很可能是分享了他/她初次接触并实践OSGi时的经验,通过创建一个简单的HelloWorld示例来介绍这个技术的基础概念。 首先,我们需要理解OSGi的核心特性:模块化。在...
文章《OSGi开发环境建立和Hello World》详细介绍了如何搭建OSGi开发环境,并通过Hello World程序的开发实践来巩固前面入门篇的内容。 首先,需要了解Equinox是OSGi核心标准的一个完整实现,并且添加了一些额外的...
osgi-blueprint-helloworld 概述 一个使用OSGI蓝图容器规范的非常简单的HelloWorld示例。 想要查询更多的信息: osgi-blueprint-helloworld-api 应用程序API osgi-blueprint-helloworld-server 发布服务以供...
### OSGi框架详解与首个HelloWorld项目实践 #### OSGi框架概述 OSGi(Open Service Gateway Initiative),作为一个强大的Java动态模块化平台,它的设计理念是实现真正意义上的模块化及动态化设计。这一理念体现在...
"osgi-basic-helloworld"是一个入门级别的OSGi项目,用于展示如何在Eclipse Mars集成开发环境中创建和运行一个简单的OSGi捆绑包。 首先,我们需要理解OSGi的核心概念: 1. **捆绑(Bundle)**:OSGi中的核心单元是...
在本文中,我们将深入探讨如何使用Eclipse Luna版本配置OSGi环境,并通过一个HelloWorld示例来理解OSGi模块化系统的基本概念。首先,我们从标题和描述中了解到,这是一篇关于使用Eclipse Luna进行OSGi插件开发的教程...
至于压缩包中的"helloWorld"文件,它可能是示例中的一个基本模块,包含了简单的Hello World服务或客户端,用于演示OSGi的基本功能。这个模块可以作为理解OSGi、Maven和IntelliJ IDEA集成的起点。 总之,这个例子为...
在弹出的窗口中输入项目名称为`osgi.test.helloworld`。 2. **配置项目设置**:在接下来的向导界面中,保持默认的项目路径不变。在目标平台的选择上,由于我们的目标是创建一个通用的OSGi bundle,因此选择`equinox...
"osgi_hello_world"项目是学习和理解OSGi基础知识的一个简单示例,通常用于演示如何在OSGi环境中创建和运行一个基本的“Hello, World!”程序。 在Java世界中,OSGi提供了一种管理类加载器和依赖关系的方法,使得...
- **样例项目**:"samples"文件夹可能包含各种示例项目,如HelloWorld服务和消费者。 - **构建与运行**:使用Maven或Gradle构建Bundle,然后在OSGi运行时环境中启动。 通过阅读《Spring OSGi 入门.pdf》和实践...
"OSGi-Hello.rar"可能是一个简单的示例项目,类似于"Hello, World!"程序,用于向开发者介绍如何在OSGi环境中创建和部署一个基本的bundle。这个项目通常会包含必要的源代码、配置文件以及构建脚本,帮助初学者理解...
在本篇博文中,我们将探讨如何使用Equinox作为框架来开发OSGi应用程序。Equinox是Eclipse项目的一个组件,它提供了OSGi规范..."helloworld"项目是一个很好的起点,它能帮助我们理解OSGi的基本概念和Equinox的使用方法。
在介绍OSGI的基础知识后,接下来通过一个简单的HelloWorld示例来深入理解OSGI的工作原理。 1. **建立第一个Plug-in项目**:使用Eclipse自带的OSGI框架建立第一个插件项目。该插件项目会在控制台输出“HelloWorld”...
同时,这也表明了OSGi框架中bundle的持久性——即使重启了Equinox(一种OSGi框架的实现),之前安装的“HelloWorld”bundle仍然存在。 本教程的第二部分主要围绕以下知识点展开: 1. `BundleContext`的作用和重要...