プロパティを使用して iPojo バンドルをデプロイしようとしています。バンドルは次のようになります。
@Component
public class Greeter {
@Property(name = "greeting")
private String greeting;
@Validate
public void start() {
System.out.println(greeting);
}
}
pom.xml は次のようになります。
<groupId>com.example.my</groupId>
<artifactId>osgi-greeter</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.ipojo.annotations</artifactId>
<version>1.12.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<!-- BND Maven Plugin Configuration -->
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<!--<Private-Package>$YOUR_PRIVATE_PACKAGE</Private-Package> <Export-Package>$YOUR_EXPORTED_PACKAGE</Export-Package> -->
</instructions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-ipojo-plugin</artifactId>
<version>1.12.1</version>
<executions>
<execution>
<goals>
<goal>ipojo-bundle</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
OSGi ランタイムとして Apache Felix を使用しています。fileinstall バンドルを追加し、そのパスを構成しました。このパスに、osgi-greeter バンドルと com.example.my.Greeter.cfg という名前の構成ファイルを次のように追加しました。
greeting = Hello World
Felix のデバッグ ログをオンにすると、fileinstall バンドルがそのパラメータとともにロードされていることがわかります。しかし、それは何もしていません。バンドルを手動でインストールして開始することはできますが、明らかに null しかコンソールに出力しません。目標は、複数の構成ファイルを追加し、fileinstall がそれらからインスタンスを開始できるようにすることです。それを達成する方法、またはfileinstallをそのように機能させるために私ができることはありますか?