Kleine Helfer: 10 bewährte Open-Source-Tools für Java-Profis Detail - Computerwelt

Computerwelt: Aktuelle IT-News Österreich


30.06.2011 Diego Wyllie*

Kleine Helfer: 10 bewährte Open-Source-Tools für Java-Profis

Einer der Hauptvorteile von Java besteht in der großen Anzahl an nützlichen Open-Source-Tools, die Entwicklern die tägliche Arbeit erleichtern. Welche davon sich in der Praxis auch wirklich bewährt haben, erfahren Sie in diesem Beitrag.

Java stand als Programmiersprache und Plattform in den letzten Jahren immer öfter in der Kritik, zu komplex und altmodisch für moderne Web-Anwendungen zu sein. Dennoch ist die Internet-Landschaft nach wie vor stark von Java-Technologien geprägt - besonders im Enterprise-Bereich. Dies zeigt sich nicht zuletzt an der vergleichsweise großen Anzahl an quelloffenen Frameworks, Code-Libraries und Tools, die aus der starken Community kommen und den Java-Entwickler vor die Qual der Wahl stellen. In diesem Artikel präsentieren wir Ihnen 10 praktische Werkzeuge, die den Alltag des Java-Programmierers erleichtern können. Funktionalität, Umfang, Reife und Dokumentation der hier aufgeführten Lösungen ermöglichen sowohl kleinen als auch größeren Entwickler-Teams einen kosteneffizienten Einsatz in kommerziellen und kritischen Projekten.

Die Tools 1 bis 7 bieten nützliche Klassenbibliotheken und Frameworks, die Tools 8 bis 10 eignen sich für den Einsatz im Projektalltag.

1. Apache Wicket: Komponenten-orientierte Web-Entwicklung Eine im Vergleich zu Struts und Spring weniger bekannte, aber dennoch leistungsfähige und robuste Lösung, auf der die eigene Web-Software aufbauen kann, ist "Apache Wicket". Sie abstrahiert das zustandslose Http-Protokoll mit einem durchdachten Objekt-orientierten Programmiermodell, das es Entwicklern ermöglicht, Web-Systeme analog zu Desktop-Anwendungen mit Swing zu implementieren.

Dabei werden Benutzeroberflächen durch eine Java-Klasse und eine dazugehörige HTML-Datei repräsentiert. In der Klasse sind sämtliche grafische Komponenten wie Labels, Buttons und Textfelder definiert. Im HTML-Code müssen dann die dazugehörigen Tags mit dem Attribut "wicket:id" markiert werden, um eine Verbindung zu der entsprechenden Klasse herzustellen. Hier lassen sich sowohl vorgegebene Klassen als auch eigene, anwendungsspezifische Komponentenklassen verwenden. Diese kann man zudem an Modellobjekte binden, was die Konvertierung, Validierung und Speicherung von Benutzereingaben deutlich vereinfachen kann. Darüber hinaus bieten Wicket-Komponenten Ajax-Unterstützung "out of the box" - ohne eine einzige Zeile JavaScript-Code schreiben zu müssen.

2. Log4J: Klassisches Logging-System Ein weiteres hilfreiches Tool von der renommierten Apache Foundation ist das flexible Logging-Framework "Log4J". Es wurde bereits vor rund 15 Jahren in seiner ersten Version veröffentlicht und hat sich seitdem kontinuierlich weiterentwickelt. Mittlerweile ist die Lösung zentraler Bestandteil des "Logging Services"-Projekts und sowohl unter altgedienten Java-Profis als auch unter Programmieranfängern sehr beliebt. Grundsätzlich besteht sie aus drei Hauptkomponenten: "Loggers", "Appenders" und "Layouts". Die Ersten dienen dazu, Fehler-, Info- und Warnmeldungen an die gewählte Logging-Schnittstelle weiterzuleiten. Über verschiedene Prioritätsstufen (Off, Fatal, Error, Warn, Info, Debug, Trace, All) kann der Entwickler festlegen, was für Meldungen geloggt werden sollen.

Anstatt auftretende Fehler auf der Standardausgabe auszugeben, können mittels Appender weitere Ausgabekanäle definiert werden. So schreibt beispielsweise der "JDBCAppender" sämtliche Logs in eine Datenbank, während der "FileAppender" dies in eine einfache Datei tut. Zudem können Logs per E-Mail versendet oder ins Ereignisprotokoll des Windows-Betriebssystems geschrieben werden. Layouts dienen schließlich dazu, die Log-Ausgabe zu formatieren. Neben einfachem Plain-Text werden dabei auch gängige Formate wie XML und HTML unterstützt.

