bootdelegation vs. org.osgi.framework.system.packages.extra

osgi alliance support

osgi alliance support

在用osgi的过程中,如果需要osgi容器内外互通,则一般需要osgi容器内外共享类,否则会抛出各种ClassNotFoundException或者ClassCastException。常见的解决方法有两种,即把需要共享的类所在包名配置在这两个osgi启动参数上:org.osgi.framework.bootdelegation和org.osgi.framework.system.packages.extr[……]

全文阅读

使用iPOJO时抛出异常java.lang.UnsupportedOperationException: Cannot add elements inside this collection

 

felix ipojo

felix ipojo

Felix iPOJO的功能很强大,配置也比较复杂,配置和实现代码之间有着千丝万缕的关联,完全脱离代码去配置iPOJO的component和instance势必不会达到自己想要的依赖注入效果,甚至很难查到问题的原因。尽管iPOJO的配置有iPOJO xml schemaiPOJO Annotation,但是仅仅按照schema和annotation来不一定能配置正确,还需要理解iPOJO配置背后的一些机制[……]

全文阅读

obr安装资源的时抛出异常:java.lang.IllegalStateException: Framework state has changed, must resolve again.

Apache Felix OSGi Bundle Repository

Apache Felix OSGi Bundle Repository

在使用obrApache Felix OSGi Bundle Repository)的实现类org.apache.felix.bundlerepository.Resolver分析和安装资源的时可能会抛出这个异常:java.lang.IllegalStateException: Framework state has changed, must resolve again.[……]

全文阅读

Felix iPOJO annotation中@ServiceProperty、@StaticServiceProperty和@Property的区别

Apache Felix iPOJO

Apache Felix iPOJO

Felix的官方文档中有关Felix iPOJO annotation中@ServiceProperty、@StaticServiceProperty和@Property的区别和意义的解释很少,但是Apache Felix forum上面有,并有人有相同的问题高手进行了解答。另外在stackoverflow上面也有人回答了这个问题。

意思是:

  • @ServiceProperty会在service[……]

全文阅读

felix ipojo入门教程

Felix iPOJO介绍

在OSGI框架中,Felix iPOJO意在简化面向服务编程。iPOJO的全称是inject POJO。Felix iPOJO提供了一种新的开发OSGI服务组件的方式,主要目标是简化服务组件的实现,使环境的动态变化对服务组件的实现透明。Felix iPOJO可以让开发者更好的分离功能代码(比如:POJO)和非功能代码(比如:依赖管理、服务的提供、配置等)。

Felix iPOJO服务组件简介

服务组件可以提供和(或者)依赖一个或者多个服务,服务(service)是一个实现了某个java接口的对象。另外Felix iPOJO提供了一个回调的机制,把各种状态变化通[……]

全文阅读

maven-ipojo-plugin使用指南

1. 基本配置

要使用iPOJO的maven插件(maven-ipojo-plugin),就要使用如下的配置(需要将$YOUR_XXX的部分替换成你需要的)

iPOJO maven plugin通常要和BND maven plugin(maven-bundle-plugin)一起使用,且需要<package/>的值为bundle,但是这两个插件的配置是完全分开的。所以你可以使用到所有的BND插件的所有功能特性。上面的pom配置实例中iPOJO配置的部分可以不经修改的使用到你的eclipse工程中,前提条件是你的[……]

全文阅读

no manifiest section for signature file entry OSGI-OPT/src/org/osgi/service/device/DriverLocator.java

在使用maven-bundle-plugin在进行osgi bundle开发时,有时mvn install会碰到如下的报错:

错误:构造处理程序对象 no manifiest section for signature file entry OSGI-OPT/src/org/osgi/service/device/DriverLocator.java 时抛出异常

我碰到这个问百思不得其解,由于现在玩osgi的少,在google、stackoverflow上的资料偏少,很难找到解决办法,后来反复尝试,发现只要在pom配置时,保证配置的<Export-Package>其有一个真实存[……]

全文阅读

把空间从美国主机搬到香港主机上了,速度果然快很多

以前没觉得美国主机有多慢,用了一段时间后,觉得美国主机确实还是挺慢的,ping的时间是300ms,平均首页的打开时间在8s左右,有点难受啊,而且我的有些博文有代码高亮,js和css比较多,更是拖慢了页面相应速度,偶然的机会发现香港主机的ping只有30ms,顿时感觉神清气爽,然后咨询发现香港主机也是不用备案的(天朝有个世外桃源还真是好啊)!

当初买主机的时候就是想逃脱天朝的各种束缚,只知道美国主机不用备案,速度还过得去,压根儿没想到香港主机,以为没逃出天朝的国界,就还要备案,没想到香港主机居然不用备案的,速度好得出奇,跟普通内地的主机速度差不多了。当机立断,让戈戈主机帮我搬了家,好在我当[……]

全文阅读

源码解析之访问osgi felix bundle中的文件和资源

Apache Felix

Apache Felix

根据osgi规范中api的定义目前访问bundle里面的文件和资源的方法有三种。本文以felix框架为例,解析一下osgi中访问bundle里面的文件和资源的方法,以及各方法的区别。

一. Bundle.getEntry(String name)

该方法只能从当前的bundle jar中获得文件和资源(包括jar中的所有文件,比如*.class、META-INF\MANIFEST.MF等)。该方法的返回值为java.ne[……]

全文阅读

Goproxy代理-灵活的反向代理和静态资源代理

 

goproxy代理

goproxy代理

goproxy代理可以实时的让hosts文件的修改生效,而且对hosts文件的配置功能进行了增强,用起来会很有意思,(因为是用go语言写的,所以取名为goproxy)。先说说这个软件的来由:

做web开发的同学难免会碰到线上、线下、预发布、其他环境相互切换的场景,目前有两个方案:

  1. 方案一:直接在浏览器中把url中的域名改成指定环境的ip:port,回车直接访问。不过这个办法是有缺陷的,比如:你的w[……]

全文阅读