Andrej Koelewijn

  • Home
  • About
  • Departments
    • cloud
    • java
    • mobile
    • open standards
    • oracle
    • oss
    • other
    • soa
    • software development
    • tablet
    • Uncategorized
    • web
  • Subscribe via RSS

Groovy and Grape – easiest way to send gtalk message with Apache Camel?

February 28th, 2009  |  Published in soa  |  10 Comments

Groovy 1.6 makes it really easy to quickly try out new frameworks. Dependency management build into the language allows you to write simple scripts, all required libraries will be downloaded automatically when you run it.

Here’s an example using Apache Camel. This script can simply be run from the command prompt. Groovy will compile it, download all dependencies and run it. The dependencies are specified using the @Grab annotation. Groovy uses Ivy to download these dependecies.

#!/usr/local/groovy-1.6.0/bin/groovy

import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.language.groovy.GroovyRouteBuilder;

@Grab(group='org.apache.camel', module='camel-groovy', version='1.6.0')
@Grab(group='org.apache.camel', module='camel-xmpp', version='1.6.0')
@Grab(group='org.apache.camel', module='camel-core', version='1.6.0')
class SampleRoute extends GroovyRouteBuilder {
  protected void configure(){
  	from("file:///tmp/jabber").
  	  to("xmpp://talk.google.com:5222/touser@gmail.com?serviceName=gmail.com&user=fromuser&password=secret");
  }
}

def camelCtx = new DefaultCamelContext()
camelCtx.addRoutes(new SampleRoute());
camelCtx.start();

The script defines a Camel Route which will look for files in the folder /tmp/jabber. Whenever it finds a new file, the file is sent to the gtalk account specified.

Before you can run this script, you need to configure an extra maven repository. The smack library used to do xmpp communication from Java isn’t included in any of the default maven repositories, so we need to add a ServiceMix repository, hosted by apache. All the other lines are copied from the default grapeConfig. Save the following document in $HOME/.groovy/grapeConfig.xml. It’s a normal ivy settings configuration file, but specifically used by Groovy.

<?xml version="1.0" encoding="utf-8"?>
<ivysettings>
  <settings defaultResolver="downloadGrapes" />
  <resolvers>
    <chain name="downloadGrapes">
      <filesystem name="cachedGrapes">
        <ivy pattern="${user.home}/.groovy/grapes/[organisation]/[module]/ivy-[revision].xml" />
        <artifact pattern="${user.home}/.groovy/grapes/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]" />
      </filesystem>
      <!-- todo add 'endorsed groovy extensions' resolver here -->
      <ibiblio name="codehaus" root="http://repository.codehaus.org/" m2compatible="true" />
      <ibiblio name="ibiblio" m2compatible="true" />
      <ibiblio name="java.net2" root="http://download.java.net/maven/2/" m2compatible="true" />
      <ibiblio name="apache-servicemix-repository" root="http://svn.apache.org/repos/asf/servicemix/m2-repo" m2compatible="true" usepoms="true" />
    </chain>
  </resolvers>
</ivysettings>

One small script and you’re running a small ESB. Doesn’t get much simpler than this.

Share and Enjoy:
  • del.icio.us
  • Google Bookmarks
  • DZone
  • SphereIt
  • StumbleUpon
  • Technorati
  • LinkedIn
  • HackerNews
  • PDF
  • Digg
  • Facebook
  • FriendFeed
  • Posterous
  • Tumblr
  • Twitter
  • RSS
  • orana

    Groovy and Grape - easiest way to send gtalk message with Apache Camel? http://ff.im/-1gFej


    This comment was originally posted on Twitter

  • kenu
    Thanks. It's really short.
  • Paul King
    Hi Andrej, nice example.
    Mind if I 'borrow' it for the Groovy wiki?
    With a link back here of course.
    Paul.
  • akoelewijn
    Sure, go ahead.
  • breun

    @p3t0r Wel geinig gebruik van Apache Camel hier: http://tinyurl.com/cwnjnl


    This comment was originally posted on Twitter

  • James Strachan
    BTW you can use Groovy closures as filters in the routing DSL too...

    https://svn.apache.org/repos/asf/camel/trunk/co...
  • akoelewijn
    Thx, nice example. Still trying to learn real groovy programming. Currently, i'm mostly doing java with a groovy syntax.
  • Claus Ibsen
    Nice blog. Really shows the power and innovation by Groovy to add that @Grab annotation for prototyping and trying out frameworks.

    Go Groovy!
  • fagunbhavsar

    Groovy and Grape - easiest way to send gtalk message with Apache Camel? http://bit.ly/7WcKh


    This comment was originally posted on Twitter

  • Dave Z
    Wow, impressive Groovy example...
    This has inspired me to do some similar Groovy ESB processing. Thanks!
  • sparklinks

    Groovy and Grape - easiest way to send gtalk message with Apache Camel … http://twurl.nl/oubgmt


    This comment was originally posted on Twitter

  • Andrej
    Hubert Klein Ikkink has created another example illustrating how to poll an email box with camel and groovy.
