My Java Toolbox Circa 7/2004

OK, this needs work, I took the outline file I keep in JOE (the Java Outline Editor, yay!) and put it’s OPML through a hastily generated XSLT to produce the following mess. No doubt I can now receive a volume of criticism for poor formatting.

Note: I’ve moved the list to the extended entry so it doesn’t all show up on the main page of my weblog. I’ve also fixed the first few bugs I found in the list (no doubt the first of many. I’ll keep working on the formatting and fixing bugs until it is fairly readable.

Agents

Cougaar

Cougaar has a Java-based architecture for the construction of large-scale distributed agent-based applications. It is the product of a multi-year DARPA research project into large scale agent systems and includes not only the core architecture but also a variety of demonstration, visualization and management components to simplify the development of complex, distributed applications.

Aglets

IBM Aglet Kit

Hawaii Aglet Server

Artificial Intelligence/Expert Systems

JGAP: The Java Genetic Algorithms Package

JESS

JOONE – Java Object Oriented Neural Engine

JSR-94

Weka

Bayes & Naive-Bayes Classifiers

Classifier4J

Naiban

Authentication and Authorization

Acegi Security System for Spring

OSUser2

Tapestry

JAAS

JAAS in Tomcat

Clients

Virtual File System

Email

Java POP3 Email Proxy

MAILMILL

HTTP

HttpClient

URLFetch Java

HTTP Proxies

Muffin

Surfboard Proxy Framework

PAW

Internet Protocols

Jakarta Commons/Net

RSS

News retrieval from hundreds of websites via their RSS syndication files.

fetchrss

fetchrss polls weblogs (rss feeds) and e-mails the updates, one message per updated entry. The effect is comparable to the weblog author e-mailing you personally. fetchrss can run in the background on your desktop or server.

HotSheet

Informa

RSS4j

RSSLibJ

RSSLibJ is a Java class library designed primarily to generate RSS data in various formats, based on a simple object model.

Connected Graphs

GEF

JGraph

JGraphT

Arakne Network Editor

Documentation

Bouvard & Pecuchet

Xref-java2html

QDox

JEX

Encryption

The Bouncy Castle Crypto API

Cryptix

Frameworks

Components and Services

Carbon

HiveMind

Jicarilla

A compact, powerful, extensible and performant component-oriented software framework written in java, and a collection of components developed for this framework. Jicarilla utilizes and supports inversion of control, seperation of concerns, seperation of interface from implementation, contract-based programming, aspect-oriented programming and event-based programming. To get the buzzwords out of the way :D

In readable english, Jicarilla provides a platform for developing a wide range of applications and software components. Think of Jicarilla as the glue between your classes, beans, components and/or services. Jicarilla can be used for building and glueing together a wide variety of applications. Whether you build web services, server applications, servlets, enterprise javabeans, desktop applications, or applets, Jicarilla will make it easier.

Keel

Merlin

The Merlin project deals with the broad area of service and component management. The Merlin system is a container that provides comprehensive support for the management of complex component-based systems. Merlin uses a component meta-model to facilitate the automated assembly and deployment of components.

NanoContainer (see also PicoContainer)

PicoContainer

Spring

Mule

Mule is a light-weight messaging framework. It can be thought of as a highly distributable object broker that can seamlessly handle interactions with other applications using disparate technologies such as Jms, Http, Email, and Xml-Rpc.The Mule framework provides a highly scalable environment in which you can deploy your business components. Mule manages all the interactions between components transparently whether they exist in the same VM or over the internet and regardless of the underlying transport used.

Mule was designed around the Enterprise Service Bus enterprise integration pattern, which stipulates that different components or applications communicate through a common messaging bus, usually implemented using Jms or some other messaging server. Mule goes a lot further by abstracting Jms and any other transport technology away from the business objects used to receive messages from the bus.

Web Application

Cocoon

Struts

Tapestry

WebMacro

Socket Communications

SocketTalk

Graphics

Batik

OpenMap

Piccolo

TinyPTC

ZVTM: Zoomable Visual Transformation Machine

Barcode Generation

Barbecue

JBarcodeBean

Charting

Cewolf

JFreeChart

Chart 2D

JOpenChart

EXIF

Jhead

exifExtractor

Images

Links

PDF

iText

PDFBox

Icons

Links

http://sourceforge.net/projects/icon-collection/

http://developer.java.sun.com/developer/techDocs/hi/repository/

JDBC

Java based

Axion

McKoi

HSQLDB

Redbase

IDEs

DbVisualizer

Squirrel

Reporting

Generation of reports from databases or other data sources.

JFreeReport

DataVision

Mondrian

Intercepting and Modifying Commands

P6Spy

JSP

the display tag library

LDAP

http://salt.sourceforge.net/

Logs

Jestr

Jestr–pronounced like “jester”–is a Java Reflection-based library that provides an extensible framework for defining the way objects are “stringified”–that is, converted into String’s for display and logging purposes. It allows the application to define how objects are stringified just by editing a properties file. The style of stringification can be adjusted at runtime, either in a blanket fashion or just for individual classes, class hierarchies, and package hierarchies. Jestr is configurable using a properties file called jestr.properties, which models log4j.properties and should look reasonably familiar to those accustomed to Log4J.

Logging

Just4log

Log4j

Log View/Filtering

Chainsaw

Lumbermill

Misc

Java Object Cache

JOCache is a Java library that implements strict object caching.

It’s strict in that each cache enforces two limits in a very strict and predictable way.

Very Large Hashtable

JOTM

Java FEC (Forward Error Correction) Library

SiteMesh

SiteMesh is a web-page layout and decoration framework and web- application integration framework to aid in creating large sites consisting of many pages for which a consistent look/feel, navigation and layout scheme is required.

Xephyrus Flume Pipeline

Flume is a component pipeline engine. It allows you to chain together multiple workers into a pipeline mechanism. The intention of Flume is that each of the workers would provide access to a different type of technology. For example, a pipeline could consist of a Jython script worker followed by a BeanShell script worker followed by an XSLT worker.

The pipeline workers can contain any custom code, however the intention behind Flume is that the workers would implement different scripting languages. This provides a means of separating distinct functionality of the work-flow. For example, if Al understands the business flow and Betty is really good at making it look good, Al could write his piece in Jelly and Betty could do her work in XSL. The pipeline could then execute Al’s script, then do Betty’s transformation, spewing out some nice document.

JReleaseInfo

The JReleaseInfo AntTask generates a java source file with getter methods for the build date of the program, a build number or the version.

Multimedia

Peer-to-Peer

Blitz JavaSpaces

The purpose of the Blitz project is to further the use of JavaSpaces and JINITM through the provision of essential resources such as:

JXTA

JavaGroups

Instant Messaging

Echomine Muse

Echomine Muse is a library intended to make communication across a wide variety of protocols (including Jabber, Napster, Gnutella, and more) easy and somewhat consistent.

Object Persistence

Hibernate

Jing DAO Framework

Prevayler

SwarmCache

SwarmCache is a simple but effective distributed cache. It uses IP multicast to efficiently communicate with any number of hosts on a LAN. It is specifically designed for use by clustered, database-driven web applications. Such applications typically have many more read operations than write operations, which allows SwarmCache to deliver the greatest performance gains. SwarmCache uses JavaGroups internally to manage the membership and communications of its distributed cache.

Object-XML Binding

Castor

Digester

Jato

JiBX

XML Databases

eXist

Xindice

Program Distribution

IzPack

Packlet

Java Web Start/JNLP

Java Web Start

Netx

Reading and Writing XML

Utilities

txt2xml

NekoHTML

jaxen

Element Construction Set

The Element Construction Set makes it easy for you to build structured XML from a series of calls to objects. It tries to make sure you can’t generate something that is not well-formed at the least, even if it is not necessarily well structured. I’ve used this in the past and found it easy to use but it seems to have fallen from favor. The last time I looked there wasn’t much new activity and most people I work with tend to push for using JDOM for this purpose.

VMTools

Library functions to find differences between XML documents and represent those differences as a series of edit operations (again in XML form). Sample code is provided to make it easy to not only find the differences but also to patch an existing file to make it look like a new one.

Parsing

Binary XML

JAXP

JDOM

dom4j

Pipelines

xBeans

Clover ETL

Transmorpher

Remote Procedure Calls

Hessian

SwitchRMI

SOAP

Apache Axis

GLUE

XML-RPC

Apache XML-RPC (formerly the Helma XML-RPC library)

Scheduling

Jcrontab

Scripting

BeanShell

Bean Scripting Framework

Simkin

Searching

Lucene

Jakarta Lucene is a high-performance, full-featured text search engine written entirely in Java. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform.

Relevant links

Server Administration

Servers

Java Service Wrapper

JMX

JMX offers a simple way for you to package server components so you can make them administrable locally or remotely. JBoss and many other server packages now make their components MBeans (managable beans) just to get this functionality.

Consider it seriously for any server software you might be building.

MC4J Management Console

XtremeJ

MX4j

JBossMX

JMX Homepage (Reference JMX Implementation Available Here)

AdventNet Agent Toolkit Java/JMX Edition

Modeler Component

JMX taglib

JMX4Ant

XMOJO

Email

MrPostman

HTTP

Jetty

Jo

J2EE

JBoss

SecurityFilter

Portal

eXo

Jetspeed

jportlet

Pluto

WebDAV

Slide

Swing

Date & Time Selector Component (commercial)

Can be customized to pick Date, Time or Date & Time.

Unavailable dates can be set. User selection is disabled for unavailable dates.

Clock needles can be dragged to change time.

Class Library includes separate Calendar Panel and Clock Panel for other use.

Unlimited runtime distrubution without any royalty

FoxTrot

Glazed Lists

Suppose you have a list of 1,000 objects to browse. With Glazed Lists, you can:

Java Bean Calendar Control

JCascadedPane

JCalendar

JCalendarCombo

JFontChooser

The Kiwi Toolkit

New controls for Swing (including a tree table, date control, etc.)

L2FProd.com Common Components

A set of new Swing components including a font chooser, directory chooser, property sheet panel, and a really cool task pane.

Embedded Editors

Ekit

Ekit is a free open source Java HTML editor applet and application. The Ekit standalone also allows for HTML to be loaded and saved, as well as serialized and saved as an RTF. It is approaching its first production release version.

JXMLPad

JXMLPad is a pure Swing java component/framework for editing XML/XHTML document.

Look and Feel

Want to change the look of your Java application. Here are some ways to do it.

Oyoaha lookandfeel

SkinLF

Metouia look & feel

Windows System Tray Integration

Java System Tray Manager

Windows Tray Icon – Java Implementation

Templates

Canvas

Canvas is a template generator based on the Groovy language. It uses the familiar Velocity Java API to bind variables and allows you to use the full expressivity of Groovy inside your templates.

FreeMarker

vDoclet

Velocity

XDoclet

XSLT

Tools

UI Compiler

Build

Ant

Anthill

CruiseControl

Maven

Profiling

Extensible Java Profiler

JAMon

JAMon offers a set of functions which can be called to record performance data (both duration and number of times executed). The data can be reviewed using an admin JSP.

JRat: the Java Runtime Analysis Toolkit

Version Control

JSVN

Testing

Customer Acceptance Testing

Unit Testing

Swing GUI Testing

Source Code Reformatting

BeautyJ

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.

Workflow

Bonita

Bonita is a flexible cooperative workflow system, compliant to WfMC specifications, based on the workflow model proposed by the ECOO Team, which incorporates the anticipation of activities as a more flexible mechanism of workflow execution.

Bossa

JaWE

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. It can be used to edit / view every XPDL file which conforms to WfMC specifications.

jBpm

OpenEmcee

The “OpenEmcee Microflow Engine for Java” is an open source framework (Released under MPL 1.1) for developing flexible, manageable, and adaptable applications. It aims to allow application developers to develop well-engineered business-logic intensive application domain software. Drafting from the “Model” and “Controller” layers of the “Model-View-Controller” pattern, it allows developers to separate the business context of their application from their core business functions.

This separation of context from core implementation encourages development of software units which are easily reusable and require no or little modification to business critical code when implementing new functionality. Also, these units of work (“tasks”) can be easily reused in future projects.

Open For Business

OpenWFE

Jakarta Commons Workflow Project

OSWorkflow

Shark

The Shark project delivers a workflow server with a difference. Shark is completely based on standards from WfMC and OMG using XPDL as its native workflow definition format. Storage of processes and activities is done using Enhydra DODS.

werkflow

About these ads

6 thoughts on “My Java Toolbox Circa 7/2004

  1. Michael Gloegl

    Very nice (and long list) – even discovered some new ones, I am going to take a look at SwitchRMI as this seems to solve something I have been looking for lately.
    What do you think about putting the list to some Wiki somewhere, so it can be continuously maintained?

  2. Straight from the Abyss

    Java Toolbox as Wiki

    John Munsch gave me permission to publish his Java Toolbox in a Wiki form. So I basically just took the list John published and made it available here.
    It still needs some cleaning up which I will do sometimes in the next weeks. Feel free to add you…

Comments are closed.