Category: Open Source

UMLGraph in Javadoc mit Maven

Mit UMLGraph steht ein wunderbares, einfaches Tool zur Verfügung, um UML Klassendiagramme in die Javadoc Dokumentation einzufügen. Diese sind klickbar, d.h. man kann durch die Diagramme navigieren. Wer seine Projekte mit Maven erzeugt, integriert gerne auch die Javadoc-Erstellung in den Maven-Build. Und UMLGraph lässt sich da gleich ganz einfach mitnehmen.

Hier ein Beispiel, wie eine entsprechende Reporting-Sektion im pom.xml aussehen könnte:

<reporting>
  <outputDirectory>/ein/sinnvoller/pfad</outputDirectory>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-javadoc-plugin</artifactId>
      <configuration>
        <doclet>gr.spinellis.umlgraph.doclet.UmlGraphDoc</doclet>
        <docletArtifact>
          <groupId>gr.spinellis</groupId>
          <artifactId>UmlGraph</artifactId>
          <version>4.6</version>
        </docletArtifact>
        <additionalparam>
           -inferrel -inferdep -quiet -hide java.* -collpackages java.util.* -qualify
           -postfixpackage -nodefontsize 9
           -nodefontpackagesize 7
        </additionalparam>
      </configuration>
    </plugin>
  </plugins>
</reporting>

Und das Ergebnis kann sich sehen lassen:

Wer tiefer in die Materie, Parameter und Möglichkeiten von UMLGraph einsteigen möchte findet in der Onlinedokumentation ausführliche Hilfestellung.

Share

Apache: Zugriffsbeschränkung via htaccess

Gerade eben musste ich es mal wieder einrichten: Zugriffskontrolle auf ein Verzeichnis im Apache. Dazu hatte ich vor Jahren auf einer meiner Uralt-Webseiten schon mal einen Artikel geschrieben. Den re-publiziere ich hier in (praktisch) unüberarbeiteter Form:

Der htaccess-Mechanismus erlaubt eine verzeichnisorientierte Zugriffsbeschränkung über eine Authentifizierung. htaccess verlangt normalerweise einen gütigen Benutzername und Passwort, um auf dieses Verzeichnis (und seine Unterverzeichnisse) zugreifen zu dürfen.
Folgende Dinge sind zu tun, um ein Verzeichnis zu schützen:

1. in der httpd.conf:
htaccess muss für das Verzeichnis erlaubt werden. Dazu ist die Direktive AllowOveride All zu setzen. Beispiel:

<Directory /pfad/apache/htdocs/diesesverzeichnis>
    AllowOveride All
</Directory>

2. Anlegen der Datei .htaccess:
Im zu schützenden Verzeichnis wird die Datei angelegt (führenden Punkt nicht vergessen, dies ist eine versteckte Datei!):

AuthName "Dies ist der Login-Bereich von Fritzchen"
AuthType Basic
AuthUserFile /pfad/public/htdocs/login/.htpasswd
require valid-user

3. Anlegen der Datei .htpasswd:
Das Anlegen dieser Datei geschieht mit dem htpasswd-Befehl [update]bei Apache2 mit dem korrelierenden Befehl htpasswd2[/update]. Da die Passwörter verschlüsselt gespeichert werden, kann die Datei nicht von Hand erstellt werden.

Wir erzeugen die Datei z.B. mit folgendem Befehl:

$ htpasswd -c .htpasswd ersterbenutzer

Für jeden weiteren Benutzer rufen wir den Befehl ohne „create“ auf:

$ htpasswd .htpasswd weitererbenutzer
Share

Twitter4J: Java-API für Twitter

Twitter4J ist eine Java-Bibliothek für die Twitter-API von Yusuke Yamamoto. Damit lassen sich ganz einfach Status-Updates senden, die Timeline holen, Tweets suchen oder direkte Nachrichten senden. Die frisch erschienene Version 2.0.0 beherscht neben dem klassischen Login via Username/Passwort auch OAuth.

Wer also Twitter in seine Java-Applikationen integrieren möchte, ist hier bestens bedient. Sogar ein Maven-Repo ist vorhanden.

Und es geht noch weiter: mit Log4Twitter hat Yamamoto einen Log4J-Appender geschrieben, mit dem sich Log4J-Ausgaben an einen Twitter-Account leiten lassen – dazu muss in der Anwendung nicht einmal was geändert werden, lediglich die Konfigurationsdatei von Log4J kriegt den passenden Eintrag. Und schon kann ich von überall die Fehlermeldungen meiner Software via Twitter abonnieren … und mit mir die ganze Welt!?

Share

Mantis Eclipse Plugin

Erst unlängst habe ich einen Artikel zu Mantis geschrieben. Jetzt stand zufällig das Update auf die neue Version 1.1.7 von Mantis BT an und beim Hochladen der Dateien sehe ich mir die Verzeichnisse der Software etwas genauer an und entdecke einen Ordner „/api/soap/“, der mich neugierig macht.

Und tatsächlich: Mantis bietet eine Webservice-Schnittstelle an, mit der Bugs von externen Clients gemanaged werden können. Unter „http://[PFAD ZU MANTIS]/api/soap/mantisconnect.php“ gibt der Browser die WSDL Datei und eine Funktionsübersicht aus.

So habe ich ein wenig gegoogled und bin auf etwas Interessantes gestossen: Es gibt ein Eclipse Plugin, das eine Oberfläche für Mantis in der IDE zur Verfügung stellt. Die Installation verläuft gewohnt einfach. Unter Eclipse (bei mir V3.4) muss Mylyn installiert sein, dann kann man einfach die Updateseite http://mylyn-mantis.sourceforge.net/eclipse/dev/update/site.xml eintragen und das Paket „Mylyn Connector: Mantis“ installieren.

Auch die Konfiguration gestaltet sich sehr einfach:

  • Unter „Window“ => „Show View“ aufrufen
  • die View „Task Repository“ öffnen
  • in der View „rMT“=> „Add Task Repository“
  • Typ „Mantis“ auswählen
  • Dialog mit den Repository-Daten ausfüllen (bei Server muss die o.g. URL zur Datei mantisconnect.php eingetragen werden)

Anschließend kann man über die „Planning“ Perspektive seine Bugs eingeben, verwalten, zuweisen, etc.

Das ganze war schneller eingerichtet als diesen Blogeintrag zu verfassen und integriert den Mantis BT optimal in Eclipse, eine sehr nützliche Sache, die ich in manchen Projekten einsetzen werde.

Share