Institute for
HSR

Groovy Eclipse Plug-in

Übersicht

Refactoring - Ändern der Code Struktur ohne die Funktionalität des Programms zu verändern - ist ein häuffig gebrauchter Prozess in moderner agiler Software Entwicklung. Refactoring findet in den verschidenesten Stadien eines Software projectes statt. Heutzutage untertützen die meisten Integrierten Etwicklungsumgebungen IDEs den Entwickler mit entsprechenden Funktionen.

Es gibt bereits einige Erweiterungen für die Programmiersprache Groovy in den verschiednenen IDEs. Die meisten bieten nur grundlegende Funktionalität um den benutzer bei siener Arbeit zu unterstützen (Beispielsweise Syntax Hervorhebung oder Outlines). Nur eine dieser Erweiterungen, die das JetBrains Groovy Plugin für die Umbegung InteliJ IDEA bietet grundlegende Refactorings.

In unserer Semesterarbeit und der darauffolgenden Bachelor Arbeit entwickelten wir die erste Refactoring unterstützung für das Groovy Eclipse Plug-in in Eclipse. Die damalige Version bot noch keinerlei solche Funktionaliät.
Um dieses Ziel zu erreichen mussten wir verschiedene Probleme auch in der grundlegenden Programmiersprache Groovy lösen. Wir waren auf diese angewiesen, denn ohne diese wäre es uns nicht möglich gewesen die benötigten Änderungen am Code entsprechend exakt auszuführen.

Resultate

Nachdem wir die grundlegenden Probleme gelöst hatten, bildetet der AST (abstracter Sytnax Baum) nun eine gute Arbeitsgrundlage damit wir die folgenden Refactorings wie einen Code Formatierer implementieren konnten.

  • Extract Method
  • Inline Method
  • Rename Class
  • Rename Local
  • Rename Method
  • Rename Field

Da Java und Groovy sehr eng miteinander verwandt sind, analysierten und dokumentierten wir zusätzlich die Möglichkeiten für ein Sprachübergreifendes Refactoring in der Entwicklungsumgebung Eclipse.

Während der Arbeit an dem Project wurden uns veröffentlichungsrechte im Groovy-Eclipse projeckt eingeräumt und so waren wir in der Lage, die Resultate unserer Arbeit direkt in das offizielle Produkt einfliessen zu lassen. Der grösste Teil unserer Arbeit ist nun im offiziellen Groovy-Eclipse Plug-in enthalten.

Eine weitere grosse Herausforderung in diesem Projekt bestand in der Konfiguration und Einrichtung einer automatischen Kompilations- und Integrationslösung. Es bestand beim Start unserer Arbeit keine Infrastruktur auf der automatisiert immer die aktuelle Version mit Tests geprüft und anschliessend veröffentlicht wird. Der von uns eingerichtete Server bietet diesen Service nun dem Projet und stellt so sicher dass die Benutzer immer die aktuellsten Versionen zur Verfügung haben.

Download / Veröffentlichung

Die Resultate unserer Arbeit und der Folgearbeit sind nun verfügbar im offiziellen Groovy Eclipse Plug-in.

Die Website unseres Projektes und unsere Dokumentation sind immer noch auf unserem Server verfügbar. Ein weiteres Team von Studenten an der HSR, arbeitet zurzeit am Thema Sprachübergreifendes Refactoring für Groovy und Java.

Crosslanguage Feature im aktuellen Groovy Eclipse Plugin

Refactoring Support for the Groovy Eclipse Plug-in (Demo submission for OOPSLA 08)
Cross Language Refactoring for Eclipse Plug-ins (Submission for Refactoring workshop OOPSLA 08)

Team