Skip to content

Commit

Permalink
review: some minor cosmetic changes
Browse files Browse the repository at this point in the history
Signed-off-by: Thomas Jaeckle <thomas.jaeckle@bosch.io>
  • Loading branch information
thjaeckle committed Nov 12, 2020
1 parent 530281f commit 3473b02
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ public int hashCode() {
@Override
public String toString() {
return getClass().getSimpleName() + " [" +
", correlationId=" + correlationId +
"correlationId=" + correlationId +
", timestamp=" + timestamp +
", logCategory=" + logCategory +
", logType=" + logType +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -547,12 +547,14 @@ private Signal<?> appendConnectionAcknowledgementsToSignal(final ExternalMessage
new HashSet<>(signal.getDittoHeaders().getAcknowledgementRequests());
combinedRequestedAcks.addAll(additionalAcknowledgementRequests);

return RequestedAcksFilter.filterAcknowledgements(signal.setDittoHeaders(
signal.getDittoHeaders()
.toBuilder()
.acknowledgementRequests(combinedRequestedAcks)
.build()),
message, filter,
final Signal<?> signalWithCombinedAckRequests = signal.setDittoHeaders(signal.getDittoHeaders()
.toBuilder()
.acknowledgementRequests(combinedRequestedAcks)
.build()
);
return RequestedAcksFilter.filterAcknowledgements(signalWithCombinedAckRequests,
message,
filter,
connectionId);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,19 @@
*/
final class RequestedAcksFilter {

private static final String REQUESTED_ACKS_KEY = DittoHeaderDefinition.REQUESTED_ACKS.getKey();

private RequestedAcksFilter() {
throw new AssertionError();
}

/**
* Apply the configured requested-acks filter to a signal mapped from an external message.
* - If the filter is tripped, set requested-acks to []
* - If the filter is not tripped and requested-acks is defined, leave it
* - If the filter is not tripped, requested-acks is not defined, fallback to the resolved value of the filter.
* <ul>
* <li>If the filter is tripped, set requested-acks to []</li>
* <li>If the filter is not tripped and requested-acks is defined, leave it</li>
* <li>If the filter is not tripped, requested-acks is not defined, fallback to the resolved value of the filter.</li>
* </ul>
*
* @param signal signal to filter requested acknowledges for
* @param externalMessage incoming external message that mapped to the signal
Expand All @@ -43,11 +51,10 @@ final class RequestedAcksFilter {
*/
static Signal<?> filterAcknowledgements(final Signal<?> signal,
final ExternalMessage externalMessage,
final @Nullable String filter,
@Nullable final String filter,
final ConnectionId connectionId) {
if (filter != null) {
final String requestedAcks = DittoHeaderDefinition.REQUESTED_ACKS.getKey();
final boolean headerDefined = signal.getDittoHeaders().containsKey(requestedAcks);
final boolean headerDefined = signal.getDittoHeaders().containsKey(REQUESTED_ACKS_KEY);
final String requestedAcksValue = getDefaultRequestedAcks(headerDefined, signal);
final String fullFilter = "fn:default('" + requestedAcksValue + "')|" + filter;
final ExpressionResolver resolver = Resolvers.forExternalMessage(externalMessage, connectionId);
Expand All @@ -60,7 +67,7 @@ static Signal<?> filterAcknowledgements(final Signal<?> signal,
} else if (headerDefined) {
// filter not tripped, header defined
return signal.setDittoHeaders(DittoHeaders.newBuilder(signal.getDittoHeaders())
.putHeader(requestedAcks, resolverResult.orElseThrow())
.putHeader(REQUESTED_ACKS_KEY, resolverResult.orElseThrow())
.build());
} else {
// filter not tripped, header not defined:
Expand All @@ -70,7 +77,7 @@ static Signal<?> filterAcknowledgements(final Signal<?> signal,
resolver.resolveAsPipelineElement(filter).toOptional();
return unsetFilterResult.<Signal<?>>map(newAckRequests ->
signal.setDittoHeaders(DittoHeaders.newBuilder(signal.getDittoHeaders())
.putHeader(requestedAcks, newAckRequests)
.putHeader(REQUESTED_ACKS_KEY, newAckRequests)
.build()))
.orElse(signal);
}
Expand All @@ -80,7 +87,7 @@ static Signal<?> filterAcknowledgements(final Signal<?> signal,

private static String getDefaultRequestedAcks(final boolean headerDefined, final Signal<?> signal) {
if (headerDefined) {
final String headerValue = signal.getDittoHeaders().get(DittoHeaderDefinition.REQUESTED_ACKS.getKey());
final String headerValue = signal.getDittoHeaders().get(REQUESTED_ACKS_KEY);
if (!headerValue.contains("'")) {
return headerValue;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
import org.junit.Test;

/**
* Tests {@link org.eclipse.ditto.services.connectivity.messaging.RequestedAcksFilter}.
* Tests {@link RequestedAcksFilter}.
*/
public final class RequestedAcksFilterTest {

Expand Down

0 comments on commit 3473b02

Please sign in to comment.