OAI-PMH

Поддерживаются как производитель, так и потребитель

Компонент OAI-PMH используется для сбора данных поставщиков OAI-PMH. Он позволяет выполнять запросы к конечным точкам OAI-PMH, используя все команды, поддерживаемые протоколом.

Пользователям Maven необходимо добавить следующую зависимость для pom.xmlэтого компонента:

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-oaipmh</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>

URI format

oaipmh:url[?options]

Configuring Options

Компоненты Camel настраиваются на двух отдельных уровнях:

  • уровень компонентов

  • уровень конечной точки

Configuring Component Options

На уровне компонентов задаются общие и общие конфигурации, которые затем наследуются конечными точками. Это самый высокий уровень конфигурации.

Например, компонент может иметь настройки безопасности, учетные данные для аутентификации, URL-адреса для сетевого подключения и т. д.

У некоторых компонентов всего несколько параметров, а у других -- много. Поскольку компоненты обычно имеют предустановленные значения по умолчанию, которые широко используются, зачастую вам может потребоваться настроить лишь несколько параметров компонента, а то и вовсе ни одного.

Вы можете настроить компоненты, используя:

  • Компонент DSL (opens in a new tab) .

  • в файле конфигурации ( application.propertiesфайлы *.yaml, и т.д.).

  • непосредственно в коде Java.

Configuring Endpoint Options

Настройка конечных точек обычно занимает больше времени, поскольку у них есть множество параметров. Эти параметры помогают вам настроить функции конечной точки. Параметры также классифицируются по тому, используется ли конечная точка как потребитель ( от ), как производитель ( от ) или и то, и другое.

Конечные точки чаще всего настраиваются непосредственно в URI конечной точки в виде параметров пути и запроса . Вы также можете использовать Endpoint DSL (opens in a new tab) и DataFormat DSL (opens in a new tab) в качестве типобезопасного способа настройки конечных точек и форматов данных в Java.

Хорошей практикой при настройке параметров является использование заполнителей свойств (opens in a new tab) .

Заполнители свойств обеспечивают несколько преимуществ:

  • Они помогают предотвратить использование жестко запрограммированных URL-адресов, номеров портов, конфиденциальной информации и других настроек.

  • Они позволяют вынести конфигурацию за пределы кода.

  • Они помогают коду стать более гибким и пригодным для повторного использования.

В следующих двух разделах перечислены все параметры, сначала для компонента, а затем для конечной точки.

Component Options

Компонент OAI-PMH поддерживает 5 опций, которые перечислены ниже.

bridgeErrorHandler (consumer)

  • Позволяет подключить потребителя к обработчику ошибок маршрутизации Camel. Это означает, что любые исключения (если это возможно), возникающие при попытке потребителя Camel получить входящие сообщения или что-то подобное, теперь будут обрабатываться как сообщение и обрабатываться обработчиком ошибок маршрутизации. Важно: это возможно только в том случае, если сторонний компонент позволяет Camel получать оповещения о возникновении исключения. Некоторые компоненты обрабатывают это только внутренне, поэтому использование bridgeErrorHandler невозможно. В других ситуациях мы можем улучшить компонент Camel для подключения к сторонним компонентам и сделать это возможным в будущих выпусках. По умолчанию потребитель будет использовать org.apache.camel.spi.ExceptionHandler для обработки исключений, которые будут зарегистрированы на уровне WARN или ERROR и проигнорированы.

  • По умолчанию: false

  • Тип: boolean

lazyStartProducer (producer)

  • Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.

  • По умолчанию: false

  • Тип: boolean

autowiredEnabled (advanced)

  • Включено ли автоматическое связывание. Это используется для параметров автоматического связывания (параметр должен быть помечен как autowired) путём поиска в реестре экземпляра соответствующего типа, который затем настраивается в компоненте. Это может использоваться для автоматической настройки источников данных JDBC, фабрик JMS-подключений, клиентов AWS и т. д.

  • По умолчанию: true

  • Тип: boolean

