Automatic import of *.fsm
Author: dmihajluk
Publication Date: 1/29/2014 13:53
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
Tags: fs-module, fsm
-
Author: Anonymous - 1/29/2014 15:22
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
0 -
Author: dmihajluk - 1/29/2014 15:44
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.
0 -
Author: Hendrik - 1/30/2014 11:35
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
connectionwäre dann die "Admin"-Connection.Gruß, Hendrik
0 -
Author: feddersen - 2/12/2014 7:09
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
0 -
Author: pavone - 2/12/2014 7:16
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
0 -
Author: dmihajluk - 2/12/2014 7:37
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.
0
Vous devez vous connecter pour laisser un commentaire.
Commentaires
6 commentaires