blog comments powered by Disqus

Tags

bi bpel camel cep css dsl esb esper google governance grails groovy gtalk html5 innovation internet ipad ivy java javascript jaxrs jersey jigsaw jquery linkeddata linux middleware mule noiv openoffice openweb oracle osgi oss plsql rdbms rest smack soa sql sun tablet web 2.0 xmpp yql

Archives

  • January 2010
  • December 2009
  • November 2009
  • October 2009
  • August 2009
  • July 2009
  • June 2009
  • May 2009
  • April 2009
  • March 2009
  • February 2009
  • January 2009
  • December 2008
  • November 2008
  • October 2008

Meta

  • Log in
  • Entries RSS
  • Comments RSS
  • WordPress.org

Recent Posts

  • So you think it’s the iPad that’s missing features?
  • iPad is THE couch-device
  • Will they still like tablet 2.0?
  • Do you know who your customers are?
  • Usability: a must have, not a nice to have

Categories

  • cloud
  • java
  • mobile
  • open standards
  • oracle
  • oss
  • other
  • soa
  • software development
  • tablet
  • Uncategorized
  • web

Recent Comments

  • andrej on So you think it’s the iPad that’s missing features?
  • Dave on So you think it’s the iPad that’s missing features?
  • andrej on So you think it’s the iPad that’s missing features?
  • Fernando on So you think it’s the iPad that’s missing features?
  • andrej on So you think it’s the iPad that’s missing features?

RSS Friendfeed

  • SublimeVideo: Demoing the Future of HTML5 Video February 7, 2010
    andrej koelewijn SublimeVideo: Demoing the Future of HTML5 Video - http://www.readwriteweb.com/archive... 14 hours ago from Google Reader - Comment - Like […]
    FriendFeed
  • The War on Interruptions, an Excerpt from “Switch: How to Change Things When Change Is Hard” February 7, 2010
    andrej koelewijn The War on Interruptions, an Excerpt from “Switch: How to Change Things When Change Is Hard” - http://www.techcrunch.com/2010... 21 hours ago from Google Reader - Comment - Like […]
    FriendFeed
  • RT @edwk: Building HTML5 Webapps http://bit.ly/aamFgK some great tips #html5 February 7, 2010
    andrej koelewijn RT @edwk: Building HTML5 Webapps http://alexbosworth.net/post... some great tips #html5 yesterday from Twitter - Comment - Like […]
    FriendFeed
  • Alex Bosworth's Weblog - Building HTML5 Webapps February 7, 2010
    andrej koelewijn Alex Bosworth's Weblog - Building HTML5 Webapps - http://alexbosworth.net/post... yesterday from Google Reader - Comment - Like […]
    FriendFeed
  • Beautiful Motion Graphics Created With Programming: Showcase, Tools and Tutorials February 7, 2010
    andrej koelewijn Beautiful Motion Graphics Created With Programming: Showcase, Tools and Tutorials - http://www.smashingmagazine.com/2010... yesterday from Google Reader - Comment - Like […]
    FriendFeed
  • New Whitepaper: Architecting for the Cloud: Best Practices February 6, 2010
    andrej koelewijn New Whitepaper: Architecting for the Cloud: Best Practices - http://aws.typepad.com/aws... Saturday from Google Reader - Comment - Like […]
    FriendFeed
  • The Future of Web Content – HTML5, Flash & Mobile Apps February 6, 2010
    andrej koelewijn The Future of Web Content – HTML5, Flash & Mobile Apps - http://www.techcrunch.com/2010... Saturday from Google Reader - Comment - Like […]
    FriendFeed
  • The Days of Miracles and Wonder February 6, 2010
    andrej koelewijn The Days of Miracles and Wonder - http://www.eod.com/blog... Saturday from Google Reader - Comment - Like […]
    FriendFeed
  • AT AT Walking with CSS February 5, 2010
    andrej koelewijn AT AT Walking with CSS - http://ajaxian.com/archive... Friday from Google Reader - Comment - Like […]
    FriendFeed
  • “Ultimate Mashup” a Glimpse into the Future February 5, 2010
    andrej koelewijn “Ultimate Mashup” a Glimpse into the Future - http://blog.programmableweb.com/2010... Friday from Google Reader - Comment - Like […]
    FriendFeed


©2010 Andrej Koelewijn
Powered by WordPress using the Gridline Lite theme by Graph Paper Press.