Skip to content

Commit 16964a0

Browse files
committed
fix(handler): simplify handleRawCommand methods and improve RabbitMessage handling
1 parent 832bde1 commit 16964a0

File tree

5 files changed

+16
-11
lines changed

5 files changed

+16
-11
lines changed

async/async-commons-api/src/main/java/org/reactivecommons/async/api/HandlerRegistry.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,12 +142,12 @@ public HandlerRegistry handleCloudEventCommand(String domain, String commandName
142142
}
143143

144144
// commands: RawMessage
145-
public HandlerRegistry handleRawCommand(String commandName, RawCommandHandler<?> handler) {
146-
return handleRawCommand(DEFAULT_DOMAIN, commandName, handler);
145+
public HandlerRegistry handleRawCommand(RawCommandHandler<?> handler) {
146+
return handleRawCommand(DEFAULT_DOMAIN, handler);
147147
}
148148

149-
public HandlerRegistry handleRawCommand(String domain, String commandName, RawCommandHandler<?> handler) {
150-
commandHandlers.add(domain, new RegisteredCommandHandler<>(commandName, handler, RawMessage.class));
149+
public HandlerRegistry handleRawCommand(String domain, RawCommandHandler<?> handler) {
150+
commandHandlers.add(domain, new RegisteredCommandHandler<>("", handler, RawMessage.class));
151151
return this;
152152
}
153153

async/async-commons-api/src/test/java/org/reactivecommons/async/api/HandlerRegistryTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
class HandlerRegistryTest {
2727
private final HandlerRegistry registry = HandlerRegistry.register();
2828
private final String name = "some.event";
29-
private final String nameRaw = "some.raw.event";
3029
private final String nameRawNotification = "some.raw.notification.event";
3130
private final String domain = "some-domain";
3231

@@ -222,14 +221,14 @@ void handleCloudEventCommand() {
222221
void handleRawCommand() {
223222
SomeRawCommandEventHandler eventHandler = new SomeRawCommandEventHandler();
224223

225-
registry.handleRawCommand(nameRaw, eventHandler);
224+
registry.handleRawCommand(eventHandler);
226225

227226
assertThat(registry.getCommandHandlers().get(DEFAULT_DOMAIN))
228227
.anySatisfy(registered -> assertThat(registered)
229228
.extracting(RegisteredCommandHandler::path, RegisteredCommandHandler::inputClass,
230229
RegisteredCommandHandler::handler
231230
)
232-
.containsExactly(nameRaw, RawMessage.class, eventHandler)).hasSize(1);
231+
.containsExactly("", RawMessage.class, eventHandler)).hasSize(1);
233232
}
234233

235234
@Test

async/async-rabbit/src/main/java/org/reactivecommons/async/rabbit/RabbitMessage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public static class RabbitMessageProperties implements Properties {
2323
}
2424

2525
public static RabbitMessage fromDelivery(Delivery delivery) {
26-
return fromDelivery(delivery, null);
26+
return fromDelivery(delivery, "");
2727
}
2828

2929
public static RabbitMessage fromDelivery(Delivery delivery, String executorPath) {

async/async-rabbit/src/main/java/org/reactivecommons/async/rabbit/listeners/ApplicationCommandListener.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import lombok.extern.java.Log;
66
import org.reactivecommons.async.api.handlers.CloudCommandHandler;
77
import org.reactivecommons.async.api.handlers.DomainCommandHandler;
8+
import org.reactivecommons.async.api.handlers.RawCommandHandler;
89
import org.reactivecommons.async.api.handlers.registered.RegisteredCommandHandler;
910
import org.reactivecommons.async.commons.CommandExecutor;
1011
import org.reactivecommons.async.commons.DiscardNotifier;
@@ -128,7 +129,10 @@ protected String getExecutorPath(AcknowledgableDelivery msj) {
128129
if (jsonNode.get(COMMAND_ID) != null) {
129130
return jsonNode.get(NAME).asText();
130131
}
131-
return jsonNode.get(TYPE).asText();
132+
if (jsonNode.get(TYPE) != null) {
133+
return jsonNode.get(TYPE).asText();
134+
}
135+
return rabbitMessage.getType();
132136
}
133137

134138
@Override
@@ -142,6 +146,8 @@ private <T, D> Function<Message, Object> resolveConverter(RegisteredCommandHandl
142146
return msj -> messageConverter.readCommand(msj, commandClass);
143147
} else if (registeredCommandHandler.handler() instanceof CloudCommandHandler) {
144148
return messageConverter::readCloudEvent;
149+
} else if (registeredCommandHandler.handler() instanceof RawCommandHandler) {
150+
return message -> message;
145151
}
146152
throw new RuntimeException("Unknown handler type");
147153
}

docs/docs/reactive-commons/5-handler-registry.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ public class HandlerRegistry {
5555
public HandlerRegistry handleCloudEventCommand(String domain, String commandName, CloudCommandHandler handler)
5656

5757
// commands: RawMessage
58-
public HandlerRegistry handleRawCommand(String commandName, RawCommandHandler<?> handler)
59-
public HandlerRegistry handleRawCommand(String domain, String commandName, RawCommandHandler<?> handler)
58+
public HandlerRegistry handleRawCommand(RawCommandHandler<?> handler)
59+
public HandlerRegistry handleRawCommand(String domain, RawCommandHandler<?> handler)
6060

6161
// queries: Query
6262
public <T, R> HandlerRegistry serveQuery(String resource, QueryHandler<T, R> handler, Class<R> queryClass)

0 commit comments

Comments
 (0)