[o:XML] Spring 2.0 integration
Martin Klang
martin at o-xml.org
Mon May 29 12:41:56 BST 2006
Hi again!
Question: anyone on the list using Java Spring [1]?
It's a pretty cool IOC framework (Inversion of Control, aka 'the
Hollywood principle'), which basically means that you can get the
benefits of a full application framework without the massive
overheads (and headaches) that come with traditional J2EE systems
such as EJBs.
It is based around POJO beans that are tied together with each other
and the framework using configuration files.
As of Spring 2.0 you can define beans in scripting languages such as
JRuby, Groovy and Beanshell. This is really rather interesting, as it
provides a way for developers to mix and match languages, choosing
the most suitable language for any particular task. In reality things
might be a bit more complicated, but at least that's how it might
work. In short, a very nice feature.
Having thought about it for a while I figured I should try to code up
adaptors to add o:XML as one of the supported languages. It was
actually pretty easy, even though I don't really know much about
Spring. All I had to do was create a ScriptFactory that compiles and
runs o:XML code, and a wrapper to handle function calls. Easy.
The wrapper handles transformations to and from DOM Nodes, so that
you can pass and receive DOM objects to/from o:XML beans without
worrying about conversions. Same with primitive types: String,
Boolean, Number etc.
It's a bit tricky to explain, but if you know Spring you probably get
the picture. The end result is that the o:XML beans are made part of
the framework with a simple config file, and the other components
don't even know that they're o:XML. Likewise, o:XML can work
seamlessly with objects that are written in Ruby or plain Java (I've
tested - it works!).
Now I'll just see if the Spring people want the adaptors in their
codetree, otherwise I'll add them into the stock ObjectBox. If anyone
wants to have a play, there's source and/or binary jars available for
the asking, together with a few examples. Oh, and you'll need Spring
2.0 M2.
/m
[1] http://www.springframework.org/
More information about the o-xml
mailing list