Package org.flowable.eventregistry.api.model

# Interface InboundChannelModelBuilder

public interface InboundChannelModelBuilder
A builder to create a `InboundChannelModel` instance, which represents a channel from the 'outside world' to receive events. An inbound channel consists of the following parts: - An adapter that defines how/where the events are received, each with specific configurations. - An event processing pipeline, which transforms the incoming event and extracts data and metadata: - deserialization (from the 'raw' event to something else) - event key detection: detects the 'key' which will define the `EventModel` to be used. - tenant detection (only relevant when using multi-tenant): detects a 'tenantId' which is used to determine the correct `EventDefinition`. - payload extraction: with the `EventModel` determined, the definition is used to extract the payload from the event data. - transformation: transforms the event to an internal representation, ready to be passed to the `EventRegistry`. - (Optionally) custom steps (or override any of the above)

Author:
  Joram Barrez, Filip Hrisafov

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Interface
  Description
  `static interface`
  `InboundChannelModelBuilder.InboundEventFilterBuilder`
  Builder for the filtering out inbound events.
  `static interface`
  `InboundChannelModelBuilder.InboundEventFilterJsonBuilder`
  Builder for the filtering out inbound JSON events.
  `static interface`
  `InboundChannelModelBuilder.InboundEventFilterXmlBuilder`
  Builder for the filtering out inbound XML events.
  `static interface`
  `InboundChannelModelBuilder.InboundEventKeyDetectorBuilder`
  Builder for the 'key detection' part of the `InboundChannelModel`.
  `static interface`
  `InboundChannelModelBuilder.InboundEventKeyJsonDetectorBuilder`
  Builder for the 'key detection' part of the `InboundChannelModel`, specifically for JSON events.
  `static interface`
  `InboundChannelModelBuilder.InboundEventKeyXmlDetectorBuilder`
  Builder for the 'key detection' part of the `InboundChannelModel`, specifically for XML events.
  `static interface`
  `InboundChannelModelBuilder.InboundEventPayloadExtractorBuilder`
  Builder for the 'payload extraction' part of the `InboundChannelModel`.
  `static interface`
  `InboundChannelModelBuilder.InboundEventPayloadJsonExtractorBuilder`
  Builder for the 'payload extraction' part of the `InboundChannelModel`.
  `static interface`
  `InboundChannelModelBuilder.InboundEventPayloadXmlExtractorBuilder`
  Builder for the 'payload extraction' part of the `InboundChannelModel`.
  `static interface`
  `InboundChannelModelBuilder.InboundEventProcessingPipelineBuilder`
  Builder for the 'processing pipeline' part of the `InboundChannelModel`.
  `static interface`
  `InboundChannelModelBuilder.InboundEventTenantDetectorBuilder`
  Builder for the 'tenant ID detection' part of the `InboundChannelModel`.
  `static interface`
  `InboundChannelModelBuilder.InboundEventTenantJsonDetectorBuilder`
  Builder for the 'tenant ID detection' part of the `InboundChannelModel`, specifically for JSON events
  `static interface`
  `InboundChannelModelBuilder.InboundEventTenantXmlDetectorBuilder`
  Builder for the 'tenant ID detection' part of the `InboundChannelModel`, specifically for XML events
  `static interface`
  `InboundChannelModelBuilder.InboundEventTransformerBuilder`
  `static interface`
  `InboundChannelModelBuilder.InboundJmsChannelBuilder`
  Builder to create an `InboundEventChannelAdapter` using JMS.
  `static interface`
  `InboundChannelModelBuilder.InboundKafkaChannelBuilder`
  Builder to create an `InboundEventChannelAdapter` using Kafka.
  `static interface`
  `InboundChannelModelBuilder.InboundRabbitChannelBuilder`
  Builder to create an `InboundEventChannelAdapter` using RabbitMQ.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `InboundChannelModelBuilder`
  `category(String category)`
  Set the category for the channel deployment.
  `InboundChannelModelBuilder.InboundEventProcessingPipelineBuilder`
  `channelAdapter(String delegateExpression)`
  Sets a custom `InboundEventChannelAdapter` via a delegate expression.
  `EventDeployment`
  `deploy()`
  Creates the `InboundChannelModel` instance based on the configuration and registers it with the `EventRepositoryService`.
  `InboundChannelModelBuilder`
  `deploymentName(String deploymentName)`
  Set the name for the channel deployment.
  `InboundChannelModelBuilder`
  `deploymentTenantId(String deploymentTenantId)`
  Set the tenant id for the channel deployment.
  `InboundChannelModelBuilder.InboundJmsChannelBuilder`
  `jmsChannelAdapter(String destinationName)`
  Configures an adapter which will receive events using JMS.
  `InboundChannelModelBuilder.InboundKafkaChannelBuilder`
  `kafkaChannelAdapter(String topic)`
  Configures an adapter which receives events using Kafka.
  `InboundChannelModelBuilder`
  `key(String key)`
  Each channel needs to have a unique key to identity it.
  `InboundChannelModelBuilder`
  `parentDeploymentId(String parentDeploymentId)`
  Set the parent deployment id for the channel deployment.
  `InboundChannelModelBuilder.InboundRabbitChannelBuilder`
  `rabbitChannelAdapter(String queue)`
  Configures an adapter which will receive events using a RabbitMQ.
  `InboundChannelModelBuilder`
  `resourceName(String resourceName)`
  Set the resource name for the channel model.

- ## Method Details

  - ### key

    InboundChannelModelBuilder key(String key)
    Each channel needs to have a unique key to identity it.

  - ### deploymentName

    InboundChannelModelBuilder deploymentName(String deploymentName)
    Set the name for the channel deployment.

  - ### resourceName

    InboundChannelModelBuilder resourceName(String resourceName)
    Set the resource name for the channel model.

  - ### category

    InboundChannelModelBuilder category(String category)
    Set the category for the channel deployment.

  - ### deploymentTenantId

    InboundChannelModelBuilder deploymentTenantId(String deploymentTenantId)
    Set the tenant id for the channel deployment.

  - ### parentDeploymentId

    InboundChannelModelBuilder parentDeploymentId(String parentDeploymentId)
    Set the parent deployment id for the channel deployment.

  - ### channelAdapter

    InboundChannelModelBuilder.InboundEventProcessingPipelineBuilder channelAdapter(String delegateExpression)
    Sets a custom `InboundEventChannelAdapter` via a delegate expression.

  - ### jmsChannelAdapter

    InboundChannelModelBuilder.InboundJmsChannelBuilder jmsChannelAdapter(String destinationName)
    Configures an adapter which will receive events using JMS.

  - ### rabbitChannelAdapter

    InboundChannelModelBuilder.InboundRabbitChannelBuilder rabbitChannelAdapter(String queue)
    Configures an adapter which will receive events using a RabbitMQ.

  - ### kafkaChannelAdapter

    InboundChannelModelBuilder.InboundKafkaChannelBuilder kafkaChannelAdapter(String topic)
    Configures an adapter which receives events using Kafka.

  - ### deploy

    EventDeployment deploy()
    Creates the `InboundChannelModel` instance based on the configuration and registers it with the `EventRepositoryService`.