2013-09-07 2 views
0

Я пытаюсь использовать аннотации iPojo для объявления компонентов внутри Eclipse. Проблема в том, что когда он генерирует XML и модифицированные классы, bnd-ipojo-plugin не может найти аннотации в пути класса plugin.Как настроить iPojo с BndTools внутри Eclipse?

я получаю ошибки в Eclipse, как это:

During generation of a component on class org.osgi.example.Application, exception java.lang.ClassNotFoundException: org.apache.felix.ipojo.annotations.Bind 

Я модифицировал .bnd файл содержит свойство '-plugins':

-plugin: org.apache.felix.ipojo.bnd.PojoizationPlugin;use-local-schemas=true;path:="${workspace}/cnf/plugins/org.apache.felix.ipojo-1.10.1.jar;${workspace}/cnf/plugins/org.apache.felix.ipojo.annotations-1.10.1.jar;${workspace}/cnf/plugins/bnd-ipojo-plugin-1.10.1.jar;${workspace}/cnf/plugins/org.apache.felix.ipojo.manipulator-1.10.1.jar" 
проекта

Моих затмений все фляги iPojo в BuildPath. У кого-нибудь есть предложения? Или есть лучший способ интегрировать iPojo в Eclipse?

Edit 1

Я полностью перестроен мое рабочее место и переехал -plugin и -pluginpath переменные в файле build.bnd.

Это выглядит примерно так:

-pluginpath: ${plugindir}/biz.aQute.repository/biz.aQute.repository-2.1.0.jar,\ 
    ${plugindir}/bnd-ipojo-plugin/bnd-ipojo-plugin-1.10.1.jar, \ 
    ${plugindir}/org.apache.felix.ipojo/org.apache.felix.ipojo-1.10.1.jar, \ 
    ${plugindir}/org.apache.felix.ipojo.annotations/org.apache.felix.ipojo.annotations-1.10.1.jar, \ 
    ${plugindir}/org.apache.felix.ipojo.manipulator/org.apache.felix.ipojo.manipulator-1.10.1.jar 

-plugin: aQute.bnd.deployer.repository.LocalIndexedRepo;name=Release;local=${workspace}/cnf/releaserepo;pretty=true,\ 
    aQute.bnd.deployer.repository.LocalIndexedRepo;name=Local;local=${workspace}/cnf/localrepo;pretty=true,\ 
    aQute.bnd.deployer.repository.FixedIndexedRepo;name=Bndtools Hub;locations=https://github.com/bndtools/bundle-hub/raw/master/index.xml.gz,\ 
    aQute.lib.deployer.FileRepo;name=Build;location=${workspace}/cnf/buildrepo,\ 
    aQute.lib.deployer.FileRepo;readonly=true;name=iPojo Repo;location=${plugindir}, \ 
    org.apache.felix.ipojo.bnd.PojoizationPlugin;use-local-schemas=true 

Теперь все ошибки исчезли, и он строит без сбоев. Однако файлы XML все еще не создаются. Есть ли еще один шаг, помимо изменения файла build.bnd?

+0

Вы установили свойство -plugins в cnf/build.bnd? Это не работает, если вы поместите его в файл проекта bnd.bnd. –

+0

Спасибо. Я не был уверен, что это такое. Я переместил его на build.bnd и обновил вопрос. – max

+0

К сожалению, я мало что знаю о iPOJO, поэтому я не знаю, что он должен генерировать и где. Но вы проверили в представлении журнала ошибок Eclipse? Если что-то идет не так, вы, надеюсь, найдете там некоторые ошибки. –

ответ

-1

Я переключился на аннотации BndTools SCR по iPojo. Мне понравилась выразительность аннотаций iPojo, но я нашел аннотации SCR столь же приятными. Поскольку они встроены в BndTools, они работают так, как ожидалось. Хотя specification (pg. 187) оказался очень полезным, чтобы убедиться, что я правильно их использовал (т. Е. Свойства vs property).

Смежные вопросы