TV-Browser mit Eclipse bauen

Aus TV-Browser Wiki
Version vom 9. August 2009, 15:38 Uhr von Bananeweizen⧼word-separator⧽⧼parentheses⧽ ⧼parentheses⧽
⧼revision-nav⧽
Wechseln zu: Navigation⧼comma-separator⧽Suche

Diese Anleitung beschreibt, wie man TV-Browser in Eclipse entwickeln, compilieren und debuggen kann. Eine Alternative dazu ist das Bauen auf der Kommandozeile, das wir aber nicht empfehlen. In den folgenden Abschnitten wird dir erklärt, was du wofür brauchst und wie machen musst.

TV-Browser bauen

Java 1.6 installieren

Damit man überhaupt irgendwas mit dem TV-Browser tun kann, muss Java 1.6 (oder höher installiert sein). Wir unterstützen prinzipiell nur Sun Java und das OpenJDK. Du kannst Java von Sun herunterladen: http://java.sun.com/javase/downloads/index.jsp Installiere dabei nach Möglichkeit ein "Java SDK" (oder "JDK"). Im Gegensatz zu einer "JRE" sind dabei auch die Quelltexte von Java selbst enthalten, die das Debuggen sehr viel angenehmer machen.

Eclipse installieren

Eclipse ist die von uns favorisierte Entwicklungsumgebung. Lade von http://www.eclipse.org ein für dein OS passendes Package. Falls dich die Auswahl verwirrt: Zumindest die Java-Unterstützung muss bei deinem Paket namentlich erwähnt werden.

Subclipse installieren

Subclipse ermöglicht den Zugriff auf das SVN-Repository mit dem TV-Browser-Code direkt aus Eclipse heraus. Über den Menüpunkt Help->Install Software->Available Software->Add site fügst du diese Update Site hinzu: http://subclipse.tigris.org/update_1.6.x Danach kannst du Subclipse installieren (am besten auch die Libraries, die "recommended" sind). Neustarten.

Workspace anlegen

Wenn du Eclipse startest, fragt es dich nach einem Workspace. Lege einen neuen Workspace an, damit du den TV-Browser nicht mit anderen Projekten durcheinander wirfst. Stelle dann nach dem Eclipse-Start unter Preferences->General->Workspace->Text file encoding die Kodierung "UTF-8" ein. Sonst bekommen wir Probleme mit der Kodierung von Sonderzeichen.

TV-Browser-Code aus dem SVN holen

Danach kannst du den TV-Browser-Quellcode aus dem Repository holen. Dazu geh auf "File" -> "New" -> "Other" und wähle unter "SVN" "Checkout Project from SVN".

Wenn es diesen Eintrag in der Projektauswahl bei dir nicht gibt, hast du das Subclipse-Plugin nicht installiert. Schau nochmal weiter oben nach.

Jetzt wähle "Create a new repository location". Als URL gib https://tvbrowser.svn.sourceforge.net/svnroot/tvbrowser ein. Markiere im neu angelegten Repository das Unterverzeichnis "trunk"->"tvbrowser" und beende den Dialog mit einem Klick auf "Finish".

Java-Projekt anlegen

Im neu erscheinenden Dialog zum Anlegen eines Projektes wähle "Java Project". Gib dem Projekt einen sinnvollen Namen wie "TV-Browser". Prüfe die Einstellung "JRE" in diesem Dialog. TV-Browser muss für Java 6 compiliert werden. Wenn also eine JRE mit einer Version kleiner als Java 6 ausgewählt ist, dann benutze "Use a specific execution environment" und stelle Java 6 ein. Achtung: Wenn du auch Code ändern willst, dann benutze nach Möglichkeit auch keine JRE mit einer höheren Version als Java 6. Es kann sonst passieren, dass du Methoden in deinem Quellcode verwendest, die erst in höheren Java-Versionen vorhanden sind. Beim Entwickeln führt das dann nicht zu Compilierfehlern, aber zur Laufzeit gibt es dann eine Exception.

