Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
@SuppressWarnings({"unchecked", "unused"})
public final class HandlerRegistry {
public static final String DEFAULT_DOMAIN = "app";
private static final String UNRESOLVED_DOMAIN = "__default__";
private final RegisteredDomainHandlers<RegisteredEventListener<?, ?>> domainEventListeners =
new RegisteredDomainHandlers<>();
private final RegisteredDomainHandlers<RegisteredEventListener<?, ?>> dynamicEventHandlers =
Expand All @@ -41,16 +42,19 @@ public final class HandlerRegistry {
private final RegisteredDomainHandlers<RegisteredQueueListener> queueHandlers =
new RegisteredDomainHandlers<>();

public static String getUnresolvedDomain() {
return UNRESOLVED_DOMAIN;
}

public static HandlerRegistry register() {
HandlerRegistry instance = new HandlerRegistry();
instance.domainEventListeners.put(DEFAULT_DOMAIN, new CopyOnWriteArrayList<>());
instance.domainEventListeners.put(UNRESOLVED_DOMAIN, new CopyOnWriteArrayList<>());
return instance;
}

//events: DomainEvent
public <T> HandlerRegistry listenEvent(String eventName, DomainEventHandler<T> handler, Class<T> eventClass) {
return listenDomainEvent(DEFAULT_DOMAIN, eventName, handler, eventClass);
return listenDomainEvent(UNRESOLVED_DOMAIN, eventName, handler, eventClass);
}

public <T> HandlerRegistry listenDomainEvent(String domain, String eventName, DomainEventHandler<T> handler,
Expand All @@ -61,7 +65,7 @@ public <T> HandlerRegistry listenDomainEvent(String domain, String eventName, Do

// events: CloudEvent
public HandlerRegistry listenCloudEvent(String eventName, CloudEventHandler handler) {
return listenDomainCloudEvent(DEFAULT_DOMAIN, eventName, handler);
return listenDomainCloudEvent(UNRESOLVED_DOMAIN, eventName, handler);
}

public HandlerRegistry listenDomainCloudEvent(String domain, String eventName, CloudEventHandler handler) {
Expand All @@ -71,7 +75,7 @@ public HandlerRegistry listenDomainCloudEvent(String domain, String eventName, C

// events: RawMessage
public HandlerRegistry listenRawEvent(String eventName, RawEventHandler<?> handler) {
return listenDomainRawEvent(DEFAULT_DOMAIN, eventName, handler);
return listenDomainRawEvent(UNRESOLVED_DOMAIN, eventName, handler);
}

public HandlerRegistry listenDomainRawEvent(String domain, String eventName, RawEventHandler<?> handler) {
Expand All @@ -82,7 +86,7 @@ public HandlerRegistry listenDomainRawEvent(String domain, String eventName, Raw
// notifications: DomainEvent
public <T> HandlerRegistry listenNotificationEvent(String eventName, DomainEventHandler<T> handler,
Class<T> eventClass) {
return listenNotificationEvent(DEFAULT_DOMAIN, eventName, handler, eventClass);
return listenNotificationEvent(UNRESOLVED_DOMAIN, eventName, handler, eventClass);
}

public <T> HandlerRegistry listenNotificationEvent(String domain, String eventName, DomainEventHandler<T> handler,
Expand All @@ -93,7 +97,7 @@ public <T> HandlerRegistry listenNotificationEvent(String domain, String eventNa

// notifications: CloudEvent
public HandlerRegistry listenNotificationCloudEvent(String eventName, CloudEventHandler handler) {
return listenNotificationCloudEvent(DEFAULT_DOMAIN, eventName, handler);
return listenNotificationCloudEvent(UNRESOLVED_DOMAIN, eventName, handler);
}

public HandlerRegistry listenNotificationCloudEvent(String domain, String eventName, CloudEventHandler handler) {
Expand All @@ -103,7 +107,7 @@ public HandlerRegistry listenNotificationCloudEvent(String domain, String eventN

// notifications: RawMessage
public HandlerRegistry listenNotificationRawEvent(String eventName, RawEventHandler<?> handler) {
return listenNotificationRawEvent(DEFAULT_DOMAIN, eventName, handler);
return listenNotificationRawEvent(UNRESOLVED_DOMAIN, eventName, handler);
}

public HandlerRegistry listenNotificationRawEvent(String domain, String eventName, RawEventHandler<?> handler) {
Expand All @@ -114,20 +118,20 @@ public HandlerRegistry listenNotificationRawEvent(String domain, String eventNam
// dynamic: DomainEvent supported only for default domain
public <T> HandlerRegistry handleDynamicEvents(String eventNamePattern, DomainEventHandler<T> handler,
Class<T> eventClass) {
dynamicEventHandlers.add(DEFAULT_DOMAIN, new RegisteredEventListener<>(eventNamePattern, handler, eventClass));
dynamicEventHandlers.add(UNRESOLVED_DOMAIN, new RegisteredEventListener<>(eventNamePattern, handler, eventClass));
return this;
}

// dynamic: CloudEvent supported only for default domain
public HandlerRegistry handleDynamicCloudEvents(String eventNamePattern, CloudEventHandler handler) {
dynamicEventHandlers.add(DEFAULT_DOMAIN, new RegisteredEventListener<>(eventNamePattern, handler,
dynamicEventHandlers.add(UNRESOLVED_DOMAIN, new RegisteredEventListener<>(eventNamePattern, handler,
CloudEvent.class));
return this;
}

// commands: Command
public <T> HandlerRegistry handleCommand(String commandName, DomainCommandHandler<T> fn, Class<T> commandClass) {
return handleCommand(DEFAULT_DOMAIN, commandName, fn, commandClass);
return handleCommand(UNRESOLVED_DOMAIN, commandName, fn, commandClass);
}

public <T> HandlerRegistry handleCommand(String domain, String commandName, DomainCommandHandler<T> fn,
Expand All @@ -138,7 +142,7 @@ public <T> HandlerRegistry handleCommand(String domain, String commandName, Doma

// commands: CloudEvent
public HandlerRegistry handleCloudEventCommand(String commandName, CloudCommandHandler handler) {
return handleCloudEventCommand(DEFAULT_DOMAIN, commandName, handler);
return handleCloudEventCommand(UNRESOLVED_DOMAIN, commandName, handler);
}

public HandlerRegistry handleCloudEventCommand(String domain, String commandName, CloudCommandHandler handler) {
Expand All @@ -148,7 +152,7 @@ public HandlerRegistry handleCloudEventCommand(String domain, String commandName

// commands: RawMessage
public HandlerRegistry handleRawCommand(RawCommandHandler<?> handler) {
return handleRawCommand(DEFAULT_DOMAIN, handler);
return handleRawCommand(UNRESOLVED_DOMAIN, handler);
}

public HandlerRegistry handleRawCommand(String domain, RawCommandHandler<?> handler) {
Expand All @@ -158,26 +162,26 @@ public HandlerRegistry handleRawCommand(String domain, RawCommandHandler<?> hand

// queries: Query
public <T, R> HandlerRegistry serveQuery(String resource, QueryHandler<T, R> handler, Class<R> queryClass) {
handlers.add(DEFAULT_DOMAIN, new RegisteredQueryHandler<>(resource, (ignored, message) ->
handlers.add(UNRESOLVED_DOMAIN, new RegisteredQueryHandler<>(resource, (ignored, message) ->
handler.handle(message), queryClass
));
return this;
}

public <R> HandlerRegistry serveQuery(String resource, QueryHandlerDelegate<Void, R> handler, Class<R> queryClass) {
handlers.add(DEFAULT_DOMAIN, new RegisteredQueryHandler<>(resource, handler, queryClass));
handlers.add(UNRESOLVED_DOMAIN, new RegisteredQueryHandler<>(resource, handler, queryClass));
return this;
}

public <R> HandlerRegistry serveCloudEventQuery(String resource, QueryHandler<R, CloudEvent> handler) {
handlers.add(DEFAULT_DOMAIN, new RegisteredQueryHandler<>(resource, (ignored, message) ->
handlers.add(UNRESOLVED_DOMAIN, new RegisteredQueryHandler<>(resource, (ignored, message) ->
handler.handle(message), CloudEvent.class
));
return this;
}

public HandlerRegistry serveCloudEventQuery(String resource, QueryHandlerDelegate<Void, CloudEvent> handler) {
handlers.add(DEFAULT_DOMAIN, new RegisteredQueryHandler<>(resource, handler, CloudEvent.class));
handlers.add(UNRESOLVED_DOMAIN, new RegisteredQueryHandler<>(resource, handler, CloudEvent.class));
return this;
}

Expand All @@ -192,7 +196,7 @@ public HandlerRegistry listenQueue(String domain, String queueName, RawEventHand

public HandlerRegistry listenQueue(String queueName, RawEventHandler<RawMessage> handler,
TopologyHandlerSetup topologyCreator) {
queueHandlers.add(DEFAULT_DOMAIN, new RegisteredQueueListener(queueName, handler, topologyCreator));
queueHandlers.add(UNRESOLVED_DOMAIN, new RegisteredQueueListener(queueName, handler, topologyCreator));
return this;
}

Expand All @@ -214,7 +218,7 @@ public <T> HandlerRegistry handleDynamicEvents(String eventNamePattern, DomainEv

@Deprecated(forRemoval = true)
public <T> HandlerRegistry handleCommand(String commandName, DomainCommandHandler<T> handler) {
commandHandlers.add(DEFAULT_DOMAIN, new RegisteredCommandHandler<>(commandName, handler,
commandHandlers.add(UNRESOLVED_DOMAIN, new RegisteredCommandHandler<>(commandName, handler,
inferGenericParameterType(handler)));
return this;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import java.util.concurrent.CopyOnWriteArrayList;

public class RegisteredDomainHandlers<T> extends ConcurrentHashMap<String, List<T>> {
private static final String DEFAULT_DOMAIN = "app";
private static final String DEFAULT_DOMAIN = "__default__";

public RegisteredDomainHandlers() {
super();
Expand Down
Loading
Loading