Spent all day trying to convince JvYAML in JRuby 1.0.3 to cooperate with me. I got this bone headed idea that Ola’s JvYAML 0.2.1 was too old to bother with, and decided that I was going to stealthily introduce JRuby into a project I was working on under guise of YAML.
Some background, the project in question uses ActiveMQ for JMS, and we throw messages around as TextMessage objects in a YAML format to make interoperability with Ruby messaging consumers and producers easier….. Or, at least that was the original goal, it turns out that halfway into the project the idea of Ruby message consumers (via Stomp) was abandoned, so I have a series of Java components communicating using YAML and ActiveMessaging.
Confusing? A little, but actually not that bad, it makes debugging the internal messaging a little easier because you can see what is in the messages. The alternative would have been TextMessages with XML using XStream or ObjectMessage. I wouldn’t care between XML and YAML, but I didn’t want to use ObjectMessage because it makes visual inspection of intransit messages a PITA.
ActiveMQ is working out well, decided to go with a 5.0-SNAPSHOT a long time ago, and I just moved over to 5.0.0. ActiveMQ 5.0.0 still depends on a snapshot of ActiveIO 3.1, but *shrug*.
Anyway back to JvYAML, ended up reverting back to JvYAML 0.2.1 as the JvYAML in JRuby really isn’t meant for consumption outside of JRuby. Why? It looks like JvYAML doesn’t like String objects instead it tries to throw around ByteList objects (an extension of CharSequence). Because I’m trying to use YAML as a transport encoding for JavaBeans, this would only work if I screwed with my model. Blernk.
In other news, I fixed an interest bug with the Sysdeo Tomcat Maven Plugin: http://jira.codehaus.org/browse/MOJO-992