1 Bundle 是OSGI中的模块,其生命周期是被OSGI框架所管理。形式上讲是一个jar包。META-INF目录下的 MANIFEST.MF文件中是对Bundle的特定描述。
Budle 的状态:INSTALLED、RESOLVED、UNINSTALLED、STARTING、ACTIVE、STOPPING。
Bundle 是服务(Service) 和 组件 (component)的载体。
每个Bundle都有自己独立于其他Bundle 的 ClassLoader,正因为如此,各个Bundle内部的类是隔离的。
2 Bundle 直接交互的实现方式:
a:通过Package 的 Export 和 Imoprt 进行。提供类的Bundle对外暴露(Exprot)自己的一个或者多个Package,或者导入(Import)一个或者多个Package
b:通过Service的方式进行。一个Bundle作为Servivce的提供方,对外提供Service,使用者可以找到并且使用其他Bundle提供的Service。
3 一个OSGI Service 就是注册到OSGI框架中的一个Java对象。在注册的时候可以Service的属性。在获取时可以根据属性过滤。提供/使用Service的两种方式:a 通过BundleContext(Bundle上下文)。b:通过DeclarativeService实现。
4 面向服务的组件模型(SOCM)。Component 是服务(Service)的载体,它对外提供服务或者使用外部提供的服务。任何一个普通的java对象都可以通过配置文件中的定义而变为一个Component,生命周期是由OSGI框架管理。
5 Declarative Service(DS) 是 OSGI Core Framework 的一个标准服务。将服务的方式由编码 变为 配置。更加灵活
没有DS之前,采用的是Module + Service 的方式,需要通过 Bundle 的 BundleActivator 注册服务,通过BundleContext来获取服务。而DS通过在Bundle中定义Component 来通过配置获取、发布服务,实现Component + Service 方式进行系统开发
6 引用org.eclipse.equinox.ds_*.jar时,必须引用org.eclipse.equinox.util_*.jar 否则不能正常启动
分享到:
相关推荐
OSGi(Open Services Gateway Initiative)学习笔记(一) 在IT领域,OSGi是一种模块化系统和Java服务平台,它提供了一种动态管理软件组件的能力。本文将深入探讨OSGi的基本概念、架构以及如何使用它来构建可扩展和...
1. **OSGi基础**:首先,理解OSGi的基本概念是至关重要的。OSGi提供了一个运行时环境,使得Java应用程序可以被分解为独立的模块,这些模块可以独立地安装、升级和卸载,无需停止整个应用。它通过使用服务来实现模块...
在本篇OSGi学习笔记中,我们将深入探讨OSGi(Open Service Gateway Initiative)这一模块化系统,特别是关于服务方面的知识。OSGi是一个Java平台上的动态模块化系统,它允许开发者创建可热部署、互相依赖的模块,...
1. **插件基础**:介绍插件的基本概念,如OSGi框架、插件项目结构、MANIFEST.MF文件、plugin.xml文件以及如何创建一个新的Eclipse插件项目。 2. **扩展点与贡献点**:讲解Eclipse的扩展点系统,如何定义和使用扩展...
- OSGi基础:了解OSGi的概念,模块化应用的构建方式,以及如何通过OSGi容器来管理服务生命周期。 - Apache Felix配置:如何设置Felix框架,创建和管理bundle,以及配置启动时自动启动的bundle。 - 模块化设计:理解...
1. **Eclipse平台基础**:Eclipse是一个开源的集成开发环境(IDE),它基于插件架构,允许用户根据需求添加或修改功能。理解Eclipse的核心组件、工作台(Workbench)以及插件之间的交互是开发的基础。 2. **插件...
以下是对Eclipse插件开发学习笔记1-8章的主要知识点的详细说明: 1. **Eclipse平台简介** (03第1章 Eclipse平台简介.pdf) - Eclipse平台是基于OSGi服务框架的,它提供了插件化的架构,使得开发者可以轻松地添加、...
在深入探讨OSGi Karaf的知识点之前,我们先简要了解一下Karaf与OSGi的基本概念。OSGi(Open Service Gateway Initiative)是一种Java平台上的模块化系统和应用编程框架,用于构建可动态部署、管理和更新的模块化应用...
2. OSGi框架:Eclipse基于OSGi运行,了解OSGi的概念和它在插件中的作用。 3. PDE(Plugin Development Environment):Eclipse内置的插件开发工具,用于创建、编辑和调试插件项目。 4. Manifest.MF:每个插件的核心...
首先,我们需要了解Eclipse插件的基础概念。在Eclipse中,插件主要由一系列的扩展点(Extension Points)组成,这些扩展点定义了插件可以提供的功能。插件开发者需要根据Eclipse平台提供的扩展点来开发自己的插件,...
1. OSGi基础:解释OSGi是什么,它的主要目标和用途,以及为什么它对Java开发者有益。 2. 模块化系统:详述OSGi的模块化概念,如bundle(模块)和manifest文件,以及它们如何定义服务依赖。 3. 生命周期管理:说明...
本学习笔记涵盖了从基础到进阶的14个章节,旨在帮助读者全面掌握Eclipse插件开发的核心技术。 首先,我们需要了解Eclipse的插件体系结构。Eclipse基于OSGi框架,每个插件都是一个独立的模块,通过声明依赖关系与...
这份"eclipsePluginStudyNoteSourceCode"压缩包提供了从第1章到第24章的Eclipse插件开发学习笔记源代码,涵盖了从基础到进阶的全方面知识。 在Eclipse插件开发中,你需要了解以下核心概念: 1. **插件体系结构**:...
总的来说,这份学习资料将带你从Eclipse平台的基础概念出发,逐步深入到SWT和JFace的使用,通过实践掌握Eclipse插件开发的关键技术。无论你是希望提升开发效率,还是想为Eclipse社区贡献自己的插件,这套教程都将是...
标题中提到的“java核心知识.pdf”,意味着接下来的内容会围绕Java编程语言的核心...通过阅读这份文档,可以系统地学习和回顾Java编程语言的核心概念,更好地掌握Java技术栈,为未来在企业中的开发工作打下坚实的基础。
1. **平台运行时(OSGi)** - 包含OSGi框架和插件运行时。 - 负责管理插件的生命周期、类加载器及服务注册等。 2. **SWT** - Swing Widget Toolkit的简称,用于构建高性能的用户界面。 3. **JFace** - 基于SWT...
JAVA核心知识点整理涵盖了Java语言的基础理论与实践,包括JVM内存管理、垃圾回收算法、多线程并发编程以及Java集合框架等多个重要领域。以下是对整理文档的知识点的详细介绍: 1. JVM内存区域和垃圾回收:这部分...
1. **Eclipse插件体系结构**:首先,你需要理解Eclipse的插件模型,它是基于OSGi(开放服务网关规范)的。了解Plugin ID、Bundle、Extension Point和Extension等概念,以及它们在Eclipse插件架构中的作用。 2. **...
2. **基于AS7的基础架构**:JBoss7是基于AS7构建的,AS7放弃了传统的Classloading和Service Bootstrap机制,转而采用了一种名为"Unified Class Loading"的新模型,这极大地提升了启动速度和内存管理效率。...