- 浏览: 104691 次
- 性别:
- 来自: 广州
博客专栏
-
Servicemix&Fu...
浏览量:0
最新评论
-
shishuwu:
求Sample,谢谢
OSGI企业应用与Aries开源项目(2) -
q862747954:
killko 写道q862747954 写道[b] 楼主按照等 ...
使用Apache ServiceMix轻松发布Web Service -
killko:
q862747954 写道[b] 楼主按照等你写了DEMO 结 ...
使用Apache ServiceMix轻松发布Web Service -
q862747954:
[b] 楼主按照等你写了DEMO 结果运行发现提示这个问题Bu ...
使用Apache ServiceMix轻松发布Web Service -
killko:
zhicheng5375123 写道为啥不用maven-bun ...
用Maven开发OSGI Bundle
文章列表
"欲利其事,先利其器",整理一下编译linux设备驱动程序的makefile。
all:
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
clean:
$(MAKE) -C $(KERNELDIR) M=$(PWD) clean
注意:按规定,makefile文件中,缩进部分一定是一个tab,不能用空格代替。
/lib/modules/$(shell uname - ...
我们经常会接触到规范(specification)、 、模式(pattern)、框架(framework)等概念。有时与朋友沟通时,总感觉对方混淆了这些概念的使用范畴,也就是将某个概念的东西硬往另一个概念上套。
在此,我讲讲自己的看法,期待各位的拍砖:
规范(specification)几乎和标准同义,是一类实现的实现标准。也就说为了统一某类实现的某些特性,而制定规范,使这类的实现互相之间具有可替代性,也决定了依赖该类实现的软件构件使用该类实现的方式。例如:servlet api、osgi、osgi blueprint、jpa、jdbc、jta、jndi等等就属于规范。
模式(patter ...
上节提到将war包改造成wab,通过pax web extender部署 在OSGI framework上的方式来发布 web应用。表面上,我们似乎只需要作少量的改 动,就能将旧的web应用OSGI化了,但是我们没 得到任何好处,只是为OSGI化而OSGI化了,既 没得到OSGI的模块化、动态化的好处,还得受 OSGI classloader机制的限制。既然如此,我们 何必自讨苦吃地将它改造成wab呢?
我们审视一下war的一般组成:部署描述文档,一 些配置文件,自有的一系列java类,自有的一堆 web静态资源文件和一大堆依赖的第三方jar 包......,可以说war是一个粗粒 ...
有了servlet和filter,web应用的UI部分就己经有了基础,但光凭这个来搭建一个复杂的web应用的UI就象用二极管、三极管、电阻、电容去搭建一台电脑一样,有些不切实际,我们还是渴望着能用上以往的那些mvc框架(例如struts,springmvc等)来降低复杂度。如果能象j2ee那样将一个war作为一个web应用来部署该多好呀!
我们想到的,也已经有人做到了。这里我们引荐一个Pax web extender。Pax web extender是ops4j开源社区的出品。 Pax web Extender是用于 加载 WAB(Web Application Bundl ...
Blueprint除了组装bean,osgi服务引用等的DI(IOC)功能之外,还可通过各种命名空间(namespace)来扩展。在《Blueprint入门之六》中,我们就用过一个与ConfigAdmin相关的命名空间(http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0)。
除了ConfigAdmin之外,我们还可以看到aries JPA container提供了JPA相关的blueprint命名空间(http://aries.apache.org/xmlns/jpa/v1.1.0) ,Aries JP ...
除了支持动态页面的Servlet外,web还需要一些静态的资源来支持,例如:图片、待下载的文件、css、javascript脚本等等。
为了支持这些静态资源,HttpService服务除了提供注册Servlet的方法(registerServlet)外,还提供了一个 ...
目前,J2EE的web应用可以说多不胜数,很多 做过J2EE,并开始接触OSGI的童鞋都会自然而然 地想,如果在OSGI之上该如何构建Web应用。在 这方面,OSGI虽然有一些解决方案,但“似乎”都 不是那么成熟的。这还真不好说,我隐隐 ...
linux设备驱动属于内核的一部分。除了可直接编 译进kernel外,还可以作为模块的形式动态加 载。在kernel2.6后,模块以.ko的文件形式存在。
通过lsmod命令,我们可以查询已加载的设备驱动模块。
由于很多服务都依赖于设备驱动模块, 所以设备驱动一般会安排在系统启动的早期来加 载,例如:/etc/rc.d/init.rc脚本里加载。
有些设备 驱动之间存在依赖关系,linux一般会提供一个 depmod的程序来提取各驱动模块的依赖关系, 生成modules.dep文件,在操作系统启动过程中,就可根据这个文件来按顺序加载设备驱动模块。
有网友问我有没有osgi的demo,于是将前段时间给朋友的一个例子拿来整理了一下。
首先,这个demo是在karaf下运行的,项目由三个bundle组成,会涉及自定义的console命令,服务的发布和引用。
项目为maven项目,为方便构建,将三个bundle项目作为一个父项目下的三个子项目。项目经mvn package构建后,在三个子项目的target文件夹下分别生成了Calculator-1.0.jar、AddModule-1.0.jar、SubModule-1.0.jar三个bundle,这三个bundle分别为:
1、Calculator ...
Blueprint既然是DI规范,自然在注入方面有很多的需求。在前几篇中,我们已接触了服务引用的注入:
<reference id="coderService" interface="com.ponder.ICoder" timeout="0"/>
<bean id="processor" class="com.ponder.Processor">
<property name="coder" ref="coderSer ...
系统开发到了一定程度的时候,我发现以往有很多可以再优化的地方,于是试图去优化,最终虽然优化了,但是因为牵连的东西有点多,所以花了不少时间。经过一番思考,才意识到需要优化的不是那些代码,而是那些架构。我们需要的大系统应该由多个相对独立的小系统组成,将业务分而治之。于是就去找合适的方法来达到这个目的,很幸运的是,我发现了OSGI。
刚开始, 就只是知道 OSGI是一个实现模块化的架构,而且最初是作为一个嵌入式的java应用架构规范发展起来的,网上传得最有名的就是在BMW上的车载系统和Eclipse IDE这个两个应用。BMW没钱买来了解,只好看看Eclipse吧 。
...
Blueprint用另一个命名空间(http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0)支持osgi configadmin来配置节点的相关参数。
<?xml version="1.0" encoding="UTF-8"?> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:cm="http://aries.apache.org/bluepri ...
Servicemix是一个基于JBI规范的ESB,从Servicemix4开始全面支持OSGI,所谓全面支持是指不仅Servicemix4本身是基于OSGI framework和OSGI Bundle来实现,而且在Servicemix4上跑的应用也是由OSGI Bundle来构成的。而目前有很多J2EE应用服务器本身是 ...
reference-list除了可以用setter的方式注入OSGI service外,还可以用listener的方法来实现OSGI service的注入。
<?xml version="1.0" encoding="UTF-8"?>
<blueprint
xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:sch ...
上一篇提及了OSGI service的发布和引用,在 Blueprint里,服务的发布和引用是最常用的一种 最佳实践,通过借助服务引用这样松散的藕合方 法,可以让OSGI的动态性发挥得淋漓尽致。
一些较低层的,细粒度的服务引用可以注入到 bean里,再将这个bean发布出更高层次的,粗粒 度的服务,而Blueprint container将会通过监听 来自OSGI framework的事件,跟踪这些服务的可 用性,当某服务mandatory地依赖那些失去可用 性的服务时,它也将会被Blueprint container从 OSGI framework上撤下来。而当这些被依赖服务 ...