Bei "Project layout" wähle "Create separate source and output folders" und beende den Dialog mit "Finish".

Betriebssystemspezifischen Code ausschließen

Jetzt braucht der Computer eine Weile, um alles herunterzuladen. Wenn er fertig ist, wird er sehr viele Compilerfehler anzeigen, da die Projektorganisation noch nicht vollständig ist. Markiere die *.jar-Bibliotheken im Unterverzeichnis "lib", und wähle im Kontextmenü "Add to build path".

Nach dem (automatischen) erneuten Übersetzen des Projektes sind nur noch wenige Fehlermeldungen vorhanden. Sie beziehen sich alle auf Plugins und Quellcode, die betriebssystemspezifische Anteile enthalten (z.B. für MacOS), die unter deinem eigenen Betriebssystem nicht übersetzt werden können. Falls dich die Fehlermeldungen stören, schließe einfach ein paar Plug-ins aus dem src-Verzeichnis aus. Dazu kannst du im Projektnavigator jeden Ordner (z.B. tvbrowser.ui.mainframe.macos) einzeln im Kontextmenü über "Build Path" -> "Exclude" ausschließen.

Starten und Debuggen

Du hast jetzt ausführbaren Code. Der TV-Browser benötigt zum Starten aber noch zusätzliche Dateien wie Bilder und Icons. Am einfachsten ist es, wenn du das vorhandene Installationsverzeichnis des TV-Browsers auf der Festplatte einmal komplett kopierst (zum Beispiel unter "TV-Browser development").

Zum Starten innerhalb von Eclipse legst du eine Launch Configuration an. Benutze dazu "Run As" -> "Run..." aus dem Kontextmenü des Projektes. Lege beim Punkt "Java Application" per Klick auf den "New"-Button eine neue Konfiguration an, bei der du folgende Werte ergänzen musst:

  • Seite "Main"
    • Main class: tvbrowser.TVBrowser
  • Seite "Arguments"
    • VM arguments: -Dpropertiesfile=windows.properties
    • Workspace directory: "Other" -> "File system" -> Pfad zum vorhin kopierten Verzeichnis

Mit einem Klick auf "Run" sollte der TV-Browser jetzt starten. Zum Debuggen kann die gleiche Launch Configuration benutzt werden, es muss nur "Debug" aus dem Kontextmenü des Projektes benutzt werden.

JIRA - das Ticket-System

Die Fehlerreports zum TV-Browser können komplett über eine Web-Oberfläche bearbeitet werden: Bugtracker

Mylyn

Man kann die Fehlerreports aber mit Mylyn auch komplett in Eclipse verwalten (und z.B. Codeänderungen direkt einzelnen Bugreports zuordnen). Mit dem Update-Manager in Eclipse (Help->Software Updates) müssen alle Features mit dem Namen „Mylyn...“ in der Version 2.1 oder höher von der installiert werden. Zusätzlich muss eine neue Update-Site namens Mylyn-Extras mit folgender URL im Update-Manager angelegt werden: http://download.eclipse.org/tools/mylyn/update/extras

Von dieser muss der „Jira Issue Tracker“ installiert werden.

Mylyn-Subversion-Integration

Für noch mehr Komfort (automatisches Ausfüllen der SVN-Commit-Messages) kann man von der Subclipse-Update-Site auch das „Subclipse Integration for Mylyn“-Feature installieren.

Verbindung zu Jira aufbauen

Nach einem Neustart empfiehlt sich das Öffnen der „Planning“-Perspektive. Nun noch den View „Task Repositories“ öffnen und „Add task repository“ wählen. Im erscheinenden Dialog „JIRA“ wählen und zur nächsten Seite wechseln. Dort folgende Einstellungen vornehmen:

Server: http://tvbrowser.org:8080/jira
Label: TV-Browser Jira
User ID: Jira-Benutzername
Password: Jira-Passwort

