Java.net commons is a merge of various common utilities that have been used in other open source projects including Savant and Verge. This project is currently in release candidate stage and will be releasing version 1.0 in early 2006.
The Java.net Commons provides helper classes, interfaces and implementations to make working in Java simpler. Items in the Java.net commons include:
A type converter library for converting from one type to another. This conversion API includes support internationalization and complex conversions that might require additional parameters. Conversions that are supported are String->Object, Object->String, String->Array, Array->Array, Array->String.
A type validation library. This library can validate simple types or custom types. It also supports validation of JavaBean properties including nested properties. Error messages are supported and can be internationalized easily. In addition, the ability to pass in additional parameters for complex validation is supported (such as integers for min and max length).
A JavaBean library for working with JavaBeans. This library makes working with JavaBeans simple. Support for nested properties, type conversion, events and automatic object creation are included. Rather than a toolkit class, this library breaks down JavaBean operations into distinct clases that can be sub-classed. Furthermore, support for non-standard method naming is also included (such as addFoo(Foo foo)).
An extensible variable replacement system for replacing simple variables inside Strings. This allows pluggable implementations of variable resolution so that applications can locate the variables however they see fit.
And more
In order to be more than yet another Java common library, Java.net Commons fully supports JDK 1.4 and JDK 1.5. The JDK 1.5 support includes versions of all classes with generics where applicable.
In addition, a fundamental principle of Java.net commons is that internationalization should be as obvious as possible. Most interfaces in the Java.net commons provide the ability to specify the Locale for a particular operation. Those interfaces that lack this support rely on a Locale discovery mechanism that is provided by the library.