Open Source Software in Java
- SweetDEV RIA -
SweetDEV RIA is a complete set of world-class Ajax tags in Java/J2EE. It helps you to design Rich GUI in a thin client.
SweetDEV RIA provides you Out-Of-The-Box Ajax tags. Continue to develop your application with frameworks like Struts or JSF. SweetDEV RIA tags can be plugged into your JSP pages.
- 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.
- SnipSnap -
SnipSnap is a free and easy to install weblog and wiki tool written in Java.
- Ant -
Ant is a software tool for automating software build processes. It uses XML to describe the build process and its dependencies.
- SpagoBI -
SpagoBI is an integration platform focused on business intelligence needs at the enterprise level. It's a full open source solution (no professional edition). SpagoBI offers a complete analytical layer (e.g.: reporting dimensional analysis -OLAP-, data mining, dashboards, free and visual data inquiring) with many solution for every area, allowing the end-user to compose the platform best suited for him/her, also mixing open source and proprietary products in order to maximize the overall ROI.
- 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.
- Magnolia -
Magnolia is the first open-source content-management-system (CMS) which has been built from scratch to support the upcoming standard API for java content repositories (JCR).
- 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
- Dependometer -
Dependometer performs a static analysis of physical dependencies within a software system. Dependometer validates dependencies against the logical architecture structuring the system into classes, packages, subsystems, vertical slices and layers and detects cycles between these structural elements. Furthermore, it calculates a number of quality metrics on the different abstraction layers and reports any violations against the configured thresholds.
Currently, Dependometer is available for projects written in Java or C++.
- 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.
- Natural CLI -
Natural CLI is a Java library providing to developers command line interfaces with human readable sentences. It means, your software can understand easily command lines. It's very easy to define.
* Java implementation.
* Easy to code.
* Type checking for parameters and user defined types.
* Optional parameters and tokens.
* Build-id help command and others.
* Can be compatible with Apache Commons CLI.
- 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.
- 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.
- 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.
- 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.
- Argus Codewatch -
Argus is a highly integrated Eclipse plug-in. The purpose of this plug-in is to add additional Errors and Warnings to the Eclipse Framework, assisting Java programmers to create bug free, high quality code.
Obvious problems such as syntax errors are already detected by the Java compiler, and therefore will not be checked by Argus Codewatch. Instead, the plug-in tries to detect bad coding practices (such as unconditional loops) or violations of contract (such as when overriding Object.equals()).
This plug-in also provides a framework for adding new checks. This allows developers to easily add new checks as they see fit, or to provide quickfixes to existing checks.
- Jakarta JXPath -
JXPath defines a simple interpreter of an expression language called XPath. JXPath applies XPath expressions to graphs of objects of all kinds: JavaBeans, Maps, Servlet contexts, DOM etc, including mixtures thereof.
- JMoney -
JMoney is a personal finance manager. It supports multiple accounts in different currencies, double entry banking, income/expense categories, various reports and Quicken file (QIF) exchange. It is built using the Eclipse RCP and can be extended using plug-ins.
- 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.
- JFig - Java Configuration Solution -
Java applications are typically deployed in multiple environments and platforms, each requiring some unique configuration. JFig gives developers a simple yet powerful tool to manage their applications configuration. It allows them to:
* Store application configuration in one common repository of XML files
* Access configuration data using one common,
* Easily define multiple configurations, dynamically modifying those variables that need to change in different situations
* Eliminate the error prone practice of defining the same configuration variables in multiple locations
* Ease the management, deployment, and control of configuration files
- GeoTools -
GeoTools is an open source (LGPL) Java code library which provides standards compliant methods for the manipulation of geospatial data, for example to implement Geographic Information Systems (GIS) . The Geo Tools library implements Open Geospatial Consortium (OGC) specifications as they are developed, in close collaboration with the GeoAPI and GeoWidgets projects.
- 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.
- PicoContainer -
PicoContainer is a lightweight embeddable container for components that honour Dependency Injection.
- 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
- jTDS -
jTDS is an open source 100% pure Java (type 4) JDBC 3.0 driver for Microsoft SQL Server (6.5, 7, 2000 and 2005) and Sybase (10, 11, 12). jTDS is based on the work of the FreeTDS project and is currently the fastest complete JDBC driver for SQL Server and Sybase. Starting with release 0.7.1 jTDS is 100% JDBC 2.1 compatible, supporting forward-only and scrollable/updateable ResultSets, multiple concurrent (completely independent) Statements per Connection and implementing all of the DatabaseMetaData and ResultSetMetaData methods. As of version 0.9 most of the JDBC 3.0 features are also implemented.
Quite a few of the commercial JDBC drivers out there are based on jTDS (or FreeTDS), even if they no longer acknowledge this. jTDS has been tested with virtually all of the available JDBC-based database management tools and is the driver of choice for most of these (DataDino and Aqua Data Studio even contain it). jTDS is also becoming a common choice for enterprise-level applications: starting with release 0.8-rc1 jTDS passes the Hibernate test suite, making it the driver of choice for SQL Server.
- Hermes JMS -
Swing UI allows you to interactively use and monitor JMS providers.
- 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.
- 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.
- jcrontab -
Jcrontab is a scheduler written in java. Jcrontab is designed to be extended and integrated with any project. Reads and stores the tasks to execute in a file, a database or an EJB and provides a web UI and a basic swing GUI.
- cintoo Messages -
Messages is a open source framework to make internationalization easier for Java applications. It supports locales for threads and bundles can be associated with different packages. This allows the usage of different bundles for different parts of the application like plugins, installer or logging. Bundles can be managed and associated with packages without any changes in the code. This makes bundle management and refactoring much easier than with other solutions.Messages supports global locales for client applications written in Swing or SWT and thread local ones for serverside web applications.
- 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.
- Berkeley DB Java Edition -
Berkeley DB JE is a high performance, transactional storage engine written entirely in Java. Like the highly successful Berkeley DB product, Berkeley DB JE executes in the address space of the application, without the overhead of client/server communication. It stores data in the application's native format, so no runtime data translation is required. Berkeley DB JE supports full ACID transactions and recovery. It provides an easy-to-use interface, allowing programmers to store and retrieve information quickly, simply and reliably.
Berkeley DB JE was designed from the ground up in Java. It takes full advantage of the Java environment. The Berkeley DB JE API provides a Java Collections-style interface, as well as a programmatic interface similar to the Berkeley DB API. The architecture of Berkeley DB JE supports high performance and concurrency for both read-intensive and write-intensive workloads.
Berkeley DB JE is different from all other Java databases available today. Berkeley DB JE is not a relational engine built in Java. It is a Berkeley DB-style embedded store, with an interface designed for programmers, not DBAs. Berkeley DB JE's architecture employs a log-based, no-overwrite storage system, enabling high concurrency and speed while providing ACID transactions and record-level locking. Berkeley DB JE efficiently caches most commonly used data in memory, without exceeding application-specified limits. In this way Berkeley DB JE works with an application to use available JVM resources while providing access to very large data sets.
- 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.
- 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.
- 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.
- Ibatis SQL Maps -
The SQL Maps framework will help to significantly reduce the amount of Java code that is normally needed to access a relational database. This framework maps JavaBeans to SQL statements using a very simple XML descriptor. Simplicity is the biggest advantage of SQL Maps over other frameworks and object relational mapping tools. To use SQL Maps you need only be familiar with JavaBeans, XML and SQL. There is very little else to learn. There is no complex scheme required to join tables or execute complex queries. Using SQL Maps you have the full power of real SQL at your fingertips. The SQL Maps framework can map nearly any database to any object model and is very tolerant of legacy designs, or even bad designs. This is all achieved without special database tables, peer objects or code generation.
- 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.
- Memoranda -
Memoranda (formerly known as jNotes2) is an open source cross-platform diary manager and the tool for scheduling personal projects
- 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.
- 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
- 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.
- Bouncy Castle Crypto -
The Bouncy Castle Crypto APIs is a lightweight cryptography API in Java with a provider for the JCE and JCA, a clean room implementation of the JCE 1.2.1, a library for reading and writing encoded ASN.1 objects and generator for:
* Version 1 and Version 3 X.509 certificates and PKCS12 files.
* Version 2 X.509 attribute certificates.
* S/MIME and CMS (PKCS7).
* OCSP (RFC 2560).
* TSP (RFC 3161).
* OpenPGP (RFC 2440).
The lightweight API works with everything from the J2ME to the JDK 1.5
- 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.
- JGoodies Binding -
The JGoodies Binding synchronizes object properties with Swing components. And it helps you represent the state and behavior of a presentation independently of the GUI components used in the interface.
- 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.
- OVal -
OVal is a pragmatic and extensible general purpose validation framework for any kind of Java objects (not only JavaBeans) and allows you:
* to easily validate objects on demand,
* to specify constraints for class fields and getter methods,
* to validate objects based on certain EJB3 JPA annotations (namely all field annotations that require a not-null value),
* to configure constraints via annotations, POJOs and/or simple XML files,
* to easily create custom constraints, and
* to develop new constraint configuration mechanisms
When using AspectJ certain programming by contract (aka Design By Contract or DBC) these features are available:
* specifying constraints for constructor parameters that are automatically checked when a constructor is called (preconditions),
* specifying constraints for method parameters that are automatically checked when a method is called (preconditions),
* requiring a certain object state before a method is called (preconditions)
* enforcing object validation after an object has been created (invariants),
* enforcing object validation before/after a method of an object is/has been called (invariants),
* specifying constrains for a method's return value that are automatically checked after a method has been executed (postconditions),
* requiring a certain object state after a method is called (postconditions).
- 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
- Sarasvati -
Sarasvati is a capable, embeddable workflow/BPM engine for Java. For developers, it focuses on expressive modeling and ease of use features like embeddable sub-processes and backtracking. For users, it offers transparency via visualizations and human readable guards.
- 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.