healthCheckConsumerEnabled (health)

  • Используется для включения или отключения всех проверок работоспособности потребителя из этого компонента.

  • По умолчанию: true

  • Тип: boolean

healthCheckProducerEnabled (health)

  • Используется для включения или отключения всех проверок работоспособности, основанных на производителях, в этом компоненте. Примечание: Camel по умолчанию отключил все проверки работоспособности, основанные на производителях. Вы можете включить проверки, основанные на производителях, глобально, установив параметр camel.health.producersEnabled=true.

  • По умолчанию: true

  • Тип: boolean

Endpoint Options

Конечная точка OAI-PMH настраивается с использованием синтаксиса URI:

oaipmh:baseUrl

Со следующими параметрами пути и запроса :

Path Parameters (1 parameters)

baseUrl (common)

  • Обязательный базовый URL репозитория, к которому делается запрос по протоколу OAI-PMH.

  • По умолчанию:

  • Тип: String

Query Parameters (29 parameters)

from (common)

  • Указывает нижнюю границу для выборочного сбора данных на основе метки даты. Значение даты и времени в формате UTC.

  • По умолчанию:

  • Тип: String

identifier (common)

  • Тип: Идентификатор запрашиваемых ресурсов. Применимо только с определёнными глаголами.

  • По умолчанию:

  • Тип: String

metadataPrefix (common)

  • Указывает metadataPrefix формата, который должен быть включен в часть метаданных возвращаемых записей.

  • По умолчанию: oai_dc

  • Тип: String

set (common)

  • Определяет членство как критерий для выборочного сбора урожая на основе набора.

  • По умолчанию:

  • Тип: String

until (common)

  • Указывает верхнюю границу для выборочного сбора данных на основе метки даты. Значение даты и времени в формате UTC.

  • По умолчанию:

  • Тип: String

verb (common)

  • Тип: Имя запроса поддерживается протоколом OAI-PMh.

  • По умолчанию: ListRecords

  • Тип: String

sendEmptyMessageWhenIdle (consumer)

  • Если опрашивающий потребитель не опросил ни одного файла, вы можете включить эту опцию, чтобы вместо этого отправить пустое сообщение (без тела).

  • По умолчанию: false

  • Тип: boolean

bridgeErrorHandler (consumer (advanced))

  • Позволяет подключить потребителя к обработчику ошибок маршрутизации Camel. Это означает, что любые исключения (если это возможно), возникающие при попытке потребителя Camel получить входящие сообщения или что-то подобное, теперь будут обрабатываться как сообщение и обрабатываться обработчиком ошибок маршрутизации. Важно: это возможно только в том случае, если сторонний компонент позволяет Camel получать оповещения о возникновении исключения. Некоторые компоненты обрабатывают это только внутренне, поэтому использование bridgeErrorHandler невозможно. В других ситуациях мы можем улучшить компонент Camel для подключения к сторонним компонентам и сделать это возможным в будущих выпусках. По умолчанию потребитель будет использовать org.apache.camel.spi.ExceptionHandler для обработки исключений, которые будут зарегистрированы на уровне WARN или ERROR и проигнорированы.

  • По умолчанию: false

  • Тип: boolean

exceptionHandler (consumer (advanced))

  • Чтобы разрешить потребителю использовать собственный обработчик исключений (ExceptionHandler). Обратите внимание, что если опция bridgeErrorHandler включена, то эта опция не используется. По умолчанию потребитель обрабатывает исключения, которые регистрируются на уровне WARN или ERROR и игнорируются.

  • По умолчанию:

  • Тип: ExceptionHandler

exchangePattern (consumer (advanced))

  • Устанавливает шаблон обмена, когда потребитель создает обмен.

    Значения перечисления:

    • InOnly

    • InOut

  • По умолчанию:

  • Тип: ExchangePattern

pollStrategy (consumer (advanced))

  • Тип: Подключаемый org.apache.camel.PollingConsumerPollingStrategy, позволяющий вам предоставить собственную реализацию для управления обработкой ошибок, которые обычно возникают во время операции опроса до создания Exchange и маршрутизации в Camel.

  • По умолчанию:

  • Тип: PollingConsumerPollStrategy

