Fragen zum neuen Pluginkonzept

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

Fragen zum neuen Pluginkonzept

Beitrag von treethingy »

Hallo,
ich wollte mich auch mal an der Erweiterung von TVBrowser beteiligen und hätte folgende Fragen:
1. warum findet der BeanShell Filter aufs verrecken nicht das TVRaterPlugin?
ich wollte nen Filter bauen der mir nur Sendungen ausspuckt die ne gute bewertung haben. Ich würde nur ungerne versuchen wollen aus den einer Sendung zugewiesenen Icons schlau zu werden... Irgendwelche Tipps?

2. auf welchem Wege kann ich mit anderen Plugins Interagieren. Nach http://wiki.tvbrowser.org/index.php/Das ... gins.28.29 soll ich ja getActivatedPlugins() benutzen, welches jedoch keine Plugins sondern nur deren Proxies (PluginAccess) zurückgibt, was mir nicht erlaubt konkrete Funktionalitäten von Plugins zu benutzen (z.B. "TVRaterPlugin.getDatabase()"). Wäre eine getPlugin() Methode für PluginAccess nicht sinnvoll?
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Das ist durchaus absicht :). Die Plugins sollen nur über eine definierte Schnittstelle miteinander kommunizieren können. Warum? Weil wir nur so garantieren können, das Fremd-Plugins noch weiterlaufen, wenn wir unsere Plugins (z.b. das Rater-Plugin) verändern.
Gast

Beitrag von Gast »

Hmm, womit die möglichkeiten arg eingeschränkt sind... Wie wärs denn um eine Erweiterung über die bestimmte Schnittstellen abgefragt werden können (ähnlich wie bei Eclipse). So könnte ein Plugin funktionalität nach draussen Freigeben (in Form von Schnittstellen) bliebe aber noch veränderbar (solange es weiter besagte Schnittstellen Freigibt).. Konkret dachte ich an etwas in diesem Sinne:

Code: Alles auswählen

  interface PluginAccess{
  ...
    Object queryInterface(String interface);
  ...
  }
die art des Interfaces müsste natürlich immer gleich sein, aber das liesse sich ja durch ordentliche Planung realisieren ;)

Wobei natürlich die Frage im Raum steht wie notwendig inter-plugin kommunikation iss... ich fänds schon sinnvoll, natürlich forciert das kompatibilitätsprobleme zwischen den plugins :roll:
pck
Plugin-Developer
Beiträge: 108
Registriert: 26 Jan 2005, 08:59
Wohnort: Ilmenau
Kontaktdaten:

Beitrag von pck »

Anonymous hat geschrieben:Hmm, womit die möglichkeiten arg eingeschränkt sind...
Eine Möglichkeit zur Kommunikation ist geblieben ... :

Code: Alles auswählen

public boolean canReceivePrograms();
public void receivePrograms(Program[]);
Wenn zwei Plugins eine gemeinsame spezialisierte Implementation von "Program" kennen können sie so kommunizieren. Mein "LocalImdb" Plugin liefert da zum Beispiel ein "class RatedProgram implements Program". Ein zukünftiges Druck-Plugin könnte so auf IMDb-Bewertungen einiger Sendungen zugreifen.

Problematisch ist dieses Verfahren, wenn man dasselbe Plugin mit mehreren zueinander inkompatibelen TV-Browser-Versionen anbieten will. (1.0.1 vs. 2.x) Eine Eclipse-artige Lösung wäre hier auf lange Sicht neckisch.
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Beitrag von bodo »

Eigene implementationen von Program sind aber nicht gerade Ratsam...die sorgen dafür das es eventuell an anderen stellen "knallt" bei der Übergabe.

QueryInterface ist ja auch nich vieeel besser, da dort beide Plugins immernoch wissen müssen, was wer kann. Finde ich auch nich sooo elegant.

Plugins sollen nix voneinander wissen. Ist zwar etwas krass, aber nur so kann man gewährleisten, das alles funktioniert. Alles andere ist von der Wartung von uns nicht mehr leistbar.
Antworten