Gemeinsame Konfiguration für Plugin und DataService

Hier haben Plugin-Entwickler die Möglichkeit, sich auszutauschen.
Antworten
UPollaehne
Plugin-Developer
Beiträge: 103
Registriert: 06 Mai 2006, 22:44
Wohnort: Karlsruhe

Gemeinsame Konfiguration für Plugin und DataService

Beitrag von UPollaehne »

Hi,

Ich habe hier zwei Plugins, eines davon ist ein DataService.
Beide benötigen gemeinsame Konfigurationsdaten.

Wie kann ich das realisieren, denn die beiden können ja nicht direkt miteinander kommunizieren und gemeinsame Verzeichnisse haben sie auch nicht (ausser dem AbstractTvDataService.getPluginManager().getTvBrowserSettings().getTvBrowserUserHome()).

Gibt es eigentlich noch eine andere Möglichkeit eine zusätzliche Bibliothek nur einmal in der VM zu laden als sie im System Classpath zu verankern (soweit ich das sehe, wird ja jedes Plugin mit einem eigenen Classloader geladen)?
Ullrich.
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Ne, sowas geht nicht.

Wir wollen aber in 3.0 das Plugin-System umbauen, so das es dann auch möglich wird, das ein Plugin Daten und GUI-Krams gleichzeitig liefern kann.
UPollaehne
Plugin-Developer
Beiträge: 103
Registriert: 06 Mai 2006, 22:44
Wohnort: Karlsruhe

Beitrag von UPollaehne »

bodo hat geschrieben:Ne, sowas geht nicht.
Das war genau das, was ich nicht hören wollte. :P
Dann muss ich mir für die Zeit bis zur 3.0 etwas anderes ausdenken, denn die Daten um die es geht (Senderliste des DVBViewers) kann ich nicht für beide Plugins einzeln holen (das dauert mal locker über 10 Sekunden).
Wir wollen aber in 3.0 das Plugin-System umbauen, so das es dann auch möglich wird, das ein Plugin Daten und GUI-Krams gleichzeitig liefern kann.

Super, ist zwischen 2.7 und 3.0 noch ein 2.8 und 2.9 geplant, oder geht es nach der 2.7 Release auf die 3.0 zu?
Ullrich.
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Also bis jetzt ist geplant, direkt nach 2.7 final mit 3.0 anzufangen. Da wir uns da aber einen etwas größeren Umbau vorgenommen haben, dauert das dann bestimmt, bis das fertig wird.
ds10
Site Admin
Beiträge: 17742
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Beitrag von ds10 »

Es wird aber zwischenzeitlich dann kleinere Updates für 2.7 geben, da wir ja nicht 2 Jahre (rein persönliche Schätzung der Dauer der Entwicklung von 3.0) mit den Releases pausieren wollen. ;-)
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
UPollaehne
Plugin-Developer
Beiträge: 103
Registriert: 06 Mai 2006, 22:44
Wohnort: Karlsruhe

Beitrag von UPollaehne »

Oh, ich sehe schon, ein Workaround ist nötig, da das doch ein wenig länger dauern wird. :)

Spricht etwas dagegen, wenn ich solange eine modifizierte tvbrowser.exe ausliefere, die gleich die nötigen JARs in den System Classpath hängt?
Das sollte launch4j doch auch locker unterstützen, oder?

Praktisch wäre natürlich auch, wenn die 3.0 ein extra Verzeichnis bietet, in das man systemweit verfügbare JARs legen kann, wobei das natürlich ein zweischneidiges Schwert ist, denn da könnten dann auch JARs landen, die anderen Plugins das Genick brechen.
Ullrich.
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

UPollaehne hat geschrieben:Praktisch wäre natürlich auch, wenn die 3.0 ein extra Verzeichnis bietet, in das man systemweit verfügbare JARs legen kann, wobei das natürlich ein zweischneidiges Schwert ist, denn da könnten dann auch JARs landen, die anderen Plugins das Genick brechen.
Pfui! Sowas will ich wirklich nich haben. Das ist wieder das übliche Chaos wie bei Java damals mit Xerces und dem Endorsed-Verzeichnis.
UPollaehne
Plugin-Developer
Beiträge: 103
Registriert: 06 Mai 2006, 22:44
Wohnort: Karlsruhe

Beitrag von UPollaehne »

bodo hat geschrieben:Pfui! Sowas will ich wirklich nich haben. Das ist wieder das übliche Chaos wie bei Java damals mit Xerces und dem Endorsed-Verzeichnis.
<judge-dredd>Ich wusste, dass er das sagen würde</judge-dredd>
Sobald ich beide Plugin zusammen fassen kann, ist mein Interesse an so einem Verzeichnis auch sehr gering geworden, da ich dann eher (so wie bei tvbrowser.jar) alles in ein JAR zusammen fasse.
Ullrich.
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Am einfachsten wäre es wirklich, wenn dein Plugin direkt alles mitliefern würde und ohne Modifikation am TVB klarkommt. Alles andere ist nur gefuddel und führt zu komischen Fehlern.

Musst du das wirklich per Com-Bridge machen? Kann man das nicht eleganter lösen?
UPollaehne
Plugin-Developer
Beiträge: 103
Registriert: 06 Mai 2006, 22:44
Wohnort: Karlsruhe

Beitrag von UPollaehne »

bodo hat geschrieben:Am einfachsten wäre es wirklich, wenn dein Plugin direkt alles mitliefern würde und ohne Modifikation am TVB klarkommt. Alles andere ist nur gefuddel und führt zu komischen Fehlern.
Ja, wäre einfach, wenn es nur ein Plugin wäre. Es sind aber zwei und damit beginnt das Problem. Bei einem könnte ich alles zusammen packen, bei zweien muss ich dafür sorgen, dass com4j nur einmal da ist.
Musst du das wirklich per Com-Bridge machen? Kann man das nicht eleganter lösen?
Die COM Schnittstelle ist die eleganteste Schnittstelle zum Zugriff auf den DVBViewer. Die Kommandozeile bietet nicht die Hälfte von dem, was ich brauche (kein EPG Abruf, keine Senderliste, etc.). Über Window Messages bekomme ich auch nur die Hälfte der Funktionen.
Früher habe ich mal versucht, die Senderliste aus der Datei auszulesen, in der der DVBViewer sie speichert, das hilft mir aber nicht, wenn ich die aufzunehmenden Sendungen eintragen will (zumal mir nur die COM Schnittstelle sagt, dass eine Sendung aufgrund von Überschneidungen nicht aufgenommen werden kann).
Und bevor jetzt die Frage aufkommt: Nein, die schon vorhandene jcom (ist wohl für den Outlook Im-/Export) benutze ich nur, wenn ich massiv dazu gezwungen werde. Der Unterschied zwischen den beiden ist ungefähr so wie die direkte Benutzung einer Java Klasse (com4j) und der Benutzung einer Klasse über Reflection. Was würdest Du vorziehen?
Da ich aber kein Outlook besitze, kann ich nicht so einfach eine alternative Implementierung dieses Im-/Exporters liefern, was ich ansonsten sofort machen würde um jcom zugunsten von com4j aus der Installation zu kicken.
Ullrich.
Antworten