Open Source Software in Java

Curated list of production-grade libraries and tools. Updated by the community.

AspectJ

AspectJ is a seamless aspect-oriented extension to the Java programming language. It is Java platform compatible, easy to learn and use, and enables clean modularization of crosscutting concerns such as error checking and handling, synchronization, context-sensitive behavior, performance optimizations, monitoring and logging, debugging support, and multi-object protocols.

See all aspect-oriented-frameworks
Blog

Blog is an interface for managing a multi-topic blog (Web journal). Its easy interface allows users to quickly create journals with several topics, all of which are concurrently accessible.

See all bloggers
Ant

Ant is a software tool for automating software build processes. It uses XML to describe the build process and its dependencies.

See all build-systems
RapidMiner

RapidMiner (formerly YALE) is the world-wide leading open-source data mining solution due to the combination of its leading-edge technologies and its functional range. Applications of RapidMiner cover a wide range of real-world data mining tasks.

See all business-intelligence
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.

See all bytecode-libraries
DirectMemory

DirectMemory is an off-heap cache implementation (a-la BigMemory) to enable in memory serialization of a large number of java objects without affecting jvm garbage collection performance - released under the Apache Software License, Version 2.0

See all cache-solutions
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

See all charting-and-reporting
GujChat

GujChat is a new Chat System capable of managing multiple chat servers, each one serving different rooms and options for its users. One single installation delivers webmasters different templates, rooms, languages and configurations

See all chat-servers
AtLeap

Blandware AtLeap is a multilingual free Java CMS (Content Management System) with full-text search engine. Blandware AtLeap is also a framework which allows you to rapidly start your own Web application. Blandware AtLeap is destined to creating both content-based sites and web applications with complicated business logic. Blandware AtLeap has the following features: * Simplicity of using. You can navigate on your site and choose editable areas by double mouse click or context menu. * rich text formatting possibilities using WYSIWYG editor. * Multilingual content. There is an ability to store content on several languages simultaneously in UTF-8 encoding. 100% of content are stored in the database. You can edit any data using web interface. * AtLeap allows all available pages to be indexed on all languages by external search engines (Google, Yahoo, etc). * Full text search engine. The embedded engine provides ability to search on several languages taking into account inflexions and stop words. Indexing the following document formats: RTF, PDF, Word, Excel, PowerPoint, HTML, XHTML, XML, TXT. * Individualization. AtLeap?s CMS ideology does not restrict creative graphical design of the site. The customer does not want template, banal routine graphical design. Blandware AtLeap allows creating individual, unique, exceptional solution. However nowadays the site has a lot except of content. The site can have complicated business logic. So Blandware AtLeap is: * Lightweight. It does not require (but can be run on) heavy and/or expensive EJB (Enterprise Java Bean) application server to run. * Independent from: Hardware platform, OS, DBMS, Servlet-container and Browser. * Stable: ** Multi-user work, implemented using application transactions (optimistic concurrency control). As for big texts you can even merge simultaneously edited content. ** Database transactions: rollbacks and pessimistic locking. ** The big texts are still saved even the HTTP session is invalidated. ** The input forms are validated at server and client side. ** Transparently saves state information and repopulates forms when they are redisplayed. ** Prevents of double form submission (client and server side). ** Bidirectional relationships between links and resources in order to prevent creating broken links and deleting used resources. ** There is ability to replace almost all dependent links during changing URL of Content Page or Resource. * Based on modern open source technologies: Hibernate, Spring, XDoclet, Struts, FCKEditor, Lucene, Quartz, Acegi, TinyMCE etc.

See all content-managment-systems
Byecycle

Byecycle is an auto-arranging dependency analysis plugin for Eclipse. Its goal is to make you feel sick when you see bad code and to make you feel happy when you see good code.

See all code-analyzers
BeautyJ

BeautyJ is a source code transformation tool for Java source files. One main feature of BeautyJ is to auto-format Java source code by generating a clean, normalized representation of the code. BeautyJ is also capable of auto-generating Javadoc comments with semantic information derived from identifier names.

See all code-beautifiers
Cobertura

Cobertura is a free Java tool that calculates the percentage of code accessed by tests. It can be used to identify which parts of your Java program are lacking test coverage. It is based on jcoverage.

See all code-coverage
Commons Collections

Commons-Collections seek to build upon the JDK classes by providing new interfaces, implementations and utilities. There are many features, including: * Bag interface for collections that have a number of copies of each object * Buffer interface for collections that have a well defined removal order, like FIFOs * BidiMap interface for maps that can be looked up from value to key as well and key to value * MapIterator interface to provide simple and quick iteration over maps * Type checking decorators to ensure that only instances of a certain type can be added * Transforming decorators that alter each object as it is added to the collection * Composite collections that make multiple collections look like one * Ordered maps and sets that retain the order elements are added in, including an LRU based map * Identity map that compares objects based on their identity (==) instead of the equals method * Reference map that allows keys and/or values to be garbage collected under close control * Many comparator implementations * Many iterator implementations * Adapter classes from array and enumerations to collections * Utilities to test or create typical set-theory properties of collections such as union, intersection, and closure

See all collection-libraries
args4j

args4j is java command line options parser. Features: * It makes the command line parsing very easy by using annotations. * You can generate the usage screen very easily. * You can generate HTML/XML that lists all options for your documentation. * Fully supports localization. * It is designed to parse javac like options (as opposed to GNU-style where ls -lR is considered to have two options l and R.)

See all command-line
BoneCP

BoneCP is a fast, free, open-source, Java database connection pool (JDBC Pool) library. If you are familiar with C3P0 and DBCP then you already know what this means. For the rest, this is a library that will manage a database connection for you to get faster database access in your application.

See all connection-pools
Crawler4j

crawler4j is an open source web crawler for Java which provides a simple interface for crawling the Web. Using it, you can setup a multi-threaded web crawler in few minutes.

See all crawlers
AcornDB

AcornDB is a high performance, small footprint, transactional object oriented database written entirely in Java. It stores data in the application's native format, so no runtime data translation is required. AcornDB supports full ACID transactions and recovery. It provides an easy-to-use interface like query-by-example, object query API, automatic class schema recognition allowing programmers to store and retrieve information quickly, simply and reliably. AcornDB enabling high concurrency and speed while providing ACID transactions. AcornDB efficiently caches the data in memory, without exceeding application-specified limits. In this way works with an application to use available JVM resources while providing access to very large data sets.

See all database-engines
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.

See all eclipse-plugins
EasyBeans

EasyBeans is an open-source lightweight EJB3 container implementation developed within the ObjectWeb consortium (www.objectweb.org). It can be integrated within JOnAS and Tomcat

See all ejb-servers
Adempiere

Adempiere is one of major ERP system. Developed with java and postgres SQL, and having a great community for developing. it is a derivation of compiere but powerfull internally customizable and fully open source. both postgresSQL and java is open and free. erp solution is also absolutely free for downloading and using.

See all erp-crm
jeeESB

Jee(G)ESB is an JAVA Enterprise Service Bus. jeeESB will do Webservice Orchestration without any container or no need external containers. By a simple XML it will Webservice Orchestration. jeeESB is using XPath and XmlBeans for configuration.

See all enterprise-service-bus
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.

See all expression-languages
CleanSheets

CleanSheets is a spreadsheet application. It features a formula language that closely resembles that of Microsoft Excel, and extensions for aiding end-user programmers in developing correct spreadsheets. The application relies on ANTLR for generating the formula compiler and the JFC/Swing JTable component for spreadsheet visualization.

See all finance
jGossip

jGossip is a simple and powerful forum implemented on J2EE platform using Struts framework. The project supports all the main features: reply-to user, page navigation, email-notification, administration of the users.

See all forum-software
TrueZIP

Although the ZIP file format it is a proprietary, de-facto standard by PKWARE Inc., ZIP files are ubiquitous on the Internet and thus on many platforms today. The J2SE API provides a well known package java.util.zip with classes like ZipInputStream, ZipOutputStream and ZipFile for easy access to ZIP compatible files. However, this package has some limitations/disadvantages: * Sun's implementation uses the character set UTF-8 (eight bit Unicode character set) for entry names and comments instead of CP437 (the genuine IBM-PC character set) as used by the de-facto standard PKZIP from PKWARE. As a result, you cannot read or write ZIP files with international entry file names such as \"t?cht.txt\" in a ZIP file created by a (southern) German. * You need to use an additional API (the package java.util.zip) if your application needs to support ZIP compatible files in addition to ordinary files and directories, thereby significantly inflating your code and adding unnecessary complexity (which adds bugs, bugs, and even more bugs). * You can either read or completely write ZIP compatible files, but you cannot just update individual entries. * The classes do not support the concept of a directory, which you may want to create, modify, list or delete. * You cannot browse a ZIP compatible file with a JFileChooser or FileSystemView. The TrueZIP Library has been developed to overcome these limitations/disadvantages.

See all general-purpose
JGeocoder - Free Java Geocoder

Geocoding is the process of estimating a latitude and longitude for a given location. JGeocoder is a free geocoder implemented in Java. This project is loosely modeled after Geo::Coder::US , a Perl module available for download from the CPAN.

See all geospatial
CHEF

The CompreHensive collaborativE Framework (CHEF) initiative has as its goal, the development of a flexible environment for supporting distance learning and collaborative work.

See all groupware
VietSpider HTMLParser

VietSpider HTMLParser: Pure Java HTML DOM parser, support HTML 4.0.1. It is a fast, syntax checker, automatically closes elements with optional end tags; and can handle mismatched inline element tags.

See all html-parsers
BlueJ

BlueJ is an integrated Java environment specifically designed for introductory teaching.

See all ides
Antigen

Antigen (Ant Installer Generator) is a tool to take an Ant build script, combine it with a GUI and wrap it up as an executable jar file. Its primary purpose is to create powerful graphical installers from Ant scripts.

See all installer-generators
Avalon

Avalon consists of a number of products and sub-projects supporting service and component management.

See all containers
BugTracker

The Bugtracker is a complete bug/issue management system, built around MySQL utilizing Java Servlets for a web based front end. This will soon grow into a complete project development architecture encapsulating project management, issue tracking, QA, etc

See all issue-trackers
GlassFish

GlassFish is the name for the open source development project for bulding a Java EE 5 application server. It is based on the source code for Sun Java System Application Server PE 9 donated by Sun Microsystems and TopLink persistence code donated by Oracle. This project provides a structured process for developing a high quality application server that makes new features available faster than ever before. It is the response to Java developers who want access to the source code and the ability to contribute to the development of Sun's next generation application server which is based on GlassFish. This project is designed to encourage communication between Sun and Oracle engineers and the community and will enable all developers to participate in the application server development process.

See all j2ee-frameworks
Bottomline

Bottomline is a JDBC Bridge API that loads database drivers directly from JAR archives. Unlike JDBC, Bottomline uses custom class loaders to load database drivers. This gives an advantage to load multiple versions of the same database driver from different JAR files. Developers can build applications using conventional JDBC and transparently use Bottomline underneath. Bottomline also seamlessly integrates with applications servers like JBoss and can be bound in JNDI which allows connections to be pooled using the application server's Connection Pooler.

See all jdbc
Open Message Queue

Open Message Queue is the open source version of Sun Java System Message Queue. Open message queue is an enterprise quality, production ready, scalable messaging server. It provides a complete Java Message Service (JMS) implementation for message oriented system integration. In addition, Open MQ provides the additional enterprise features that are necessary for enterprise deployments, large and small. It gets its roots from Sun's Java Message Queue and provides all the features, functions and capabilities of the currently available licensed product: Java System Message Queue.

See all jms
EJTools JMX Browser

The EJTools JMX Browser is a tool which allows to view and interact with the JMX space in a JMX compatible implementation. It provides the following features: * remote connections via RMI/IIOP/others (Swing-based) * local connection (Web-based) * a hierarchical view of the domains and the mbeans * access to the attributes, the operations and the notifications * attribute plotting The EJTools JMX Browser comes in two flavors : * A Swing-based application, that can be connect remotly to interact with the JMX server/implementation. * A Web-based application, that can be run in any J2EE 1.3 Web stack. It provides an easy way interact with the JMX server.

