Expresso Framework is an open standards-based J2EE architectural framework that allows the developer to concentrate on application logic. It is a library of extensible Java Server application framework components for creating database-driven Web applications based on open standards. Expresso integrates with Apache Jakarta Struts, which emphasizes presentation and application configuration, and bringing a powerful tag library to Expresso. Expresso adds capabilities for security, robust object-relational mapping, background job handling and scheduling, self-tests, logging integration, automated table manipulation, database connection pooling, email connectivity, event notification, error handling, caching, internationalization, XML automation, testing, registration objects, configuration management, workflow, automatic database maintenance, and a JSP tag library.
Apache Cocoon is a Web development framework built around the concepts of separation of concerns and component-based Web development. Cocoon implements these concepts around the notion of "component pipelines", each component on the pipeline specializing on a particular operation. This makes it possible to use a Lego(tm)-like approach in building Web solutions, hooking together components into pipelines without any required programming.
Log4j is a logging package written in Java. Log4j allows you to log to a file, a java.io.Writer, a remote server, or a syslog daemon. The package is designed so that log statements can remain in shipped code without incurring a high performance cost. One distinctive feature of log4j is the notion of hierarchical loggers. Using hierarchical loggers, it is possible to select (at runtime) which log statements are output at arbitrary granularity. Users can choose to implement their own log formats and output strategies.
Groovy is an agile, dynamic language for the JVM which combines many features from languages like Python, Ruby, and Smalltalk and makes them available to Java developers using a Java-like syntax. It is designed to help get things done on the Java platform in a quicker, more concise, and fun way. It 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.
Batik is a Java-based toolkit for applications that want to use images in the Scalable Vector Graphics (SVG) format for various purposes, such as viewing, generation, or manipulation. It gives developers a set of core modules (parsers, generators, DOM implementation) which can be used together or individually, and be highly extensible. It comes with a full-fledged SVG viewer.
OpenSymphony Workflow is a very flexible workflow system that can be plugged in to almost any need or existing application. Uses can range from document management to order processing to project management. It includes support for many different interface mechanisms (SOAP, EJB, Java Class) as well as persistence (EJB, JDBC, XMl, Ofbiz). It works in any J2EE container, including servlet containers (without EJB support).
Velocity is a Java-based template engine. It permits anyone to use the simple yet powerful template language to reference objects defined in Java code. When Velocity is used for Web development, Web designers can work in parallel with Java programmers to develop Web sites according to the Model-View-Controller (MVC) model, meaning that Web page designers can focus solely on creating a site that looks good, and programmers can focus solely on writing top-notch code. Velocity separates Java code from the Web pages, making the web site more maintainable over the long run and providing a viable alternative to Java Server Pages (JSPs) or PHP. Velocity also provides template services for the Turbine Web application framework, making a template service that allows Web applications to be developed according to a true MVC model.
Apache Jakarta Regexp is a 100% pure Java regular expression package. Expression syntax supports all of Perl5 syntax, with the exception of back reference substitution markers (several people have mentioned this lack, so please feel free to contribute a solution). It also supports a very limited subset of POSIX features. Performance and features are somewhat inferior to ORO, and the new JDK 1.4 (java.util.regex) package, but the package is especially small and features the ability to precompile expressions (without using object serialization) into byte arrays, thus avoiding the need to load the expression compiler.