Class EventExternalizationConfiguration.Router
java.lang.Object
org.springframework.modulith.events.EventExternalizationConfiguration.Router
- Enclosing interface:
- EventExternalizationConfiguration
API to define the event routing.
- Since:
- 1.1
- Author:
- Oliver Drotbohm
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a newEventExternalizationConfiguration.Routerfor the given selector filter.Router(Predicate<Object> filter, Function<Object, Object> mapper, Function<Object, RoutingTarget> router, Function<Object, Map<String, Object>> headers) Creates a newEventExternalizationConfiguration.Routerfor the given selectorPredicateand mapper and routerFunctions. -
Method Summary
Modifier and TypeMethodDescriptionbuild()Creates a newEventExternalizationConfigurationreflecting the current configuration.Registers the given type-specific function to extract headers from the events to be externalized.Registers the given function to extract headers from the events to be externalized.Registers a type-specific mapping function.Registers a new mappingFunctionreplacing the old one entirely.route(Class<T> type, Function<T, RoutingTarget> router) Registers a router function for the events of the given specific type.routeAll(Function<Object, RoutingTarget> router) Routes all events based on the given function.routeAllByType(Function<Class<?>, RoutingTarget> router) Routes all messages based on the event type only.Registers aBiFunctionto resolve the key for aRoutingTargetbased on the event instance.Configures the routing to rather use the mapping result rather than the original event instance.routeOptional(Function<Object, Optional<RoutingTarget>> router) Routes by extracting anOptionalroute from the event.routeOptionalByType(Function<Class<?>, Optional<RoutingTarget>> router) Routes by extracting anOptionalroute from the event type.
-
Constructor Details
-
Router
Router(Predicate<Object> filter, Function<Object, Object> mapper, Function<Object, RoutingTarget> router, Function<Object, Map<String, Object>> headers) Creates a newEventExternalizationConfiguration.Routerfor the given selectorPredicateand mapper and routerFunctions.- Parameters:
filter- must not be null.mapper- must not be null.router- must not be null.headers- must not be null.
-
Router
Creates a newEventExternalizationConfiguration.Routerfor the given selector filter.- Parameters:
filter- must not be null.
-
-
Method Details
-
mapping
Registers a new mappingFunctionreplacing the old one entirely.- Parameters:
mapper- must not be null.- Returns:
- will never be null.
- See Also:
-
mapping
public <T> EventExternalizationConfiguration.Router mapping(Class<T> type, Function<T, Object> mapper) Registers a type-specific mapping function. Events not matching that type will still fall back to the global mapping function defined.- Type Parameters:
T- the type to handle.- Parameters:
type- the type to handle, must not be null.mapper- the mapping function, must not be null.- Returns:
- will never be null.
- See Also:
-
headers
public EventExternalizationConfiguration.Router headers(Function<Object, Map<String, Object>> extractor) Registers the given function to extract headers from the events to be externalized. Will reset the entire header extractor arrangement. For type-specific extractions, seeheaders(Class, Function).- Parameters:
extractor- must not be null.- Returns:
- will never be null.
- Since:
- 1.3
- See Also:
-
headers
public <T> EventExternalizationConfiguration.Router headers(Class<T> type, Function<T, Map<String, Object>> extractor) Registers the given type-specific function to extract headers from the events to be externalized.- Parameters:
extractor- must not be null.- Returns:
- will never be null.
- Since:
- 1.3
-
routeMapped
Configures the routing to rather use the mapping result rather than the original event instance.- Returns:
- will never be null.
-
routeAll
Routes all events based on the given function.- Parameters:
router- must not be null.- Returns:
- will never be null.
-
route
public <T> EventExternalizationConfiguration.Router route(Class<T> type, Function<T, RoutingTarget> router) Registers a router function for the events of the given specific type.- Type Parameters:
T- the type to handle- Parameters:
type- must not be null.router- must not be null.- Returns:
- will never be null.
-
routeKey
public <T> EventExternalizationConfiguration.Router routeKey(Class<T> type, Function<T, String> extractor) Registers aBiFunctionto resolve the key for aRoutingTargetbased on the event instance. The actual target will have been resolved through the currently configured, global router. To dynamically define full, type-specific resolution of aRoutingTarget, seeroute(Class, Function).- Type Parameters:
T- the type to handle.- Parameters:
type- the type to configure the key extraction for, must not be null.extractor- the key extractor, must not be null.- Returns:
- will never be null.
- See Also:
-
routeOptional
public EventExternalizationConfiguration routeOptional(Function<Object, Optional<RoutingTarget>> router) Routes by extracting anOptionalroute from the event. IfOptional.empty()is returned by the function, we will fall back to the configured default routing.- Parameters:
router- must not be null.- Returns:
- will never be null.
-
routeOptionalByType
public EventExternalizationConfiguration routeOptionalByType(Function<Class<?>, Optional<RoutingTarget>> router) Routes by extracting anOptionalroute from the event type. IfOptional.empty()is returned by the function, we will fall back to the configured general routing.- Parameters:
router- must not be null.- Returns:
- will never be null.
-
routeAllByType
public EventExternalizationConfiguration.Router routeAllByType(Function<Class<?>, RoutingTarget> router) Routes all messages based on the event type only.- Parameters:
router- must not be null.- Returns:
- will never be null.
-
build
Creates a newEventExternalizationConfigurationreflecting the current configuration.- Returns:
- will never be null.
-