MikeVoltmann
Occasional Observer

Projekt Web App Konfiguration via API anpassen, wie genau?

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

0 Kudos
4 Replies
marza
I'm new here

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

sebastianc
Crownpeak employee

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

0 Kudos

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

0 Kudos

Danke Marian.

0 Kudos