NetKernel News Volume 1 Issue 21

March 26th 2010

What's new this week?

  • End-to-end support for the new HTTP PATCH verb.
  • Enhancements to Jabber and Intray transports
  • Groovy 1.7.1 first look
  • Resource Oriented ESB demo.
  • Some boring stuff about mailing list.

[Apologies if you got this twice - see boring stuff below. What do you mean, "Which bit, its all boring." ?]

Repository News

http-client: Implements last week's standard approval of IETF 5789 PATCH method ( (see below).

jabber-xmpp: Now supports TLS encrypted connections and the option to supply a port number. (Thanks to Chris Cormack for contribution.)

intray-transport: The intray transport now provides the optional ability to specify a file extension match on the input side and the file extension to be used for the processed output file. (Thanks to Darren Cruse for contribution.)

nkse-license: Support panel modified to point to the new newsletter service (see below).

[To get updates from the repositories use Apposite->admin->"synchronize" then view "Packages" and "select all updates"].

Housekeeping: Mailing List Transition

Our mailing lists are in the process of transitioning to a new more flexible implementation on the NetKernel Portal. This is of no interest to you I know, but it does mean the new system has the option to unsubscribe and supports multiple lists for special interest topics. More importantly, it enables us to issue ad-hoc announcements such as security alerts so we can offer you a better service.

We'll run the two in parallel this week and next, but then close down the older system. So, if you want to keep receiving these newsletters and you haven't already done so, register on the portal which will renew your subscription...

If you are already registered on the portal and don't want to get this weekly newsletter, just uncheck "NetKernel Newsletter" in your portal settings


Following last week's ratification of the PATCH method as a standard we have implemented a new accessor active:httpPatch in the http-client library. The argument syntax is the same as for active:httpPut but the semantics are defined as conveying a change set as the body representation.

Brian Sletten discusses how PATCH could play out with RDF resource models...

And of course PATCH is equally applicable for text, XML,.... and application specific resource models.

The http-server is unchanged since the HTTPBridge is already a general solution that provides the resource httpRequest:/method - which when requested will return "PATCH" if the server is handling a PATCH request from the active:httpPatch client. It is your service/application's responsibility to choose the success response code (with the recommendation being to use 204) and to issue error handling response codes as per the specification.

Development News

We've started evaluation and testing Groovy 1.7.1 prior to release for both NKSE 4.1.0 and NKEE final. The 1.7 family adds anonymous inner classes for more Java equivalence, plus plenty of other enhancements...

Its directly replaceable with 1.6.x library we currently ship - so if you're keen, you can swap over the groovy-all.jar in the lib/ directory of the lang-groovy module.

Out of the box its passing all our regression tests but we'll take a little time to monitor it over the longer term. We're cautious with adopting language runtime updates just in case.

One difference we've already found is that you need to take care with static variable declarations used in the main script body and not part of an inner class - if you're currently using 1.6.x you might want to take care with these to avoid future incompatibility.

On a related note, it looks like JRuby is now nearing a level of maturity that would make it viable as a language option on NK. We actually have an unreleased JRuby runtime based on JRuby 1.1.x. But we felt JRuby was too transitional to be released. However it now seems to have a stable embedding API, and hopefully it will have addressed intialisation performance issues that made it unviable before.

The NK JRuby integration has a companion module that provides the Ruby 1.8 class library (loaded through the ROC address space - with an ROC Ruby path similar to the pattern we use with lang-python).

If there's a pressing demand we can put some effort into integrating 1.4.x and releasing as a package.

ROC Community News

Last week Jeremy Deane presented his NetKernel-based "Resource Oriented ESB" architecture at The Server Side symposium in Las Vegas...

Presentation is here:

It combines RESTful web services, JMS and 3rd party SOAP-ws using clean URI abstracted services to provide normalized transport-independent middleware. The system is mission critical and serves 20,000+ users a day.

He's gone the extra mile and produced a very comprehensive demo that can be adapted as needed...

Demo is here:

Judging from the audience's twitter traffic the presentation was very well received.

Have a great weekend.


Please feel free to comment on the NetKernel Forum

Follow on Twitter:

@pjr1060 for day-to-day NK/ROC updates
@netkernel for announcements
@tab1060 for the hard-core stuff

To subscribe for news and alerts

Join the NetKernel Portal to get news, announcements and extra features.

NetKernel will ROC your world

Download now
NetKernel, ROC, Resource Oriented Computing are registered trademarks of 1060 Research

© 2008-2011, 1060 Research Limited