See all jmx
Essiembre J2EE Scheduler

J2EE Scheduler is a simple task scheduling mechanism for J2EE applications. This library can be considered a wrapper around the Timer and TimerTask classes found in the standard Java API. Configuration for tasks to be executed and their frequency is XML-based. A typical use for it is to periodically refresh in-memory data to ensure it stays up-to-date. It can also be used for automated maintenance tasks or anything else that suits your need.

See all job-schedulers
Ajax Tags Library

he AJAX Tag Library is a set of JSP tags that simplify the use of Asynchronous JavaScript and XML (AJAX) technology in JavaServer Pages.

See all jsp-tag-libraries
Attesoro

Attesoro is a translation editor for java programs. A translator can enter international characters directly into Attesoro and Attesoro will save the file in the correct format with escape sequences. Attesoro shows the untranslated text and the translator can type the translation directly below it. Attesoro shows items that have not yet been translated in blue while translated items are shown in black. Attesoro will change the name of the key in all files at once. Attesoro displays keys with changed translations in green and allows you to revert individual keys.

See all localization
Log Bridge

Log Bridge allows the abstraction of logging from a particular logging implementation. Log Bridge allows you to do this by providing a simple API that acts as a bridge from your library or component through to the logging package that the developers using your components choose. The features built into Log Bridge that are not readily available in other packages are: Tracing (entry and exit) is supported Programmatic control A simple API Less magic Built-in support for Simple Log Wide logging package support Log Bridge currently provides bridges to the following logging packages: Simple Log J2SE Logging Log4J IBM's Logging Toolkit for Java jLo Protomatter Syslog

See all logging
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.

See all mail-clients
edtFTPj

edtFTPj is an FTP client library that allows any Java application to have full embedded FTP functionality. It includes a straightforward but comprehensive API with functions such as put (), get(), chdir(), dir() and pwd(). Active and passive modes are supported, and directory list parsing.

See all network-clients
Apache James

The Apache JAMES Project delivers a rich set of open source solutions, written in Java, related to internet mail and news. JAMES is organized into subprojects with JAMES Server and the Mailet API as their core. Apache JAMES is a project of The Apache Software Foundation (ASF) which encourages a collaborative, consensus-based development process under an open software license. The ASF maintains other Java projects which may also be of interest. These are detailed on the ASF Projects page. We recommended that users of JAMES products subscribe to the JAMES users mailing list.

See all network-servers
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.

See all nosql
jarg

The jarg reduces the size of a jar file in which java class files are stored. \"Size curtailment can be carried out simply\" is the 1st target. However, as a result of processing by jarg, since a Java class file is optimized, it becomes quicker, and since it is renamed, it becomes that it is harder to be analyzed. That is, jarg is 'Java Optimizer', and it is 'Java Obfuscator' and is also 'Java Shrinker' or 'Java Reducer'.

See all obfuscators
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.

See all parser-generators
PDF Renderer

The PDF Renderer is all Java library which renders PDF documents to the screen using Java2D. Typically this means drawing into a Swing panel, but it could also draw to other Graphics2D implementations

See all pdf-libraries
JDBCPersistence

JDBCPersistence is yet another OR mapping layer. It differs from its peers in both implementation and API. Using bytecode generation at its core the framework generates classes that implement JDBC Logic which is specific to a table/bean pair. JDBCPersistence generates persistor classes at runtime on demand incurring no noticeable overhead on the development process. The entire framework configuration is done via API, which significantly improves start-up time and reduces library size.

See all persistence
iPoint Portal

