Доступ к плагинам из фрагментов и наоборот

Я пытаюсь добавить фрагмент в плагин, чтобы добавить информацию в плагин, не касаясь последнего.

Однако проблема, с которой я столкнулся, заключается в том, что я могу получить доступ к ресурсам, которые находятся в плагине, из фрагмента, но не наоборот.

Вот как я получаю ресурс и манифесты обоих проектов. Файл ресурсов "patch.xml" находится в папке /src.

test.plugin2:

основной класс:

public class Main{

    public static void main(String[] args) {
        RetrieveResource ma = new RetrieveResource();
        ma.retrieve();
    }
}

Получитьресурс:

public class RetrieveResource {

    public RetrieveResource(){

    }

    public void retrieve(){
        URL url = this.getClass().getClassLoader().getResource("patch.xml");
        System.out.println(url);
    }
}

URL-адрес всегда нулевой.

манифест.mf:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Plugin2
Bundle-SymbolicName: test.plugin2;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Require-Bundle: org.eclipse.core.runtime;bundle-version="3.7.0"

build.properties

source.. = src/
output.. = bin/
bin.includes = META-INF/,\
               .,\

тест.фрагмент2:

manifest.mf

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Fragment2
Bundle-SymbolicName: test.fragment2
Bundle-Version: 1.0.0.qualifier
Fragment-Host: test.plugin2;bundle-version="1.0.0.qualifier"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Export-Package: test.fragment2.classes

build.properties

source.. = src/
output.. = bin/
bin.includes = META-INF/,\
               .,\

Чего не хватает или где я ошибся?
Можно ли вообще получить доступ к фрагментам из плагинов?

ПРОБЛЕМА РЕШЕНА. В своих тестах я запускал проект test.plugin2 как в режиме "java-приложение". Поскольку фрагмент и плагин должны быть объединены во время выполнения, приложение должно быть запущено в режиме «приложения затмения», и не будет проблем с получением ресурса.


person Majid    schedule 08.08.2014    source источник


Ответы (1)


Используйте FileLocator.findorg.eclipse.core.runtime) для поиска ресурсов в плагине и фрагментах.

Bundle bundle = ... your plugin Bundle

IPath path = new Path("patch.xml");

URL url = FileLocator.find(bundle, path, null);
person greg-449    schedule 08.08.2014