Open Source Tools for Java

OpenSource.org puts it simply: "When programmers can read, redistribute, and modify the source code for a piece of software, the software evolves. People improve it, people adapt it, people fix bugs. And this can happen at a speed that, if one is used to the slow pace of conventional software development, seems astonishing."

Web Services and SOA

Axis
Apache Axis is a base on which to implement Java Web Services.

Beehive
BEA proposed Beehive to establish the first cross-container, ease-of-use programming model and framework for J2EE- and SOA-based applications. It is an incubator project within Apache.

J2EE Application Servers

All three J2EE application servers are expected to become J2EE-compliant certified by the end of 2004.

Geronimo
Geronimo is Apache's open source J2EE application server.

JBoss
An open-source alternative to commercial Java application servers.

JOnAS
ObjectWeb JOnAS is an open source J2EE application server.

Servlet Containers

Jetty
Jetty is an HTTP Server and Servlet Container. Integrated with J2EE application servers such as Geronimo, JBoss, and JOnAS.

Tomcat
Jakarta Tomcat is a servlet container.

Jigsaw
W3C's Jigsaw is a Java-based web server with support for the Java Servlet API Specification 2.2.

Databases

Derby
Previously known as IBM's Cloudscape database, a full-featured, enterprise-ready Java database donated to Apache.

Operating Systems

Solaris
Sun to contribute Solaris source code to OSI (Open Source Initiative). Buildable source code for Solaris will be available in the second quarter of 2005 under the Common Development and Distribution License (CDDL).

Persistence, Binding, OR Mapping

Castor
Castor is a data binding framework for Java. It provides Java-to-XML binding, Java-to-SQL persistence, and more.

Hibernate
Hibernate is an object/relational persistence and query service for Java.

OJB
Apache Object/Relational Bridge (OJB) is an object relational mapping tool that enables transparent persistence for Java Objects against relational databases. It integrates with J2EE app servers and supports JNDI lookup of datasources.

Perseus
ObjectWeb Perseus is a component-based persistence framework that solves issues such as cache management, concurrency management (even distributed), transaction management, storage management, logging management. Java and JCA.

Zeus
ObjectWeb Zeus is a code generator for Java-to-XML data binding.

Testing

Cactus
Apache Cactus is a test framework for unit testing server-side java code, such as servlets, EJBs, tag libs, and more.

Log4j
A reliable, fast and extensible logging library for Java.

EMMA
EMMA is a toolkit for measuring and reporting Java code coverage. Works in any Java 2 JVM.

JUnit
JUnit is a regression testing framework.

TestMaker
Free tool to test web-based applications, developed by Frank Cohen.

Java and .NET Integration

DotNetJ
ObjectWeb and OverOne DotNetJ is a tool that gives .NET applications the ability to use Java components or J2EE applications as if they were .NET assemblies.

Business Applications

Bonita
ObjectWeb Bonita is a J2EE workflow system.

Cayambe
SourceForge Cayambe is a J2EE E-Commerce Solution using Java Servlets, JSP, and EJB.

CentraView CM and CRM
CentraView open source provides a browser-based Contact Management system and Customer Relationship Management (CRM) functionality using a J2EE application running on Apache Tomcat and JBoss, and using MySQL for the database.

CHEF
The CompreHensive collaborativE Framework (CHEF) project is developing a flexible environment for supporting distributed learning and collaborative work. The primary technologies include Apache Jetspeed, Velocity, and Turbine.

Enhydra JaWE
Enhydra JaWE (Java Workflow Editor) is the first open source graphical Java workflow process editor fully according to WfMC specifications supporting XPDL as its native file format and LDAP connections. Try integrating with the open source workflow engine Enhydra Shark.

Entrada
Entrada is a light-weight, application hosting framework based on jEdit and is licensed under the GPL.

Magnolia, CMS
Magnolia is a open-source content-management-system (CMS) that supports JSR-170. JDK 1.4.1 or later required.

OCGE
OCGE (Open Grid Computing Environments) is open source portal software built on top of Apache Jetspeed.

OSMQ
Open Source Message Queue is a Java asynchronous message broker and message middleware framework developed by MQue Systems and available under the GNU public license.

Velocity
Velocity is a Java-based template engine, including template services for Turbine.

Zen
Zen is middleware that is compliant with most of the features defined in the CORBA 2.6 specification. ZEN is implemented using the Real-time Specification of Java (RTSJ). Hosted at University of California, Irvine.

Search Engines

Lucene
Jakarta Lucene is a high-performance, full-featured text search engine written entirely in Java.

Mozdex
Mozdex is an open source search engine that runs atop Lucene.

Developer Tools

ActiveCluster
ActiveCluster is an API for writing cluster-based applications.

