nullpointer.at

Ein Blick über den Tellerrand: RSSOwl


Beim Blick über den Tellerrand liegt der Fokus nicht auf der Funktionalität der Software, sondern auf der Organisation der Entwicklung und am Aufbau des Sourcecodes. Hier geht es darum von anderen Projekten zu lernen und die eigene Organisation zu verbessern. Daher erfolgt der hier präsentierte Blick auf die Software protokollartig durch meine Augen und entlang meiner Lernkurve.

Überblick

RSS Owl versteht sich selbst als komfortable Software um RSS, RDF und Atom News Feeds zu organisieren, zu suchen und zu lesen. Als besondere Stärken führt man die gemerkten Suchen, die Benachrichtigung aus dem Tray, schnelle Volltextsuche und die übersichtliche und saubere GUI ins Feld.

Auch ich hatte RSS Owl bereits eingesetzt und kann diese Stärken bestätigen. Damit steht es in direkter Konkurrenz zu dem Google Reader, der plattformunabhängig übers Web jederzeit den aktuellen Datenbestand zur Verfügung stellt.

Erhältlich ist RSS Owl unter der Eclipse Public License unter folgender URL: http://www.rssowl.org

Nun aber schnell mal per SVN die zuletzt veröffentlichte Version 2.0.6 auf die Platte ausgechecken!

Facts

Während das passiert, ein paar Facts rund um die Entwicklung. RSS Owl ist seit Juli 2003 ein Projekt auf Sourceforge unter der Leitung von Benjamin Pasero. Neben Benjamin Pasero entwickelt derzeit noch ein weiterer Entwickler an dem Programm mit. Es hatte bereits Anfang 2005 die 10.000 Downloads/Monat Marke durchbrochen, welche es seither verteidigt. Letztes Jahr wuchs das Projekt mit 359 Commits (also fast täglich) und es wurden 3.310 Files dabei hochgeladen. Insgesamt steht RSS Owl zum Zeitpunkt des Verfassens meines Artikels bei 7538 Commits. Macht fast 95 Commits je Monat.

Organisation

Homepage

Die Homepage ist einfach gehalten, was ich als durchaus positiv werte. Als Benutzer kommt man so schnell zu dem was einem interessiert. Interessanter versteckter Hinweis: RSSOwl nutzt den YourKit Java Profiler um die eigene Software zu analysieren und Schwachstellen aufzudecken. Auch den RSS Feed zur Verfolgung der Veränderungen im Source finde ich eine gute Sache.

Bugtracker

Bei der Suche nach einem BugTracker stößt man leider auf kleinere Hürden, der alte Link http://dev.rssowl.org der immernoch in der Wiki zu finden ist, sperrt uns mit einer Passwortfrage aus. Der neuere Link http://project.rssowl.org auf dem die Software Ratioal Team Concert zur Verwaltung der Entwicklung diente ist mittlerweile ebenfalls nicht mehr erreichbar. Bei den Entwicklern nachgefragt stellte sich heraus, dass der RTC Server nicht mehr in Verwendung ist. Um trotzdem einen kleinen Überblick zu erhalten konnte ich auf Youtube ein Video entdecken, in dem der Entwickler das Zusammenspiel zwischen Projekt Verwaltung, User und Entwickler aufzeigt.:

Rational Team Concert for open source development: RSSOwl

Da es sich hierbei vermutlich nur um ein temporäres Problem handelt, würde es sich lohnen später nochmal vorbeizusehen um einen persönlichen Eindrück zu gewinnen.

Source

RSSOwl Package ExplorerBuild

Das Ding das erste mal selbst zu bauen wirkt gar nicht so trivial wie erhofft. Und schon bin ich auch in die erste kleine Falle gelaufen. Selbst Schuld kann man sagen, haben die Entwickler doch in der  Wiki den Build Prozess von RSSOwl ausreichend erklärt, wie man an ein funktionierendes Projekt Set kommt. Der vorgeschlagene Weg ist flott eingeschlagen und schon ist man mit einer Liste an Projekten konfrontiert. Noch die Launch Konfiguration für mein Eclipse angepasst und schon ist das Programm von Eclipse aus zu starten. Ein Problemloser Einstieg, eigentlich.

Tests

Auch die JUnit Tests laufen wie geschmiert. 842 Tests überprüfen die Funktionstüchtigkeit von RSSOwl, von denen 2 Failures gemeldet wurden. Mit einem raschen Blick auf die Fehler Ursache stellt sich heraus, dass hier die unterschiedliche Zeitzone die Schuld trägt. Mehrere Tests wurden auch ignoriert, viell. in Zusammenhang mit den Nullpointer Exceptions die beim Zugriff auf das Plugin „org.eclipse.equinox.common“ geworfen wurden. Dem gehe ich nun aber nicht weiter nach.

Die Tests sind umfangreich, großes Lob meinerseits! Auch sind die Testfälle ausreichend beschrieben und weisen Verweise auf gemeldete Bugs auf. Wie mit JUnit üblich existiert eine TestSuite mit mehreren Untergruppen. Dabei lässt sich bereits etwas über die Struktur des Programmes herauslesen. So gibt es Gruppen für den Core, für Funktionen die das Netzwerk benötigen und für welche die es nicht tun, für die Performance und für Spezialbereiche wie der PasswordProvider oder die JobQueue.

