<jsptutorial />

Newsletter vom 01.02.2006


Hallo,

dies ist nun endlich unser erster Newsletter. Und bereits seit einiger Zeit sind die ersten Inhalte des Tutorials veröffentlicht. Die Arbeiten gestalteten sich aufgrund der beruflichen Belastung deutlich langwieriger als gedacht. Mit dem Resultat sind wir dennoch ganz zufrieden, wenn auch die Optik vielleicht verbesserungswürdig ist.
Eine Frage, die angesichts der manchmal umfangreichen Kapitel aufgetaucht ist, ist die Überlegung, die einzelnen Themen weiter zu untergliedern, so dass bspw. der Beitrag zu den Standardaktionen zukünftig auf vier Seiten aufgeteilt würde. Andererseits sind vier einzelne Seiten, wenn man sie ausdruckt, eher unhandlich. Hierzu würde uns Ihre Meinung interessieren. Diese - wie auch sonstige Anmerkungen oder Fehlerhinweise - können Sie jederzeit an feedback@jsptutorial.org senden. Schreiben Sie uns, schließlich wollen wir das Tutorial permanent verbessern und bei den Themen dort ansetzen, wo Sie den größten Bedarf sehen. Sie können so auf die weitere Entwicklung aktiv Einfluss nehmen.
Logischerweise arbeiten wir mit Hochdruck bereits wieder an weiteren Themen. Wir haben dazu nun eine Seite, auf der wir über die gerade laufende Entwicklung berichten. Diese Seite befindet sich hier: http://www.jsptutorial.org/developmentPlans.
In unseren Newslettern möchten wir immer einen Beitrag über Freie Software-Projekte bringen, der auf Projekte eingeht, die für die Webentwicklung mit Java besonders interessant sind. Außerdem wird es immer eine Buchbesprechung geben. Auf diese wird aus dem Newsletter heraus allerdings lediglich referenziert, da wir Buchbesprechungen als eine eigene Rubrik des Tutorials betrachten. Die jeweils neuen Buchbesprechungen und der Newsletter erscheinen fortan aber immer zur gleichen Zeit. In zukünftigen Newslettern wird es auch eine Tipps & Tricks-Rubrik geben, die kleine Tipps für die tägliche Arbeit gibt.
Zu allen Themen nehmen wir natürlich auch gerne externe Beiträge auf. Wenn Sie also ein paar besondere Kniffe kennen, die das Arbeiten mit JSPs und serverbasierten Java-Lösungen vereinfachen, ein gutes Buch vorstellen oder einen Artikel schreiben wollen, schicken Sie einfach eine Mail an redaktion@jsptutorial.org .
In diesem Newsletter geben wir eine kurze Einführung in das Freie Software-Projekt Jakarta Commons der Apache Software Foundation. Während dieses mal nur kurz auf den Rahmen eingegangen wird, in dem sich das Projekt bewegt, werden in den nächsten zwei, drei Newslettern Teile der Commons-Bibliothek vorgestellt und die Nutzung mit ausführlichen Code-Beispielen dokumentiert.
Diese ersten, thematisch zusammenhängenden Newsletter erscheinen daher mit ca. zwei Wochen Abstand. Danach wird der Newsletter in loser Folge alle ein bis zwei Monate erscheinen.
Viel Spaß nun mit unserem ersten Newsletter!

Wolfram Rittmeyer

Zum SeitenanfangZum Seitenanfang

Freies Software-Projekt: Jakarta Commons

Auf jakarta.apache.org und xml.apache.org befinden sich eine Fülle von OpenSource-Projekten, die für die tägliche Arbeit mit Java-basierten Webprojekten enorm hilfreich sein können. Das mit Abstand bekannteste Projekt davon dürfte Tomcat sein, die Referenzimplementierung eines Servlet- und JSP-Containers. Früher befanden sich hier zudem auch Ant, Struts und log4j, bevor die ersteren jeweils zu eigenen Top-Level-Projekten wurden und log4j dem neuen Top-Level-Projekt "Logging" zugeordnet wurde. Die Apache Software Foundation ist damit zu einem der größten Anbieter von Java-Bibliotheken und Frameworks geworden. Es lohnt sich unbedingt, hier öfter vorbeizuschauen, denn es kommen fortwährend weitere Projekte und Subprojekte hinzu.
In den ersten Ausgaben des Newsletters des JSP-Tutorials will ich ein paar interessante APIs aus dem Commons-Subprojekt vorstellen. Es ist hier nur möglich, einige Teilaspekte zu beleuchten. Insgesamt findet man viele Lösungen für alltägliche Probleme im Commons-Projekt. Wann immer man denkt "Das muss es doch geben", sollte man hier nachschauen, ob es das nicht wirklich schon gibt ;-)
Commons entstand, als immer mehr Java-Subprojekte des Jakarta-Projekts Code für gleichartige Aufgaben schrieben. So entstanden nicht nur bei Apache zwei Logging-Frameworks (log4j und Turbine-Logging), sondern auch in diversen anderen kommerziellen und nichtkommerziellen Projekten wurden eigene Logging-Frameworks geschrieben. Seit dem JDK 1.4 gibt es gar ein offizielles Logging-Framework, das Bestandteil der Java-Standard-API ist. Auch für das Mapping von XML-Dateien zu Java-Objekten, für das Handling von JavaBeans oder für das Absetzen von Http-Requests wurde immer wieder das Rad neu erfunden. Zu all diesen und weiteren häufig wiederkehrenden Problemen, vor die man sich bei der Arbeit mit Java gestellt sieht, liegen im Commons-Subprojekt fertige Lösungen vor.
Im Folgenden werden nur die besonders wichtig erscheinenden Klassen und Methoden vorgestellt. Jakarta-Commons ist natürlich ein wesentlich umfangreicheres Projekt, als ich es in drei Newslettern beschreiben kann. Es lohnt sich unbedingt, die Webseite aufzusuchen, sich die Bibliotheken herunterzuladen, die API zu den Projekten anzuschauen und einfach diverse Dinge auszuprobieren. Sie finden bei Jakarta-Commons nahezu für jedes Java-Projekt hilfreiche Klassen, die Ihnen die Arbeit erleichtern.

