Skip to content

Commit 4c766f5

Browse files
committed
revert empty responses for queries
1 parent df304fd commit 4c766f5

File tree

2 files changed

+16
-26
lines changed

2 files changed

+16
-26
lines changed

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

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
import lombok.extern.java.Log;
55
import org.reactivecommons.async.api.handlers.registered.RegisteredQueryHandler;
66
import org.reactivecommons.async.commons.DiscardNotifier;
7-
import org.reactivecommons.async.rabbit.HandlerResolver;
8-
import org.reactivecommons.async.commons.communications.Message;
97
import org.reactivecommons.async.commons.QueryExecutor;
8+
import org.reactivecommons.async.commons.communications.Message;
9+
import org.reactivecommons.async.commons.converters.MessageConverter;
10+
import org.reactivecommons.async.commons.ext.CustomReporter;
11+
import org.reactivecommons.async.rabbit.HandlerResolver;
1012
import org.reactivecommons.async.rabbit.communications.ReactiveMessageListener;
1113
import org.reactivecommons.async.rabbit.communications.ReactiveMessageSender;
1214
import org.reactivecommons.async.rabbit.communications.TopologyCreator;
13-
import org.reactivecommons.async.commons.converters.MessageConverter;
14-
import org.reactivecommons.async.commons.ext.CustomReporter;
1515
import reactor.core.publisher.Mono;
1616
import reactor.rabbitmq.AcknowledgableDelivery;
1717
import reactor.rabbitmq.BindingSpecification;
@@ -24,9 +24,11 @@
2424
import java.util.function.Function;
2525
import java.util.logging.Level;
2626

27-
import static java.lang.Boolean.TRUE;
2827
import static java.util.Optional.ofNullable;
29-
import static org.reactivecommons.async.commons.Headers.*;
28+
import static org.reactivecommons.async.commons.Headers.CORRELATION_ID;
29+
import static org.reactivecommons.async.commons.Headers.REPLY_ID;
30+
import static org.reactivecommons.async.commons.Headers.REPLY_TIMEOUT_MILLIS;
31+
import static org.reactivecommons.async.commons.Headers.SERVED_QUERY_ID;
3032

3133
@Log
3234
//TODO: Organizar inferencia de tipos de la misma forma que en comandos y eventos
@@ -139,16 +141,15 @@ protected Function<Mono<Object>, Mono<Object>> enrichPostProcess(Message msg) {
139141
if (signal.isOnError()) {
140142
return Mono.error(ofNullable(signal.getThrowable()).orElseGet(RuntimeException::new));
141143
}
144+
if (signal.isOnComplete()) {
145+
return Mono.empty();
146+
}
142147

143148
final String replyID = msg.getProperties().getHeaders().get(REPLY_ID).toString();
144149
final String correlationID = msg.getProperties().getHeaders().get(CORRELATION_ID).toString();
145150
final HashMap<String, Object> headers = new HashMap<>();
146151
headers.put(CORRELATION_ID, correlationID);
147152

148-
if (!signal.hasValue()) {
149-
headers.put(COMPLETION_ONLY_SIGNAL, TRUE.toString());
150-
}
151-
152153
return sender.sendNoConfirm(signal.get(), replyExchange, replyID, headers, false);
153154
});
154155
}

async/async-rabbit/src/test/java/org/reactivecommons/async/rabbit/listeners/ApplicationQueryListenerTest.java

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -121,26 +121,15 @@ void shouldHandleErrorWhenNoQueryHandler() {
121121
}
122122

123123
@Test
124-
@SuppressWarnings("unchecked")
125-
void enrichPostProcessShouldPropagateEmptyResponses() {
126-
Message message = TestStubs.mockMessage();
127-
PublisherProbe<Void> publishProbe = PublisherProbe.empty();
128-
129-
ArgumentCaptor<Map<String, Object>> headersCaptor = ArgumentCaptor.forClass(Map.class);
130-
131-
when(sender.sendNoConfirm(any(), anyString(), anyString(), headersCaptor.capture(), anyBoolean()))
132-
.thenReturn(publishProbe.mono());
133-
134-
Function<Mono<Object>, Mono<Object>> transformer = applicationQueryListener.enrichPostProcess(message);
135-
Mono<Object> result = transformer.apply(empty());
124+
void shouldNotRespondQueryEnrichPostProcess() {
125+
Message message = spy(TestStubs.mockMessage());
126+
Function<Mono<Object>, Mono<Object>> handler = applicationQueryListener.enrichPostProcess(message);
127+
Mono<Object> result = handler.apply(empty());
136128

137129
StepVerifier.create(result)
138130
.verifyComplete();
139131

140-
publishProbe.assertWasSubscribed();
141-
142-
assertThat(headersCaptor.getValue().get(COMPLETION_ONLY_SIGNAL))
143-
.isEqualTo("true");
132+
verify(message, times(0)).getProperties();
144133
}
145134

146135
@Test

0 commit comments

Comments
 (0)