Projekte

Hier findet sich eine kleine Zusammenstellung meiner Projekte. Diese Projekte werden auf Bitbucket gehostet. Die Opensource-Projekte sind im Maven Central Repository zu finden.

Kritiken, Fragen und Anregungen nehme ich immer gerne entgegen. Mein Kontakt findet sich im Impressum.

JSF 2 Komponenten Bibliothek

text component
text
textarea component
textarea
Die JSF 2 Komponenten Bibliothek erweitert die Standard-JSF-Komponenten und bringt folgende Funktionalitäten mit:

  • label Vor der Input-Komponente wird ein Label angezeigt und an die Input-Komponente gebunden
  • tooltip Es ist möglich, der Komponente einen Tooltip zu übergeben, der das Label markiert und einen eigenen Tooltip neben der Input-Komponente anzeigt.
  • validation Nach einem Validierungsfehler, wird die Input-Komponente mit einer Styleclass markiert und rot umrandet.
  • custom css Es ist möglich, die mitgelieferten Stylesheets zu deaktivieren bzw. zu erweitern. Damit ist es zum Beispiel möglich, diese Komponente mit Bootstrap zu verwenden.

Larmic Maven Plugins

html output
html
xml output
xml

Das Project Larmic Maven Plugins ermöglicht das automatische Erzeugen von HTML- und XML-Releasenotes aus Bitbucket heraus. Andere Versionierungstools wie Jira oder Github sind denkbar aber zur Zeit noch nicht implementiert.

Weiter wird ein checkTodo-Goal angeboten, welches auf Basis von Bitbucket die im Code enthaltenen TODOs überprüft und ausgibt, welche TODOs kein Ticketbezug enthalten bzw. welche TODOs auf bereits geschlossene Tickets verweisen.

Eine genaue Anleitung, wie diese Mavenplugins zu verwenden sind, befindet sich auf der Projektseite.

Sonstiges

Rekursives Löschen der Subversion-Informationen unter Linux / OSX

Wer kennt das nicht. Man entwickelt in einer Sandbox und möchte die Inhalte in ein anderes Projekt überführen. Sofern das Sandbox-Projekt aber schon im Subversion ist, muss man die Subversion Informationen entfernen. Dazu gibt es ein einfaches Unix-Boardmittel über die Konsole, die Informations-Verzeichnisse rekursiv zu löschen. Mit der Suche

find . -type d -name .svn

findet man alle Verzeichnisse, die zu Löschen im aktuellen Pfad und darunter sind. Das Ergebnis sieht ungefähr so aus

./.svn
./src/.svn
./src/main/.svn
./src/main/java/.svn
./src/main/java/de/.svn
./src/main/java/de/larmic/.svn
./src/main/java/de/larmic/ts/.svn
./src/main/java/de/larmic/ts/business/.svn
./src/main/java/de/larmic/ts/business/model/.svn
./src/main/java/de/larmic/ts/business/model/type/.svn
./src/main/resources/.svn
./src/main/xjb/.svn
./src/test/.svn
./src/test/java/.svn

Dieses Statement lässt sich mit der rekursiven Lösung verbinden:

rm -rf `find . -type d -name .svn`

Teamspeak 3 Server auf Debian installieren

Neuen Benutzer anlegen

Möchte man einen neuen Dienst auf einem Server installieren, macht es immer Sinn, einen speziellen Benutzer in einer gesonderten Rolle zu erstellen, damit selbst ein Zugriff über diesen Benutzer das System nicht korrumpiert. Es gibt unter Debian ein einfaches Kommando, welches den Benutzer und die entsprechende Rolle inklusive Home-Directory anlegen kann.

adduser teamspeak

Damit wurde der Benutzer teamspeak in der Rolle teamspeak erzeugt.

Teamspeak installieren

Der Teamspeak-Server sollte nun in dem Home-Directory des neuen Benutzers angelegt werden. Mit wget gibt es eine einfache Methode Inhalte herunter zu laden. Die aktuelle Version des Teamspeak Servers findet man z.B. auf ftp.4players.de . Dabei ist auf die richtige Bit-Version zu achten.

cd /home/teamspeak/
wget http://ftp.4players.de/pub/hosted/ts3/releases/3.0.3/teamspeak3-server_linux-amd64-3.0.3.tar.gz
sudo teamspeak tar xfvz teamspeak3-server_linux-amd64-3.0.3.tar.gz

Teamspeak manuell starten

Mit

sudo teamspeak ./teamspeak3-server_linux-amd64-3.0.3/ts3server_startscript.sh start

wurde der Server gestartet und ist unter der Server IP mit Port 9987 erreichbar.

Teamspeak als Dienst starten

Mit der Installation wird ein Service-Skript mitgeliefert, allerdings bietet dieses Skript nicht die Möglichkeit, den Server mit einem dedizierten Benutzer zu starten. Damit dies möglich ist, habe ich ein Skript geschrieben, welches sich am /etc/init.d/skeleton orientiert.

Datei anlegen und ausführbar machen

touch /etc/init.d/teamspeak
chmod 775 /etc/init.d/teamspeak

Das Skript

#! /bin/sh
### BEGIN INIT INFO
# Provides:          teamspeak3-Server
# Required-Start:    networking
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      S 0 1 6
# Short-Description: TeamSpeak3 Server Daemon
# Description:       Starts/Stops/Restarts the TeamSpeak3 server daemon
### END INIT INFO

set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="TeamSpeak3 Server"
NAME=teamspeak
USER=teamspeak
DIR=/home/teamspeak/teamspeak3-server_linux-amd64
DAEMON=$DIR/ts3server_linux_amd64
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

export LD_LIBRARY_PATH="$DIR:$LD_LIBRARY_PATH"

# Exit if the package has been changed or removed
test -x $DAEMON || exit 0

d_start() {
        start-stop-daemon --start --quiet \
                --background \
  --chuid $USER \
                --chdir $DIR \
                --exec $DAEMON \
                > /dev/null \
                || echo -n " already running"
}

d_stop() {
        start-stop-daemon --stop --quiet \
                --chuid $USER \
                --chdir $DIR \
                --exec $DAEMON \
                || echo -n " not running"
}

case "$1" in
  start)
        echo -n "Starting $DESC: $NAME"
        d_start
        echo "."
        ;;
  stop)
        echo -n "Stopping $DESC: $NAME"
        d_stop
        echo "."
        ;;
  restart)
        echo -n "Restarting $DESC: $NAME"
        d_stop
        sleep 15
        d_start
        echo "."
        ;;
  *)
        echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
        exit 3
        ;;
esac

exit 0