onlyFirst (producer)

  • Возвращает ответ на один запрос. В противном случае запросы будут повторяться до тех пор, пока не останется данных для возврата.

  • По умолчанию: false

  • Тип: boolean

lazyStartProducer (producer (advanced))

  • Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.

  • По умолчанию: false

  • Тип: boolean

backoffErrorThreshold (scheduler)

  • Число последующих ошибочных опросов (неудачных из-за какой-то ошибки), которые должны произойти до того, как сработает backoffMultipler

  • По умолчанию:

  • Тип: int

backoffIdleThreshold (scheduler)

  • Число последующих опросов бездействия, которые должны произойти до того, как должен сработать backoffMultipler.

  • По умолчанию:

  • Тип: int

backoffMultiplier (scheduler)

  • Тип: Чтобы разрешить запланированному потребителю опроса отложить опрос, если было несколько последовательных простоев/ошибок подряд. Множитель в этом случае определяет количество опросов, которые будут пропущены до следующей попытки. При использовании этого параметра необходимо также настроить значения backoffIdleThreshold и/или backoffErrorThreshold.

  • По умолчанию:

  • Тип: int

delay (scheduler)

  • Миллисекунды до следующего опроса.

  • По умолчанию: 500

  • Тип: long

greedy (scheduler)

  • Если жадный режим включен, то ScheduledPollConsumer запустится немедленно снова, если в предыдущем запуске было опрошено 1 или более сообщений.

  • По умолчанию: false

  • Тип: boolean

initialDelay (scheduler)

  • Миллисекунды до начала первого опроса

  • По умолчанию: 1000

  • Тип: long

repeatCount (scheduler)

  • Задаёт максимальное количество срабатываний. Если установить значение 1, планировщик сработает только один раз. Если установить значение 5, планировщик сработает только пять раз. Нулевое или отрицательное значение означает, что планировщик будет срабатывать постоянно.

  • По умолчанию: 0

  • Тип: long

runLoggingLevel (scheduler)

  • Потребитель регистрирует строку журнала начала/завершения опроса. Эта опция позволяет настроить уровень ведения журнала.

    Значения перечисления

    • TRACE

    • DEBUG

    • INFO

    • WARN

    • ERROR

    • OFF

  • По умолчанию: TRACE

  • Тип: LoggingLevel

scheduledExecutorService (scheduler)

  • Позволяет настроить пользовательский/общий пул потоков для использования потребителем. По умолчанию каждый потребитель имеет собственный однопоточный пул потоков.

  • По умолчанию:

  • Тип: ScheduledExecutorService

scheduler (scheduler)

  • Чтобы использовать планировщик cron из компонента Camel-Spring или Camel-Quartz, используйте значение Spring или Quartz для встроенного планировщика.

  • По умолчанию: none

  • Тип: Object

schedulerProperties (scheduler)

  • Для настройки дополнительных свойств при использовании пользовательского планировщика или любого планировщика на базе Quartz или Spring. Это многозначный параметр с префиксом: scheduler.

  • По умолчанию:

  • Тип: Map

startScheduler (scheduler)

  • Должен ли планировщик запускаться автоматически.

  • По умолчанию: true

  • Тип: boolean

timeUnit (scheduler)

  • Единица времени для initialDelay и параметров задержки.

    Значения перечисления:

    • NANOSECONDS

    • MICROSECONDS

    • MILLISECONDS

    • SECONDS

    • MINUTES

    • HOURS

    • DAYS

  • По умолчанию: MILLISECONDS

  • Тип: TimeUnit

useFixedDelay (scheduler)

  • Управляет использованием фиксированной задержки или фиксированной частоты. Подробнее см. ScheduledExecutorService в JDK.

  • По умолчанию: true

  • Тип: boolean

ignoreSSLWarnings (security)

  • Игнорируйте предупреждения SSL-сертификата.

  • По умолчанию: false

  • Тип: boolean

