- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Automatic import of *.fsm
Hallo,
ich versuche gerade eine Klasse zu schreiben, die es ermöglicht FirstSpirit Module automatisiert zu installieren.
Auf meiner Suche bin ich auf diesen Beitrag gestoßen: https://community.e-spirit.com/ideas/1220#comment-2464
Dort wird beschrieben, wie man so etwas implementieren kann. Allerdings funktioniert es bei mir nicht.
Es gibt bei mir in de.espirit.firstspirit.access.Connection keine getManager(Class<?>) methode.
Ich verwende momentan diese Version: de.espirit.firstspirit:firstspirit:fs-server:5.0.318-build-1.0
- Labels:
-
Developers
-
Documentation
-
Knowledgebase

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Danil,
um Module hochladen zu können benötigst du eine AdminConnection, da man Module über die Server- und Projekteinstellungen auch nur als Admin-User vornehmen kann.
Danach kannst du eine Klasse schreiben, die mit den Admin-Userdaten eben eine solche Connection aufbaut. Darüber kann man sich dann den ModulManager holen
((ManagerProvider) connection).getManager(ModuleManager.class);
Diese Methoden gibt es soweit ich weiß bereits seit FS 4.1 oder 4.2. Du musst dafür allerdings die zu eurer FS-Version passende fs-client.jar in den Build-Abhängigkeiten haben.
Dann kann das FSM als InputStream hochgeladen und mit "alle Rechte" ausgestattet werden:
InputStream modulInputStream = new FileInputStream(module);
Pair<String, String> pair = modulManager.install(modulInputStream);
modulManager.setModuleTrusted(pair.getKey(), true);
Falls du Services in Modulen verwendest war es bisher auch immer noch notwendig diese zu restarten. Wir starten einfach immer den Preview-Tomcat new (wir laufen nicht auf dem internen Jetty), das ist safe und auch fix per Ant zu automatisieren.
Viele Grüße,
Nils
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Nils,
danke für die schnelle Antwort!
Kannst du bitte noch etwas näher beschreiben wo ich die "AdminConnection" her kriege?
Ich finde die AdminConnection weder in fs-server.jar noch in fs-client.jar.
Danke im Voraus!
Gruß
Danil.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Nils,
ich denke mit der AdminConnection ist kein Objekttyp gemeint sondern eine Connection die mit den Benutzerinformationen des Admin Benutzers erstellt wurde.
z.b:
String host = "your.firstpirit.host";
int port = 1089;
int mode = ConnectionManager.SOCKET_MODE;
String login = "Admin";
String password = "Admin";
Connection connection = ConnectionManager.getConnection(host, port, mode, login, password);
Die connection
wäre dann die "Admin"-Connection.
Gruß, Hendrik
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hier bitte beachten, dass der ModuleManager keine API ist und sich damit potentiell bei jedem Release ändern kann. Für FirstSpirit 5.1 ist es eine entsprechende API-Funktionalität geplant, siehe Automatische Installation von Modulen
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Danil,
benötigst du noch weitere Hilfe oder haben dir die Antworten von Nils, Hendrik und Christoph 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
Tim
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ich habe es letztendlich wie folgt realisiert:
ServerConnection connection = (ServerConnection) ConnectionManager.getConnection(
host, port, mode, username, password);
...
ModuleManager moduleManager = connection.getManager(ModuleManager.class);
und der Rest wie im Beitrag vom Nils
Viele Grüße
Danil.

