psg
Returning Observer

Zugriff auf Plug-In-Konfiguration in Java

Jump to solution

Guten Tag liebe Community,

bei der Entwicklung eines WebeditToolbarActionsItemsPlugin nutzen wir Komponenten wie einem ExecutableToolbarActionsItem.

Hierbei binden wir auf dem Execute entsprechende Aktionen ein, die ein Script in Form eines Strings zur Verfügung stellen.

Nun möchten wir nach dem Klick auf in dem Plug-In gespeicherte Informationen zugreifen.

Diese Informationen wurden zuvor unter dem Konfigurations-Bereich (projektspezifischer Internal Jetty) eingepflegt.

Dazu nutzten wir diese Doku:

Entwicklerhandbuch für Komponenten (Beta) - Webanwendung

Hier finden jedoch keine Antwort darauf, wie wir aus unterem ToolbarContext darauf zugreifen können.

Wie geht das?

Vielen Dank im Voraus.

Mit freundlichen Grüßen

Philipp

0 Kudos
1 Solution

Accepted Solutions
Nitros
I'm new here

Klingt für mich als wäre hier der ModuleAdminAgent#getWebAppConfig(String,  String, WebAppId) die richtige Anlaufstelle.

Nehmen wir beispielhaft die folgende, vereinfachten module.xml:

<module>

    <name>foo</name>

    <version>1.0</version>

    <components>

        <web-app>

            <name>bar</name>

            <class>foo.bar.WebApp</class>

            <configurable>foo.bar.WebAppConfig</configurable>

            <web-xml>web.xml</web-xml>

            <resources>

                <resource>lib/foobar.jar</resource>

            </resources>

        </web-app>

    </components>

</module>

Dann würde ich davon ausgehen der Aufruf ist:

final ProjectWebAppId webAppId = ProjectWebAppId.Factory.create(project, WebEnvironment.WebScope.WEBEDIT);

final ModuleAdminAgent moduleAdminAgent = context.requireSpecialist(ModuleAdminAgent.TYPE);

moduleAdminAgent.getWebAppConfig("foo",  "bar", webAppId);

Das alles habe ich mir allerdings gerade erst anhand der API hergeleitet und daher nicht ausprobiert. Des Weiteren hohlt dies die Datei des <configurable> Tags, nicht andere Ressourcen. Soll es schlicht eine Properties Datei sein, dann würde ich sie der einfachheitshalber mit in das JAR packen. Soll eine externe Konfiguration möglich sein, so könnte man die Datei unabhängig vom Module ablegen oder das <configurable> Tag nutzen.

View solution in original post

0 Kudos
3 Replies
Nitros
I'm new here

Klingt für mich als wäre hier der ModuleAdminAgent#getWebAppConfig(String,  String, WebAppId) die richtige Anlaufstelle.

Nehmen wir beispielhaft die folgende, vereinfachten module.xml:

<module>

    <name>foo</name>

    <version>1.0</version>

    <components>

        <web-app>

            <name>bar</name>

            <class>foo.bar.WebApp</class>

            <configurable>foo.bar.WebAppConfig</configurable>

            <web-xml>web.xml</web-xml>

            <resources>

                <resource>lib/foobar.jar</resource>

            </resources>

        </web-app>

    </components>

</module>

Dann würde ich davon ausgehen der Aufruf ist:

final ProjectWebAppId webAppId = ProjectWebAppId.Factory.create(project, WebEnvironment.WebScope.WEBEDIT);

final ModuleAdminAgent moduleAdminAgent = context.requireSpecialist(ModuleAdminAgent.TYPE);

moduleAdminAgent.getWebAppConfig("foo",  "bar", webAppId);

Das alles habe ich mir allerdings gerade erst anhand der API hergeleitet und daher nicht ausprobiert. Des Weiteren hohlt dies die Datei des <configurable> Tags, nicht andere Ressourcen. Soll es schlicht eine Properties Datei sein, dann würde ich sie der einfachheitshalber mit in das JAR packen. Soll eine externe Konfiguration möglich sein, so könnte man die Datei unabhängig vom Module ablegen oder das <configurable> Tag nutzen.

0 Kudos
psg
Returning Observer

Hallo Jens,

wir sind einen WorkAround über die Projekt-Komponenten gegangen, da war das leichter für uns.

Deine Variante sieht gut aus, haben wir aber noch nicht getestet.

Ich finde es trotzdem sinnvoll, das mal als Beispiel in der Community stehen zu haben.

Danke für deine Hilfe.

Viele Grüße

Philipp

0 Kudos
mbergmann
Crownpeak employee

Hallo Philipp,

um die Definition und das Auslesen von <configurable>-Werten zu vereinfachen gibts auch noch das hier:

GenericConfig - a utility lib to create &lt;configurable&gt; dialogs

Viele Grüße

Michael

0 Kudos