Sunday, November 13, 2005

Bekannte Java-Open-Source Software

Bekannte Java-Open-Source Software

Bekannte Java-Open-Source Projekte

Es gibt es viel zu entdecken. Die Java-Standard-API reicht heute nicht mehr aus. Diese Sammlung von Links listet in meinen Augen gute und sinnvolle quelloffene und lizenzfreundliche Erg�nzungen. Insbesondere f�r zus�tzliche Swing-Komponenten habe ich eine extra Seite zusammengestellt. Neben den n�tzlichen Java-Erg�nzungen gibt es eine Liste mit n�tzlichen Tools f�r Windows.

In Klammern steht hinter dem Projekt die Lizenzform. Die meisten sind GPL, LGPL, BSD, Apache und Common Public License (CPL).

Software Entwicklungsumgebung (IDEs)

* Eclipse (Eclipse Public License (EPL). Wichtige Entwicklungsumgebung. Project 3.1 Plan
* NetBeans (als GUI-Builder)
* XDoclet (BSD). Code-Generierung, etwa f�r EJBs Home-/Reme-Interface oder auch f�r Hiberante Mapping Dateien
* weitere IDEs...

XML/HTML

* Xerces Java Parser (Apache). Neben Sun's Crimson ein schneller Parser
* JDOM (Apache). Sch�ner Zugriff auf XML-Dokumente. XPath-M�glichkeit
* XOM. XOM 1.1b.
* Streaming API for XML (StAX) und Woodstox sind Pull Parser. StaxMisc (LGPL) hat ein StaX-Parser f�r JDOM
* Digester (Apache). Teil aus Jakarta Commons zum Einlesen von XML-Konfig-Dateien, (Tutorial 1)
* Apache Axis (Apache). SOAP-Aufrufe
* XML-RPC (Apache). Java-Implementierung von Apache f�r XML-RPC
* XStream (BSD). Serialisierung in XML-Dateien ohne explizites Mapping. (Tutorial 1, 2, 3)
* TagSoup (Academic Free License/GPL). Parser f�r HTML nach dem SAX-Prinzip. Korrigiert Tag-Fehler
* CyberNeko HTML Parser (Apache). Korrigierender HTML-Parser

Web/Java EE/Applikations-Server

* Apache Jakarta Tomcat (Apache). Referenzimplementierung f�r Servlets/JSP
* Jetty:// (Apache). Weiterer Servlet-Container. Ausgezeichnet f�r Embedded-Server
* JBoss (LGPL). Freier Java EE-Stack, der die Java EE 1.4-Spezifikation umsetzt. JBoss zeigt auch die ersten Ans�tze, wie EJB 3 funktionieren kann.
* Geronimo (Apache). Kommender Java EE-Stack von Apache
* ActiveMQ (Apache). JMS 1.1 Implementierung. (Viele andere L�sungen, wie OpenJMS, setzten nur die 1.0-Spezifikation um.) ActiveMQ ist auch die Messaging-L�sung in Geronimo.

Tag-Libs

* Cewolf (LGPL). Charts �ber JFreeChart aufbauen
* Jakarta Taglibs Project (Apache). TagLib etwa f�r Request, Response, JMS, ...
* Display tag library (Artistic). Tabellen aufbereiten
* OSCache (Apache kompatibel). Caching von JSP-Content, Servlet Response oder beliebigen anderen Objekten

Web Frameworks

* Struts (Apache). MVC-Konzept f�r's WEB
* Cocoon (Apache). XML-Inhalte �ber XSLT transformieren
* Turbine (Apache). MVC-Framework
* WebWork (Apache). Application Framework
* Spring (Apache). In erster Linie ein IoC-Container
* MyFaces (Apache). Implementierung der JavaServer Faces Spezifikation (JSR 127)

Testen

* JUnit (Common Public License). Das bekannteste Framework zum Testen von Java-Anwendungen
* JUnit-addons (Apache). Framework, das u.a. Klassen zum Vergleichen von Listen, Dateien anbietet
* HTTPUnit (Eigene Lizenz). Testen von Web-Applikationen. Tutorial
* DbUnit. JUnit-Erweiterung zum Testen von Datenbankzust�nden
* Cactus (LGPL). Testen von Server-seitigen Komponenten (Servlets, EJBs, Tag Libs, Filters, ...)
* FindBugs (LGPL). Automatisches Finden von Bugs. Auch als Eclipse-Plugin
* Lint4j (Propriet�r). Auffinden von Unregelm��igkeiten
* Hammurapi (GPL). Automatische Code-Reviews
* HTTPTracer (Apache). HTTP-Proxy
* Cobertura (GPL). Code-Coverage auf der Basis von jcoverage.

Performance

* Eclipse Profiler Plugin (CPL). Messen von Ausf�hrungszeiten
* JMeter (Apache). Lasttests nicht nur f�r HTTP, auch f�r JDBC, SOAP, ...
* P6Spy (Apache-�hnlich). Abfangen, Loggen und Modifizieren von JDBC-Anweisungen
* Ehcache (Apache). Caching Framework. Wird zum Beispiel in Hibernate eingesetzt

UML

* ArgoUML (BSD). UML-Tool. Bisher kein Plugin f�r Eclipse, wobei eine externe Gruppe daran arbeitet

Persistenz/XML-Binding

* Hibernate (LGPL). Beliebter OR-Mapper und Basis von JBoss f�r seine Persistenzschicht. Aktuell in der Version 3.0
* Castor (Exolab License, wie BSD). XML-Binding
* Prevayler. Persistenz durch Serialialsierung

Datenbank/DB-Browser

* C-JDBC (LGPL). Cluster-L�sung. C-JDBC ist ein JDBC-Treiber, der auf mehrere Knoten verteilt
* MySQL (GPL). Bekannteste Open-Source DB
* hsqldb (Propriet�r). RDBMS-Implementierung in Java, besondern interessant f�r Embedded-Anwendungen
* Xindice (Apache). Native XML-Datenbank
* SQuirreL (LGPL). SQL Client
* ozone (LGPL). Objekt-Datenbank

Dokumente, GUI, Reports, Grafik

* winlaf Home (BSD). Korrigiert Unsch�nheiten unter Windows XP Swing Look and Feel
* Batik (Apache). Einlesen, Verarbeiten und Anzeige von SVG-Grafiken
* JasperReport (LGPL). Report-Tool wie Crystal Reports. Minianleitung
* iReport. Visueller Designer f�r JasperReport
* DataVision (GPL). Auch ein Reporting Tool
* iText (MPL und LGPL). Generieren von PDF (Kurzbeschreibung). Dazu ist ist Printing component aus den UJAC praktisch: hier beschreibt man das Dokument in XML.
* POI (Apache). Zugriff auf MS Datei-Formate. Excelling in Excel with Java
* Java Excel API (LGPL). Alternative zu POI f�r Excel-Tabellen
* gef (BSD). Weiteres Java Graph Editing Framework (hat nichts mit Eclipses GEF zu tun)
* BrowserLauncher (keine/frei). Starten eines externen Browsers
* jhighlight (LGPL). Bibliothek zur Farbhervorhebung von Java, HTML, XHTML, XML und LZX mit dem Ausgabeformat XHTML
* JDesktop Integration Components, JDIC (LGPL). Unter anderem: Browser von Windows/Unix plattformneutral aufrufen. Kurzbeschreibung
* Fold n' Drop (Lizenz unklar). Umbl�ttern mit visuellen Effekten
* Spin (LGPL). Threading-Framework. Webseite stellt das dem Worker gegen�ber
* XML-Gui Abbildungen: Thinlet (GLPL), SwiXml (Apache-�hnlich), gui4j (GLPL).

Eine eigene Unterseite listet alternative Gui-Komponenten f�r Swing auf.

Build-Management/Installer

* Ant (Apache). Das Standard-Buildtool
* JSmooth (GPL). Bauen von ausf�hrbaren Daten unter Windows
* Maven (Apache). Projekt-Management
* CruiseControl. �berwachen/Automatisieren vom Build

Projektplanung/-managing

* XPlanner (LGPL). Planung von XP-Projekten
* TUTOS (GPL). Webanwendung zur Projektplanung

Bug-Tracking

* ITracker (GPL). Tracking-System auf der Basis von Java EE
* Scarab (BSD). Tracking

Dateisystem/Netzwerk

* Jakarta Commons/Net (Apache). Java-Pakete f�r Internet-Protokolle FTP, NNTP, SMTP, POP3, Telnet, TFTP, Finger
* Directory Poller (LGPL). Schaut in gegebenen Intervallen nach Ver�nderungen im Verzeichnis
* jpcap (Mozilla Public Licence). Fangen von TCP/IP Paketen
* cajo (LGPL). Kooperation zwischen mehreren virtuellen Maschinen

Sonstiges / Freeware

* Velocity (Apache). Kein Web-Framework, aber oft genutzte Template-Engine f�r Web-Anwendungen
* BCEL (Apache), ASM (BSD), Javassist (MPL und LGPL). Generieren von Bytecode zur Laufzeit
* cglib. Nutzt generierten Bytecode f�r Proxies und Weiteres
* Log4j (Apache). Logging
* Quartz (BSD-�hnlich). Job scheduling system
* Jawin (Propriet�r). Aufrufen von COM-Komponenten. Somit ist zum Beispiel eine Steuerung von MS-Office m�glich
* Jad 1.5.8e. Ein Java Decompiler. Nicht Quelloffen! Ein visuelles Frontend ist etwa FrontEnd Plus. (Jad ist hier integriert.)
* LimSee2 (Propriet�r) Ein SMIL 2.0 Authoring-Tool
* ROXES ANT Tasks (GPL). Erweiterte Tasks f�r Ant, um etwa auf die Windows Registry zuzugreifen
* Radeox (Apache). Wiki-Renderer
* Java Service Wrapper (Propriet�r). Java-Programme als Windows-Services oder Unix Daemon ausf�hren

Links

* freshmeat.net
* SourceForge.net
* BerliOS - The Open Source Mediator
* Java-Source.net

No comments: