Thursday, December 13, 2007

Blessed and damned @Override annotation in JDK6!

When I've started to play with Java5 new features I'm surprised there no was a way to static check (at compile time) that a method is implementing a method of an interface. There is the @Override annotation but it's only useful to tell to the Java compiler I'm overriding a super class method, nor an abstract one neither an interface method.

Now I discovered Sun staff covered the gap in Java6 just extending the behavior of @Override annotation also to extend abstract methods or to implement interface methods. Great, apart there is no mention on public JDK 6 JavaDocs!!!

Someone raised a bug on Sun's tracker to correct it: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6399361

My Eclipse IDE 3.3.1.1 recognizes the new feature and add the @Override annotation every time I override a method or implement an interface method. Cool.

But now I've the big problem that Roma Framework's sources are full of them and many users reported me they won't compile under Java5! Yes, because Roma needs JDK 5 to compile (but some additional modules that require Java6 in order to use Scripting facilities. The modules now are just Workflow Tevere and ETL).

The fastest solution is to set JDK 5 as compliance level in every single projects don't use Scripting. It works. Blessed and damned @Override...

Tuesday, December 11, 2007

Interviewee by JavaStaff (in Italian)

Today was published the interview about me on JavaStaff portal. The interview is in Italian language:

http://www.javastaff.com/article.php?story=20071211103706919

Finally released Roma Meta Framework 1.0 rc4

This should be the last one before the official 1.0, but I repeat to myself this period from a long. Not that Roma is not mature yet, but I'd like to have a release where the Roma committers don't put so many improvements and news in general.

First of all I've changed the way to release it on SourceForge. Now there are:
  • The Web Wizard distribution containing all startup modules and the most used (as form of sources and binaries)
  • Plug-ins as individual packages such as Workflow, Monitoring, ETL, Scheduler, etc.
The main news of 1.0 rc4 are:
  • New Designer module to customize your application using the Drag&Drop GUI. It allows to change any configured annotations plus to layout screen and form areas
  • Deep refactoring of ETL-XPath module. Now allows to use scripting to define record and field transformers. Plus a new GUI in form of wizard to configure the ETL process. ETL supports extraction from CSV and SQL sources and import on POJO and CSV.
  • New Reporting JR module to generate dynamically reports using Jasper Reports. Report can be in form of PDF, CSV and MS Excel. Now you can display the report of any GUI at the fly
  • New "Web Ready" project type to start from a ready-for-the-web application
  • Enhanced all CRUD inserting "report" button
  • Resolved a lot of issues (see SourceForge tracker)
  • Minor improvements