Seite 6 von 11

Re: JVerein - Wie kann es weitergehen?

Verfasst: Freitag 28. Oktober 2022, 12:48
von guckuck
Hallo zusammen,

ich bin gerade dabei, Eclipse für das Projekt einzurichten. Allerdings komme ich mit dem Plugin nicht weiter. Das Ant-Script erstellt zwar problemlos neue Versionen des Plugins, aber die Installation in Jameica schlägt (meistens) fehl. Ich erhalte dann folgende Fehlermeldung:

Code: Alles auswählen

java.lang.ClassNotFoundException: loader.jameica: class not found: de.jost_net.JVerein.JVereinPlugin
Mindestens zweimal hat es aber funktioniert, dann nach einem Update nicht mehr, selbst wenn ich das Working-Directory lösche.

Generell die Frage: Wie habt ihr eure Testumgebung eingerichtet? Wie ist der schnellste Weg, eine funktionierende Testumgebung einzurichten? Wie startet ihr Jameica? Aus Eclipse heraus?

Viele Grüße
Kay

Re: JVerein - Wie kann es weitergehen?

Verfasst: Freitag 28. Oktober 2022, 13:26
von hibiscus

Re: JVerein - Wie kann es weitergehen?

Verfasst: Freitag 28. Oktober 2022, 16:54
von guckuck
Hallo,

danke, diese Seite kenne ich schon. Ich habe jetzt herausgefunden, dass es ausreicht, die jar-Datei im Pluing-Verzeichnis auszutauschen.

Laut Anleitung kann man auch direkt auf das Plugin-Verzeichnis im release-Pfad verlinken. Das Problem ist nur, dass das ANT-Script immer ein neues Verzeichnis anlegt, auch wenn ich nur das JAR erzeuge und die Dev-Version (fast). Wie kann man das beheben? Muss ich das BUILD-Script anpassen?

Dann sieht mein Workflow aktuell so aus: ANT-Script von jverein laufen lassen. Die JAR im Plugin-Verzeichnis von Jameica ersetzen und Jameica aus Eclipse heraus starten. Hibiscus ist dann bereits installiert.

Viele Grüße
Kay

Re: JVerein - Wie kann es weitergehen?

Verfasst: Freitag 28. Oktober 2022, 17:04
von hibiscus
Die JAR-Datei auszutauschen, ist keine saubere Lösung. Verlinke in der "de.willuhn.jameica.system.Config.properties" auf den Projekt-Ordner von Jverein. Also in den Ordner, in dem sich die Unterordner src, bin, lib usw. befinden. Dann lädt Jameica direkt die von Eclipse nach "bin" compilierten Klassen und du hast auch Hotcode-Replacement. Das heisst, du kannst in Jverein Code ändern und siehst sofort die Änderung, ohne Jameica neu starten zu müssen. Wichtig ist, dass du mit "jameica.plugin.dir.0=../jverein" den korrekten relativen Pfad findest - beginnend vom Jameica-Projektordner in Eclipse. Wenn Jameica und JVerein direkt nebeneinander liegen, reicht "../jverein". Ansonsten halt ggf. "../../jverein", wenn JVerein eine Ebene höher liegt. Unter https://www.willuhn.de/wiki/doku.php?id=develop:eclipse ist das aber alles beschrieben.

Re: JVerein - Wie kann es weitergehen?

Verfasst: Freitag 28. Oktober 2022, 17:24
von guckuck
Super, das scheint funktioniert zu haben. Ich musste das Verzeichnis für Plugins von dem User-Verzeichnis auf das Programm-Verzeichnis ändern.

Hotcode-Replacement hat auf Anhieb noch nicht funktioniert. Verstehe ich das richtig, dass ich in Eclipse die Klassen einfach speichern muss und zur Laufzeit von Jameica werden die Klassen verwendet? Habe testweise nur ein sysout geändert.

Re: JVerein - Wie kann es weitergehen?

