Maven Bundle 插件 R6 元类型
Maven Bundle Plugin R6 Metatype
我正在尝试使用 maven-bundle-plugin
来构建一个使用 osgi r6 元类型注释的包。
我已经创建了一个配置 class
@ObjectClassDefinition(
name = "Bundle State Validator"
)
@interface BundleInstallationConfig {
boolean DEFAULT_ENABLED = true;
@AttributeDefinition(
defaultValue = "true"
)
boolean isEnabled() default DEFAULT_ENABLED;
}
我正在我的组件中使用它 class。
@Component(
immediate = true
)
@Designate(ocd = BundleInstallationConfig.class)
public class BundleInstallationVerifier {
}
但是当我构建它时,生成的元类型文件看起来不正确并且它没有加载到配置管理中。这是生成的内容(缺少指定部分)
<metatype:MetaData localization="OSGI-INF/l10n/test.test.BundleInstallationConfig">
<OCD id="test.test.BundleInstallationConfig" name="Bundle State Validator" description="Watches bundles to ensure they are in the correct state and switches the System Ready state.">
<AD id="isEnabled" type="Boolean" name="Is enabled" default="true"/>
</OCD>
</metatype:MetaData>
这是我 pom 中的 bundle 插件
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.5.4</version>
<extensions>true</extensions>
<configuration>
<instructions>
<obrRepository>NONE</obrRepository>
<_metatypeannotations>*</_metatypeannotations>
<_dsannotations>*</_dsannotations>
</instructions>
</configuration>
</plugin>
我走到这一步主要是因为这个人的挫败感
https://github.com/bndtools/bnd/issues/1030
https://groups.google.com/forum/#!msg/bndtools-users/_F0Nr8b7rlQ/2A9x660pAgAJ
我认为 maven-bundle-plugin
还没有使用 bndlib 3.0。 bndlib 3.0(尚未发布)是 OSGi R6 注释支持的来源。你有点超前了。
你的designate
没有出现,因为class中没有定义一个。看看 Neil Bartlett 的 post 关于这个话题:enter link description here
我正在尝试使用 maven-bundle-plugin
来构建一个使用 osgi r6 元类型注释的包。
我已经创建了一个配置 class
@ObjectClassDefinition(
name = "Bundle State Validator"
)
@interface BundleInstallationConfig {
boolean DEFAULT_ENABLED = true;
@AttributeDefinition(
defaultValue = "true"
)
boolean isEnabled() default DEFAULT_ENABLED;
}
我正在我的组件中使用它 class。
@Component(
immediate = true
)
@Designate(ocd = BundleInstallationConfig.class)
public class BundleInstallationVerifier {
}
但是当我构建它时,生成的元类型文件看起来不正确并且它没有加载到配置管理中。这是生成的内容(缺少指定部分)
<metatype:MetaData localization="OSGI-INF/l10n/test.test.BundleInstallationConfig">
<OCD id="test.test.BundleInstallationConfig" name="Bundle State Validator" description="Watches bundles to ensure they are in the correct state and switches the System Ready state.">
<AD id="isEnabled" type="Boolean" name="Is enabled" default="true"/>
</OCD>
</metatype:MetaData>
这是我 pom 中的 bundle 插件
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.5.4</version>
<extensions>true</extensions>
<configuration>
<instructions>
<obrRepository>NONE</obrRepository>
<_metatypeannotations>*</_metatypeannotations>
<_dsannotations>*</_dsannotations>
</instructions>
</configuration>
</plugin>
我走到这一步主要是因为这个人的挫败感 https://github.com/bndtools/bnd/issues/1030
https://groups.google.com/forum/#!msg/bndtools-users/_F0Nr8b7rlQ/2A9x660pAgAJ
我认为 maven-bundle-plugin
还没有使用 bndlib 3.0。 bndlib 3.0(尚未发布)是 OSGi R6 注释支持的来源。你有点超前了。
你的designate
没有出现,因为class中没有定义一个。看看 Neil Bartlett 的 post 关于这个话题:enter link description here