Eclipse Plugin

Wer auf verschiedenen Plattformen an ein und demselben Java Projekt arbeitet hat es bestimmt schon erlebt. Reguläre Zeichen der deutschen Sprache, vorzugsweise ä-s, ö-s oder ü-s erscheinen nach einem Wechsel der Programmierumgebung bzw. des zugrundeliegenden Betriebssytems als unlesbare Sonderzeichen. Die von uns vorwiegend benutzte Entwicklungsumgebung Eclipse bietet eine Einstellungsmöglichkeit zur Wahl des zu verwendenden Encodings, und die Einigung auf UTF-8 als Institutsstandard war zumindest ein Schritt, das genannte Problem zu lösen.

Damit blieb es allerdings noch aus, unerwünschte Zeichen im Rahmen existierender Projekte zu finden und gegebenenfalls anzupassen. Die Erweiterungsmöglichkeiten der Eclipse Programmierumgebung führten zu dem Entschluss, ein Plugin zu entwickeln, das eine Definition erlaubter und verbotener Zeichen zulässt und unerwünschte Zeichen zuverlässig anzeigt.

Integration des Plugins in die Plattform:

Das Dateiverzeichnis de.fhworms.ztt.encodingvalidator des Plugins wird unterhalb der Eclipse Installation im Verzeichnis plugins eingefügt und die neue Funktionalität sollte nach einem Neustart der Plattform zur Verfügung stehen.

Das Plugin trägt den Name Encoding Validator Plugin und fügt im Eclipse Package Explorer einen Eintrag mit Titel 'Validate Charset Encoding' der bei Rechtsklick erscheint hinzu. Er wird bei Selektion von Projekten, Verzeichnissen, Packages oder Dateien angezeigt. Eine Mehrfachauswahl ist möglich und bei Auswahl einer Ressource mit Unterobjekten (z. B. Verzeichnis) erfolgt ein rekursiver Aufruf der enthaltenen Elemente. Nach der Auswahl der zu untersuchenden Ressourcen werden diese vom Plugin durchlaufen und entsprechend der durch den Benutzer eíngestellten Präferenzen untersucht.

Was wird untersucht?

Unter Window->Preferences->Workbench->Editors der Eclipse Plattform findet sich die Möglichkeit zur Einstellung des zu verwendenden Zeichensatzes. Zu bearbeitende Dateien werden gemäß der hier getroffenen Auswahl gelesen und geschrieben. Um Inkonsistenzen zu vermeiden, wurde auf eine separate Möglichkeit zur Einstellung des Zeichensatzes für das Plugin verzichtet und der an dieser Stelle gefundene Wert wird übernommen. Die vom Benutzer des Plugins gewählten Ressourcen werden entsprechend dem eingestellten Zeichensatz geöffnet und es wird byteweise untersucht, ob die gefundenen Zeichen in die Kategorien erwünscht oder unerwünscht fallen.

Als Ausgabe ergeben sich drei verschiedene Möglichkeiten bzw. Meldungen:

  • Die Datei entsprach dem eingestellten Format und enthielt keine unerwünschten Sonderzeichen.
    Meldung: "Valid [Name des Zeichensatzes]"
  • Die Datei entsprach dem Zeichensatzformat, enthielt aber als "nicht erwünscht" definierte Zeichen.
    Meldung: "Character out of expected range"
  • Die Datei entsprach von der Codierung her nicht dem erwarteten Zeichensatz. In diesem Fall ist der Wert des eingelesenen Zeichens 65533. Die Meldung lautet: "File was non [Name des Zeichensatzes]"


Bis auf die erste Meldung, die für die ganze Datei gilt können, die beiden letzteren mehrmals pro Datei auftreten, es wird für jedes gefundene ungültige Zeichen eine Meldung generiert.
Die Ergebnisausgabe erfolgt in einer View, hier werden der Name der untersuchten Datei, deren Ort im Dateisystem und im Fehlerfall Wert, Bildschirmdarstellung und Zeilennummer des gefundenen Zeichens dargestellt. Durch Doppelklick auf eine Ergebniszeile öffnet sich im Editorfenster die betreffende Datei mit Anwahl der betreffenden Zeile bzw. Anwahl der ersten Zeile im Falle einer gültigen Datei.

Die Präferenzen

Bei der Integration des Plugins in die Plattform wird nicht nur ein zusätzlicher Eintrag im Package Explorer erzeugt, sondern auch die Präferenzen der Workbench werden um einen Unterpunkt 'Encoding Validator Plugin' erweitert, wodurch sich die Einstellungen zum allgemeinen Verhalten des Plugins treffen lassen. Sie gliedern sich auf in die Bereiche 'Definition gültiger Zeichen' und 'zu untersuchende Dateien', die jeweils auf einem eigenen Tab einstellbar sind.

Die gültigen Zeichen lassen sich entweder über Bereiche, wie zum Beispiel ASCII Zeichensatz von 0-127 oder als einzelne gültige Zeichen (das Euro Symbol mit dem UTF-8 Wert 8364) definieren. Als Eingabeformate werden Integerzahlen sowie Hexadezimal, Dezimal und Octal codierte Eingaben akzeptiert (0x, 0X, 0d, 0D, 0o, 0O).

Das zweite Tab (ohne Abbildung) erlaubt die Einbeziehung bzw. den Ausschluss verschiedener Dateiendungen von der Untersuchung. Beispielsweise wird man Dateien mit Endung .java oder .txt im allgemeinen untersuchen, im Gegensatz zu .class, .zip oder auch .exe Dateien. Weiterhin gibt es eine Möglichkeit, Dateien über ihren Namen von der Untersuchung auszuschliessen, hier ist zum Beispiel voreingestellt, dass Dateien, die mit einem Punkt beginnen nicht untersucht werden.

Sprachspezifische Einstellungen

Das Plugin umfasst unter anderem die Datei messages.properties, in der die Beschriftungen für die verschiedenen Dialoge festgehalten sind und die wahlweise in deutsch oder englisch erhältlich ist. Um die Besonderheiten einer Sprache berücksichtigen zu können wurde eine weitere Datei, preferences.properties erzeugt, in der z.B. für die deutsche Sprache ä, ö , ü usw. definiert sind. Die in der Datei festgehaltenen Einträge erscheinen bei Betätigung des 'Restore Defaults' Knopfes im Rahmen der Präferenzen Seite. Beide Dateien werden im Verzeichnis de.fhworms.ztt.encodingvalidator unterhalb des plugins Verzeichnisses einer Eclipse Installation gesucht. Können sie nicht gelesen werden, wird getestet, ob das Plugin im Rahmen einer Runtime Workbench gestartet wurde und wenn das ebenfalls nicht der Fall ist, werden englische Dialoge mit deutschen Präferenzen benutzt, wie im Bild zu sehen. Wie an dieser Stelle deutlich wird, ist es möglich, verschiedene Sprachpakete zu kombinieren und das Plugin gemäß eigener Vorstellungen einzurichten.