Archive for January, 2007

Improved Spring Support in IntelliJ Selena

Sunday, January 28th, 2007

The latest IntelliJ IDEA Selena EAP now comes with improved support for Spring, hurray! Here is a screenshot (click on it to view a full image):

Intellij Selena Spring Support

Compass 1.1 RC1 Released

Friday, January 19th, 2007

The Compass team is pleased to announce the release of version 1.1 RC1. This is the first release candidate (and hopefully the only one) before 1.1 GA release. Major features include:

  • Parallel Gps Index Operation: Most Gps devices (Hibernate, JPA, …) now support automatic parallel index execution within the same JVM. More information can be found here.
  • Cascading Support: Compass support cascading operation on component and reference mappings. More information can be found here.
  • Terms list of Properties: Compass now allows to get a list of all the terms for a property name including its frequencies within the index. This feature allow to simplify the implementation of “popular tag listing” as can be seen in different blogs and tagging sites.
  • Initial OpenJPA support: Tighter integration with OpenJPA JPA implementation within the Compass JPA Gps device allowing to automatically inject Compass mirror listeners into OpenJPA.
  • Many more bug fixes and minor features listed here.

Compass & Grails

Friday, January 5th, 2007

Maurice Nicholson has published a really nice tutorial of how Grails and Compass can integrate with code attached. Enjoy!

Cascades And Compass

Thursday, January 4th, 2007

Have not blogged for some time, but it does not mean that stabilizing and adding new features to Compass stopped. One of the new features in Compass is support for cascading operations. When using OSEM, Compass can now cascade create/save/delete operations to both reference and component mappings.

In the mapping definitions (either xml or annotations) one can configure which operations will be cascaded. An interesting side-effect of the cascading feature is the ability to perform operation on non-root objects. If previously Compass threw an exception when a non-root object was being created/saved/deleted in Compass, Compass will now throw an exception if it is non root *and* has no cascading relationships. This means that operations on non root objects with cascading mapping can be performed.

For a concrete example, if we have a Person and Address class, we might want to cascade operation performed on the Address class to the relevant Person (Address is probably defined as root=false in Compass). Note, this will mean that Address should have a reference to Person (otherwise Compass won’t know how to fetch the applicable Person). This is very relevant in cases where Compass integrates with ORM tools where Person and Address might be stored on two different tables, and changes to Address won’t trigger a change to Person (thus not performing the operation using Compass injected ORM event listeners).