Für die PlugIn-Entwicklung: lib-dir für 3rd-party Software

Hier haben Plugin-Entwickler die Möglichkeit, sich auszutauschen.
Antworten
Gast

Für die PlugIn-Entwicklung: lib-dir für 3rd-party Software

Beitrag von Gast »

Hallo,

da mein PlugIn recht viel allgemeine Software benutzt (Jakarta-Commons), wäre es nett, wenn es ein lib-Verzeichnis gäbe, das solche jars aufnehemen kann. Selbiges könnte der TV-Brovser auch nutzen, dann wäre das jar auch kleiner.
Diese 3rd-Party Software kann der TV-Browser per Classpath (den ich auch nicht "von außen" beeinflussen kann) für die PlugIns zur Verfügung stellen. Ich könnte damit mein PlugIn von ca. 1,7 MB auf 350 KB verkleinern, wenn ich Jakarta-libs extra deployen würde. Und die Entwicklung wäre auch einfacher...

Gruß, Lutz
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Das bringt aber sau sau viele Probs mit. Mehr als alle Vorteile die man durch eine kleinere Jar-Größe hat.

1. Welche Version der jakarta-commons? Bei jeder TVB-Installation würde man natürlich die neueste Version gerne haben, aber dann laufen einige Plugins nicht unter den alten Versionen

2. Plugins müßten beim installiern übers Netz auch die Bibliotheken, die nicht im TVB enthalten sind, irgendwie mitliefern

3. Was ist wenn 2 verschiedene Plugins 2 verschieden Versionen der Bibliothek brauchen?

Wir werden die größe der Jars erhöhen und du hast dein Problem erstmal gelöst. Das ist besser. Find ich jedenfalls.
Gast

Beitrag von Gast »

Zugegeben, das ist alles richtig... aber:

Wenn libs mit TVB ausgeliefert werden, haben die Plugins schon eine definierte Basis. Plugins müssen dann auch auf neue Versionen von TVB (inkl. neuer Libs) portiert werden, so wie das wohl heute auch geschehen muss (z.B ist mein PlugIn nicht ohne Probs auf der 2.1 beta3 lauffähig).

Und das Problem mit den doppelten Versionen müsste heute schon da sein, den TVB benutzt ja auch 3rd Party Libs. Wenn ein Plugin andere Versionen davon mitbringt, knirscht es doch auch, oder?

Gruß, Lutz.
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Also 2.0er Plugins laufen auch mit 2.1. Jedenfalls wüßte ich nicht, wieso das nicht der Fall sein sollte.

Und die Libs: Dein Plugin ist in einem eigene Classloader. Da kommt sich nix in die Quere.
Gast

Beitrag von Gast »

Zu TVB 2.1: Ich mache in meiner Konfiguration eine Senderzuordnung und zeige die Liste der TVB-Sender in einer Listbox an. Im 2.01er sehe ich alle TVB-Sender, im 2.1er nicht mehr... da muss ich mal nachforschen.

Zum ClassLoading: wenn ich das richtig verstanden habe, dann werden ClassLoader als Kette realisiert, so dass in der Reihenfolge von oben (DefaultClassLoader) nach unten (spezieller ClassLoader, so wie im TVB-PluginLoading). Wenn ich jetzt eine Klasse brauche (z.B. den Logger von Log4J) dann wird doch erst im allgemeinen ClassLoader gesucht (also, das was TVB mitbringt) und dann im Plugin-ClassLoader. Also "gewinnt" die Logger-Klasse aus TVB und nicht meine eigene...

Oder habe ich da was falsch verstanden...?
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Ich hab das so verstanden, das der URLClassloader gewinnt.
Gast

Beitrag von Gast »

Ich bin da mal (bei Bauarbeiten an meinem PlugIn) druchgesteppt und es werden erst die Vater-ClassLoader bemüht...
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Das ist schlecht. Aber dann leider nicht zu ändern. Ich bin jedenfalls gegen dieses Lib-Directory. Die Probleme sind einfach zu groß. Zumal das dann dafür sorgt, das der TVBrowser nicht mehr ordentlich Web-Startable machbar ist. Das einzige was uns momentan nämlich nur fehlt ist das Icon-Laden. Wenn jetzt noch das Lib-Zeugs dazukommt, wirds wieder kompliziert. ICH WILL DAS NICH ;).
Gast

Beitrag von Gast »

bodo hat geschrieben:... ICH WILL DAS NICH ;).
...ist ja gut... war ja nur 'ne Idee... Dann muss mein Plugin eben groß bleiben...

Gruß, Lutz.
Antworten