private static DittoHeaders buildDevOpsDittoHeaders(final CharSequence correlationId) { return DittoHeaders.newBuilder() .schemaVersion(JsonSchemaVersion.V_2) .correlationId(correlationId) .build(); }
private DittoHeaders buildDittoHeaders(final AuthorizationContext authorizationContext, final Integer version, final String correlationId, final RequestContext ctx, @Nullable final String liveParam, final CustomHeadersHandler.RequestType requestType) { final DittoHeadersBuilder builder = DittoHeaders.newBuilder(); final Map<String, String> externalHeadersMap = getFilteredExternalHeaders(ctx.getRequest()); builder.putHeaders(externalHeadersMap); final JsonSchemaVersion jsonSchemaVersion = JsonSchemaVersion.forInt(version) .orElseThrow(() -> CommandNotSupportedException.newBuilder(version).build()); builder.authorizationContext(authorizationContext) .schemaVersion(jsonSchemaVersion) .correlationId(correlationId); authorizationContext.getFirstAuthorizationSubject().map(AuthorizationSubject::getId).ifPresent(builder::source); if (liveParam != null) { // once the "live" query param was set - no matter what the value was - use live // channel builder.channel(TopicPath.Channel.LIVE.getName()); } final DittoHeaders dittoDefaultHeaders = builder.build(); return handleCustomHeaders(correlationId, ctx, requestType, authorizationContext, dittoDefaultHeaders); }
private <A extends ThingModifiedEvent<? extends A>> void persistAndApplyEvent( final A event, final BiConsumer<A, Thing> handler) { final A modifiedEvent; if (thing != null) { // set version of event to the version of the thing final DittoHeaders newHeaders = event.getDittoHeaders().toBuilder() .schemaVersion(thing.getImplementedSchemaVersion()) .build(); modifiedEvent = event.setDittoHeaders(newHeaders); } else { modifiedEvent = event; } if (modifiedEvent.getDittoHeaders().isDryRun()) { handler.accept(modifiedEvent, thing); } else { persistEvent(modifiedEvent, persistedEvent -> { // after the event was persisted, apply the event on the current actor state applyEvent(persistedEvent); handler.accept(persistedEvent, thing); }); } }
private <A extends ThingModifiedEvent<? extends A>> void persistAndApplyEvent( final A event, final BiConsumer<A, Thing> handler) { final A modifiedEvent; if (thing != null) { // set version of event to the version of the thing final DittoHeaders newHeaders = event.getDittoHeaders().toBuilder() .schemaVersion(thing.getImplementedSchemaVersion()) .build(); modifiedEvent = event.setDittoHeaders(newHeaders); } else { modifiedEvent = event; } if (modifiedEvent.getDittoHeaders().isDryRun()) { handler.accept(modifiedEvent, thing); } else { persistEvent(modifiedEvent, persistedEvent -> { // after the event was persisted, apply the event on the current actor state applyEvent(persistedEvent); handler.accept(persistedEvent, thing); }); } }
.schemaVersion(jsonSchemaVersion) .authorizationContext(connectionAuthContext)
.schemaVersion(schemaVersionToCheck()) .build(); final ThingEvent versionedThingEvent = thingEvent.setDittoHeaders(versionedHeaders);
.schemaVersion(schemaVersionToCheck()) .build(); final ThingEvent versionedThingEvent = thingEvent.setDittoHeaders(versionedHeaders);
.getDittoHeaders() .toBuilder() .schemaVersion(JsonSchemaVersion.V_1) .build(); final RetrieveThing retrieveThingV1 = RetrieveThing.getBuilder(retrieveThing.getThingId(), dittoHeaders)