Ant
Apache Ant is a Java-based build tool.

AppFuse
AppFuse is an application for starting your web applications.

Barracuda
ObjectWeb Barracuda is an MVC framework.

Crossbar
Crossbar is a collection of example applications written for JavaServer Faces (JSF) and Java Server Pages (JSP). Useful for web-based reporting applications.

Eclipse
Eclipse is an open source and extensible IDE.

Espresso
First released in June 1999, Expresso is an open standards-based, enterprise J2EE architectural framework that integrates and builds on Ant, Bouncycastle, Cactus, Commons, Log4J, ORO, Oswego Concurrent, JUnit, Struts, Tiles, Velocity, Xalan, Xerces, and more. The framework relies on more than 65k lines of code in approximately 600 classes. Developed and supported by Jcorporate.

DotNetJ
ObjectWeb and OverOne DotNetJ is a tool that gives .NET applications the ability to use Java components or J2EE applications as if they were .NET assemblies.

Forrest
Apache Forrest is an XML standards-oriented project documentation framework based on Apache Cocoon. It is useful for publishing documentation.

Griffon
Groovy-based framework to write Java desktop applications.

Grails
Web application platform applying the principles of convention over configuration.

Groovy
Groovy is an agile dynamic language for the JVM.

JAC
ObjectWeb JAC (Java Aspect Components) is a framework for aspect-oriented programming in Java.

JetSpeed
Apache JetSpeed aids in portal development and the integration of data from XML, RSS or SMTP. It supports templates and content publication from Cocoon, WebMacro and Velocity.

JOTM
Open source implementation of the JTA APIs. Used in JOnAS and Geronimo.

Lomboz
ObjectLearn Lomboz is a free eclipse plugin for the J2EE developers and integrated with Jasper, XDoclet, Axis and Ant.

Maven
Maven is a Java project management and project comprehension tool.

MX4J
Open source implementation of the Java(TM) Management Extensions (JMX) and of the JMX Remote API (JSR 160).

Pollinate
Pollinate's goal is to build an eclipse-based IDE and toolset that leverages the open source Apache Beehive application framework.

ProGuard
SourceForge ProGuard is a free Java class file shrinker and obfuscator. It can detect and remove unused classes, fields, methods, and attributes. Useful when developing wireless apps.

Ruby on Rails
Convention over configuration.

Spring
Spring is a Java/J2EE application framework with Hibernate support and a web MVC framework. More information also available at springframework.org

Struts
Apache Struts is an open source framework for building web applications.

Tapestry
Jakarta Tapestry is an alternative to scripting environments such as JavaServer Pages or Velocity.

Turbine
A model-view-controller framework for constructing web applications with either Velocity or JavaServer Pages.

XDoclet
XDoclet is a code generation engine that enables AOP for java.

Free UML Tools

ArgoUML
Import and export Java source. Exports/imports XMI files, so you can, for example, import a Rational Rose model (you lose the formatting, though). UML 1.3. Source code under BSD license. Supports multiple languages.

Jude
Import and export Java source. Import just makes the classes available for modeling. Supports UML 1.4.

Omondo EclipseUML Free Edition
An Eclipse plug-in for UML modeling. Eclipse Team support. Can create class and sequence diagrams from Java bytecode. Can model EJBs and servlets. Free version does not support Eclipse 3.0. UML 1.4. XMI support.

Umlet
Not tested on Linux. Supports Eclipse 3.0.

Violet
Draws simple UML diagrams. Bare-bones program with small learning curve: no XMI, no reverse engineering, no validity checking. Source code available under GPL.

XML

Castor
Castor is a data binding framework for Java. It provides Java-to-XML binding, Java-to-SQL persistence, and more.

Cocoon
Apache Cocoon is an XML publishing framework.

Forrest
Apache Forrest is an XML standards-oriented project documentation framework based on Apache Cocoon. Useful for publishing documentation.

WiX
Microsoft's first open source project launched in April 2004. WiX stands for Windows Installer XML and is used to build Windows installation packages from XML source code.

Zeus
ObjectWeb Zeus is a code generator for Java-to-XML data binding.

Mobile Java

Antenna
SourceForge Antenna provides a set of Ant tasks suitable for developing wireless Java applications targeted at the Mobile Information Device Profile (MIDP).

ProGuard
SourceForge ProGuard is a free Java class file shrinker and obfuscator. It can detect and remove unused classes, fields, methods, and attributes. Useful when developing wireless apps.

Science and More

EMBOSS
European molecular biology open source software suite for sequence analysis. Within EMBOSS, you will find around 100 programs. EMBOSS-Jemboss is the Java-based GUI.

Piccolo
Piccolo is provided by the Human-Computer Interaction Lab at the University of Maryland. It allows zooming user interfaces.