Package org.springframework.pulsar.core
Class DefaultTopicResolver
java.lang.Object
org.springframework.pulsar.core.DefaultTopicResolver
- All Implemented Interfaces:
TopicResolver
Topic resolver that accepts custom type to topic mappings and uses the mappings during
topic resolution.
Message type to topic mappings can be configured with
addCustomTopicMapping(Class, String)
.
- Author:
- Chris Bono
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionaddCustomTopicMapping
(Class<?> messageType, String topic) Adds a custom mapping from message type to topic.doResolveTopic
(String userSpecifiedTopic, Class<?> messageType, Supplier<String> defaultTopicSupplier) Gets the currently registered custom mappings from message type to topic.removeCustomMapping
(Class<?> messageType) Removes the custom mapping from message type to topic.resolveTopic
(String userSpecifiedTopic, Class<?> messageType, Supplier<String> defaultTopicSupplier) Resolve the topic name to use for the given message type.resolveTopic
(String userSpecifiedTopic, Supplier<String> defaultTopicSupplier) Resolve the topic name to use.resolveTopic
(String userSpecifiedTopic, T message, Supplier<String> defaultTopicSupplier) Resolve the topic name to use for the given message.
-
Constructor Details
-
DefaultTopicResolver
public DefaultTopicResolver()
-
-
Method Details
-
addCustomTopicMapping
Adds a custom mapping from message type to topic.- Parameters:
messageType
- the message typetopic
- the topic to use for messages of typemessageType
- Returns:
- the previously mapped topic or
null
if there was no mapping formessageType
.
-
removeCustomMapping
Removes the custom mapping from message type to topic.- Parameters:
messageType
- the message type- Returns:
- the previously mapped topic or
null
if there was no mapping formessageType
.
-
getCustomTopicMappings
Gets the currently registered custom mappings from message type to topic.- Returns:
- unmodifiable map of custom mappings
-
resolveTopic
public Resolved<String> resolveTopic(@Nullable String userSpecifiedTopic, Supplier<String> defaultTopicSupplier) Description copied from interface:TopicResolver
Resolve the topic name to use.- Specified by:
resolveTopic
in interfaceTopicResolver
- Parameters:
userSpecifiedTopic
- the topic specified by the userdefaultTopicSupplier
- supplies the default topic to use (use a supplier that returnsnull
to signal no default)- Returns:
- the topic to use or
empty
if no topic could be resolved
-
resolveTopic
public <T> Resolved<String> resolveTopic(@Nullable String userSpecifiedTopic, @Nullable T message, Supplier<String> defaultTopicSupplier) Description copied from interface:TopicResolver
Resolve the topic name to use for the given message.- Specified by:
resolveTopic
in interfaceTopicResolver
- Type Parameters:
T
- the message type- Parameters:
userSpecifiedTopic
- the topic specified by the usermessage
- the message instance being produced or consumeddefaultTopicSupplier
- supplies the default topic to use (use a supplier that returnsnull
to signal no default)- Returns:
- the topic to use or
empty
if no topic could be resolved
-
resolveTopic
public Resolved<String> resolveTopic(@Nullable String userSpecifiedTopic, @Nullable Class<?> messageType, Supplier<String> defaultTopicSupplier) Description copied from interface:TopicResolver
Resolve the topic name to use for the given message type.- Specified by:
resolveTopic
in interfaceTopicResolver
- Parameters:
userSpecifiedTopic
- the topic specified by the usermessageType
- the message type being produced or consumeddefaultTopicSupplier
- supplies the default topic to use (use a supplier that returnsnull
to signal no default)- Returns:
- the topic to use or
empty
if no topic could be resolved
-
doResolveTopic
-