Mit „Validate Settings“ prüfen, dass alles passt und mit „Finish“ bestätigen.

Abfragen anlegen

Per Kontextmenü auf dem gerade angelegten Repository den Eintrag „New Query“ wählen. Dort kann man dann entweder gänzlich neue Abfragen zusammenklicken (eigene Issues, neueste Issues, etc.) oder Abfragen importieren, die man bereits auf der Weboberfläche angelegt hat.

Neue Issues eintragen

Auch zum Eintragen neuer Bugs braucht man nicht mehr die Weboberfläche öffnen. Per Kontextmenü „New task“ auf dem Repository in der Repository-Ansicht öffnet man einen Wizard, der durch alle notwendigen Schritte führt.

TV-Browser-Plugins

Das Repository enthält außerdem eine ganze Menge Plugin-Projekte, in welchen die optionalen (d.h. von uns nicht mit ausgelieferten) Plugins bzw. ihr Quellcode zu finden sind. Diese werden komplett über Maven verwaltet. So kommst du damit klar

Maven-Integration für Eclipse

Du brauchst ein weiteres Plugin: m2eclipse. Trage in deinem Update-Manager in Eclipse diese Update-Site ein: http://m2eclipse.sonatype.org/update/ Von dort installiere alle required-Plugins sowie die "SCM integration". Wer Eclipse Ganymede benutzt, stolpert unter Umständen bei der Installation über eine bizarre Fehlermeldung der Subversive-Ingegration. In diesem Falle installiere die SVN-Integration nicht von oben genannter Update-Site, sondern von http://www.polarion.org/projects/subversive/download/integrations/update-site/ installieren. Siehe auch hier.

Plugins importieren

Nach dem Neustart nutze File->Import->Maven->Checkout from SCM. Im folgenden Dialog trage "svn" und https://tvbrowser.svn.sourceforge.net/svnroot/tvbrowser/trunk/tvbrowser-plugins ein. Bestätige den Dialog. Nach einer Weile zeigt dir Maven alle gefundenen Plugins an, die per Klick auschecken und anlegen lassen kannst. Maven sucht danach auch alle notwendigen Bibliotheken zusammen. Deshalb solltest du am Ende lauter lauffähige Plugins haben.

Plugin-Code direkt im TV-Browser nutzen

Wenn du jetzt an Plugins arbeitest, ist es viel zu umständlich, nach jeder Änderung eine jar-Datei zu bauen und in das plugin-Verzeichnis des TV-Browser zu kopieren. Deshalb mach folgendes:

  • Kopier einmal die plugin.jar in das Plugin-Verzeichnis.
  • Bearbeite die Launch Configuration, die beim Erstellen des TV-Browsers angelegt hast und füge bei Classpath alle Plugin-Projekte hinzu. Füge auch bei Sources alle Plugin-Projekte hinzu.
  • Debugge jetzt einfach immer mit der Launch Configuration für den TV-Browser. Dabei wird automatisch auch der aktuelle Code aus den Plugin-Projekten verwendet.

Weitere empfohlene Plugins

Die folgenden Plugins sollten bei Arbeiten am TV-Browser ebenfalls installiert sein, da sie das Leben erleichtern:

  • RessourceBundleEditor zum einfacheren Bearbeiten der Übersetzungsdateien (zeigt englische und deutsche Übersetzungen zusammen und nach Schlüsseln sortiert an, obwohl die Übersetzungen ja eigentlich in verschiedenen Dateien stecken)
  • FindBugs: entdeckt typische Fehlermuster im Code, die man als Entwickler immer fixen sollte.
  • PMD: eine weitere statisches Codeanalyse; findet noch mehr potentielle Probleme im Code, hat dafür aber auch viele falsch positive (d.h. mit Vorsicht zu genießen)
  • Unnecessary code detector: kann nicht mehr verwendeten public Code entdecken. Vorsicht bei allen tool- und util- Klassen!