Module Overview

Groovy DSL for constructing Restlet application


GroovyRestlet is a simple DSL for constructing Restlet application in a simple, shortcuting syntax.

Download

Distributions

GroovyRestlet is distributed as a single jar.

Current release

GroovyRestlet 0.3-SNAPSHOT, donwload here
Changes

Old releases

Pre-requisites

At current moment, GroovyRestlet depends following:

Installing

Drop GroovyRestlet and all dependencies in your Java classpath.

Documentation

Quick start

First, create an instance of GroovyRestlet first.

GroovyRestlet gr = new GroovyRestlet()

If you want Spring support, provide an instance of ApplicationContext as the constructor parameter.

GroovyRestlet gr = new GroovyRestlet(appCtx);

Then, prepare your Restlet building script using simple GroovyRestlet DSL syntax.
Calling GroovyRestlet.build(URI) then done.

Check GroovyRestlet User Guide for detail user information.

Examples

Here is one GroovyRestlet DSL example, inspired from Restlet tutorial 11.

builder.component{
        current.servers.add(protocol.HTTP, 8182)
        application(uri:""){
            router{
                def guard = guard(uri:"/docs", scheme:challengeScheme.HTTP_BASIC,
                        realm:"Restlet Tutorials")
                guard.secrets.put("scott", "tiger".toCharArray())
                guard.next = directory(root:"", autoAttach:false)
                restlet(uri:"/users/{user}", handle:{req,resp->
                    resp.setEntity("Account of user \"${req.attributes.get('user')}\"",
                            mediaType.TEXT_PLAIN)
                })
                restlet(uri:"/users/{user}/orders", handle:{req, resp->
                    resp.setEntity("Orders or user \"${req.attributes.get('user')}\"",
                            mediaType.TEXT_PLAIN)
                })
                restlet(uri:"/users/{user}/orders/{order}", handle:{req, resp->
                    def attrs = req.attributes
                    def message = "Order \"${attrs.get('order')}\" for User \"${attrs.get('user')}\""
                    resp.setEntity(message, mediaType.TEXT_PLAIN)
                })
            }
        }
    }.start()

For more examples:

Developers

Source Control

http://svn.codehaus.org/groovy-contrib/groovyrestlet/trunk

Building

GroovyRestlet uses Maven 2 as its building tool.

Contributing

Feel free to contribute.

Mailing List(s)

http://groovy.codehaus.org/Mailing+Lists

Issue tracker

http://code.google.com/p/groovy-restlet/issues/