Software Referenz Table of contents 1 Überblick über verwendete Software.................................................................................2 2 Integrierte Entwicklungsumgebung: Eclipse..................................................................... 2 3 4 5 2.1 Überblick....................................................................................................................... 2 2.2 Tips und Tricks..............................................................................................................2 2.3 Referenz.........................................................................................................................3 Build-Software: Apache Ant..............................................................................................3 3.1 Überblick....................................................................................................................... 3 3.2 Tips und Tricks..............................................................................................................3 3.3 Referenz.........................................................................................................................3 Datenbank: HSQLDB........................................................................................................ 4 4.1 Überblick....................................................................................................................... 4 4.2 Tips und Tricks..............................................................................................................4 4.3 Referenz.........................................................................................................................4 Versionskontrolle: Subversion...........................................................................................5 5.1 Überblick....................................................................................................................... 5 5.2 Tips und Tricks..............................................................................................................5 5.3 Referenz.........................................................................................................................6 Copyright © 2006 Institut fuer Softwaretechnik und interaktive Systeme All rights reserved. Software Referenz 1. Überblick über verwendete Software Alle für diese Lehrveranstaltungen verwendeten Programme sind OpenSource und für alle gängigen Betriebssysteme verfügbar. Sie werden aktiv weiterentwickelt und bieten auf ihren jeweiligen Homepages ausführliche Dokumentation und Tutorials. 2. Integrierte Entwicklungsumgebung: Eclipse 2.1. Überblick Eclipse ist eine integrierte Entwicklungsumgebung für Java, die durch Plugins um zahlreiche Funktionen erweitert werden kann. 2.2. Tips und Tricks 2.2.1. Ant Build-Files in Eclipse verwenden Ant Buildfiles können in Eclipse verwendet werden. Hierfür "Show View, Ant" auswählen und das entsprechende Antfile in die Liste hinzufügen; die Tasks des Ant-Files können dann innerhalb von Eclipse gestartet werden. Achtung: Wird mit Ant kompiliert kann es beim Editieren oder Starten des Projektes innerhalb von Eclipse zu "eigenartigen" Fehlern kommen; dies hat damit zu tun, dass Eclipse einen eigenen Compiler mitliefert und der von Ant erzeugte Binärcode mit Eclipse nicht kompatibel ist. Möchte man also mit Eclipse weiterarbeiten empfiehlt sich folgender Schritt: Project|Clean... Dann das Projekt auswählen und "OK" wählen; dann werden die generierten Artefakte gelöscht und neu kompiliert. 2.2.2. Eclipse und Code Generierung/Manipulation von Files mit externen Tools Werden Dateien von externen Tools (xdoclet, anderer Editor etc), oder von der Java Applikation selbst verändert (z.B. die hsqldb Datenbank Files) so bekommt dies Eclipse meist nicht mit; Das Projekt auswählen und "Refresh" wählen! 2.2.3. Eclipse 3.1 Um mit Java 1.5 zu programmieren, wird mindestens die Version 3.1 von Eclipse benötigt. Page 2 Copyright © 2006 Institut fuer Softwaretechnik und interaktive Systeme All rights reserved. Software Referenz 2.3. Referenz Eclipse Projekt 3. Build-Software: Apache Ant 3.1. Überblick Apache Ant ist ein plattformunabhängiges Werkzeug, um den Build-Prozess von Software zu automatisieren. Es ist in Java geschrieben und besonders auf die Verwendung mit dieser Programmiersprache ausgelegt. Das Konzept von Ant ist mit dem des klassischen Unix-make vergleichbar, jedoch werden die Anweisungen in ein XML-File geschrieben, das normalerweise build.xml heißt. Die verschiedenen Ziele (z.B. Kompilieren des Projekts, Erstellen der Dokumentation) werden Targets genannt und können von einander abhängig sein. Sie setzen sich aus einzelnen Befehlen (Tasks), die meist 1:1 in die Kommandos für die verwendete Plattform umgesetzt werden (z.B. Kopieren von Dateien, Löschen des Inhalts eines Verzeichnisses). Parameter des Build-Prozesses werden üblicherweise in die Datei build.properties geschrieben. 3.2. Tips und Tricks 3.2.1. Eclipse Eclipse besitzt einen eigenen ant-Editor, um das build.xml zu bearbeiten. 3.2.2. Automatisiertes Testen Ant bietet auch Unterstützung für JUnit, sodass Tests mit Hilfe von Ant automatisch ausgeführt werden können. 3.2.3. Handbuch Das Ant Manual bietet eine übersichtliche und vollständige Zusammenfassung der Möglichkeiten von Ant. 3.3. Referenz • • Apache Ant Projekt Apache Ant Manual Page 3 Copyright © 2006 Institut fuer Softwaretechnik und interaktive Systeme All rights reserved. Software Referenz 4. Datenbank: HSQLDB 4.1. Überblick HSQLDB ist eine vollständig in Java geschriebene relationale Datenbank, die unter einer BSD-Lizenz steht. Der Voreil dieser Datenbank-Engine besteht darin, dass sie direkt in eine Anwendung eingebettet werden kann, es ist nicht notwendig, sie im Server-Modus laufen zu lassen. HSQLDB ist schnell und resourcensparend und unterstützt einen Großteil des SQL-92 Standards, sowie zahlreiche Erweiterungen, die in SQL-99 und SQL:2003 definiert werden. 4.2. Tips und Tricks 4.2.1. Konfiguration: Write Delay HSQLDB verfügt über einen WRITE_DELAY Parameter. Dieser ermöglicht, das Schreiben von Daten zu Verzögern; d.h. wird bspw. 100millis angegeben, so werden Daten nach einer Schreib-Transaktion u.U. erst 100 Millisekunden später geschrieben; Der Default-Wert liegt sogar bei 20 Sekunden. Dieses "Poolen" von Schreiboperationen erhöht natürlich die Performance, erhöht aber auch das Risiko des Datenverlustes. Dazu kommt das weitere Problem, dass seit Version 1.8. auch Embedded Databases an sich explizit per SHUTDOWD geschlossen werden müssen. Passiert das nicht, kann es ebenfalls zu Datenverlust kommen. Sofern man sich nicht genau mit diesem Datenbank-Parameter auseinandergesetzt hat, und ganz besonders im Test-Betrieb (Embedded), ist es angeraten den Wert auf 0 zu setzen: SET WRITE_DELAY 0 MILLIS Dieses Kommando kann entweder per SQL Befehl an die Datenbank gesendet werden, oder im .properties File editiert werden. 4.2.2. .script Für jede Datenbank werden alle Veränderungen in einem .script-File protokolliert. Diese Datei kann sehr gut zur Fehlersuche oder als Backup verwendet werden. 4.3. Referenz HSQLDB Projekt Page 4 Copyright © 2006 Institut fuer Softwaretechnik und interaktive Systeme All rights reserved. Software Referenz Benutzerhandbuch SQL-Referenz 5. Versionskontrolle: Subversion 5.1. Überblick Subversion(SVN) ist ein Versionskontrollsystem, das auf ähnlichen Konzepten wie das ältere CVS basiert und das verteilte Arbeiten von Entwicklern ermöglichen soll. SVN basiert auf einer Client-Server-Architektur: jeder Entwickler hat ein lokales Repository , mit dem er (offline) arbeitet, auf einem Server gibt es das zentrale Repository, mit dem jeder Entwickler die Veränderungen abgleicht. Der SVN-Server ist auch dafür verantwortlich, den Änderungen Versionsnummern zuzuweisen und zu protokollieren. 5.1.1. Wichtigste Befehle Diese Befehle können entweder direkt mit der Kommandozeilenversion von Subversion verwendet werden oder indirekt über eine grafische Benutzeroberfläche. Befehl Beschreibung checkout Kopiert eine Version des zentralen Repositories in ein lokales Repository. update Akualisiert das lokale Repository mit den Veränderungen im zentralen Repository. commit Schreibt die lokalten Veränderungen in das zentrale Repository. mkdir Erzeugt ein neues Verzeichnis, das von SVN verwaltet wird. help Zeigt alle verfügbaren Befehle und ihre Verwendung an. 5.2. Tips und Tricks Es ist empfehlenswert, die Repositories regelmäßig zu synchronisieren, um ein zu starkes Auseinanderdriften der Code-Basis zu verhindern. Commit-Messages sollten eher kurz, aber aussagekräftig sein, sodass die Veränderungen einfach nachvollzogen werden können. Page 5 Copyright © 2006 Institut fuer Softwaretechnik und interaktive Systeme All rights reserved. Software Referenz 5.2.1. Eclipse-Plugin Subversion lässt sich nicht nur mit externen Programmen verwenden, es gibt auch ein Plugin, das es direkt in Eclipse integriert. Subclipse 5.3. Referenz Subversion Page 6 Copyright © 2006 Institut fuer Softwaretechnik und interaktive Systeme All rights reserved.