Search the FirstSpirit Knowledge Base
Guten Tag liebe Community
wir haben bei unserem Kunden ein Modul im Einsatz, das eine Konfigurationsoberfläche bietet und pro Projekt konfiguriert werden muss.
Nun Versuchen wir dies über die API zu bewerkstelligen, damit wir nicht in alle 47 Projekte müssen um alles für Preview und Live zu konfigurieren.
Dabei bin ich auf ein Problem gestoßen.
Ich beschreibe zunächst das Vorgehen. Im Anhang befindet sich aber auch ein einfacher Beispiel Code.
Innerhalb des Moduls gibt es eine "Properties"-Datei, die in der module.xml als Ressource für die Webapp aufgeführt ist.
Ich greife zunächst auf den ModuleAdminAgent zu mit dem ich mir die WebAppConfig holen kann
moduleAdminAgent.getWebAppConfig(ModulName,ComponentName,WebAppId)
nun habe ich das Konfigurationsverzeichnis und kann mit einem "obtain" ein FileHandle der Konfigurationsdatei erhalten. Diese kann ich mit load in eine "java.util.Properties" laden um auf die einzelnen Values zuzugreifen.
Nachdem ich die Properties geladen habe, ändere ich die Werte, die projektspezifisch geändert werden müssen und speichere meine Änderungen wie folgt:
final ByteArrayOutputStream out = new ByteArrayOutputStream();
currentWebAppProperties.store(out,"Module - Configuration");
configFile.save(new ByteArrayInputStream(out.toByteArray()));
currentWebAppProperties ist vom Typ java.util.Properties
configFile ist vom Typ FileHandle
Wenn ich im Anschluss über den Servermanager die Konfiguration lade, dann sind noch immer die alten Werte vorhanden. Bei einem Deployment der WebApp sind auch im Dateisystem die alten Werte vorhanden.
Bei einem erneuten Aufruf der Konfigurationsdatei über die API erhalte ich die von mir gespeicherten richtigen Werte.
Jetzt ist in diesem Fall meine Frage:
Bin ich im falschen Konfigverzeichnis?
Muss ich an einer bestimmten Stelle einen Refresh durchführen?
Ist das erhaltende FileHandle dazu gedacht die Konfiguration zu verändern?
Wie kann ich vorgehen um mein Ziel zu erreichen?
Mit freundlichem Gruß
Mike
FS Version 5.2.422
Java8
Hallo Mike,
das ist durchaus möglich, dass Du die Datei unter dem falschen Pfad abgelegt hast. Wenn Du Konfigurationsdateien für Project-Apps schreiben willst, dann ist die Project-App-ID Teil des Pfades.
Z.B.
<FS Server Root>data\projects\project_<ID>\modules\<Module-ID>.<ProjectApp-ID>
Legt Du die Datei unter <FS Server Root>data\projects\project_<ID>\modules\<Module-ID> ab, wird sie nicht verwendet.
Grüße Marian
Hallo Mike,
benötigst Du noch weitere Hilfe oder haben Dir die Antworten von Marian bereits geholfen?
In diesem Fall wäre es super, wenn Du die "richtige Antwort" entsprechend markierst, damit auch andere
Community-Teilnehmer diese auf den ersten Blick finden. Solltest Du zwischenzeitlich eine eigene Lösung
gefunden haben, wäre es nett, wenn Du diese hier bereitstellst.
Viele Grüße
Sebastian
Hallo Sebastian,
leider war ich im Urlaub. Daher auch die späte Reaktion auf die Diskussion.
Das was Marian geschrieben hat, haben wir kurze Zeit später auch herausgefunden. Dies hat uns auf jedenfall auf den richtigen Weg gebracht.
Viele Grüße
Mike
Danke Marian.