Какова цель создания проектов Apache Sling, Felix, Jackrabbit

Я задаю здесь очень простой вопрос.

Вопрос

Я использую Apache Sling, Apache Jackrabbit, Apache Felix в своем проекте, как сказал мой инструктор. Я пытаюсь понять, почему это программное обеспечение разработано Apache. Я много пробовал в интернете, но я не нашел ни блога, ни блога Wordpress, ни любого полезного видео на YouTube, которое объясняло бы все эти проекты. Можете ли вы объяснить мне об этих проектах.

Why these projects developed?

What they do ?

and more questions like this

Раньше я находил то же самое с Apache Hadoop, но для меня все, что я нашел в сети, достаточно для того, чтобы я почувствовал этот проект. На этот раз я боюсь Слинга, Феликса, Джебраббита.

Я буду очень благодарен вам. Ожидание вашего доброго ответа.

Ответ 1

Комбинация Apache Jackrabbit, Apache Sling и Apache Felix позволяет вам создавать веб-приложения.

Apache Jackrabbit является эталонной реализацией JCR API. JCR API предназначен для управления репозиториями контента; для управления, например, веб-контентом. Репозиторий контента представляет собой сочетание между файловой системой и базой данных.

JCR API специально разработан для работы с веб-контентом. Зачем использовать JCR API и почему бы не использовать API реляционной базы данных? URL-адреса являются иерархическими, как в файловой системе. Реляционные базы данных не поддерживают иерархический доступ. Почему бы не использовать API файловой системы? Поскольку JCR поддерживает транзакции, управление версиями и множество других функций, которые API-интерфейсы файловой системы не поддерживают.

Apache Sling - это веб-фреймворк на основе JCR API и использование возможностей, предоставляемых JCR API (15 минутное представление).

Apache Felix является контейнером OSGi. Это позволяет легко запускать, останавливать и заменять компоненты веб-приложения (файлы jar в некотором смысле), пока веб-сервер работает. Это означает, что он позволяет вам изменять приложение без перезагрузки сервера.

Ответ 2

Sling в очень простых терминах можно описать как REST API для JCR. вы можете использовать HTTP-запросы для управления контентом внутри репозитория.

Кроме того, Sling предоставляет механизм для рендеринга этого контента различными способами для использования в сети. вы можете использовать сценарии (например, JSP) и код Java (сервлеты, pojos и т.д.) в контейнере Felix для обработки запросов и доставки запроса.

Когда запрос делается для определенного node, Sling ищет свойство с именем sling:resourceType, это ключевой ключ для сценариев рендеринга. Затем соответствующий script выполняется с использованием ввода node.

Вы можете писать разные типы для рендеринга, а затем использовать его для отображения своего контента по-разному.

Например, вы можете написать два сценария full.json.jsp и short.json.jsp, а затем использовать их для рендеринга того же node двумя разными способами:

/content/app/node.full.json 

ИЛИ

/content/app/node.short.json.

Sling в основном сопоставляет токены в URL-адресе запроса, чтобы выбрать соответствующий script.

У них действительно хороший чит-лист, в котором объясняется, как работает разрешение и рендеринг запросов

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

Ответ 3

У меня были те же сомнения. Лучший ответ, который я смог найти, находится на официальной странице Sling (https://sling.apache.org/)


(Что есть) Apache Sling, сотня слов:

Apache Sling - это веб-фреймворк, который использует хранилище контента Java, например Apache Jackrabbit, для хранения и управления контентом.

Приложения Sling используют либо скрипты, либо сервлеты Java, выбранные на основе простых условных обозначений, для обработки HTTP-запросов способом RESTful.

Встроенная инфраструктура и консоль Apache Felix OSGi обеспечивают динамическую среду выполнения, где пакеты кода и контента могут быть загружены, выгружены и перенастроены во время выполнения.


Итак, возобновив его:

  • Sling - это веб-фреймворк → с использованием jackrabbit → , основанный/поддерживаемый в JCR API.
  • Вы можете видеть Apache Felix как контейнер с его менеджером.

Обратите внимание, что Sling начался как внутренний проект в Day Software. Это причина, почему некоторые пакеты/библиотеки называются com.day, но в конце они - два имени для того же самого.

Кроме того, если вы хотите четко сказать о Jackrabbit и JCR API, вы можете посетить официальную страницу Jackrabbit http://jackrabbit.apache.org/jcr/jackrabbit-architecture.html