ssl (security)

  • Заставляет указанный URL-адрес выполнять https-запрос.

  • По умолчанию: false

  • Тип: boolean

Message Headers

Компонент OAI-PMH поддерживает 1 заголовок сообщения, которые перечислены ниже:

CamelOaimphResumptionToken (producer)

Constant: RESUMPTION_TOKEN (opens in a new tab)

  • Этот заголовок получается, если включена опция onlyFirst. Возвращает токен возобновления запроса, когда данные всё ещё доступны.

  • По умолчанию:

  • Тип: String

Usage

Компонент OAI-PMH поддерживает как конечные точки потребителя, так и конечные точки производителя.

Producer Example

Ниже приведен простой пример отправки запроса на сервер OAI-PMH

in Java DSL

from("direct:start").to("oaipmh:baseUrlRepository/oai/request");

Результатом является набор страниц в формате XML со всеми записями просмотренного репозитория.

Consumer Example

Ниже представлен простой пример получения всех сообщений с сервера OAI-PMH. В Java DSL

from("oaipmh:baseUrlRepository/oai/request")
.to(mock:result)

More Information

Более подробную информацию см. в документации OAI-PMH (opens in a new tab) .

Spring Boot Auto-Configuration

При использовании oaipmh с Spring Boot обязательно используйте следующую зависимость Maven для поддержки автоматической настройки:

<dependency>

<groupId>org.apache.camel.springboot</groupId>

  <artifactId>camel-oaipmh-starter</artifactId>
  <version>x.x.x</version>
  <!-- use the same version as your Camel core version -->
</dependency>

Компонент поддерживает 6 опций, которые перечислены ниже.

camel.component.oaipmh.autowired-enabled

  • Включено ли автоматическое связывание. Это используется для параметров автоматического связывания (параметр должен быть помечен как autowired) путём поиска в реестре экземпляра соответствующего типа, который затем настраивается в компоненте. Это может использоваться для автоматической настройки источников данных JDBC, фабрик JMS-подключений, клиентов AWS и т. д.

  • По умолчанию: true

  • Тип: Boolean

camel.component.oaipmh.bridge-error-handler

  • Позволяет подключить потребителя к обработчику ошибок маршрутизации Camel. Это означает, что любые исключения (если это возможно), возникающие при попытке потребителя Camel получить входящие сообщения или что-то подобное, теперь будут обрабатываться как сообщение и обрабатываться обработчиком ошибок маршрутизации. Важно: это возможно только в том случае, если сторонний компонент позволяет Camel получать оповещения о возникновении исключения. Некоторые компоненты обрабатывают это только внутренне, поэтому использование bridgeErrorHandler невозможно. В других ситуациях мы можем улучшить компонент Camel для подключения к сторонним компонентам и сделать это возможным в будущих выпусках. По умолчанию потребитель будет использовать org.apache.camel.spi.ExceptionHandler для обработки исключений, которые будут зарегистрированы на уровне WARN или ERROR и проигнорированы.

  • По умолчанию: false

  • Тип: Boolean

camel.component.oaipmh.enabled

  • Включить ли автоматическую настройку компонента oaipmh. По умолчанию эта опция включена.

  • По умолчанию:

  • Тип: Boolean

camel.component.oaipmh.health-check-consumer-enabled

  • Используется для включения или отключения всех проверок работоспособности потребителя из этого компонента.

  • По умолчанию: true

  • Тип: Boolean

camel.component.oaipmh.health-check-producer-enabled

  • Используется для включения или отключения всех проверок работоспособности, основанных на производителях, в этом компоненте. Примечание: Camel по умолчанию отключил все проверки работоспособности, основанные на производителях. Вы можете включить проверки, основанные на производителях, глобально, установив параметр camel.health.producersEnabled=true.

  • По умолчанию: true

  • Тип: Boolean

camel.component.oaipmh.lazy-start-producer

  • Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.

  • По умолчанию: false

  • Тип: Boolean