Jadira is the home for Sousan and Chris Pheby's open source projects. These are reusable open source Java modules that provide first class solutions using the most effective current JEE technologies.

Tag Cloud
« New Answers for New Questions: (More Than) A Decade On | Main | Solution Development Lifecycle »

Where Next for Jadira Usertype?

Its getting close to two years since I first put together the Usertype library. The project - quite a small piece of open source - began when I wanted to put together some classes for integrating the ThreeTen library (the reference implementation for JSR310) and Hibernate. The library expanded to support Joda Time almost by accident. I was using Joda Time Hibernate to verify that the JSR 310 mappings worked - writing to the database using one library and reading back to the other - when I found inconsistencies between the two libraries. Digging into the causes revealed problems with mapping of types such as LocalTime that had their roots in the way JDBC handles temporal types.

Today Usertype not only addresses these issues but also has support for arbitrary configuration of the database and jvm timezone; a wide variety of single and multiple column types and the JPA @Version annotation. The pending release will allow for global configuration using Hibernate properties and autoregisters the most common type mappings - avoiding the need to register them in Hibernate configuration or via annotations. Usertype supports both Joda Time and JSR 310 giving a convenient migration route from one library to the other. The library is proving remarkably stable, with very few defects and I encourage any users of the original contributed Hibernate library to consider using it.

I am now wondering where future development for the project should lie. The likely next step will be for the project to incorporate support for other fundamental types. Like date and time types, money types share many of the same properties - strong typing, single and multiple column mappings and other needs. The recent announcement of JSR 354 - Money and Currency API has me considering adding support for this API as it becomes established, and as with Joda Time, I plan to create a forward looking bridge by including support for Joda Money. The second direction I am considering taking the project is in supporting JAXB bindings for the various supported types. This will again help provide a forward direction for each supported datatype and help to put in place a canonical representation for the important Money and Currency types. The exact form these data-bindings will take needs more consideration, and should reference the general structure used in standard financial formats such as ISO 20022. Feedback on the planned directions is very much appreciated.

Closely related to Usertype is the Jadira Bindings project. This project provides a set of data binding APIs that support implicit conversions from one data type to another. The project is now becoming increasingly mature and is being enhanced to support registration of any kind of function - not only for conversions. During the next few months I expect to deliver a 1.0 release. There are also some other projects I am preparing code for - also planned to be open source - but I want to save discussion of these for another post.

PrintView Printer Friendly Version

EmailEmail Article to Friend

References (1)

References allow you to track sources for this article, as well as articles that were written in response to this article.
  • Response
    Response: Borderlands 3
    Borderlands 3

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>