19 Mai 2010

Google I/O: App Engine, VMware, SQL

In my opinion today at Google I/O two incredible announcements were made.

1. Google and VMware are working together on a PaaS clound:
http://blogs.vmware.com/console/2010/05/google-and-vmwares-open-paas-strategy.html

Until yesterday I was sure that Java EE 6 will kill Spring Framework in the next few years, but now we have a clear statement for a PaaS (Platform as a Service) cloud based on Spring Framework. In contrast there is no PaaS solution based on Java EE 6. This will make Spring Framework more popular again!

2. Google App Engine Business
http://code.google.com/appengine/business/

Google announced a business version of their app engine. This is not very revolutionary on a first view, but they will add SQL database support to the business app engine. This will make it possible to port existing applications to the app engine. Which was till now nearly impossible because one had to use BigTable and a migration from RDBMS to BigTable is a complete refactoring.

Spring and SQL DB in the Google app engine will make the killer platform for a lot of applications at a very low cost. I'm curios what the reaction of Oracle, IBM, RedHat/JBoss will be...

17 Mai 2010

Missing Feature in Bean Validation

After using Bean Validation for some month I had a problem that I couldn't solve.

It's not possible to add "dynamic" parameters to the validation message. For example if you want to pass the id of your entity that fails and want to use that id in your custom MessageInterpolator.

We solved this be adding the parameters at the end of the message separated by #. So we could extract them in our MessageInterpolator and exchange {0}...{n} to the parameters passed.

But in my opinion this is an evil hack!
My suggestion is to change the type of the message in the method interpolate of the MessagInterpolator to something like ValidationMessage that could have a collection of object as parameters.

I will post this as a feature request to the JSR 303 expert group.

16 Mai 2010

First Thing I'm Missing in Java EE 6 Web Profile

After several weeks weeks using Java EE 6 Web Profile I discovered the first missing spec: JAX-RS.

I'm currently developing a simple web application and now wanted to add an interface for a PHP CMS. But how to create an interface without web services capabilities?

I think I will have to move to a full featured Java EE 6 application just to have JAX-RS :-(