/** * Returns a new instance of {@code DittoHeaders} containing the specified key-value-pairs. * * @param headers the key-value-pairs of the result. * @return the DittoHeaders. * @throws NullPointerException if {@code headers} is {@code null}. * @throws IllegalArgumentException if {@code headers} contains an invalid key-value-pair. */ static DittoHeaders of(final Map<String, String> headers) { return newBuilder(headers).build(); }
/** * Returns new {@code Headers} for the specified {@code headersAsJson}. * * @param headersAsJson the headers as JSON. * @return the headers. */ public static DittoHeaders newHeaders(final JsonObject headersAsJson) { return DittoHeaders.newBuilder(headersAsJson).build(); }
/** * Returns new {@code Headers} for the specified {@code headersAsJson}. * * @param headersAsJson the headers as JSON. * @return the headers. */ public static DittoHeaders newHeaders(final JsonObject headersAsJson) { return DittoHeaders.newBuilder(headersAsJson).build(); }
/** * Returns a new instance of {@code DittoHeaders} containing the specified key-value-pairs. * * @param headers the key-value-pairs of the result. * @return the DittoHeaders. * @throws NullPointerException if {@code headers} is {@code null}. * @throws IllegalArgumentException if {@code headers} contains an invalid key-value-pair. */ static DittoHeaders of(final Map<String, String> headers) { return newBuilder(headers).build(); }
private static DittoHeaders createHeaders(final Optional<Long> optionalTimeout) { final DittoHeadersBuilder headersBuilder = DittoHeaders.newBuilder().correlationId(UUID.randomUUID().toString()); optionalTimeout.ifPresent(t -> headersBuilder.putHeader(TIMEOUT_PARAMETER, Long.toString(t))); return headersBuilder.build(); }
private DittoHeaders buildDittoHeaders() { return DittoHeaders.newBuilder() .correlationId(batchId) .build(); }
private static DittoHeaders buildDevOpsDittoHeaders(final CharSequence correlationId) { return DittoHeaders.newBuilder() .schemaVersion(JsonSchemaVersion.V_2) .correlationId(correlationId) .build(); }
private void retrievePolicy(final String thePolicyId) { final DittoHeaders dittoHeaders = DittoHeaders.newBuilder() .correlationId("thingUpdater-sudoRetrievePolicy-" + UUID.randomUUID()) .build(); final SudoRetrievePolicy retrievePolicyCmd = SudoRetrievePolicy.of(thePolicyId, dittoHeaders); policiesShardRegion.tell(retrievePolicyCmd, getSelf()); }
private void retrievePolicy(final String thePolicyId) { final DittoHeaders dittoHeaders = DittoHeaders.newBuilder() .correlationId("thingUpdater-sudoRetrievePolicy-" + UUID.randomUUID()) .build(); final SudoRetrievePolicy retrievePolicyCmd = SudoRetrievePolicy.of(thePolicyId, dittoHeaders); policiesShardRegion.tell(retrievePolicyCmd, getSelf()); }
/** * Creates a sudo command for retrieving a policy. * * @param policyId the policyId. * @return the created command. */ static SudoRetrievePolicy sudoRetrievePolicy(final String policyId) { return SudoRetrievePolicy.of(policyId, DittoHeaders.newBuilder().correlationId(getCorrelationId(policyId)).build()); }
private void reconnect(final String persistenceId) { // yes, this is intentionally a RetrieveConnectionStatus instead of OpenConnection. // ConnectionActor manages its own reconnection on recovery. // OpenConnection would set desired state to OPEN even for deleted connections. if (persistenceId.startsWith(ConnectionActor.PERSISTENCE_ID_PREFIX)) { final String connectionId = persistenceId.substring(ConnectionActor.PERSISTENCE_ID_PREFIX.length()); final DittoHeaders dittoHeaders = DittoHeaders.newBuilder() .correlationId(toCorrelationId(connectionId)) .build(); log.debug("Sending a reconnect for Connection {}", connectionId); connectionShardRegion.tell(RetrieveConnectionStatus.of(connectionId, dittoHeaders), getSelf()); } else { log.debug("Unknown persistence id '{}', ignoring.", persistenceId); } }
private static DittoRuntimeException buildMissingJwtException(final String correlationId) { return GatewayAuthenticationFailedException .newBuilder("The JWT was missing.") .dittoHeaders(DittoHeaders.newBuilder().correlationId(correlationId).build()) .build(); }
private static DittoRuntimeException buildAuthenticationProviderUnavailableException(final String correlationId, final Throwable cause) { return GatewayAuthenticationProviderUnavailableException .newBuilder() .dittoHeaders(DittoHeaders.newBuilder().correlationId(correlationId).build()) .cause(cause) .build(); } }
private static DittoRuntimeException buildJwtUnauthorizedException(final String correlationId) { return GatewayAuthenticationFailedException.newBuilder("The JWT could not be verified") .description("Check if your token is not expired and set the token accordingly.") .dittoHeaders(DittoHeaders.newBuilder().correlationId(correlationId).build()) .build(); }
/** * Returns a new {@code ShardedMessageEnvelope} parsed from the specified {@code jsonObject}. * * @param jsonObject the JSON object. * @return the ShardedMessageEnvelope. */ public static ShardedMessageEnvelope fromJson(final JsonObject jsonObject) { final String extractedId = jsonObject.getValueOrThrow(JSON_ID); final String extractedType = jsonObject.getValueOrThrow(JSON_TYPE); final JsonObject extractedMessage = jsonObject.getValueOrThrow(JSON_MESSAGE); final JsonObject jsonDittoHeaders = jsonObject.getValueOrThrow(JSON_DITTO_HEADERS); final DittoHeaders extractedDittoHeaders = DittoHeaders.newBuilder(jsonDittoHeaders).build(); return of(extractedId, extractedType, extractedMessage, extractedDittoHeaders); }
/** * Returns a new {@code ShardedMessageEnvelope} parsed from the specified {@code jsonObject}. * * @param jsonObject the JSON object. * @return the ShardedMessageEnvelope. */ public static ShardedMessageEnvelope fromJson(final JsonObject jsonObject) { final String extractedId = jsonObject.getValueOrThrow(JSON_ID); final String extractedType = jsonObject.getValueOrThrow(JSON_TYPE); final JsonObject extractedMessage = jsonObject.getValueOrThrow(JSON_MESSAGE); final JsonObject jsonDittoHeaders = jsonObject.getValueOrThrow(JSON_DITTO_HEADERS); final DittoHeaders extractedDittoHeaders = DittoHeaders.newBuilder(jsonDittoHeaders).build(); return of(extractedId, extractedType, extractedMessage, extractedDittoHeaders); }
private void handleDittoRuntimeException(final DittoRuntimeException exception, final Map<String, String> dittoHeaders) { final ThingErrorResponse errorResponse = ThingErrorResponse.of(exception, DittoHeaders.newBuilder(exception.getDittoHeaders()) .putHeaders(dittoHeaders) .build()); enhanceLogUtil(exception); final String stackTrace = stackTraceAsString(exception); log.info("Got DittoRuntimeException '{}' when ExternalMessage was processed: {} - {}. StackTrace: {}", exception.getErrorCode(), exception.getMessage(), exception.getDescription().orElse(""), stackTrace); handleCommandResponse(errorResponse); }
private void retrieveThing() { final DittoHeaders dittoHeaders = DittoHeaders.newBuilder() .correlationId("thingUpdater-sudoRetrieveThing-" + UUID.randomUUID()) .build(); final SudoRetrieveThing sudoRetrieveThingCmd = SudoRetrieveThing.withOriginalSchemaVersion(thingId, dittoHeaders); final String cmdType = sudoRetrieveThingCmd.getType(); final JsonSchemaVersion implementedSchemaVersion = sudoRetrieveThingCmd.getImplementedSchemaVersion(); final Predicate<JsonField> regularOrSpecialFields = FieldType.regularOrSpecial(); final JsonObject cmdJsonObject = sudoRetrieveThingCmd.toJson(implementedSchemaVersion, regularOrSpecialFields); final Object messageEnvelope = ShardedMessageEnvelope.of(thingId, cmdType, cmdJsonObject, dittoHeaders); // Send a message directly to the Things Shard Region. thingsShardRegion.tell(messageEnvelope, getSelf()); }
private void handleDittoRuntimeException(final DittoRuntimeException exception, final Map<String, String> dittoHeaders) { final ThingErrorResponse errorResponse = ThingErrorResponse.of(exception, DittoHeaders.newBuilder(exception.getDittoHeaders()) .putHeaders(dittoHeaders) .build()); enhanceLogUtil(exception); final String stackTrace = stackTraceAsString(exception); log.info("Got DittoRuntimeException '{}' when ExternalMessage was processed: {} - {}. StackTrace: {}", exception.getErrorCode(), exception.getMessage(), exception.getDescription().orElse(""), stackTrace); handleCommandResponse(errorResponse); }
private void retrieveThing() { final DittoHeaders dittoHeaders = DittoHeaders.newBuilder() .correlationId("thingUpdater-sudoRetrieveThing-" + UUID.randomUUID()) .build(); final SudoRetrieveThing sudoRetrieveThingCmd = SudoRetrieveThing.withOriginalSchemaVersion(thingId, dittoHeaders); final String cmdType = sudoRetrieveThingCmd.getType(); final JsonSchemaVersion implementedSchemaVersion = sudoRetrieveThingCmd.getImplementedSchemaVersion(); final Predicate<JsonField> regularOrSpecialFields = FieldType.regularOrSpecial(); final JsonObject cmdJsonObject = sudoRetrieveThingCmd.toJson(implementedSchemaVersion, regularOrSpecialFields); final Object messageEnvelope = ShardedMessageEnvelope.of(thingId, cmdType, cmdJsonObject, dittoHeaders); // Send a message directly to the Things Shard Region. thingsShardRegion.tell(messageEnvelope, getSelf()); }