Hallo Gemeinde,
mein momentanes Projekt wird immer umfangreicher und es gibt regelmäßig Stellen, bei denen ich in die Klasse gehen muss, und Dinge im Code verändern muss, um etwas Neues zum Laufen zu bringen.
Meine Idee war es jetzt, eine Config-Datei (z.B. im XML-Format) zu erzeugen, die Klassenname sowie Init-Argumente enthält.
Beispiel:
<component class="org.java-forum.views.threads.ThreadList" maxDisplay="25" displayedDateFormat="yyyy"/>
Mein Plugin-System soll jetzt folgendermaßen vorgehen:
- Config-Datei einlesen
- Component-entries parsen
- Parameter in eine Map schreiben
- alle Klassen, die via Plugin initialisiert werden sollen, müssen im Konstruktor eine Map aufnehmen.
Idealerweise handelt es sich dabei um Factories, die aus den Parametern in den Maps Instanzen erzeugen.
Ich würde mir diese Pluginschnittstelle über Class.forName() und die Constructor-Implementierungen erarbeiten.
Da das aber ziemlich Low-Level ist, dachte ich mir, dass es wohl auch brauchbare Implementierungen dazu geben müsste.
Bei meinen bisherigen Recherchen bin ich nur auf LGPL oder GPL-Libraries gestoßen.
Kennt jemand ggf. Projekte, die unter BSD oder ASL 2.0 veröffentlicht worden sind?
Beste Grüße
mein momentanes Projekt wird immer umfangreicher und es gibt regelmäßig Stellen, bei denen ich in die Klasse gehen muss, und Dinge im Code verändern muss, um etwas Neues zum Laufen zu bringen.
Meine Idee war es jetzt, eine Config-Datei (z.B. im XML-Format) zu erzeugen, die Klassenname sowie Init-Argumente enthält.
Beispiel:
<component class="org.java-forum.views.threads.ThreadList" maxDisplay="25" displayedDateFormat="yyyy"/>
Mein Plugin-System soll jetzt folgendermaßen vorgehen:
- Config-Datei einlesen
- Component-entries parsen
- Parameter in eine Map schreiben
- alle Klassen, die via Plugin initialisiert werden sollen, müssen im Konstruktor eine Map aufnehmen.
Idealerweise handelt es sich dabei um Factories, die aus den Parametern in den Maps Instanzen erzeugen.
Ich würde mir diese Pluginschnittstelle über Class.forName() und die Constructor-Implementierungen erarbeiten.
Da das aber ziemlich Low-Level ist, dachte ich mir, dass es wohl auch brauchbare Implementierungen dazu geben müsste.
Bei meinen bisherigen Recherchen bin ich nur auf LGPL oder GPL-Libraries gestoßen.
Kennt jemand ggf. Projekte, die unter BSD oder ASL 2.0 veröffentlicht worden sind?
Beste Grüße