Open-Source tools for Java development have reached a maturity that often goes far beyond commercial tools. A lot of Java projects doing business applications can come along with Open-Source tools. Here is a list of my current favorites.
Development
- Eclipse – the Open-Source IDE
- CVS – the Open-Source revision control system
- Ant – the Java make
- JUnit – the unit test tool for Java
- Fitnesse – for acceptance tests
- Jemmy [desktop frontends]- testing Swing UIs
- HTTPUnit [web frontends] – testing Web UIs
- JMeter [server side code] – for load tests of server side code
- NoUnit – finding untested methods
- Integration-Guard – server side test execution before/after checkin in CVS
- DoxyGen – similar to JavaDoc but supports different output formats
- PMD – identifies problems and smells in Java code
- Eclipse Profiler Plugin – Profiler for Eclipse
- XDoclet – generates data from Java meta tags; used for Hibernate, JBoss and others
Libraries
- log4j – for logging (more powerful and widespread than the logging facilities of JDK 1.4
- Struts [web frontends] – framework for web applications
- Eclipse Plugin Model [client side code] – the Eclipse plugin model can be used without the Eclipse IDE to implement a client side component model for Java
- JFreeChart – generates business charts
- JFreeReport, JasperReports – printing from Java
Database
- mySQL, PostgreSQL, SapDB – Databases
- Hibernate – OR mapper with transparent persistence (requires XDoclet); if an existing database schema has to be used, Torque with its code generation approach may be more suitable
Application-Server
- Apache Web Server – if a lot of static web pages exist or non-Java application logic has to be executed at the server
- Jakarta Tomcat [web frontends] – if only a web interface is required
- JBoss [server side code and desktop frontends] – if a desktop interface is required and server side code is neccessary (I recommend to use XDoclet to generate most of the EJB stuff)
- MockEJB [server side code] – a local container for session beans; supports testing session beans and allows the execution of the system stand alone without an application server
Organization
- XPlanner – Managing and planning of stories
- JSPWiki – a simple Wiki web based on Java Server Pages
- Open-Office – for external documents and project tracking
Upcoming
There are promising tools which I haven’t had the opportunity to use until now:
- Eclipse Rich-Client-Platform [desktop frontends] – an application frame for desktop applications
- iReport – GUI tool for JasperReports
- Maven – a build management tool
- Bugzilla – a bug tracking system
Kommentar verfassen