在我的插件。支持。帮助的插件。性文件。这些属性文件,包括符的优先页。

我想利用这个插件对不同客户,但是客户名是内部性质的文件。

我要修补性文件,通过使用日食片的机制。因为我现在的片段插件可以贴在着相应的插件在运行时间。

我有该文件的插件。特性的插件。支持。帮助,其中包括行

plugin.name = Copyright XYZ

和我做的有fragemt de。支持。帮助。片段,其中包括文件的插件。性质与行

plugin.name = Copyright ABC

我预计在运行时串的"版权ABC",但是它不是。我测试了相同java类的一个长时间以前,我记得那t他的工作。Java代码碎片放到原来的插件。

你有任何想法,以处理这个吗?或者我会误解的片段的机制?

感谢

编辑:

当我移除的插件。性文件从德。支持。帮助插件,它的工作的预期。碎片的文件拷贝到的插件目录和使用在运行时间。

或者我们来修补somce蚀类 Can_fragments_be_used_to_patch_a_plug

有帮助吗?

解决方案 2

我已经实现的解决方案是像

首先查找特殊片段的属性文件和比查找默认属性文件。

的代码是(束名称被改变)

public final class FrameworkMessages {
    private static final String BUNDLE_NAME = "de.rts.messages"; //$NON-NLS-1$

    private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);

    private static final String BUNDLE_FRAGMENT_NAME = "de.rts.fragment"; //$NON-NLS-1$


    private FrameworkMessages() {
    }

    public static String getString(String key) {
        try {
            return ResourceBundle.getBundle(BUNDLE_FRAGMENT_NAME).getString(key);
        } catch (MissingResourceException e) {
            // Use messages in this plugin when no external fragment files can found
        }

        try {
            return RESOURCE_BUNDLE.getString(key);
        } catch (MissingResourceException e) {
            return '!' + key + '!';
        }
    }

    public static String getString(String pKey, Object[] pArgument) {
        try {
            return MessageFormat.format(RESOURCE_BUNDLE.getString(pKey), pArgument);
        } catch (MissingResourceException e) {
            return '!' + pKey + '!';
        }
    }
}

其他提示

根据 如何国际化您的Eclipse插件 制品

  

一个插件片段提供了附加功能到其目标插件。结果   在运行时,这些插件组成部分与所有相关的片段合并。

     

这些贡献可包括代码贡献,并用插件,像属性和HTML文件相关联的资源的贡献。

     

在换句话说,插件具有经由插件的类加载器访问片段的内容。

     

Eclipse平台合并插件片段的方式,在该片段中的运行时元素增补原始目标插件。结果   目标插件中没有移动,移除,或以任何方式修改。

     

由于片段的资源由类加载器位于,插件显影剂具有不需要知道资源是否从插件中的JAR文件或其片段的JAR文件加载一个


我怀疑类装入器检测在plugin.namede.support.help片段之前第一插件de.support.help.fragment

在这一点上,我不知道这是可以做到的,因为它之前已经尝试(为的 Eclipse的CheckStyle的插件),但没有成功。

你不能代替的内容的文件片段只增加额外的文件。这是真正的两类、属性文件、图像...

有几个标准方法,用于解决这个问题:

  • 你可以添加一个扩展点与这个和其他客户的具体信息。
  • 你可以先看一个特殊的文件,而这种回落到普通一如所做的马克斯.
  • 你可以有一个可选择的依赖一个插件有关的信息。

我喜欢最后的解决方案,因为这也许是选择之间的替代算法和其他东西,这并不属于中。性文件...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top