2014-12-03 10 views
0

Мой плагин для FishEye должен иметь возможность доступа к нашей Active Directory и реализовать еще некоторые функции для FishEye. Плагин должен синхронизировать с каталогом каждые X минут, поэтому он основан на SAL Scheduler. Когда я пытался использовать com.sun.jndi.ldap.LdapCtxFactory, я обнаружил, что работает только с плагином REST, но использование с SAL не загружает эти классы, даже когда я переопределял загрузчик классов. Во всяком случае, я повторно реализовать свою функциональность с Spring LDAP и когда я попытался развернуть свой плагин к FishEye я получил:Плагин Atlassian FishEye и классы Spring LDAP

2014-12-03 23:12:03,010 ERROR [ThreadPoolAsyncTaskExecutor::Thread 9 ] org.springframework.osgi.extender.internal.activator.ContextLoaderListener DefaultOsgiBundleApplicationContextListener-onOsgiApplicationEvent - Application context refresh failed (NonValidatingOsgiBundleXmlApplicationContext(bundle=com.mycompany.fisheye.ldap-restriction-plugin, config=osgibundle:/META-INF/spring/*.xml)) 
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/osgi] 
Offending resource: URL [bundle://84.0:0/META-INF/spring/atlassian-plugins-component-imports.xml] 

Ok. Я нашел googled и нашел https://developer.atlassian.com/docs/faq/troubleshooting/dependency-issues-during-plugin-initialisation Написано, что я должен изменить область зависимости до при условии, что избегает конфликтов. Хорошо, я сделал это. Но теперь у меня есть еще одно исключение:

Exception in thread "PluginSchedulerTask-com.mycompany.fisheye.LdapRestrictio nComponentImpl:job" java.lang.NoClassDefFoundError: org/springframework/ldap/core/support/LdapContextSource   

Я пытался поставить пружинную Ldap-ядро-1.3.2.RELEASE.jar до $ fisheyeDir/Lib и ничего не происходит - загрузчик не подхватить эту БАНКУ.

Кто-нибудь знает, что можно сделать в этой ситуации? Должен ли я использовать другую структуру LDAP или можно перетащить эту реализацию клиента ldap в путь к классам?

FishEye версия 3.6.1 (последняя), пружинные банки в classpath версии 3.0.5.RELEASE. Моя зависимость spring-security-ldap также 3.0.5.RELEASE.

Заранее спасибо.

ответ

0

Весенняя версия FishEye использует внутренне (3.0.5 в 3.6.1, 3.1.4 от 3.7), не подвергается воздействию плагинов.

Вместо этого они получают пружинное время от системы плагина Atlassian (https://bitbucket.org/atlassian/atlassian-plugins). FishEye использует плагины 3.0.x, поэтому версия Spring, доступная для плагинов, - 2.5.6.

Ни FishEye, ни система плагинов, ни какие-либо из подключаемых плагинов не включают в себя spring-ldap, поэтому вы не можете установить область зависимостей (поскольку это приводит к тому, что библиотека не будет включена в банку плагина, вместо этого ожидается, что она будет доступный через импорт OSGI).

Так что я считаю, что вам стоит попробовать установить версию spring-ldap, совместимую с Spring 2.5.6. Чтобы решить BeanDefinitionParsingException, вам может потребоваться исключить некоторые транзитивные зависимости, предоставляемые системой плагинов (используйте mvn dependency: tree, чтобы найти их).

Раскрытие: Я DEV работает на FishEye/Crucible

+0

miszobi, спасибо за Ваш ответ! Плагин уже завершен и постоянно работает на нашем экземпляре FishEye. Я использовал UnboundID SDK и удалил весь код Spring, и теперь все хорошо. – Maxxon

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

  • Нет связанных вопросов^_^