iPoint Portal Open Edition is a complete open source collaborative web portal. iPoint comes with a complete set of portlets with which you can create fully featured portals, Internet sites and collaborative workspaces. Features: * Full Content Management Capabilities for static Content on any page. * Web 2.0 collaboration features including Wikis, Calendars, Blogs, Forums and Document Sharing. * Rich Media support including embedded images, audio and video. * Full text search of all content. * Extensive notification and messaging support including eMail, SMS and portal. * Easily branded with full XHTML and CSS support. Blue Dot Bullet RSS support both to publish and consume RSS feeds. * WebDAV support to drag and drop files for sharing. * Easily extensible through building custom portlets, templates and views. * Standards compliant supporting JSR 168 portlets on any page. * Easily Integrated with other applications using portlets. * Java platform , runs on any hardware platform that supports Java e.g. Windows and Linux. * Strong security with permissions on individual pages and portlets.

See all portals
japex

Japex is a simple yet powerful tool to write Java-based micro-benchmarks. It started as a simple project over a year ago, primarily aimed at testing XML and Fast Infoset performance, but has evolved into a rather sophisticated framework with support for XML and HTML output as well as various types of charts for displaying the results. It is similar in spirit to JUnit in that if factors out most of the repetitive programming logic that is necessary to write micro-benchmarks. This logic includes loading and initializing multiple drivers, warming up the VM, forking multiple threads, timing the inner loop, etc. One of the key design goals for Japex was extensibility. Via the use of a simple model of input and output parameters, it is possible to write micro-benchmarks to test practically anything.

See all profilers
Activity Manager

Activity Manager is a project management tool. It helps a project leader to manage and check his collaborators activity. Activity Manager allows to build and maintain a hierarchical task tree. It is based on a database with a very simple model that allows to build quickly custom reports through the report facility or through simple SQL requests. Activity Manager is customizable. Activity Manager is a Java based tool running in standalone mode (with an embedded HSQLDB database) or with a MySQL database server or custom mode (user defined database for skilled users). The tool's features are : * Durations repository administration * Collaborators repository administration * Tasks repository administration * Contributions management (=activity management) * Extensible report facility (with built in templates) * XML database export/import * EXCEL export

See all project-management
FeedPod

FeedPod is a Text-To-Speech RSS/ATOM Newsfeed reader. It generates PodCasting feeds, suitable for automatically downloading onto your portable MP3 player.

See all rss-rdf-tools
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.

See all rule-engines
ePascal

ePascal is interpreter of pascal programming language with own memory management. It was created for education purposes to learn algorithmic thinking of students of high schools.

See all scripting-languages
BDDBot

DDBot is a web robot, search engine, and web server written entirely in Java. It was written as an example for a chapter on how to write your search engines, and as such it is very simplistic.

See all search-engines
Acegi Security

Acegi Security is a powerful, flexible security solution for enterprise software, with a particular emphasis on applications that use Spring. Using Acegi Security provides your applications with comprehensive authentication, authorization, instance-based access control, channel security and human user detection capabilities.

See all security
CBE

CBE is revision control system with integrated make-like functions written in pure Java. It can be used similar to CVS but offers some new features like renaming files (while still keeping the history) and using a database as backend (optional).

See all source-control
Adit

Adit is another database interface tool built with Java. Adit is meant to be a lightweight tool for querying a database.

See all sql-clients
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.

See all swing
Better Templates for Everybody

A \"bottom up\" template specification in which data knows how to insert itself into the proper place in your template. Templates can be built from static files or from Java servlets.

See all template-engines
Mocquer

Mock is a widely used technology in unit test domain. It shields exteral and unnecessary factors and helps developers focus on the specific function to be tested. EasyMock is a well known mock tool which can create mock object for given interface at runtime. The mock object's behavior can be fine defined prior the test code in the test case. EasyMock is based on java.lang.reflect.Proxy, which can create dynamic proxy class/object according to the given interfaces. It has the inherent limitation from the Proxy. It can create mock object for given interface only. Mocquer is a similar mock tool as EasyMock. With the help of Dunamis Project, it extends the function of EasyMock to support mock object creation for both class and interface.

See all testing-tools
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.

See all text-processing
Alma

Alma is a software workshop for modeling and analyzing. It reads several sources (languages, models, etc.), helps you design for object-oriented modeling (definition of classes, relations, patterns, etc.), modifies the structure and the code, and outputs new sources, documentation, diagrams, etc.