3. FileUpload: Dateien einfach hochladen Von der Apache Foundation stammt auch "FileUpload". Dabei handelt es sich um eine robuste Klassenbibliothek für Servlets und Web-Anwendungen, die sämtliche Funktionalitäten rund um das Hochladen beliebiger Dateien bietet. Die Übermittlung der Formulardaten erfolgt mit der Post-Methode. Außerdem muss für die Übertragungsart das Attribut "enctype" auf "multipart/form-data" gesetzt werden. Dann können sowohl String-Parameter als auch Binärdateien in einem einzigen Http-Request an den Server gesendet werden.

Der mitgelieferte FileUpload-Parser identifiziert die unterschiedlichen Parameter und stellt entsprechende Funktionen für deren Weiterverarbeitung bereit. Hochgeladene Dateien können wahlweise in den Arbeitsspeicher gelegt, auf der Festplatte gespeichert oder in eine Datenbank gestreamt werden - die Entscheidung liegt beim Entwickler. Außerdem bietet die Library zahlreiche Hilfsmethoden, um die Arbeit mit Datei-Uploads zu erleichtern. Dazu zählen beispielsweise Getter-Methoden, die nützliche Informationen wie Dateityp, -Größe oder -Name zurück liefern, sowie Setter-Methoden, die verschiedene Attribute wie etwa die maximal erlaubte Dateigröße definieren.

4. ImgScalr: Bilder automatisch skalieren Bei Webseiten und -anwendungen müssen Bilder häufig skaliert werden. Überlässt man diese Aufgabe dem Browser, so muss man sich mit weniger professionellen Ergebnissen zufrieden geben. Denn Firefox, Internet Explorer, Chrome und Co. achten beim Ändern der Bildgröße nicht darauf, die richtige Bildproportion zu behalten. Hier kommt die Library "Imgscalr" ins Spiel.

Das Tool basiert auf der nativen Java 2D-API und bietet einen besonders schnellen und effizienten Weg, Bilder ohne Verzerrung zu skalieren. Dazu ist nur ein einziger Methodenaufruf erforderlich: "Scalr.resize()". Als Eingabeparameter werden die gewünschten Hohe und Breite in Pixeln übergeben. Die Methode sorgt automatisch dafür, dass die Bildproportion immer beibehalten wird und liefert ein Image-Objekt zurück, das man beliebig weiter verarbeiten kann. Ein weiteres, optionales Eingabeparameter dient dazu, den anzuwendenden Algorithmus festzulegen. Darüber hinaus kann der Entwickler mit den Optionen "Quality", "Balanced" und "Speed" je nach Anwendungsszenario seine eigene Prioritäten setzen.

Diesen Artikel

Bewertung:

Übermittlung Ihrer Stimme...
Noch nicht bewertet. Seien Sie der Erste, der diesen Artikel bewertet!
Klicken Sie auf den Bewertungsbalken, um diesen Artikel zu bewerten.
  Sponsored Links:

IT-News täglich per Newsletter

E-Mail:
Weitere CW-Newsletter

CW Premium Zugang

Whitepaper und Printausgabe lesen.  

kostenlos registrieren

Aktuelle Praxisreports

(c) FotoliaHunderte Berichte über IKT Projekte aus Österreich. Suchen Sie nach Unternehmen oder Lösungen.

Service

Acceptance Testing: Trotz knapper Ressourcen

Zum Thema

  • APC Business Services GmbH

    APC Business Services GmbH IT-Personalbereitstellung, Individual-Softwareentwicklung, IKT-Consulting mehr
  • VOQUZ Technologies GmbH

    VOQUZ Technologies GmbH Öffentliche Verwaltung, Maschinen- und Anlagenbau, Finanzdienstleistungen, Qualitätssicherung, Product Lifecycle Management (PLM), Mobile Lösungen und Applikationen, Management Informationssysteme (MIS),... mehr
  • free-com solutions gmbh

    free-com solutions gmbh Werbewirtschaft, Wasser- und Energieversorgung, Vereine und Verbände, Umweltschutz, Touristik, Personenverkehr, Öffentliche Verwaltung,... mehr
  • SEQIS GmbH

    SEQIS GmbH Qualitätssicherung, Expertensysteme, Tools, Security Audits, E-Commerce-Software, B2B Dienste und Lösungen, Übernahme von Softwareprojekten,... mehr

Hosted by:    Security Monitoring by: