Spring is a lightweight Java/J2EE application framework based on code published in "Expert One-on-One J2EE Design and Development" by Rod Johnson. It includes powerful JavaBeans-based configuration management applying Inversion-of-Control principles, a generic abstraction layer for transaction management allowing for pluggable transaction managers, a JDBC abstraction layer, integration with Hibernate, JDO, Apache OJB, and iBATIS SQL Maps, AOP functionality, and a flexible MVC Web application framework with multiple view technologies. There is also a .NET port available.
Poor Man's Imaging Wrapper a clean and simple API wrapper over JAI, Java2D, ImageIO, and AWT. It supports a set of imaging operations (read, write, scale/resize, crop, grayscale, add transparency, rotate, add border, flip/mirror, add text, overlay, blur, sharpen, etc.) with simple direct calls to the API. If you want to switch from Java2D to JAI, all you need to do is add JAI jars to the classpath. It supports GIF encoding if PJA tools jars are available in the classpath.
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 and without loss of functionality. An Eclipse Plugin is available as well. A rich widget set is supported that includes tree views, tabbed panes, split panels, and much more. Animations, all types of events, and several effects are supported, as well. A unified widget-based, object-oriented programming interface for Web and Swing GUIs is offered to the developer to control and assemble the GUI. Web applications are fully AJAX enabled. For Swing client/server applications, the framework handles client/server communication, including compression and security layers.
Rome is a set of Atom/RSS Java utilities that make it easy to work in Java with most syndication formats. It accepts all current flavors of RSS (0.90, 0.91, 0.92, 0.93, 0.94, 1.0, and 2.0) and Atom 0.3 feeds. Rome includes a set of parsers and generators for the various flavors of feeds, as well as converters to convert from one format to another. The parsers can give you back Java objects that are either specific for the format you want to work with, or a generic normalized SyndFeed object that lets you work on with the data without bothering about the underlying format.