我正在尝试部署具有属性的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>
我正在使用Apache Felix作为OSGi运行时。我添加了fileinstall捆绑包并配置了它的路径。我在路径中添加了osgi-greeter捆绑包和一个名为com.example.my.Greeter.cfg的配置文件,如下所示:
greeting = Hello World
我打开了Felix的调试日志,可以看到fileinstall软件包已加载了其参数。但是,它什么也没做。我可以手动安装和启动该捆绑包,但是显然它仅向控制台输出null。目标是添加多个配置文件,并让fileinstall从其中启动实例。有什么想法可以实现这一目标,或者我可以做些什么来使文件安装以这种方式工作?
答案 0 :(得分:0)
我设法解决了。基本上,我将多个配置文件添加到监视的文件安装文件夹中,名为:
我认为在文件名中只需要在类名之后添加实例标识符即可。