Class AbstractMessageEndpoint
- java.lang.Object
-
- de.otto.synapse.endpoint.AbstractMessageEndpoint
-
- All Implemented Interfaces:
MessageEndpoint
- Direct Known Subclasses:
AbstractMessageReceiverEndpoint,AbstractMessageSenderEndpoint
public abstract class AbstractMessageEndpoint extends java.lang.Object implements MessageEndpoint
Endpoint that is used by an application to access the messaging infrastructure to send or receive messages.
The
MessageEndpointclass is intended to derivemessage sender,message receiverormessage-log receiverendpoints.Message Endpoint code is custom to both the application and the messaging system’s client API. The rest of the application knows little about message formats, messaging channels, or any of the other details of communicating with other applications via messaging. It just knows that it has a request or piece of data to send to another application, or is expecting those from another application.
It is the messaging endpoint code that takes that command or data, makes it into a message, and sends it on a particular messaging channel. It is the endpoint that receives a message, extracts the contents, and gives them to the application in a meaningful way.
- See Also:
- EIP: Message Endpoint
-
-
Constructor Summary
Constructors Constructor Description AbstractMessageEndpoint(java.lang.String channelName, MessageInterceptorRegistry interceptorRegistry)Constructor used to create a new AbstractMessageEndpoint.
-
Method Summary
Modifier and Type Method Description java.lang.StringgetChannelName()Returns the name of the channel.InterceptorChaingetInterceptorChain()Returns theInterceptorChainof theMessageEndpoint.TextMessageintercept(TextMessage message)Intercepts a message using all registered interceptors and returns the resulting message.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface de.otto.synapse.endpoint.MessageEndpoint
getEndpointType
-
-
-
-
Constructor Detail
-
AbstractMessageEndpoint
public AbstractMessageEndpoint(@Nonnull java.lang.String channelName, @Nonnull MessageInterceptorRegistry interceptorRegistry)Constructor used to create a new AbstractMessageEndpoint.- Parameters:
channelName- the name of the underlying channel / stream / queue / message log.interceptorRegistry- registry used to determinemessage interceptorsfor this endpoint.
-
-
Method Detail
-
getChannelName
@Nonnull public final java.lang.String getChannelName()
Returns the name of the channel.The channel name corresponds to the name of the underlying stream, queue or message log.
- Specified by:
getChannelNamein interfaceMessageEndpoint- Returns:
- name of the channel
-
getInterceptorChain
@Nonnull public final InterceptorChain getInterceptorChain()
Returns theInterceptorChainof theMessageEndpoint.- Specified by:
getInterceptorChainin interfaceMessageEndpoint- Returns:
- InterceptorChain
-
intercept
@Nullable public final TextMessage intercept(@Nonnull TextMessage message)
Intercepts a message using all registered interceptors and returns the resulting message.The interceptors are called in order. The result of one interceptor is propagated to the next interceptor in the chain, until the end of the chain is reached, or one interceptor has returned null.
If
nullis returned, the message must be dropped by theAbstractMessageEndpoint.Every interceptor may transform the message, or may take additional actions like, for example, logging, monitoring or other things.
- Specified by:
interceptin interfaceMessageEndpoint- Parameters:
message- the message to intercept- Returns:
- the (possibly modified) message, or null if the message should be dropped.
-
-