<mark>OSGi</mark>环境下建立Web工程的Hello World

在OSGi环境下,如何搭建简单Web应用程序?介绍两种方式,将HTTP服务器嵌入OSGi框架和将OSGi框架嵌入Servlet容器方式。两种方式都介绍了简单的Hello World程序,将来我们将会介绍OSGi的Web企业及框架——将Web应用部署到Virgo服务器——有了本文的基础,会比较快的学习该框架。


OSGi R4服务平台核心规范 :第一章 简介

OSGi服务平台标准的核心是提供一个通用、安全并且可管理的Java框架,该框架支持可扩展部署和下载的应用程序(称之为bundle)。 OSGi设备可以下载和安装bundle,并且可以在不需要的时候将其移除,在一个OSGi环境中,bundle的安装、更新由框架统一动态管理,为此,需要框架对服务和bundle之间的依赖细节进行管理。


OSGi R4服务平台核心规范 :第四章 生命周期层(1)

生命周期层提供了bundle的生命周期管理和安全控制的API。本层是建立在在模型和安全层之上的。 生命周期层还具有完整性、深入性、安全、可管理性等特点,提供了包括bundle安装、启动、停止、更新、卸载和管理的所有状态的API。


OSGi R4服务平台核心规范 :第四章 生命周期层(2)

本周介绍了系统bundle、事件以及安全。 与普通bundle相比,框架本身也是一个bundle。这些bundle称之为系统bundle。通过系统bundle,框架可以注册供其他bundle使用的服务。例如包管理和权限管理服务。


OSGi R4服务平台核心规范 :第二章 安全层

OSGi安全层是OSGi服务框架的一个可选的层。它基于Java 2 安全体系结构,提供了对精密控制环境下的应用部署和管理的基础架构。 要点:精密控制(fine grained)—在OSGi框架下的应用控制必须达到精细粒度的控制;可管理性—安全层本身没有定义API来控制应用,对安全层的管理交由生命周期层;可选性—安全层是可选的。


OSGi R4服务平台核心规范 :第三章 模块层(1)

Java平台只提供了对打包、部署和对Java应用和组件检验的最小支持。因此,很多基于java的项目,如JBoss、NetBeans,常常借助于专用的类加载器来创建用户模块层,以实现打包、部署和对Java应用和组件检验。OSGi框架提供了对java模型化的一般和标准的解决方案。


OSGi R4服务平台核心规范 :第三章 模块层(2)

框架中安装的bundle只有在解析之后才能关联到类加载器。bundle解析之后,框架必需为每一个非fragment的bundle创建一个类加载器。框架也可以延迟创建类加载器,直到它实际需要才创建。每个bundle对应一个类加载器的机制使得bundle中的所有资源对于bundle中位于同一个包的其他资源具有包级别的访问权限。


OSGi R4服务平台核心规范 :第五章 服务层(1)

OSGi服务层定义了一个和生命周期层紧密结合的动态协作模型。服务模型包括发布、查找和绑定模型。一个服务(service)就是一个通过服务登记来注册到一个或者多个Java接口下的Java对象。bundle可以注册服务,查找服务,接收注册服务的状态改变信息。


OSGi R4服务平台核心规范 :第七章 包管理服务规范(2)

这个接口是一个框架服务,允许bunlde的开发人员审查框架中bundle的连接状态,同时提供了bundle之间的类加载网络的相关功能。 目前,只能允许有一个PackageAdmin的实例对象注册到框架。


写书评,赢新书《OSGi与Equinox:创建高度模块化的JAVA系统》

OSGi中文社区携手图灵教育给粉丝们送福利来啦!OSGi经典好书《OSGi与Equinox:创建高度模块化的JAVA系统》抢先阅读啦~ 只要你: 关注“OSGi中文社区”和“图灵教育” 的微博; 试读《OSGi与Equinox:创建高度模块化的JAVA系统》前四章,并且在此页面留言写下书评或者读后感。 就有机会获得价值89元的《OSGi与Equinox:创建高度模块化的JAVA系统》一本。一共会送出2本噢。


OSGi大牛作客社区,敬请关注~

OSGi中文社区邀请 Tim Ward 和 Jeff Liu 作客北大,将于2014年4月25日晚为大家带来精彩演讲,参与的童鞋们将会有机会与 OSGi 顶级专家进行深入交流,把握住这次绝佳的机遇,把准备好的问题抛给他们吧,让我们共同期待大牛们的精彩解答吧!


Osgi Bundle Convert插件原理

Osgi环境的开发相对比较麻烦些,对于Bundle的转换更加复杂,业界有提供这样的maven插件maven-bundle-plugin来做这个事情,maven-bundle-plugin也是使用bnd插件完成,但是普通的jar转换为osgi Bundle有很多情况无法处理,需要我们自己来处理。在一个独立项目中使用maven-bundle-plugin插件,可能不会存在什么大问题,但是做分布式组件,共享组件仓库,设计的仓库这个插件就不一定能帮上忙了


再看OSGi模块层——从在OSGi容器中引入Thymeleaf说起

Thymeleaf是一个开源的XML/XHTML/HTML5模板引擎,它的主要优势在于创建的模板可以被浏览器良好的支持并正确显示,非常适合于直接用于原型(prototype)设计。然而它的坐着一直没有添加OSGi支持,为了能够在OSGi环境下使用它,本文探究了将Thymeleaf的jar包转化为bundle的方法,并针对遇到的问题,根据《OSGi in Action》中内容给出了解决方案。


基于OSGi的Virgo环境搭建(一)——环境篇

最近要将web项目模块化以支持热插拔、动态扩展等功能,因此我们开始研究如何将OSGi引入web项目。关于OSGi,大家可以参考OSGi研究与总结。现在主流的j2EE框架都离不开Spring,因此,将OSGi与Spring进行无缝整合就成为了引入OSGi的关键。


基于OSGi的Virgo环境搭建(二)——集成Snaps

上一篇我们介绍了用java开发模块化web所需最基本环境(STS+Virgo),本节将介绍如何集成Snaps到Virgo中并演示几个官方的小Demo。


不可错过的OSGi入门学习资源

给大家提供一个非常好的[OSGi入门教程](http://tianmaying.com/course/osgi-toturial)PPT。深入浅出地介绍OSGi技术。介绍OSGi的基本概念,深入讲解OSGi模块层、生命周期层和服务层的知识细节,以及OSGi开发环境的建立。同时搜罗了一系列OSGi文章。