Google Calendar Stream
Поддерживается только потребитель
Компонент Google Calendar Stream предоставляет доступ к Google Calendar через Google Calendar Web APIs. Этот компонент обеспечивает потоковую передачу событий календаря.
Google Calendar использует протокол OAuth 2.0 для аутентификации учётной записи Google и авторизации доступа к пользовательским данным. Прежде чем использовать этот компонент, вам нужно будет создать учётную запись и сгенерировать OAuth-учётные данные. Учётные данные состоят из clientId, clientSecret и refreshToken. Удобным ресурсом для генерации долгоживущего refreshToken является OAuth playground.
В случае учётной записи сервиса (service account) учётные данные представляют собой JSON-файл (serviceAccountKey). Вы также можете использовать делегирование доменного уровня (delegate) и один, несколько или все возможные области авторизации API Calendar (Calendar API Auth Scopes).
Пользователям Maven необходимо добавить следующую зависимость для pom.xmlэтого компонента:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-google-calendar</artifactId>
<!-- use the same version as your Camel core version -->
<version>x.x.x</version>
</dependency>URI Format
Компонент календаря Google использует следующий формат URI:
<span style="color: rgb(0,0,0);">google-calendar-stream://index?[options]
</span>
Configuring Options
Компоненты настраиваются на двух отдельных уровнях:
-
component level
-
edpoint level
Configuring Component Options
На уровне компонента задаются основные и общие настройки, которые впоследствии наследуются endpoints. Это самый высокий уровень конфигурации.
Например, компонент может иметь настройки безопасности, учетные данные для аутентификации, URL-адреса для сетевых подключений и т. д.
Некоторые компоненты имеют всего несколько параметров, в то время как у других их может быть много. Поскольку компоненты обычно имеют предварительно настроенные значения по умолчанию, которые используются в большинстве случаев, вам может понадобиться настроить только несколько параметров компонента или вообще ничего не настраивать.
Компоненты можно настроить с использованием:
-
Component DSL.
-
Конфигурационного файла (application.properties, *.yaml files, etc).
-
Напрямую в Java code.
Configuring Endpoint Options
Обычно больше времени уходит на настройку endpoints, так как они обладают множеством параметров. Эти параметры позволяют настроить поведение endpoint в соответствии с вашими потребностями. Кроме того, параметры делятся на категории в зависимости от того, используется ли endpoint как потребитель (from), как производитель (to) или в обеих ролях.
Настройка endpoints чаще всего выполняется непосредственно в URI endpoint в виде параметров пути и запроса. Также вы можете использовать Endpoint DSL и DataFormat DSL как типобезопасный способ настройки endpoints и форматов данных в Java.
Хорошей практикой при настройке параметров является использование Property Placeholders.
Property placeholders предоставляют несколько преимуществ:
-
Помогают избежать использования жестко закодированных URL-адресов, номеров портов, конфиденциальной информации и других настроек.
-
Позволяют вынести конфигурацию за пределы кода.
-
Делают код более гибким и удобным для повторного использования.
Component properties
Application Name
-
Название приложения Google Календаря. Например: camel-google-calendar/1.0.
-
По умолчанию:
-
Тип: String
Calendar Id
-
Идентификатор календаря, который будет использоваться.
-
По умолчанию: primary
-
Тип: String
Client Id
-
Идентификатор клиента приложения Google Calendar.
-
По умолчанию:
-
Тип: String
Consider Last Update
-
Учитывает lastUpdate последнего опрошенного события как дату начала для следующего опроса.
-
По умолчанию: false
-
Тип: boolean
Consume From Now
-
Начнет потребление событий из выбранного календаря с текущего момента.
-
По умолчанию: true
-
Тип: boolean
Delegate
-
Delegate для учетной записи сервисов с расширенными правами в домене.
-
По умолчанию:
-
Тип: String
Index
-
Требуется указать индекс для endpoint.
-
По умолчанию:
-
Тип: String
Max Results
-
Тип: Максимальное количество результатов, которые нужно вернуть.
-
По умолчанию: 10
-
Тип: int
Query
-
Запрос, который нужно выполнить в календаре.
-
По умолчанию:
-
Тип: String
Scopes
-
Определяет уровень разрешений, которые вы хотите предоставить приложению Календаря для учетной записи пользователя.
-
По умолчанию:
-
Тип: List
Send Empty Message When Idle
-
Тип: Если потребитель в режиме опроса не обнаружил файлов, вы можете включить эту опцию, чтобы отправить пустое сообщение (без тела) вместо этого.
-
По умолчанию: false
-
Тип: boolean
Sync Flow
-
- false
-
По умолчанию: boolean
Component scheduler properties
Backoff Error Threshold
-
Количество последовательных неудачных опросов (из-за ошибки), после которых должен начать действовать коэффициент понижения частоты опросов (backoffMultiplier).
-
По умолчанию:
-
Тип: int
Backoff Idle Threshold
-
Тип: Количество пустых опросов подряд, после которых должен начать действовать коэффициент понижения частоты опросов (backoffMultiplier).
-
По умолчанию:
-
Тип: int
Backoff Multiplier
-
Позволяет планируемому потребителю в режиме опроса снижать частоту опросов, если произошло несколько последовательных пустых опросов или ошибок. Множитель определяет количество опросов, которые будут пропущены перед следующей попыткой. При использовании этой опции также необходимо настроить параметры backoffIdleThreshold и/или backoffErrorThreshold.
-
По умолчанию:
-
Тип: int
Delay
-
Тип: Количество миллисекунд до следующего опроса.
-
По умолчанию: 500
-
Тип: long
Greedy
-
Если включен режим greedy, то ScheduledPollConsumer снова выполнится немедленно, если предыдущий опрос вернул 1 или больше сообщений.
-
По умолчанию: false
-
Тип: boolean
Initial Delay
-
Количество миллисекунд до начала первого опроса.
-
По умолчанию: 1000
-
Тип: long
Repeat Count
-
Устанавливает максимальный лимит количества срабатываний. Если вы установите значение 1, планировщик сработает только один раз. Если установить значение 5, он сработает пять раз. Значение ноль или отрицательное означает, что срабатывание будет происходить бесконечно.
-
По умолчанию: 0
-
Тип: long
Run Logging Level
-
Потребитель записывает в логи строку начала/завершения при опросе. Эта опция позволяет настроить уровень логирования для этого.
Возможные значения:
-
TRACE
-
DEBUG
-
INFO
-
WARN
-
ERROR
-
OFF
-
-
По умолчанию: TRACE
-
Тип: LoggingLevel
Scheduled Executor Service
-
Позволяет настроить пользовательский/общий пул потоков для использования потребителем. По умолчанию у каждого потребителя есть собственный пул потоков с одним потоком.
-
По умолчанию:
-
Тип: ScheduledExecutorService
Scheduler
-
Для использования планировщика cron из компонента camel-spring или camel-quartz. Используйте значение spring или quartz для встроенного планировщика.
-
По умолчанию: none
-
Тип: Object
Scheduler Properties
-
Используется для настройки дополнительных свойств при использовании пользовательского планировщика или любого из планировщиков на основе Quartz или Spring.
-
По умолчанию:
-
Тип: Map
Start Scheduler
-
Указывает, должен ли планировщик запускаться автоматически.
-
По умолчанию: true
-
Тип: boolean
Time Unit
-
Единица измерения времени для опций initialDelay и delay.
Возможные значения:
-
NANOSECONDS
-
MICROSECONDS
-
MILLISECONDS
-
SECONDS
-
MINUTES
-
HOURS
-
DAYS
-
-
По умолчанию: MILLISECONDS
-
Тип: TimeUnit
Use Fixed Delay
-
Управляет тем, будет ли использоваться фиксированная задержка или фиксированная частота.
-
По умолчанию: true
-
Тип: boolean
Component security properties
Access Token
-
OAuth 2 токен доступа. Обычно он истекает через час, поэтому для длительного использования рекомендуется использовать refreshToken.
-
По умолчанию:
-
Тип: String
Client Secret
-
Секретный ключ клиента приложения Календаря.
-
По умолчанию:
-
Тип: String
Email Address
-
Тип: Адрес электронной почты учетной записи службы Google.
-
По умолчанию:
-
Тип: String
P12 File Name
-
Название файла p12, содержащего приватный ключ, который используется с учетной записью службы Google.
-
По умолчанию:
-
Тип: String
Refresh Token
-
Тип: OAuth 2 refresh token. С его помощью компонент Google Calendar может получать новый accessToken каждый раз, когда текущий истекает -- это необходимо для долгосрочного использования приложения.
-
По умолчанию:
-
Тип: String
Service Account Key
-
Ключ учетной записи службы в формате JSON для аутентификации приложения как учетной записи службы. Принимает base64, добавляя префикс base64:.
-
По умолчанию:
-
Тип: String
User
-
Тип: Адрес электронной почты пользователя, от имени которого приложение пытается работать в потоке учётной записи сервиса (service account flow).
-
По умолчанию:
-
Тип: String
Component advanced properties
Bridge Error Handler
-
Предоставляет возможность связать потребителя с маршрутизатором Error Handler Camel. Это позволяет обрабатывать исключения (если возможно), возникающие при получении входящих сообщений потребителем Camel, в виде сообщений, передаваемых в маршрутизатор Error Handler.
Важно: Это возможно только в том случае, если сторонний компонент позволяет Camel получать уведомления о возникших исключениях. Некоторые компоненты обрабатывают исключения только внутренне, из-за чего использование bridgeErrorHandler становится невозможным. В некоторых случаях мы можем доработать компонент Camel, чтобы интегрировать его со сторонним компонентом и сделать такую возможность доступной в будущих выпусках. По умолчанию потребитель использует org.apache.camel.spi.ExceptionHandler для обработки исключений, которые логируются с уровнем WARN или ERROR и игнорируются.
-
По умолчанию: false
-
Тип: boolean
Exception Handler
-
Позволяет потребителю использовать собственный ExceptionHandler.
Обратите внимание, что если включена опция bridgeErrorHandler, то эта настройка не используется. По умолчанию потребитель обрабатывает исключения, которые логируются с уровнем WARN или ERROR и игнорируются.
-
По умолчанию:
-
Тип: ExceptionHandler
Exchange Pattern
-
Определяет шаблон взаимодействия, который применяется, когда потребитель создает новый обмен (exchange).
Возможные значения:
-
InOnly
-
InOut
-
-
По умолчанию:
-
Тип: ExchangePattern
Poll Strategy
-
Тип: Плагинируемая стратегия org.apache.camel.PollingConsumerPollingStrategy, позволяющая предоставить вашу собственную реализацию для управления обработкой ошибок, которые обычно возникают во время операции опроса до того, как Exchange был создан и маршрутизирован в Camel.
-
По умолчанию:
-
Тип: PollingConsumerPollStrategy