外部化的plugin.xml字符串是否可用于下游插件?

时间:2009-08-23 16:11:58

标签: eclipse eclipse-plugin osgi plugin.xml

如果我有插件常见,插件A和B作为单独的插件/产品,两者都取决于普通的插件。

在插件常见中,我将plugin.xml中的字符串外部化,这给了我%bundle-vendor =“我的公司名称”。

在下游插件A和B中,我可以为供应商使用通用的bundle-vendor属性。我试过预先添加常见的插件ID,但它没有用。这可能吗?

2 个答案:

答案 0 :(得分:0)

据我所知,plugin.properties在插件外部不可用。但是,您可以定义属性类型(扩展org.eclipse.osgi.util.NLS)以自动加载属性文件并将它们公开给其他插件。

该类型中的每个静态String属性都将根据NLS规则从属性文件中处理并可用。

这是一个简单的示例,它将加载属性文件并在加载类时填充静态变量 some_property some_other_property

public class ContentMessages extends NLS {

    private static final String BUNDLE_NAME = 
        "name.seller.rich.content.messages"; //$NON-NLS-1$

    public static String some_property;
    public static String some_other_property;

    static {
        // load message values from bundle file
        reloadMessages();
    }

    public static void reloadMessages() {
        NLS.initializeMessages(BUNDLE_NAME, ContentMessages.class);
    }
}

答案 1 :(得分:0)

很棒的回答Rich。我要添加的唯一内容是确保在bundle清单中公开package / class以确保其他bundle可以访问它。