It is during weeks like this that I realise how much work is happening within the JBoss communities, with posts covering diverse topics such as supporting Software Transactional Memory on a Raspberry Pi to the nuances of handling nulls when invoking Java from Ceylon.  Many of these tasks are the result of the developer's interest in the technologies they use on a regular basis, experimenting and pushing the boundaries of what has previously been achieved.  Here is an introduction to some of these posts; I hope you manage to find something that is of interest.

 

STM on a Raspberry Pi

 

The raspberry pi is a very versatile, small footprint computing device which, although not very fast, is still capable of executing complex software.  As part of an ongoing task to introduce STM into vert.x, Mark Little shows us how easy it is to build the latest Narayana release on the Pi before walking us through an example which highlights the existing STM capabilities that are already present in Narayana's TXOJ codebase.

 

Ceylon, Null and Java Interoperability

 

One of the interesting features of Ceylon is its support for typed null values, a capability which can cause some confusion when it comes to invoking Java methods from within the language.  The Ceylon team have put a lot of thought into how they should handle this issue, implementing what they believe to be the best solution, but the behaviour is still proving to be a surprise to many.  Gavin has taken some time to describe the issue, some of the reasons which lead to the current implementation, and how this affects the Ceylon code.

 

Framework-less Dependency Injection within Scala

 

The use of dependency injection in any language usually implies that a DI framework is also a necessity, handling the injection at runtime, but this does not always have to be the solution.  Adam Warski has been putting a lot of thought into this problem and has come up with a different approach for solving this issue within Scala, making use of Scala Macros to handle the DI at compile time.

 

Faster and Easier Planning within OptaPlanner

 

Geoffrey has recently replaced the ConstraintOccurrence in OptaPlanner with the much more concise ConstraintMatch system.  The result of this change is faster execution of the scoring and a more concise syntax for the DRL files.  Check out Geoffrey's post for more details on this change, including a performance comparison with the previous system.

 

Callable Statement support in Hibernate

 

The JPA 2.1 specification adds a number of very useful features to the specification, one of which is support for invoking stored procedures.  For simple invocations, for example the invocation of stored procedures which return a single result, this is a straight forward task however it is only when you consider stored procedures that can return multiple results, and/or update counts, that you realise that the code begins to look unfriendly.  In order to address this issue Steve Ebersole recently implemented an alternative mechanism, specific to hibernate, which results in simpler, more concise code.

 

Handling JDBC drivers within an OSGi Container

 

Handling JDBC drivers within OSGi can be a challenge when a bundle attempts to load the driver dynamically, requiring the bundle to have visibility of the driver within its ClassLoader.  If the package name of the driver is known before hand then this can easily be addressed through the use of the Import-Package metadata however there are many occasions when the driver is not known until runtime.  Freeman Fangs has come across this situation on a number of occasions and shares his advice on how this issue can be solved.

 

Upcoming Events

 

Claus Ibsen will be presenting at an Apache Camel event in Copenhagen on April 11th and may also be presenting at the Gothenburg JUG on April 23rd.

 

New Releases

 

The HornetQ team have announced the release of HornetQ 2.3.0.CR2, their last candidate release before going final.

 

The Hibernate team have announced the release of HIbernate ORM 4.3.0.Beta1, now targeting version 2.1 of the JPA specification.

 

The Teiid team have announced the first alpha of Teiid 8.4, now based on the productised version of the application server, EAP 6.1 Alpha.

 

That's all for another week, please drop by next week for some more updates from the JBoss Community.