Open Source Software in Java
- AspectJ - AspectJ is a seamless aspect-oriented extension to the Java programming language, Java platform compatible and easy to learn and use. AspectJ enables the clean modularization of crosscutting concerns such as: error checking and handling, synchronization, context-sensitive behavior, performance optimizations, monitoring and logging, debugging support, multi-object protocols.
- The Roller Weblogger - A server-based weblogging software & a web application that is designed to support multiple simultaneous weblog users and visitors. Roller supports all of the latest-and-greatest weblogging features such as comments, WYSIWYG HTML editing, page templates, RSS syndication, trackback, blogroll management, and provides an XML-RPC interface for blogging clients such as w:bloggar and nntp//rss.
- Ant - Ant is a software tool for automating software build processes. It uses XML to describe the build process and its dependencies.
- Javassist - Javassist (Java programming assistant) is a load-time reflective system for Java. It is a class library for editing bytecodes in Java; it enables Java programs to define a new class at runtime and to modify a class file before the JVM loads it. Unlike other similar systems, Javassist provides source-level abstraction; programmers can modify a class file without detailed knowledge of the Java bytecode. They do not have to even write an inserted bytecode sequence; Javassist instead can compile a fragment of source text on line (for example, just a single statement). This ease of use is a unique feature of Javassit against other tools.
- OSCache - OSCache is a widely used, high performance J2EE caching framework. In addition to it's servlet-specific features, OSCache can be used as a generic caching solution for any Java application. A few of its generic features include:
* Caching of Arbitrary Objects - You are not restricted to caching portions of JSP pages or HTTP requests. Any Java object can be cached.
* Comprehensive API - The OSCache API gives you full programmatic control over all of OSCache's features.
* Persistent Caching - The cache can optionally be disk-based, thereby allowing expensive-to-create data to remain cached even across application restarts.
* Clustering - Support for clustering of cached data can be enabled with a single configuration parameter. No code changes required.
* Expiry of Cache Entries - You have a huge amount of control over how cached objects expire, including pluggable RefreshPolicies if the default functionality does not meet your requirements.
- JFreeChart - JFreeChart is a free Java class library for generating charts, including:
* pie charts (2D and 3D)
* bar charts (regular and stacked, with an optional 3D effect)
* line and area charts
* scatter plots and bubble charts
* time series, high/low/open/close charts and candle stick charts
* combination charts
* Pareto charts
* Gantt charts
* wind plots, meter charts and symbol charts
* wafer map charts
- FreeCS (the free chat server) - FreeCS is a free chatserver (WebChat) written in Java. Its main features are:
* Fully customizable layout (including the messages sent by users and the server)
* Authentication by module (SQL-authentication or no-authentication implemented)
* Authorization-framework (Who may use which command)
* Networking is done with the new none-blocking-IO-Classes of Java
- FindBugs - FindBugs looks for bugs in Java programs. It can detect a variety of common coding mistakes, including thread synchronization problems, misuse of API methods, etc.
- Jalopy - Jalopy is a source code formatter for the Sun Java programming language. It layouts any valid Java source code according to some widely configurable rules; to meet a certain coding style without putting a formatting burden on individual developers.
- Quilt - Quilt is a Java software development tool that measures coverage , the extent to which unit testing exercises the software under test. It is optimized for use with the JUnit unit test package, the Ant Java build facility, and the Maven project management toolkit.
- Trove - Trove provides a \"free\", fast, lightweight implementations of the java.util Collections API. These implementations are designed to be pluggable replacements for their JDK equivalents.
- Jakarta DBCP - DBCP is a database connection pool that relies on code in the Jakarta commons-pool package to provide the underlying object pool mechanisms that it utilizes. Applications can use the DBCP component directly or through the existing interface of their container / supporting framework.
- PicoContainer - PicoContainer is a lightweight embeddable container for components that honour Dependency Injection.
- InfoGlue - InfoGlue is an advanced, scalable and robust content management / Portal platform written in 100% Java. It is suitable for a wide range of applications and organisations. Typical uses include public websites, portal solutions, intranets and extranets. The platform is released under the GPL-license and it can be run on almost any platform and most known databases.
- Heritrix - Heritrix is the Internet Archive's open-source, extensible, web-scale, archival-quality web crawler project.
- Hypersonic SQL - hsqldb is a relational database engine written in Java, with a JDBC driver, supporting a rich subset of ANSI-92 SQL (BNF tree format). It offers a small (less than 160k), fast database engine which offers both in memory and disk based tables. Embedded and server modes are available. Additionally, it includes tools such as a minimal web server, in-memory query and management tools (can be run as applets) and a number of demonstration examples.
- JBoss - JBoss is advanced middleware with a full J2EE based personality that IT departments look for. But that is not all, the OEM and ISV community embraced JBoss as a highly flexible service oriented architecture on which to build their own products.
- ServiceMix - Apache ServiceMix is an open source distributed Enterprise Service Bus (ESB) and SOA toolkit built from the ground up on the semantics and APIs of the Java Business Integration (JBI) specification JSR 208 and released under the Apache license.
ServiceMix is lightweight and easily embeddable, has integrated Spring support and can be run at the edge of the network (inside a client or server), as a standalone ESB provider or as a service within another ESB. You can use ServiceMix in Java SE or a Java EE application server.
ServiceMix uses ActiveMQ to provide remoting, clustering, reliability and distributed failover.
- Compiere ERP - Compiere is a Open Source ERP software application with fully integrated CRM software solutions. Compiere is a fully integrated business solution for small-to-medium enterprises worldwide. Compiere is based on business process rather then departmental boundaries.
- OGNL - OGNL stands for Object-Graph Navigation Language; it is an expression language for getting and setting properties of Java objects. You use the same expression for both getting and setting the value of a property.
The ognl.Ognl class contains convenience methods for evaluating OGNL expressions. You can do this in two stages, parsing an expression into an internal form and then using that internal form to either set or get the value of a property; or you can do it in a single stage, and get or set a property using the String form of the expression directly.
- mvnForum - mvnForum is an open source, powerful, easy to use, easy to setup bulletin board (forum) built on the Java J2EE technology (Jsp/Servlet). mvnForum is compatible with any Servlet Containers which supports Jsp 1.2 and Servlet 2.3.
- J.A.D.E. Java Addition to Default Environment - The JADE library provides \"Context Programming\" which allows:
- Objects to be allocated on the \"stack\" to avoid garbage collection and provide faster execution speed (PoolContext). - Automatic concurrency in low level method to take advantage of multi-processors (or hyper-threading) in a transparent manner (ConcurrentContext).
- Thread-based inheritable local/global settings (LocalContext).
This library also provides
- Struct/Union classes for interoperability with C/C++.
- A math package with the first (and unique) generic Matrix class to solve linear systems of any kind.
- Physical quantities for which the dimension checking is done in the form of class-type checking (e.g. the division of a length by a duration returns a velocity instance).
- Real-time XML parser with no dynamic object creation (the world fastest by a factor 2-3x) And much, much more...
- ivata op - ivata op is a great tool to enable teams to:
* find contacts in team and private address books
* share documents
* post articles & notes
* comment on articles
* receive notifications via mail
* plan meetings and other events in the calendar
* access email via the web
* store different document versions in a virtual drive
- NekoHTML - NekoHTML is a simple HTML scanner and tag balancer that enables application programmers to parse HTML documents and access the information using standard XML interfaces. The parser can scan HTML files and \"fix up\" many common mistakes that human (and computer) authors make in writing HTML documents. NekoHTML adds missing parent elements; automatically closes elements with optional end tags; and can handle mismatched inline element tags.
- Eclipse - Eclipse is a kind of universal tool platform - an open extensible IDE for anything and nothing in particular.
- IzPack - IzPack is an installers generator for the Java platform. It produces lightweight installers that can be run on any operating system where a Java virtual machine is available. Depending on the operating system, it can be launched by a double-click or a simple 'java -jar installer.jar' on a shell. The most common use is to distribute applications for the Java platform, but you can also use it for other kinds of projects. The main benefit of IzPack is that it provides a clean and unique way of distributing a project to users using different operating systems.
- Scarab - The goal of the Scarab project is to build an Artifact tracking system that has the following features:
* A full feature set similar to those found in other Artifact tracking systems: data entry, queries, reports, notifications to interested parties, collaborative accumulation of comments, dependency tracking
* In addition to the standard features, Scarab has fully customizable and unlimited numbers of Modules (your various projects), Artifact types (Defect, Enhancement, Requirement, etc), Attributes (Operating System, Status, Priority, etc), Attribute options (P1, P2, P3) which can all be defined on a per Module basis so that each of your modules is configured for your specific tracking requirements.
* Built using Java Servlet technology for speed, scalability, maintainability, and ease of installation.
* Import/Export ability via XML allowing for easy migration from other systems (e.g. Bugzilla).
* Modular code design that allows manageable modifications of existing and new features over time.
* Fully customizable through a set of administrative pages.
* Easily modified UI look and feel.
* Can be integrated into larger systems by re-implementing key interfaces.
* Is a ready to use issue management system
- Spring - Spring is a layered Java/J2EE application framework, based on code published in Expert One-on-One J2EE Design and Development
- C-JDBC - C-JDBC is a free open source database cluster middleware that allows any Java application (standalone application, servlet or EJB container, ...) to transparently access a cluster of databases through JDBC(tm). The database is distributed and replicated among several nodes and C-JDBC balances the queries among these nodes. C-JDBC handles node failures and provides support for checkpointing and hot recovery.
- OpenJMS - OpenJMS is an open source implementation of Sun Microsystems's Java Message Service API 1.0.2 Specification. Features include:
* Point-to-Point and publish-subscribe messaging models
* Guaranteed delivery of messages
* Synchronous and asynchronous message delivery
* Persistence using JDBC
* Local transactions
* Message filtering using SQL92-like selectors
* Administration GUI
* XML-based configuration files
* In-memory and database garbage collection
* Automatic client disconnection detection
* Applet support
* Integrates with Servlet containers such as Jakarta Tomcat
* Support for RMI, TCP, HTTP and SSL protocol stacks
* Support for large numbers of destinations and subscribers
- XMOJO - The XMOJO project is a free open source implementation of JMX specification. This implementation is derived from AdventNet's JMX implementation, which has been available in the industry since 1999. Apart from complete implementation of JMX specification, XMOJO also contains contributions of adaptors, such as HTML and RMI and rich tools, such as MBean Browser.
- Quartz - Quartz is an open source job scheduling system that can be integrated with, or used along side virtually any J2EE or J2SE application. Quartz can be used to create simple or complex schedules for executing tens, hundreds, or even tens-of-thousands of jobs; jobs whose tasks are defined as standard Java components or EJBs.
- Display tag library - The display tag library is an open source suite of custom tags that provide high level web presentation patterns which will work in an MVC model. The library provides a significant amount of functionality while still being simple and straight-forward to use.
- Log4j - Log4j is a logging tool that allows you to log at runtime without modifying the application binary. The log4j package is designed so that logging statements can remain in shipped code without incurring a heavy performance cost. Logging behavior can be controlled by editing a configuration file, without touching the application binary.
- Columba - Columba is an Email Client written in Java, featuring a user-friendly graphical interface with wizards and internationalization support.
Its a powerful email management tool with features to enhance your productivity and communication.
- JFTP - JFtp is a graphical Java network and file transfer client.
It supports FTP using its own FTP API and various other protocols like SMB, SFTP, NFS, HTTP, and file I/O using third party APIs, includes many advanced features such as recursive directory up/download, browsing FTP servers while transferring files, FTP resuming and queueing, browsing the LAN for Windows shares, and more.
- QuickServer - QuickServer is a free, open source Java library for quick creation of robust and multi-threaded, multi-client TCP server applications. With QuickServer one can just concentrate on just the application logic/protocol on hand.
- ProGuard - ProGuard is a free Java class file shrinker and obfuscator. It can detect and remove unused classes, fields, methods, and attributes. It can then rename the remaining classes, fields, and methods using short meaningless names. The resulting jars are smaller and harder to reverse-engineer.
- ANTLR - ANother Tool for Language Recognition, (formerly PCCTS) is a language tool that provides a framework for constructing recognizers, compilers, and translators from grammatical descriptions containing Java, C#, or C++ actions. ANTLR provides excellent support for tree construction, tree walking, and translation.
- iText - iText is a library that allows you to generate PDF files on the fly. The iText classes are very useful for people who need to generate read-only, platform independent documents containing text, lists, tables and images. The library is especially useful in combination with Java(TM) technology-based Servlets: The look and feel of HTML is browser dependent; with iText and PDF you can control exactly how your servlet's output will look.
- Hibernate - Hibernate is a powerful, ultra-high performance object/relational persistence and query service for Java. Hibernate lets you develop persistent objects following common Java idiom - including association, inheritance, polymorphism, composition and the Java collections framework. Extremely fine-grained, richly typed object models are possible. The Hibernate Query Language, designed as a \"minimal\" object-oriented extension to SQL, provides an elegant bridge between the object and relational worlds. Hibernate is now the most popular ORM solution for Java.
- EXO Platform - The eXo platform is a powerful Open Source - JSR 168 compliant - enterprise portal built from several modules. It's based on Java Server Faces, Pico Container, JbossMX and AspectJ.
- JRat - JRat is the Java Runtime Analysis Toolkit. Its purpose is to enable developers to better understand the runtime behavior of their Java programs. The term \"behavior\" includes, but is not limited to performance profiling.
- Informa - Informa Project provides a RSS (Rich Site Summary) library based on the Java Platform. Features include: import, export, storing, search, etc.
- Drools - Drools is an Object-Oriented Rule Engine for Java. Drools is an augmented implementation of Forgy's Rete algorithm tailored for the Java language. Adapting Rete to an object-oriented interface allows for more natural expression of business rules with regards to business objects.
More importantly, Drools provides for declarative logic programming and is flexible enough to match the semantics of your problem domain. The various parts that compose a rule may be extended to lend domain-specific sense to the rule.
- Groovy - Groovy is a new agile dynamic language for the JVM combining lots of great features from languages like Python, Ruby and Smalltalk and making them available to the Java developers using a Java-like syntax.
Groovy is designed to help you get things done on the Java platform in a quicker, more concise and fun way - bringing the power of Python and Ruby inside the Java platform.
Groovy can be used as an alternative compiler to javac to generate standard Java bytecode to be used by any Java project or it can be used dynamically as an alternative language such as for scripting Java objects, templating or writing unit test cases.
- Egothor - Egothor is an Open Source, high-performance, full-featured text search engine written entirely in Java. It is technology suitable for nearly any application that requires full-text search, especially cross-platform. It can be configured as a standalone engine, metasearcher, peer-to-peer HUB, and, moreover, it can be used as a library for an application that needs full-text search.
- Java CVS Client - A library that implements a CVS protocol client in Java. The library is essentially complete. There are a few non-essential commands still to be implemented but the code is stable.
- SQuirreL SQL Client - SQuirreL SQL Client is a graphical Java program that will allow you to view the structure of a JDBC compliant database, browse the data in tables, issue SQL commands etc. The minimum version of Java supported is 1.3
- Velocity - Velocity is a Java-based template engine. It permits web page designers to reference methods defined in Java code. Velocity can be used to generate web pages, SQL, PostScript and other output from templates. It can be used either as a standalone utility for generating source code and reports, or as an integrated component of other systems
- JUnit - JUnit is a regression testing framework written by Erich Gamma and Kent Beck. It is used by the developer who implements unit tests in Java.
- Jakarta ORO - The Jakarta-ORO Java classes are a set of text-processing Java classes that provide Perl5 compatible regular expressions, AWK-like regular expressions, glob expressions, and utility classes for performing substitutions, splits, filtering filenames, etc. This library is the successor to the OROMatcher, AwkTools, PerlTools, and TextTools libraries originally from ORO, Inc. Despite little activity in the form of new development initiatives, issue reports, questions, and suggestions are responded to quickly.
- ArgoUML - ArgoUML is a powerful yet easy-to-use interactive, graphical software design environment that supports the design, development and documentation of object-oriented software applications.
- Commons Validator - Commons Validator provides the building blocks for both client side validation and server side data validation. It may be used standalone or with a framework like Struts.
- Struts - The core of the Struts framework is a flexible control layer based on standard technologies like Java Servlets, JavaBeans, ResourceBundles, and XML, as well as various Jakarta Commons packages. Struts encourages application architectures based on the Model 2 approach, a variation of the classic Model-View-Controller (MVC) design paradigm.
- JWebMail - WebMail is a www-frontend to IMAP/POP3 mailboxes. You can compare it to the systems Hotmail, YahooMail etc use. It allows a user to access his mailbox via the world wide web and do most things other mail programs allow to do, even if he is not sitting on his own personal computer or corporate LAN.
- Jakarta Tomcat - Tomcat is the servlet container that is used in the official Reference Implementation for the Java Servlet and JavaServer Pages technologies. The Java Servlet and JavaServer Pages specifications are developed by Sun under the Java Community Process.
- Axis - Axis is the third generation of Apache SOAP (which began at IBM as \"SOAP4J\"). It also includes:
* a simple stand-alone server,
* a server which plugs into servlet engines such as Tomcat,
* extensive support for the Web Service Description Language (WSDL),
* emitter tooling that generates Java classes from WSDL.
* some sample programs, and
* a tool for monitoring TCP/IP packets.
- HtmlUnit - HtmlUnit is a java unit testing framework for testing web based applications. It is similar in concept to httpunit but is very different in implementation. Which one is better for you depends on how you like to write your tests. HttpUnit models the http protocol so you deal with request and response objects. HtmlUnit on the other hand, models the returned document so that you deal with pages and forms and tables.
- JSPWiki - A WikiWiki web clone written using JSPs and Servlets
- Xerces - The Xerces Java Parser 1.4.4 supports the XML 1.0 recommendation and contains advanced parser functionality, such as support for the W3C's XML Schema recommendation version 1.0, DOM Level 2 version 1.0, and SAX Version 2, in addition to supporting the industry-standard DOM Level 1 and SAX version 1 APIs.
- Luxor - Luxor is a free, open-source XML UI Language (XUL) toolkit in released under the GNU General Public License (GPL) that lets you build UIs using XML and includes an ultra-light weight, multi-threaded web server, a portal engine, a template engine (Velocity), a scripting interpreter (Python) and more.