See all uml-modeling
Spring-Modules Validation

Spring Modules is a collection of tools, add-ons and modules to extend the Spring Framework. The core goal of Spring Modules is to facilitate integration between Spring and other projects without cluttering or expanding the Spring core. Features: * Provides spring integration with commons-validator. * Provides an extensive framework for declaratively define validation constraints on domain models using XML, Java 5 annotations and/or proprietary validation language (Valang). * The framework is based on Spring's Validator infrastructure.

See all validation
Anvil

Anvil is a Java based server environment and object oriented programming language with templating support, being especially well-suited to for web applications.

See all web-frameworks
Claros inTouch

Claros inTouch (previously known as Claros Webmail) is an Ajax communication suite with key features such as webmail, address book, post-it notes, calendar(in progress), built in instant messenger, rss reader, webdisk(in progress). It is an open source web application which features built in spam protection and instant messaging capabilities.

See all web-mail
AsyncWeb

AsyncWeb is a high-throughput, non blocking Java HTTP engine - designed throughout to support asynchronous request processing. AsyncWeb employs non-blocking selector driven IO at the transport level, and is asynchronous throughout - from the initial parsing of requests, right through to and including the services implemented by users. AsyncWeb breaks away from the blocking request / response architecture found in todays popular HTTP engines. This allows it to be highly scalable and capable of supporting very high throughput - even in high processing latency scenarios. A simple API allows new asynchronous services to be created easily - and out-of-the-box Spring integration allows them to be configured simply and with great flexibility. In addition to \"endpoint\" HTTP services, AsyncWeb also allows configurable \"chains\" of behavior - enabling \"filter\" like behavior to be applied to all requests. Pluggable \"resolvers\" map incoming requests to their target HTTP service - and are given access to the entire incoming request - allowing the routing possibilities to be very flexible.

See all web-servers
Metro

Metro is a high-performance, extensible, easy-to-use web service stack. It is a one-stop shop for all your web service needs, from the simplest hello world web service to reliable, secured, and transacted web service.

See all web-services-tools
Canoo WebTest

Canoo WebTest is a free open source tool for automated testing of web applications. It calls web pages and verifies the results, giving comprehensive reports on success and failure.

See all web-testing-tools
Bliki

The Bliki engine is a Java API and an Eclipse offline editor for Mediawiki (aka wikipedia.org) documents. API features: * Renders Wikipedia syntax to HTML. * Renders Wikipedia syntax to PDF, LaTeX, Docbook (only partial support). * Template support. * Configurable through WikiModel interface. * HTML to Wikipedia syntax converter. * Source code highligthing for: java, php, html, javascript,... Eclipse editor features: * Syntax highlighting. * Content outline and content assist. * Down-/upload articles from a wiki server. * HTML preview.

See all wiki-engines
Dalma

The heart of the engine is an ability to capture the execution state of a thread and resume it later. Many applications of today need to have a part of the program that waits for other entities. . Often there are multiple conversations running concurrently. Those are what we call \"workflow\" applications. Today, those applications can be written, but one can't write it very productively. Dalma makes it very easy to write those workflow applications by letting you write it as an ordinary procedural program without any boilerplate.

See all workflow-engines
JAXB

The Java Architecture for XML Binding (JAXB) provides a fast and convenient way to bind between XML schemas and Java representations, making it easy for Java developers to incorporate XML data and processing functions in Java applications

See all xml-parsers
WidgetServer

WidgetServer is a Java/XML server-side GUI-framework which enables an application to run as either a monolithic Swing app, a client/server Swing app, or as a Web app without any change. It includes a mixed deployment mode, which supports one server to serve Swing clients and Web clients at the same time. The framework uses XML or a single java API to define an application's GUI independently from target client technology. It provides a common widget-based, object-oriented programming interface for Web and Swing GUIs, which prevents the developer from struggling with HTML and HTTP or with the internals of Swing. The project includes a GUI builder that is based on the framework's functionality.

See all xml-user-interface-toolkits