Im Apache Brooklyn Webinterface möchten wir einige Inhalte für die Systemmanager anzeigen. Der Inhalt ist zu lang, um als einfacher Sensorwert verwendet zu werden.Eine Aufgabe in den Webkonsolen-Ausführungsmodus (Management) schreiben Kontext
Unsere Idee war es, eine Aufgabe zu erstellen und den Inhalt in den Ausgabestream der Aufgabe zu schreiben und dann den Managern die REST-basierte URL wie folgt anzubieten: /v1/activities/{task}/stream/stdout (natürlich ist die Verbindung mit einigen netten Text maskiert)
der Stream und Aufgabe wird wie folgt erstellt:
scheintLOG.info("{} Creating Activity for ClusterReport Feed", this);
activity = Tasks.builder().
displayName("clusterReportFeed").
description("Output for the Cluster Report Feed").
body(new Runnable() {
@Override
public void run() {
//DO NOTHING
}
}).
parallel(true).
build();
LOG.info("{} Task Created with Id: " + activity.getId(), this);
Entities.submit(server, activity).getUnchecked();
die Aufgabe geschaffen werden und die interraction arbeitet völlig in Ordnung. Wenn ich jedoch über eine vorbereitete URL auf den Aufgaben-Ausgabestream von meinem Browser aus zugreifen möchte, erhalte ich den Fehler, dass die Aufgabe nicht existiert.
Unsere Idee ist, dass wir nicht im richtigen Management/Ausführungskontext sind. Die Webseite läuft in einem anderen Kontext als die Entitäten und ihre Sensoren. Wie können wir eine Aufgabe so platzieren, dass sie auch für den Kontext der Webkonsolen sichtbar ist?
Ist es möglich, den Inhalt in eine Datei zu schreiben und dann über Jetty (Brooklyns-Webserver) zum Download anzubieten? Das wäre ein viel einfacherer Weg.