`

OSGI简介(含电子书下载)

    博客分类:
  • OSGI
阅读更多
1999年3月,OSGi联盟(非盈利性质)成立,目标   是建立家庭网关,并通过互联网向家庭网络提供各种服务,例如通过web页面控制咖啡机等;
Eclipse V3.0采用OSGi,使得OSGi成功进入Java企业应用领域,并成为其中重要一员;同时Eclipse推出了OSGi R4 RI:Equinox,所以直接使用Eclipse即可开发OSGI框架的程序
OSGI是什么?
Dynamic Module System For Java这是OSGi最开始的定义;
意味着基于OSGi就可以模块化的开发Java应用;
意味着基于OSGi就可以模块化的部署Java应用;
还可以动态的管理模块。
Universal Middleware
这是OSGi近年来新取的名词,目标是让OSGi脱离语言限制,成为所有语言的统一模型。
在OSGi中这不是一个虚拟的概念,而是一个实体:Bundle
Bundle是一个普通的jar,只是其META-INF中的manifest.mf中描述了一些标准的模块的信息。
以下是manifest.mf文件内容示例:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: A
Bundle-SymbolicName: A
Bundle-Version: 1.0.0
Bundle-Activator: a.Activator
Bundle-Vendor: zjm
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: org.osgi.framework;version="1.3.0"
Bundle-ActivationPolicy: lazy


模块的交互方式
以package方式交互:
通过Export-Package对外提供packages;
通过Import-Package使用其他模块的packages;
Package支持版本机制;
以service方式进行交互
符合面向接口原则;
支持IoC方式注入;
面向服务的组件模型,Single VM下SOA的一种典型实现。

模块的生命周期如图:



osgi下的控制台有很多命令,可通过help命令进行查看用法
安装模块,有两种方式:
1,使用目录模式,install file:/D:\work\workspace\OSGi-Bulletin\FirstBundle,注意目录名中不能有空格
2,使用jar模式,先将bundle导出成可部署的插件,然后在控制台执行install
file:/D:\Opendoc\Equinox\plugins\FirstBundle_1.0.0.jar
示例:第一个OSGI实例
新建eclipse 插件项目,选择osgi平台,将自动生成Activator类,它是启动模块的类
package a;

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("osgi bundle started");
	}

	/*
	 * (non-Javadoc)
	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
	 */
	public void stop(BundleContext context) throws Exception {
		//自己写的
		System.out.println("osgi bundle stopped");
	}

}

项目结构图:


运行 在osgi框架上,结果如下:

用ss命令可查看模块



可以停止模块:


  • 大小: 3.2 KB
  • 大小: 10.9 KB
  • 大小: 13.8 KB
  • 大小: 15.8 KB
  • 大小: 10.7 KB
分享到:
评论

相关推荐

    OSGI学习文档

    OSGI(Open Services Gateway Initiative)是一种开放标准,用于创建模块化Java应用程序。它提供了一种动态、可热更新的环境,使得开发者可以更灵活地管理软件组件。在深入理解OSGI之前,我们先来了解一些基本概念。...

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

    包含电子书和第04、05、06、07、08、09、10、11、13章的代码, 是学习OSGi和Apache Felix的一个很好的入门资料, 虽然版本有一点点老了, 但是基本的东西没有变, 值得下下来一看!

    OSGI 學習心得 Java 開發

    - **资料来源:** COSCUP2008会议中try的OSGi简介演讲(投影片、影片一、影片二)。 - **学习目标:** 通过观看这些资料,理解OSGi的核心概念和技术框架,特别是服务(Service)的概念。 - **学习成果:** 对OSGi有一...

    OGSi相关的英文电子书

    pro_spring_dynamic_modules_for_osgi_service_platforms, OSGi In Action, Enterprise OSGi in Action, Instant OSGi Starter

    spring电子书

    在《Spring动态模块参考指南》中,你可能会学习到如何配置OSGi容器以运行Spring应用,如何定义和管理OSGi服务,以及如何在Spring应用中利用OSGi的动态性。此外,指南还会介绍如何处理版本冲突和依赖管理,确保在OSGi...

    ebook download

    标题 "ebook download" 暗示我们关注的焦点是一本电子书的下载,而描述中的“博文链接”指向了一篇可能与电子书内容相关的博客文章。虽然描述本身是空的,但我们可以通过标签来推测一些内容。标签“源码”和“工具”...

    ApacheCXFWebServiceDevelopment电子书和源码

    在提供的"Apache CXF WebService Development"电子书中,读者可以深入学习到如何使用CXF框架开发Web服务,包括基本概念、配置、服务实现、客户端调用、异常处理、安全策略等内容。源码部分则可能包含示例项目,让...

    Junit实战第二版

    包括探索JUnit的核心、软件测试原则、测试覆盖率与开发、使用stub进行粗粒度测试、使用mock objects进行测试、容器内测试、从Ant中运行...OSGi组件、测试数据库访问、测试基于JPA的应用程序、JUnit的其他用法等内容...

    【资料整理】中国Eclipse社区开发资料整理

    【压缩包子文件的文件名称列表】"OSGi and Equinox:Creating+Highly+Modular+Java+Systems.pdf"是压缩包内的主要资源,这是一本关于如何使用OSGi和Equinox创建高度模块化Java系统的电子书。OSGi和Equinox是紧密相关...

    Eclipse SWTJFace核心应用光盘内容及其应用的jar包

    但是是安装时没有jar包,进行jar包的下载。 org.eclipse.core.runtime_3.1.2.jar org.eclipse.jface_3.1.1.jar org.eclipse.jface.text_3.1.2.jar org.eclipse.osgi_3.1.2.jar org.eclipse.text_3.1.1.jar

    eclipse插件开发

    Eclipse插件是基于OSGi(Open Service Gateway Initiative)框架构建的,OSGi确保了插件之间的模块化和可交互性。开发Eclipse插件,你需要了解以下几个关键概念: 1. **Plug-in**: 插件是Eclipse的核心构建块,它...

    SPRING攻略 第2版.pdf

    基于Spring IoC容器组件模型的这些新部件涵盖了集成、批处理、OSGi、Ajax和Flex集成、状态式Web应用、REST风格Web服务、富客户端用户界面、Google AppEngine开发、基于云的部署、消息、数据访问和Web服务等多功能性...

    lib1

    2. **itext**:这是一个用于创建和修改PDF文档的Java库,常用于报表生成、电子书制作等场景。 3. **aspectj**:AspectJ是一个强大的面向切面编程(AOP)框架,允许开发者在不修改原有代码的情况下,插入额外的功能...

    Java组件设计.pdf

    10. 组件重用:在 Java 中,组件重用是非常重要的,可以通过将组件封装成 JAR 文件或 OSGi.bundle 等方式来重用组件。 此外,Java 组件设计还需要考虑到一些其他因素,例如性能、安全性、可扩展性、可维护性等。...

    kotlin-reference-chinese

    为了方便读者学习和使用Kotlin,提供了多种格式的离线文档下载,包括PDF、ePUB、Mobi文件,以及GitBook版电子书。通过这些资源,读者可以更容易地在不同环境下进行学习和编程实践。 Kotlin通过其编译器插件支持与...

    基于Eclipse的工具开发

    "爱书吧-2万本图书免费下载.url"可能是一个链接,指向一个资源库,提供了更多关于软件开发和Eclipse技术的电子书,可以帮助扩展学习者的基础知识。 总之,通过学习这些资源,开发者可以深入了解Eclipse插件开发,...

Global site tag (gtag.js) - Google Analytics