JDK-Version

Einige Jakarta-Commons-Klassen oder -Methoden scheinen durch die Fortentwicklung der Java-Standard-APIs überflüssig geworden zu sein. Allerdings ist zu beachten, dass Jakarta-Commons auf jeden Fall auch in JDK 1.4-Projekten genutzt werden kann, zumeist sogar in JDK 1.3-Projekten. Insofern macht es Sinn, dass bestimmte Packages, Klassen und Methoden nach wie vor existieren. Als Beispiel mögen hier das Package org.apache.commons.lang.exception oder die diversen StringUtils.split()-Methoden dienen.

The Commons Proper und The Commons Sandbox

Das Commons-Projekt selber ist nochmals in zwei Bereiche aufgeteilt: In die APIs, die zu "The Commons Proper" gehören und die APIs, die zu "The Commons Sandbox" gehören. Dabei sind die Teile in der Sandbox eher experimenteller Natur. Hier werden erstmal Dinge ausprobiert, bevor sie ggf. wieder verworfen werden, eher einschlafen oder - idealerweise - in Proper aufgenommen werden. The Commons Proper hingegen stellt gut gepflegte APIs und Tools bereit. Hier bemühen sich die Entwicklerinnen, möglichst dauerhaft stabile Interfaces zur Verfügung zu stellen. Ein Einsatz von APIs aus The Commons Proper in produktiven Systemen ist daher i.a.R. sinnvoll und risikoarm. Aufgrund der stabilen Natur konzentriere ich mich nahezu ausschließlich auf die Bestandteile von The Commons Proper.
Im übrigen bemühen sich die Entwicklerinnen darum, dass die einzelnen Subprojekte möglichst wenig Abhängigkeiten von anderen Projekten (auch anderen Commons-Subprojekten) haben. Die Idee dahinter ist, einen Basis-Satz an Utility-Klassen bereitzustellen, der überall benutzt werden kann, ohne von anderen Projekten und deren Fortschritt und Fortbestand abhängig zu sein. Ein weiterer günstiger Nebeneffekt ist, dass die einzelnen JAR-Dateien meist sehr klein sind.

Download

Als Freies Software-Projekt liegen von den Commons-Subprojekten jeweils sowohl Binär-Dateien als auch Source-Dateien zum Download bereit.
Leider ist auf den Webseiten der einzelnen Subprojekte der Hinweis auf die Downloads uneinheitlich, so dass man besser gleich über folgenden Link einsteigt:

http://jakarta.apache.org/site/downloads/downloads_commons.html

Dieser kann sich aber u.U. ändern. Ggf. ist man also doch gezwungen, sich die Infos auf den einzelnen Subprojekt-Seiten zusammenzusuchen und den Links zu folgen. Bei der angegebenen Seite erhält man eine Übersicht über alle Commons-Subprojekte. Da es, wie oben beschrieben, ein Ziel ist, möglichst kleine JAR-Dateien mit geringen Abhängigkeiten von anderen Projekten zu generieren, macht es auch Sinn, dass jedes Subprojekt einzeln herunterladbar ist.
Jedes Projekt ist als Zip- oder als Tar-Archiv herunterladbar, die Bestandteile sind freilich vollständig identisch.
Die Source-Archive können nach dem Entpacken mit Ant kompiliert werden, eine geeignete build.xml liegt immer vor. Im Einzelfall sind hier Angaben zu den Pfaden für benötigte Libraries zu editieren.
Soweit eine kurze Einführung in die Hintergründe des Projekts Jakarta Commons. In den folgenden Newslettern werden dann die Bibliotheken Lang, FileUpload, HttpClient, Ressources und Digester aus "The Commons Proper" beschrieben. Diese Bibliotheken dienen als Ergänzung der Standard Java-API, als Hilfe für Datei-Uploads aus Webseiten bzw. zur leichten Absetzung von HTTP-Anfragen aus Java-Projekten heraus, und Digester schließlich erlaubt ein einfaches Auslesen von XML-Daten und deren Mapping zu Java-Objekten.

Zum SeitenanfangZum Seitenanfang

Buchbesprechung

Dieses Mal haben wir gleich zwei Buchbesprechungen. Beide sind grundlegende Bücher für die JSP-Entwicklung, wobei der Schwerpunkt bei beiden Büchern ein anderer ist.
Während im Buch "Einstieg in JavaServer Pages 2.0" von Helmut Vonhoegen vor allem die Syntax von JSPs behandelt wird, beschreiben Volker Turau u.a. in ihrem Buch "Web-basierte Anwendungen entwickeln mit JSP 2" in erster Linie, wie man webbasierte Anwendungen aufbaut und welche Möglichkeiten zum Anwendungsdesign empfehlenswert sind.

Zum SeitenanfangZum Seitenanfang


www.jsptutorial.org
© 2005, 2006, 2007