2013-11-28 3 views
2

Я работаю в Spring для OSGi, а также Eclipse Gemini Blueprint.Spring framework скачать как пакеты OSGi

В каждом учебнике или документации, которые я нашел, упоминается добавление нескольких пакетов, предоставленных Spring в мой контейнер OSGi (например, org.springframework.aop.jar). Было довольно сложно найти загрузку для текущей версии Spring, так как кажется, что она больше не предоставляется на главной странице (только maven-ссылки и т. Д., И это не вариант для текущего проекта). Особенно в каждом руководстве упоминается, что эти библиотеки также предоставляются как пакеты OSGi.

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

Источник: http://www.eclipse.org/gemini/blueprint/documentation/reference/1.0.2.RELEASE/html/app-deploy.html

Но все загрузки, я смог найти (например http://maven.springframework.org/release/org/springframework/spring/3.2.5.RELEASE/) содержал только нормальные банки, ни OSGi расслоения. Является ли практика предоставления OSGi-пакетов прекращенной с Spring 3.x? Как добавить необходимые зависимости Spring к моему проекту? Устаревшие учебники/документация устарели?

Я использую последний выпуск Близнецов, который равен 1.0.2.

ответ

2

Вы можете использовать затмение репозиториев Maven

<repositories> 
<repository> 
    <id>gemini-blueprint</id> 
    <name>Gemini Blueprint</name> 
    <url>https://repo.eclipse.org/content/groups/gemini-blueprint/</url> 
</repository> 
</repositories> 

<dependencies> 
<dependency> 
    <groupId>org.eclipse.gemini.blueprint</groupId> 
    <artifactId>gemini-blueprint-extender</artifactId> 
    <version>2.0.0.BUILD-SNAPSHOT</version> 
</dependency> 
</dependencies> 

Транзитивных зависимости Blueprint Extender будет содержать все Весенние вещи вам нужно.

+0

Нет maven для этого проекта, я указал, что в вопросе. – sina

+1

Да, но вы можете использовать Maven для получения всех зависимостей, в которых вы нуждаетесь. Просто создайте дополнительный проект maven для загрузки всех зависимостей и позвольте maven скопировать все его в каталог по вашему выбору. Тогда у вас есть все необходимые библиотеки в правильной версии. Я столкнулся с теми же проблемами, когда начал с Gemini Blueprint, и это самый простой способ справиться с этим imo. – sebplorenz

+0

Правда, хорошая точка. Я это сделаю. – sina

1

Я немного скептически отношусь к Близнецу. Поскольку VMware взяла на себя SpringSource, они, похоже, почти прекратили свои усилия в OSGi. К счастью, существует альтернативная реализация от Apache Aries, которая поддерживается IBM и некоторыми другими компаниями.

Вы также должны посмотреть на Apache Karaf. Он поставляется с предварительно установленным планом и позволяет легко добавлять множество других фреймворков. Я сделал несколько руководств, которые показывают, как использовать план с несколькими технологиями, такими как CXF, Camel, JPA.

+0

Спасибо за подсказку на Gemini, я буду делать дальнейшие исследования в будущем его. Мои мысли состояли в том, что, поскольку это часть Фонда Eclipse Foundation, будущее этого должно быть довольно стабильным. Основная причина, по которой я смотрю Spring/Blueprint, - это инъекция зависимостей.Любая инфраструктура будет работать до тех пор, пока она сможет внедрять бобы на основе области веб-сессии (я создаю веб-приложение и нуждаюсь в нем для плавного управления многопользовательскими возможностями). Сфера охвата сеанса не является частью официальной спецификации Blueprint (Gemini предоставляет ее, хотя). Как это происходит с апатией? – sina

+1

Я до сих пор не использовал области. Насколько я знаю, область сеанса еще не реализована в проекте арий, но я могу ошибаться. Btw. Еще одна вещь, которую вы, возможно, захотите изучить, - это CDI на OSGi. В настоящее время я готовлю учебник для этого. Выглядит многообещающе. У меня уже есть рабочий пример: https://github.com/cschneider/Karaf-Tutorial/tree/master/tasklist-cdi –

+0

Выглядит многообещающе, но я думаю, что чистый проект с открытым исходным кодом, не поддерживаемый какой-либо компанией или фондом, не является вариант для этого проекта (конечно, не суждение о ваших усилиях). Мы должны придерживаться установленных рамок для этого. Еще я ценю ваши входы :) – sina

0

Если ваша проблема просто инъекции зависимостей в рамках OSGi, я хотел бы предложить также глядя на OSGi декларативных услуг, как осуществление Феликса, особенно в сочетании с Bndtools или, если вы используете PDE, DS annotations processor, которые делают его очень просто выполнить инъекцию зависимостей через аннотации. В целом, я нахожу эти решения намного более легкими и более простыми, чтобы работать, чем Spring/Gemini/Blueprint.

+0

Я рассмотрю это, но основное преимущество, на которое я надеялся, - это не инъекция зависимостей, а бобы с областью действия на основе веб-сессий (чтобы избежать необходимости обрабатывать многотонные все вручную). Эта область, конечно, работает с инъекцией зависимостей, но не каждая инфраструктура инъекций зависимостей обеспечивает функцию для добавления компонентов на основе области сеанса. – sina

+0

Право. Я думаю, что в этом случае функциональность, предоставляемая DS, может оказаться недостаточной. –

2

Если вам нужно OSGi'ified баночка я бы предложил использовать репозиторий расслоения SpringSource предприятия, которые могут быть найдены в: http://ebr.springsource.com/

SpringSource EBR предлагает не только OSGi с поддержкой пружинных банок, она также обеспечивает много сторонних osgi libaries с файлом osgi-Manifest.MF.

Например, он содержит OSGi Comaptible Jar вы упомянули в своем сообщении: http://ebr.springsource.com/repository/app/bundle/version/detail?name=org.springframework.aop&version=3.2.5.RELEASE&searchType=bundlesBySymbolicName&searchQuery=org.springframework.aop

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