Skip to content

Better documentation for writing custom channel adapters for JavaDSL #3725

Open
@migroskub

Description

@migroskub

Expected Behavior
I think there should be an how to write channel adapter guide with examples for:

  • Reactive event-driven inbound channel adapters
  • Reactive source polling inbound channel adapters
  • Reactive outbound channel adapters
  • Event-driven inbound channel adapters
  • Source polling inbound channel adapters
  • Outbound channel adapters

There should be super simple examples for writing each with the JavaDSL, and more important - explanations about the interfaces that are required for each usage (and which ones are supported with nio Reactive Programming). Such as:

  • MessageProducerSupport
  • AbstractMessageSource
  • AbstractReactiveMessageHandler
  • AbstractMessageHandler
  • AbstractReplyProducingMessageHandler
    and more (I don't know of more relevant interfaces, this is one of the reasons I'm raising this issue).
    There should be examples for the differences between them and use cases for each.

Current Behavior

It's pretty hard to understand what are the correct interfaces that we should use in each case of writing channel adapters with the Java DSL. I think there should be a better guide for writing custom channel adapters (since there are not so many channel adapters, writing custom ones is a pretty common task, if not the most common task when using Spring Integration).

Context
The reference doesn't mention any of the JavaDSL channel adapter interfaces, so that's super hard to understand the purpose of each interface and what fits my needs. The only solution what diving into the source code, which has inconsistency between channel adapters (some channel adapters name is XInboundChannelAdapter, and some channel adapters name is XMessageProducer. I know that there may be some reasons and conventions to it, but this whole part is just not documented).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions