@Override public void accept(JsonObject event) { connector.publishHttpEvent(eventId.apply(event), payload.apply(event)); } }
/** * Publishes events derived from {@code stream} using the topic * {@link EVENTS} as a JsonObject containing eventId, event, * and qos keys. */ @Override public TSink<JsonObject> events(TStream<JsonObject> stream, Function<JsonObject, String> eventId, UnaryOperator<JsonObject> payload, Function<JsonObject, Integer> qos) { stream = stream.map(event -> { JsonObject publishedEvent = new JsonObject(); publishedEvent.addProperty("eventId", eventId.apply(event)); publishedEvent.add("event", payload.apply(event)); publishedEvent.addProperty("qos", qos.apply(event)); return publishedEvent; }); return PublishSubscribe.publish(stream, IotDevicePubSub.EVENTS_TOPIC, JsonObject.class); }
/** * Publishes events derived from {@code stream} using the topic * {@link EVENTS} as a JsonObject containing eventId, event, * and qos keys. */ @Override public TSink<JsonObject> events(TStream<JsonObject> stream, Function<JsonObject, String> eventId, UnaryOperator<JsonObject> payload, Function<JsonObject, Integer> qos) { stream = stream.map(event -> { JsonObject publishedEvent = new JsonObject(); publishedEvent.addProperty("eventId", eventId.apply(event)); publishedEvent.add("event", payload.apply(event)); publishedEvent.addProperty("qos", qos.apply(event)); return publishedEvent; }); return PublishSubscribe.publish(stream, IotDevicePubSub.EVENTS_TOPIC, JsonObject.class); }
return HttpStreams.<JsonObject, JsonObject> requestsWithBody(stream, clientCreator, t -> HttpPut.METHOD_NAME, uri, t -> new ByteArrayEntity(body.apply(t).toString().getBytes(StandardCharsets.UTF_8)), HttpResponders.json());
t -> new ByteArrayEntity(body.apply(t).toString().getBytes(StandardCharsets.UTF_8)), HttpResponders.json());
@Override public void accept(JsonObject event) { connector.publishGWEvent(eventId.apply(event), payload.apply(event), qos.apply(event)); } }
@Override public void accept(JsonObject event) { connector.publishEvent(eventId.apply(event), payload.apply(event), qos.apply(event)); } }
@Override public void accept(JsonObject event) { connector.publishDeviceEvent(fqDeviceId.apply(event), eventId.apply(event), payload.apply(event), qos.apply(event)); } }
@Override public TSink<JsonObject> events(TStream<JsonObject> stream, Function<JsonObject, String> eventId, UnaryOperator<JsonObject> payload, Function<JsonObject, Integer> qos) { stream = stream.map(e -> { JsonObject c = new JsonObject(); JsonObject evPayload = payload.apply(e); c.addProperty(CMD_DEVICE, EVENT_CMD_DEVICE); c.addProperty(CMD_ID, getCommandIdFromEvent(eventId.apply(e), evPayload)); c.add(CMD_PAYLOAD, evPayload); c.addProperty(CMD_FORMAT, "json"); c.addProperty(CMD_TS, System.currentTimeMillis()); return c; }); return handleEvents(stream); }
/** * {@inheritDoc} * * <p>The event is published to the configured MQTT {@code mqttDevice.event.topic.pattern}, * as described in the above class documentation, substituting the value returned * by the {@code eventId} function for "{EVENTID}" in the pattern. * The MQTT message's payload is the JSON representation * of the JsonObject stream tuple. */ @Override public TSink<JsonObject> events(TStream<JsonObject> stream, Function<JsonObject, String> eventId, UnaryOperator<JsonObject> payload, Function<JsonObject, Integer> qos) { Function<JsonObject, String> topic = jo -> eventTopic(eventId.apply(jo)); Function<JsonObject,byte[]> payloadFn = jo -> JsonFunctions.asBytes().apply(payload.apply(jo)); return connector.publish(stream, topic, payloadFn, qos, jo -> retainEvents); }