Category Archives: equanda

equanda-tapestry5, tapestry components easily usable

I have finally made it easy to use the equanda-tapestry5 components. They were already available but required getting the source from svn and compiling. Now you can just download the jar or use the dependency in maven. I have now baked an intermediate version to make it easier to use (without requiring a full equanda release).

These are not components which will make your applications more sexy. For now these are mainly oriented at usability of the tapestry application. More to come later on.

It contains the following components :

  • Accordion :
  • a typical accordion component.

  • Tabs :
  • A Tabs component which integrates nicely with FormTraversal (works perfectly fine without as well).

  • FormTraversal :
  • make the tab and enter keys more consistent, allow submitting default button using and some other nice features.

  • Truncate :
  • shorter a string to something more limited, displaying the full text on mouseover.

  • FormActionLink (and Form) :
  • a form aware version of ActionLink which submits the form so that the state is remembered when you go back.

  • other :
  • there are a few translators (for double which allows both comma and dot as decimal separators) and for timestamp.

More details on the project site.

@javapolis day 1

Today JavaPolis 2007 started. This is a major java conference, the (though probably somewhat smaller) European counterpart of JavaOne.

At JavaPolis, they have two days “university” with some longer, more in-depth sessions, and three days with normal (1-hour) talks. I had the chance to see a university session introducing Spring 2.5. This was an interesting session which (yet again) convinced me that I really should start using this. The spring sphere also seems to be growing. For example, the well known security framework acegi has now been added to the spring community and is rebranded “Spring Security”.

A session in which I had special interest was the “code generation on giant crud” session by Tom Klaasen. He explained the use of code generation on an JSP application with 500 domain tables, knowing in advance that the data model would change. He calculated that each table would need 2000 lines of java code and could not imagine anybody wanting to type them. In the beginning they used ant and xdoclet to generate the application, but they have been able to improve things by migrating to maven and freemarker (xdoclet was slow).
It all sounded extremely familiar. The process they went through was similar to what happened in the development of (the predecessor of) equanda, though I assume equanda has more features.

Unfortunately, Tom Klaasen did not manage to drive through on the message. Though he rightly argued the advantages for generation on a large application, he could have stressed a bit more the extra agility and advantages in time, consistency, bug prevention, security,… which can occur thanks to code generation. Which gives us developers more time to spend on the important (and more fun) stuff, the business logic, which makes the solution more relevant and less expensive for the customers.

displaying a data model ontology

Using the “commercial” use of semantics, is is possible in equanda to automatically generate a data model ontology. This is exported as a OWL file.
The main use for this is to generate a graphical representation of the data model. Such an owl file can be displayed in Protégé, which (after enabling the Jambalaya plugin in the project properties tab) can generate a graph like the one below.

jambalaya view of data model ontology an generated by equanda

This exercise has indicated some strange facets of the OWL file format. While you would assume that a triple (A,X,B) and a triple (C,X,D) would result in two arcs, one from A to B and one from C to D. This is not true, it also generates arcs from A to D and from C to B. Apparently you have to assure that the relations have unique names. This does make the relation names which equanda generates less nice, but at least it works.