XDoclet

XDoclet ist ein Werkzeug zum attributorientierten Arbeiten in Java. Es ist nicht mit Annotationen zu verwechseln, da XDoclet nicht vom Compiler in zur Laufzeit verwendbare Attribute übersetzt wird, sondern Javacode generiert, der zu ausführbarem Code übersetzt wird. Dazu werden die Javadoc-Kommentare mit Hilfe neudefinierter Tags erweitert und dem XDoclet-Doclet verarbeitet, um dann aus dem Quelltext neben dem eigentlichen Programm auch weitere Dateien zu erzeugen.

XDoclet wird insbesondere im Kontext von J2EE verwendet und kann – richtig eingesetzt – eine große Arbeitserleichterung für den Programmierer darstellen.

Beispiel: XDoclet im J2EE-Kontext

Für die Erstellung einer Enterprise JavaBean sind (unter EJB 2.0) mindestens die Bean-Implementierung, und das Home-Interface nötig. Je nach Bedarf braucht man noch ein Remote-, ein Local- und ein LocalHome-Interface. Je nach Application-Server benötigt man darüber hinaus noch einen Deployment-Deskriptor, einen Assembly-Deskriptor oder beides. Die Deskriptoren können sich von Application-Server zu Application-Server oder sogar von Einsatz zu Einsatz unterscheiden. Insgesamt sind also folgende Dateien möglich:

  • Bean-Implementierung
  • Remote-Interface
  • Home-Interface
  • Local-Interface
  • LocalHome-Interface
  • Deployment-Deskriptor
  • Assembly-Deskriptor

Mithilfe von XDoclet muss der Programmierer im einfachsten Fall nur die Bean-Implementierung selbst verfassen und versieht diese mit neuen Tags. XDoclet erzeugt die übrigen Dateien dann automatisch.

Beispiel-Header

Dieses Beispiel zeigt einen Einsatz von XDoclet-Tags anhand eines Code-Fragments aus einer EJB.

 /**
  * Hier könnte der Kommentar bzw. die Beschreibung der Klasse stehen.
  *
  * XDoclet Anfang
  * @ejb.bean name="NameDerBean"
  * display-name="Bean 123"
  * description="Diese Bean wird für XY verwendet"
  * jndi-name="ejb/NameDerBean"
  * type="Stateless"
  * view-type="both"
  * XDoclet Ende
  */

Aussicht

Mit der Einführung von Annotationen in Java 1.5 ist die Zukunft von XDoclet ungewiss. Annotationen ersetzen die Notwendigkeit für XDoclet nahezu vollständig, müssen jedoch erst von den Tool-Herstellern bzw. Drittanbietern korrekt umgesetzt werden. Weiterhin bleibt abzuwarten, ob die Implementierungen der Hersteller genau so einfach und flexibel angepasst bzw. erweitert werden können, wie es bei dem Open-Source-Projekt XDoclet der Fall ist. Eine Portierung der XDoclet-Tags nach Annotations ist auf relativ einfache Weise möglich.