Verfasst: Samstag 29. Oktober 2022, 09:14
von hibiscus
guckuck hat geschrieben: Freitag 28. Oktober 2022, 17:24 Hotcode-Replacement hat auf Anhieb noch nicht funktioniert. Verstehe ich das richtig, dass ich in Eclipse die Klassen einfach speichern muss und zur Laufzeit von Jameica werden die Klassen verwendet? Habe testweise nur ein sysout geändert.
Ja, genau das bedeutet Hotcode-Replacement. Die Änderung wird sofort wirksam. Java ersetzt hierbei zur Laufzeit - sobald du die Datei gespeichert hast - die Klasse gegen die neue. Das geht allerdings nicht ubegrenzt. Wenn z.B. neue Methoden hinzukommen oder sich Methoden-Signaturen ändern, dann musst du Jameica neu starten. Wenn das Hotcode-Replacement nicht funktioniert hat, zeigt dir Eclipse das aber auch an. Wichtig ist, dass du Jameica in Eclipse mit "Debug" startest und nicht mit "Run".

Re: JVerein - Wie kann es weitergehen?

Verfasst: Sonntag 30. Oktober 2022, 10:28
von guckuck
Super, vielen Dank, das hat wunderwar geklappt.

Mein erster Pull-Request ist online. Er bezieht sich auf folgenden Fehler: viewtopic.php?t=7150 bzw. https://github.com/openjverein/jverein/issues/20

Re: JVerein - Wie kann es weitergehen?

Verfasst: Sonntag 30. Oktober 2022, 10:39
von guckuck
Während der letzten beiden Tage, als ich mich in den Code und das Problem eingearbeitet, habe ich mir mehrmals gewünscht, es gäbe eine direktere Art der Kommunikation (Signal, Telegram, IIRC, Discord etc.). Nun weiß ich nicht, wie aktiv ihr seid. Aktuell gibt es einige offene Pull-Requests. Dennoch dir Frage, wie ihr dazu steht? Prinzipiell wurde mir auch hier sehr schnell geholfen. Danke nochmal. :-)

Re: JVerein - Wie kann es weitergehen?

Verfasst: Dienstag 1. November 2022, 23:54
von FullHD
Hallo zusammen,

ich bin leider kein Experte in Github und würde mich daher freuen, wenn ihr mir sagt wie man mein Anliegen am besten umsetzen könnte:
Vor einiger Zeit hat hier im Forum jemand eine Lösung für die Notwendigkeit von "Belegnummern", die abweichend von der automatischen Nummerierung z.B. in meinem Verein gebraucht werden, entwickelt und veröffentlicht https://github.com/jverein/jverein/pull/62

Ich habe manuell jetzt alle Änderungen über den Editor in meine Version übertragen, sodass ich das Feature zum Glück mit OpenJVerein weiter nutzen kann.
Da ich an unterschiedlichen Betriebssystemen arbeite, habe ich jetzt eine Windows Version mit Belegnummern und eine ohne.

Meine Frage: Wie kann man die von VinRud entwickelte Lösung jetzt am besten zur Integration in JVerein vorschlagen?

Re: JVerein - Wie kann es weitergehen?

Verfasst: Donnerstag 10. November 2022, 08:06
von guckuck
Hallo FullHD,

also, vermutlich müssten wir eine Patch des PullRequest bei OpenVerein einspielen und dann die Änderungen in Ruhe testen. Es handelt sich ja um mehrere Änderungen. Erschwerend kommt hinzu, dass auch die Code-Formatierung geändert wurde, sodass es sehr viele unwesentliche Änderungen gibt.

Ich versuche zumindest den ersten Teil (Patch einspielen und als PullRequest bei OpenVerein hinzufügen) umzusetzen. Dann müssten wir das noch ausführlich testen.

Edit: Hat funktioniert. Es gibt nun einen Pull Request in OpenVerein, den wir uns anschauen und testen können.

Viele Grüße
Kay