Достъп до плъгини от фрагменти и обратно

Опитвам се да добавя фрагмент към плъгин, за да имам добавена информация към плъгина, без да докосвам последния.

Проблемът, който изпитах обаче, е, че мога да получа достъп до ресурси, които са в приставката от фрагмента, но не и обратното.

Ето как извличам ресурса и манифестите на двата проекта. Ресурсният файл "patch.xml" е в папката /src.

test.plugin2:

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

public class Main{

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

RetrieveResource:

public class RetrieveResource {

    public RetrieveResource(){

    }

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

url винаги е нула.

manifest.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/,\
               .,\

test.fragment2:

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 приложение“. Тъй като фрагментът и плъгинът трябва да бъдат обединени по време на изпълнение, приложението трябва да бъде стартирано в режим "eclipse application" и няма да има проблем с извличането на ресурса.


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