Packages/Module

Die eigentliche Anwendung selbst wurde aufgeteilt in die Komponenten Core und UI. Innerhalb der jeweiligen Subprojekte wurden die Klassen nach Funktionalität in verschiedenste Packages aufgeteilt. Hier sieht alles recht normal aus. Die relativ geringe Modularisierung wurde durch Programmierung gegen Interfaces ausgeglichen.

Das Projekt setzt auf SWT zur GUI Erzeugung. Im Speziellen wird hier Eclipse als Rich Client Plattform eingesetzt und die Ähnlichkeit im laufenden Betrieb lässt sich auch kaum leugnen. Vorteil davon ist ein professionelles Erscheinungsbild, und viele Sorgen die einem die Plattform abnimmt.

Alleine der Core von RSS Owl umfasst 365 Klassen, und so ist die Einstiegshürde bereits recht hoch. Um dennoch einen Einblick zu gewinnen, liefern einem die Authoren eine entsprechende Übersicht: Architecture and Extension Points

Comments

Die Authoren haben ihren Code durchgehend mit Kommentaren (Javadoc und andere Erklärungen) versehen. Zahlreiche Kommentare dienen als Lesestütze für den Sourcecode. Dabei haben sie gute Arbeit getan, die die Einstiegshürde für weitere helfenden Hände verringert und auch den alten Hasen dienlich ist.

Libs

RSSOwl nutzt db4o als Datenbank, greift auf die RSS Feeds mithilfe von Apaches httpclient zu und wertet sie mittels JDOM aus. Die angepriesene flotte Volltextsuche realisiert RSSOwl mithilfe von Lucene, ebenfalls ein Apache Projekt.

Da ich bisher noch kein Eclipse RCP Projekt gesehen habe sind die Abhängigkeiten zwischen den Projekten noch etwas undurchsichtig für mich. Prinzipiell bleibt zu sagen dass für jede genutzte fremde Library ein eigenes (Sub-)Projekt, ein sogenanntes Plugin, angelegt wurde, in dem neben der Binary Jar und den Sourcen noch richtigerweise die Lizenz der jeweiligen Bibliothek. In dem Zusammenhang stellt sich mir unabhängig von RSSOwl die Frage, wie in Maven derartiges mit Open Source Abhängigkeiten behandelt wird, schließlich ist je nachdem mindestens die Lizenz ein muss!?

Distribution

Dank der Nutzung von Eclipse RCP steht einer Veröffentlichung für die gängigen Plattformen Linux, Windows und Mac OS X nichts im Wege, außer vielleicht die Suche nach dem wie. Hier lässt die Wiki aus und der Haufen an XML Datein ist nicht sprechend genug. Meine Vermutung ist, dass ich eines der Goals aus der build.xml des Projekts org.rssowl.build verwenden müsste. Auch hier hilft mir der Author weiter, und meine Vermuting war nahe dran. In org.rssowl.build liegt eine rssowl.product Datei über die man den Eclipse Export Wizard anschmeißen kann. Auch das ist recht schnell geschehen.

Fazit

Für meinen nächsten Tellerrand muss ich mir mehr Zeit nehmen. Eine Eclipse RCP Anwendung nur aus flüchtigen Blicken in einen Source heraus zu verstehen ist nicht so einfach, mehr Basics müssen her.

Trotzdem hat sich gezeigt, dass RSSOwl sehr gut organisiert ist. Strukturierter gut kommentierter Code helfen einem sich im Projekt zurecht zu finden. Wirkt nach einer soliden Basis, die das Programm auch in Zukunft gut dastehen lassen wird.

Ähnliche Artikel:


Beitrag veröffentlicht

in

,

von

Kommentare

2 Antworten zu „Ein Blick über den Tellerrand: RSSOwl“

  1. Avatar von Jochen

    Hallo Thomas,
    ich habe lange Zeit FeedDemon benutzt. Wichtig sind mir die Filter Funktionen um per Stichwörter die News auszusortieren. Das ist bei RSSOwl ganz gut gelöst. Nun möchte ich nicht unbedingt per Google Reader synchronisieren und RSSOwl bei mir im Netzwerk nutzen. Anscheinend gibt es keine Möglichkeit die Datenbank (weiß nicht mal wo die abgelegt ist) auf ein Netzlaufwerk zu legen.

    Sieht so aus, als wenn du mit RSSOwl recht gut vertraut bist.

    Vielleicht hast Du Infos, ob folgende Funktionen geplant sind
    1. Netzwerk Funktion
    2. Deutsche Sprache
    3. Backup Funktion

    Jochen

  2. Avatar von Pummer Thomas

    Hallo Jochen!

    Danke für dein Kommentar. Wie ich auf deinem Blog nachlesen konnte hast du bereits vom Entwickler von RSSOwl selbst ausreichend Information zu deinen Fragestellungen erhalten.
    Für andere Nutzer die auf eine ähnliche Fragestellung stoßen hier der Verweis: http://www.jochenbake.de/rss-feeds-verwalten-von-feeddemon-zu-rssowl-2/

    Schöne Grüße
    Thomas

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*