K
- the key type.V
- the value type.public abstract class AbstractKafkaListenerEndpoint<K,V> extends java.lang.Object implements KafkaListenerEndpoint, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.InitializingBean
MethodKafkaListenerEndpoint
Constructor and Description |
---|
AbstractKafkaListenerEndpoint() |
Modifier and Type | Method and Description |
---|---|
void |
afterPropertiesSet() |
protected abstract MessagingMessageListenerAdapter<K,V> |
createMessageListener(MessageListenerContainer container,
MessageConverter messageConverter)
Create a
MessageListener that is able to serve this endpoint for the
specified container. |
java.lang.Boolean |
getAutoStartup()
Return the autoStartup for this endpoint's container.
|
protected org.springframework.beans.factory.config.BeanExpressionContext |
getBeanExpressionContext() |
protected org.springframework.beans.factory.BeanFactory |
getBeanFactory() |
protected org.springframework.expression.BeanResolver |
getBeanResolver() |
java.lang.String |
getClientIdPrefix()
Return the client id prefix for the container; it will be suffixed by
'-n' to provide a unique id when concurrency is used.
|
java.lang.Integer |
getConcurrency()
Return the concurrency for this endpoint's container.
|
java.util.Properties |
getConsumerProperties()
Get the consumer properties that will be merged with the consumer properties
provided by the consumer factory; properties here will supersede any with the same
name(s) in the consumer factory.
|
protected java.lang.StringBuilder |
getEndpointDescription()
Return a description for this endpoint.
|
java.lang.String |
getGroup()
Return the group of this endpoint or null if not in a group.
|
java.lang.String |
getGroupId()
Return the groupId of this endpoint - if present, overrides the
group.id property of the consumer factory. |
java.lang.String |
getId()
Return the id of this endpoint.
|
protected RecordFilterStrategy<? super K,? super V> |
getRecordFilterStrategy() |
protected org.springframework.retry.RecoveryCallback<?> |
getRecoveryCallback() |
protected KafkaTemplate<?,?> |
getReplyTemplate() |
protected org.springframework.beans.factory.config.BeanExpressionResolver |
getResolver() |
protected org.springframework.retry.support.RetryTemplate |
getRetryTemplate() |
TopicPartitionOffset[] |
getTopicPartitionsToAssign()
Return the topicPartitions for this endpoint.
|
java.util.regex.Pattern |
getTopicPattern()
Return the topicPattern for this endpoint.
|
java.util.Collection<java.lang.String> |
getTopics()
Return the topics for this endpoint.
|
protected boolean |
isAckDiscarded() |
boolean |
isBatchListener()
Return true if this endpoint creates a batch listener.
|
boolean |
isSplitIterables()
When true,
Iterable return results will be split into discrete records. |
protected boolean |
isStatefulRetry() |
void |
setAckDiscarded(boolean ackDiscarded)
Set to true if the
setRecordFilterStrategy(RecordFilterStrategy) is in use. |
void |
setAutoStartup(java.lang.Boolean autoStartup)
Set the autoStartup for this endpoint's container.
|
void |
setBatchListener(boolean batchListener)
Set to true if this endpoint should create a batch listener.
|
void |
setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory) |
void |
setClientIdPrefix(java.lang.String clientIdPrefix)
Set the client id prefix; overrides the client id in the consumer configuration
properties.
|
void |
setConcurrency(java.lang.Integer concurrency)
Set the concurrency for this endpoint's container.
|
void |
setConsumerProperties(java.util.Properties consumerProperties)
Set the consumer properties that will be merged with the consumer properties
provided by the consumer factory; properties here will supersede any with the same
name(s) in the consumer factory.
|
void |
setGroup(java.lang.String group)
Set the group for the corresponding listener container.
|
void |
setGroupId(java.lang.String groupId)
Set the group id to override the
group.id property in the
ContainerFactory. |
void |
setId(java.lang.String id) |
void |
setRecordFilterStrategy(RecordFilterStrategy<? super K,? super V> recordFilterStrategy)
Set a
RecordFilterStrategy implementation. |
void |
setRecoveryCallback(org.springframework.retry.RecoveryCallback<? extends java.lang.Object> recoveryCallback)
Set a callback to be used with the
setRetryTemplate(RetryTemplate) . |
void |
setReplyHeadersConfigurer(ReplyHeadersConfigurer replyHeadersConfigurer)
Set a configurer which will be invoked when creating a reply message.
|
void |
setReplyTemplate(KafkaTemplate<?,?> replyTemplate)
Set the
KafkaTemplate to use to send replies. |
void |
setRetryTemplate(org.springframework.retry.support.RetryTemplate retryTemplate)
Set a retryTemplate.
|
void |
setSplitIterables(boolean splitIterables)
Set to false to disable splitting
Iterable reply values into separate
records. |
void |
setStatefulRetry(boolean statefulRetry)
When using a
RetryTemplate , set to true to enable stateful retry. |
void |
setTopicPartitions(TopicPartitionInitialOffset... topicPartitions)
Deprecated.
in favor of
setTopicPartitions(TopicPartitionOffset...) . |
void |
setTopicPartitions(TopicPartitionOffset... topicPartitions)
Set the topicPartitions to use.
|
void |
setTopicPattern(java.util.regex.Pattern topicPattern)
Set the topic pattern to use.
|
void |
setTopics(java.lang.String... topics)
Set the topics to use.
|
void |
setupListenerContainer(MessageListenerContainer listenerContainer,
MessageConverter messageConverter)
Setup the specified message listener container with the model
defined by this endpoint.
|
java.lang.String |
toString() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getTopicPartitions
public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory) throws org.springframework.beans.BeansException
setBeanFactory
in interface org.springframework.beans.factory.BeanFactoryAware
org.springframework.beans.BeansException
protected org.springframework.beans.factory.BeanFactory getBeanFactory()
protected org.springframework.beans.factory.config.BeanExpressionResolver getResolver()
protected org.springframework.beans.factory.config.BeanExpressionContext getBeanExpressionContext()
protected org.springframework.expression.BeanResolver getBeanResolver()
public void setId(java.lang.String id)
public java.lang.String getId()
KafkaListenerEndpoint
getId
in interface KafkaListenerEndpoint
KafkaListenerContainerFactory.createListenerContainer(org.springframework.kafka.config.KafkaListenerEndpoint)
public void setGroupId(java.lang.String groupId)
group.id
property in the
ContainerFactory.groupId
- the group id.public java.lang.String getGroupId()
KafkaListenerEndpoint
group.id
property of the consumer factory.getGroupId
in interface KafkaListenerEndpoint
public void setTopics(java.lang.String... topics)
topics
- to set.setTopicPartitions(TopicPartitionOffset...)
,
setTopicPattern(Pattern)
public java.util.Collection<java.lang.String> getTopics()
getTopics
in interface KafkaListenerEndpoint
@Deprecated public void setTopicPartitions(TopicPartitionInitialOffset... topicPartitions)
setTopicPartitions(TopicPartitionOffset...)
.topicPartitions
- to set.setTopics(String...)
,
setTopicPattern(Pattern)
public void setTopicPartitions(TopicPartitionOffset... topicPartitions)
topicPartitions
- to set.setTopics(String...)
,
setTopicPattern(Pattern)
public TopicPartitionOffset[] getTopicPartitionsToAssign()
getTopicPartitionsToAssign
in interface KafkaListenerEndpoint
public void setTopicPattern(java.util.regex.Pattern topicPattern)
topicPattern
- the patternsetTopicPartitions(TopicPartitionOffset...)
,
setTopics(String...)
public java.util.regex.Pattern getTopicPattern()
getTopicPattern
in interface KafkaListenerEndpoint
public java.lang.String getGroup()
KafkaListenerEndpoint
getGroup
in interface KafkaListenerEndpoint
public void setGroup(java.lang.String group)
group
- the group.public boolean isBatchListener()
public void setBatchListener(boolean batchListener)
batchListener
- true for a batch listener.public void setReplyTemplate(KafkaTemplate<?,?> replyTemplate)
KafkaTemplate
to use to send replies.replyTemplate
- the template.protected KafkaTemplate<?,?> getReplyTemplate()
protected RecordFilterStrategy<? super K,? super V> getRecordFilterStrategy()
public void setRecordFilterStrategy(RecordFilterStrategy<? super K,? super V> recordFilterStrategy)
RecordFilterStrategy
implementation.recordFilterStrategy
- the strategy implementation.protected boolean isAckDiscarded()
public void setAckDiscarded(boolean ackDiscarded)
setRecordFilterStrategy(RecordFilterStrategy)
is in use.ackDiscarded
- the ackDiscarded.protected org.springframework.retry.support.RetryTemplate getRetryTemplate()
public void setRetryTemplate(org.springframework.retry.support.RetryTemplate retryTemplate)
retryTemplate
- the template.protected org.springframework.retry.RecoveryCallback<?> getRecoveryCallback()
public void setRecoveryCallback(org.springframework.retry.RecoveryCallback<? extends java.lang.Object> recoveryCallback)
setRetryTemplate(RetryTemplate)
.recoveryCallback
- the callback.protected boolean isStatefulRetry()
public void setStatefulRetry(boolean statefulRetry)
RetryTemplate
, set to true to enable stateful retry. Use in
conjunction with a
SeekToCurrentErrorHandler
when retry can
take excessive time; each failure goes back to the broker, to keep the Consumer
alive.statefulRetry
- true to enable stateful retry.public java.lang.String getClientIdPrefix()
KafkaListenerEndpoint
getClientIdPrefix
in interface KafkaListenerEndpoint
public void setClientIdPrefix(java.lang.String clientIdPrefix)
clientIdPrefix
- the prefix.public java.lang.Integer getConcurrency()
KafkaListenerEndpoint
getConcurrency
in interface KafkaListenerEndpoint
public void setConcurrency(java.lang.Integer concurrency)
concurrency
- the concurrency.public java.lang.Boolean getAutoStartup()
KafkaListenerEndpoint
getAutoStartup
in interface KafkaListenerEndpoint
public void setAutoStartup(java.lang.Boolean autoStartup)
autoStartup
- the autoStartup.public void setReplyHeadersConfigurer(ReplyHeadersConfigurer replyHeadersConfigurer)
replyHeadersConfigurer
- the configurer.@Nullable public java.util.Properties getConsumerProperties()
KafkaListenerEndpoint
group.id
and client.id
are ignored.getConsumerProperties
in interface KafkaListenerEndpoint
ConsumerConfig
,
KafkaListenerEndpoint.getGroupId()
,
KafkaListenerEndpoint.getClientIdPrefix()
public void setConsumerProperties(java.util.Properties consumerProperties)
group.id
and client.id
are ignored.consumerProperties
- the properties.ConsumerConfig
,
setGroupId(String)
,
setClientIdPrefix(String)
public boolean isSplitIterables()
KafkaListenerEndpoint
Iterable
return results will be split into discrete records.isSplitIterables
in interface KafkaListenerEndpoint
public void setSplitIterables(boolean splitIterables)
Iterable
reply values into separate
records.splitIterables
- false to disable; default true.public void afterPropertiesSet()
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
public void setupListenerContainer(MessageListenerContainer listenerContainer, MessageConverter messageConverter)
KafkaListenerEndpoint
This endpoint must provide the requested missing option(s) of
the specified container to make it usable. Usually, this is about
setting the queues
and the messageListener
to
use but an implementation may override any default setting that
was already set.
setupListenerContainer
in interface KafkaListenerEndpoint
listenerContainer
- the listener container to configuremessageConverter
- the message converter - can be nullprotected abstract MessagingMessageListenerAdapter<K,V> createMessageListener(MessageListenerContainer container, MessageConverter messageConverter)
MessageListener
that is able to serve this endpoint for the
specified container.container
- the MessageListenerContainer
to create a MessageListener
.messageConverter
- the message converter - may be null.MessageListener
instance.protected java.lang.StringBuilder getEndpointDescription()
Available to subclasses, for inclusion in their toString()
result.
public java.lang.String toString()
toString
in class java.lang.Object