osgi架构讲解
具体讲解osgi的一些技术与架构实现。
叶长风
会scala和python的程序员
展开
-
blueprint整合cxf提供restful服务
blueprint整合cxf提供restful服务前段时间太过繁忙,一直没有抽出时间来继续更新博客,最近几天抽出时间开始重新开始osgi的专栏,在前几篇文章中一直写的是osgi相关知识中的基础篇,从今天开始编写osgi中的一些高级篇,如osgi相关的web服务,mybatis的引入、如何将osgi项目中的基础模块抽离出来等等。今天就从如何整合cxf开始。在这里整合cxf并不是使用cxf的webser原创 2016-08-24 10:04:15 · 7411 阅读 · 3 评论 -
osgi之Eventadmin通信
osgi之Eventadmin通信osgi中bundle之间的通信,可以使用eventadmin来完成,eventadmin是osgi中的一种基于发布订阅的方式,一个Bundle进行发布发布一个事件之后,另外一个Bundle订阅相应主题,从而进行通信,在使用过相同的通信方式中,guava中有一个eventbus可以达到相同的效果,以及mq的发布订阅均是如此,但是osgi的eventadmin服务,在原创 2016-07-25 10:01:54 · 6304 阅读 · 4 评论 -
OSGI中Declarative Services的运用
OSGI中Declarative Services的运用前言Declarative Services,即所谓的声明式服务,我在前文中曾经提及到注册式服务与声明式服务,但是在前文中并没有提及怎么使用声明式服务,只是简单的说了下概念和相对于blueprint来说有哪些优缺点,总而言之,可谓是一笔带过,这几日想起这个,还是决定需要仔细的讲一下声明式服务。简介Declarative Services,这是在原创 2016-07-22 09:54:12 · 6874 阅读 · 0 评论 -
OSGI中ServiceTracker的应用
OSGI中ServiceTracker的应用前文讲了ServiceListener,ServiceListener用于监听各种服务,但是如果要监听某一种服务的话,可能要花费一番功夫才能完成,但是我们可以使用osgi中另外一个监听服务的方式,就是ServiceTracker,这个在本质上是对ServiceListener的一种封装,对service的获取比ServiceListener比起来又简单许多原创 2016-07-19 09:54:05 · 11359 阅读 · 6 评论 -
osgi之ServiceListener的应用
osgi之ServiceListener的应用前言我原想直接跳过这些osgi中基础知识,直接从osgi应用的一些中级篇或者高级篇开始的,后来想到osgi中的ServiceListener、ServiceTracker、Ds还是都需要讲一下,所以决定将osgicommand后续中的内容放一下,从ServiceListener开始讲一下,不过这里就不再讲述felix官网中的ServiceListener原创 2016-07-14 09:52:21 · 5586 阅读 · 3 评论 -
OSGI中自定义command(2)
OSGI中自定义command(2)前文在上一篇博文中,我们讲述了什么是OSGI中的command,同时写了一个简单的command,这个command实现了org.apache.felix.gogo.commands.Action这个接口,同样可以实现相同功能的还有 org.apache.karaf.shell.console.OsgiCommandSupport这一个抽象类,但是在本程序中,这原创 2016-07-10 07:53:44 · 5639 阅读 · 2 评论 -
# OSGI中使用自定义的command
OSGI中command的应用前文在上一篇博文中,我们讲解了osgi中的blueprint,但并没有对此作出具体的运用,在本文及以后将会在讲osgi中其他应用的时候将blueprint串进来讲解,本文将要讲讲解的是osgi中的command,在编写的应用中,可能涉及到数据迁移或者其他一些操作,如果这个通过调用接口来进行操作的话,如果非相关人员获取到相关接口调用方式,可能会带来一些危害,所以在不得已的原创 2016-07-07 09:42:08 · 10020 阅读 · 4 评论 -
OSGI中blueprint简介
OSGI中blueprint简介上篇博文我们开始了felix中的一个example编写,原本计划是讲felix中的几个example全部编写一遍,但是随后发现felix的这几个example都差不多,只是略微有些区别,编写来编写去始终都是这几行代码,讲起来也没什么意思,想着还是开始osgi中新的东西的讲解,思考来去,还是从blueprint开始。blueprint简介在osgi中服务的使用有多种方式原创 2016-07-04 07:56:38 · 14950 阅读 · 0 评论 -
osgi + felix example3编写与使用服务的改进
osgi + felix example3编写与使用服务的改进上一篇博文中我们提及了如何对一个服务进行注册,但在example2和example2b中都没有对这个服务进行相应的使用,在本文中将对这个服务进行使用相应的使用,在felix的官网中,对该服务的使用方法是对目前已经注册的bundle进行扫描,然后使用服务,但是个人觉得Activator这种启动bundle最好只有一个,并且本文搭建了一个完整原创 2016-07-01 07:57:13 · 9144 阅读 · 0 评论 -
osgi + felix example2b编写
前一篇博文中我们讲解了OSGI的传统注册式服务与声明式服务,再前一篇我们我们进行了osgi + felix example2的编写,这一篇博文我们编写了一个Bundle和一个接口并对这个接口进行了相应的实现之后,在这个bundle的start方法中进行了该服务的注册,并没有使用这个服务。本文中编写的程序仍然是不使用这个服务,只进行相应的注册,在example3中将会讲解使用这个服务。程序程序中变动的原创 2016-06-29 07:53:55 · 3172 阅读 · 0 评论 -
osgi + felix example2编写
在上次博文中配置了karaf的日志格式输出,在两篇之前的一篇文章编写了基本的felix中的简单的example编写,编写了一个简单的Activator,启动并得到正常的输出,这一篇博文将开始稍微复杂一点的程序编写,将进行一个服务的注册。 DictionaryService首先创建一个interface,命名为DictionaryService,添加以下内容:package cn.com.exampl原创 2016-06-25 08:04:16 · 2683 阅读 · 0 评论 -
osgi + camel + karaf配置日志输出
上篇博文中编了felix的一个简单example,然后演示了example的启动,Activator启动之后进行了控制台输出,但整个example feature的启动过程中那些bundle进行了install过程并没有演示,接下来将演示这一过程。配置日志首先对karaf的输出进行日志输出,先前在parent module中pom.xml中配置插件指定配置文件位置,如下所示: <plugin>原创 2016-06-24 08:02:00 · 5348 阅读 · 11 评论 -
osgi + felix example1编写
在上篇博文中,我们搭建了osgi的整个运行环境,并将其他个别组件也整合了进来用于后续的开发,本播客系列将会将apache felix官网中example全部编写一遍,然后进行osgi后续的文章编写,如osgi command,blueprint,configAdmin等等,这些暂且放置一边,日后写博文的时候再谈。example模块在上回建立的maven工程中,新建文件夹命名为Application,原创 2016-06-22 08:08:21 · 2691 阅读 · 0 评论 -
osgi+camel+karaf运行环境搭建(2)
本文开始osgi运行环境后续搭建,上文介绍了几个运行组件与容器,本文将开始具体的代码编写。root module打开intellij新建maven工程,待maven工程全部生成完成之后,在pom.xml中添加以下内容。<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <pro原创 2016-06-21 08:58:56 · 4047 阅读 · 2 评论 -
osgi+camel+karaf运行环境搭建(1)
这几天一直在学习与加深osgi中的一些东西,又去看了下apache felix中的几个example,于是决定将felix中的一些example写出来,但是不在使用felix官网中那样运行,而是从新搭建一个osgi的运行环境进行相应的学习,在这使用了karaf作为osgi的运行容器,同时整合camel进来,因为在后续会有更多的osgi中的运用,因此,本次全部整合进来。本文在此先对几个框架和容器进行相原创 2016-06-19 10:03:03 · 4166 阅读 · 0 评论