登録/登録解除をリッスンし、stdoutにメッセージを送信する非常にシンプルなOSGIアプリがあります。
私のアプリにあるのは、Springで初期化された単純なBeanです。私はmavenバンドルプラグインを使用してjarをバンドルし、felixに入れます。これはpomの抜粋です:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.1.0.RELEASE</version>
<type>jar</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.2.0</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Export-Package>org.spring.*</Export-Package>
<Bundle-Activator>foo.bar.Activator</Bundle-Activator>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
プロジェクトは正常にコンパイルされ、Felixに正常にデプロイできますが、アクティベーターが呼び出されると、次のような依存関係が欠落していると文句を言います。
バンドルfoo.bar.projectの未解決の制約[56]:56.0を解決できません:要件がありません[56.0] osgi.wiring.package; (&(osgi.wiring.package = org.springframework.context)(version> = 3.1.0)(!(version> = 4.0.0)))
私はこの行を変更してみました:
org.spring。*
これに:
*
フェリックスがandroid-dalvikが存在しないと不平を言っているので、私は完全に無知です。
Spring DMを使用せずにSpringをOSGIプロジェクトに含める方法はありますか?
編集:生成されたマニフェストが(Webコンソールから)不平を言うものは次のとおりです
エクスポートされたパッケージ
foo.bar.osgi foo.bar.service foobar.tracker
インポートされたパッケージorg.osgi.framework、version = [1.6,2)from org.apache.felix.framework(0)org.osgi.util.tracker、version = [1.5,2)from org.apache.felix.framework( 0)エラー:org.springframework.context、version = [3.1,4)-解決できませんエラー:org.springframework.context.support、version = [3.1,4)-解決できません
マニフェストヘッダーBnd-LastModified:1339014840268
Build-Jdk:1.6.0_32
作成者:fooBar
バンドル-アクティベーター:foo.bar.osgi.Activator
バンドル-マニフェストバージョン:2
バンドル名:fooBar
バンドル-SymbolicName:foo.bar.OSGIProject
バンドルバージョン:0.20.0.SNAPSHOT
作成者:ApacheMavenバンドルプラグイン
エクスポート-パッケージ:foo.bar.osgi.tracker; 使用:= "foo.bar.osgi.service、org.osgi.util.tracker、org.osgi.framework"、
foo.bar.osgi; 使用:= "org.springframework.context.support、org.springframework.context、org.osgi.framework"、foo.bar.osgi.service
インポートパッケージ:
org.osgi.framework; version = "[1.6、2)"、org.osgi.util.tracker; version = "[1.5、2)"、org.springframework.context; version = "[3.1、4)"、org.springframework.context.support; version = "[3.1、4)"マニフェスト-バージョン:1.0ツール:Bnd-1.15.0
これは私がpomに変わったときです
<configuration>
<instructions>
<Include-Resource>src/main/resources/spring-beans.xml</Include-Resource>
<Bundle-Activator>nl.synovite.scheduled.osgi.Activator</Bundle-Activator>
<Import-Package>*</Import-Package>></instructions>
</configuration>