John D'Emic's blog about programming, integration, system administration, etc...

Thursday, July 28, 2011

Generating Roo AspectJ ITD's from Maven

I've been messing around with Spring Roo the last couple of months and something that continually bothered me was the seeming inability to generate the ITD and other Roo artifacts from Maven. This typically means you need to check the artifacts in, which is particularly annoying in the case of ITD's. I found a workaround, however, using the Maven antrun plugin. Here's what I added to my pom.xml to get it to work:


<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>compile</id>
<phase>validate</phase>
<configuration>
<tasks>
<exec executable="roo">
<arg value="quit"/>
</exec>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
...


The above has the antrun plugin run roo on Maven's validation phase with the quit command. This causes Roo to start, generate missing artifacts and quit immediately. Since the antrun task doesn't fork Maven will wait until it exits prior to compiling and all should be well. This hopefully will help someone out.

Wednesday, June 15, 2011

MongoDB Transport 3.1.2.0 Released

I released version 3.1.2.0 of the MongoDB transport today. This rev's the transport for version 3.1.2 of Mule and also introduces contentType support for GridFS endpoints (thanks Christer!)

Monday, May 16, 2011

MongoDB Transport 3.1.0.4 Released

I just released version 3.1.0.4 of the MongoDB transport. The connector configuration now requires MongoURIs to configure the hosts and/or replica sets to connect to (and optionally, the database.) You'll need to remove the hostname and port attributes in your current connectors and replace them with the uri attribute to upgrade.

Friday, April 15, 2011

Version 3.1.1 of the SAAJ Module Released

I just released a Mule 3.1.1 compatibile version of the SAAJ module. Documentation is on MuleForge.

Friday, March 25, 2011

Fear, Loathing and Windows Server 2008

Let me preface by stating I loathe and despise Windows. Excluding the desktop product from this rant, I had the unfortunate experience of dealing with their server product (in the forms of IIS, Sharepoint and AD) over a two year period. I've been lucky enough, since then, to avoid dealing with Windows directly. That is, however, until this week. As such, in an effort to save others pain here are some things I learned:


  • The Java administrative tools (jstack, jmap, etc) don't work over RDP if you're connecting to a Java process running as a service. You instead get this helpful error: "Not enough storage is available to process this command". The solution is to download "PsExec" then preface the java commands with "PsExec -s".

  • When running a 32-bit JVM, lowering the max amount of heap helps avoid this exception: "java.lang.OutOfMemoryError: unable to create new native thread". Details are here.

  • There appear to be issues using NIO with Windows 2008 under concurrent load. If you're using the Apache Commons FileUtils stuff and are seeing weird NIO exceptions try using the Guava equivalents instead. The latter doesn't appear to use NIO under the covers.

Monday, March 21, 2011

MongoDB Transport 3.1.0.2 Released

I released version 3.1.0.2 of the MongoDB transport. This release, thanks to Craig Skinfill at OpenSky, introduces the "gridfs-file" message processor. gridfs-file allows you to load a single file from GridFS using either the payload of the message or a query. Documentation is available on MuleForge.

Wednesday, February 9, 2011

MongoDB Transport 3.1.0.1 Released

This blog is quickly becoming a release log for the MongoDB transport - I hope to have some content up soon. Until then I just released version 3.1.0.1 of the transport. Special thanks to Craig Skinfill and Steve Surowiec at OpenSky for suggesting and helping me test the fixed / new features. Here's some of what's new and improved:


  • Query support on outbound-endpoints

  • Misc upsert fixes

  • Support for queries on updates

  • Expression support added for queries



I don't like and didn't anticipate how complex behavior would become with the outbound-endpoints. As such I'm working on having the outbound-endpoints mirror the JDBC transport more closely, with nested configuration elements, rather then message properties, dictating the behavior of the endpoint.

Wednesday, January 19, 2011

MongoDB Transport 3.1.0.0 Released

I just released a new version of the Mule MongoDB transport. This is a major release that fixes a few bugs and introduces some new features. Thanks to David for suggesting and testing a lot of the new stuff.

Here's a list of what has changed:

  • Mule 3.1 support

  • Support for replica sets

  • "dispatch_mode" support to specify how messages are dispatched to Mongo. This allows you to specify "insert","update" or "delete" on the outbound message to control how the payload impacts Mongo.

  • A query parameter for updates has been added, allowing you to specify what documents will be updated.

  • upsert and multi support is also in place for updates.

  • Dependencies are now properly scoped.

  • WriteConcerns are now supported.

  • Deletion is now supported via dispatch_mode.

  • Global endpoints are now fully supported.

  • Flows are now fully supported.


  • As usual full documentation is available on MuleForge.