#!/usr/bin/env 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-mail', version='1.6.0')
@Grab(group='org.apache.camel', module='camel-core', version='1.6.0')
class GroovyMailRoute extends GroovyRouteBuilder {
    protected void configure(){
        from("imaps://imap.gmail.com?username=username@gmail.com"
                                 + "&password=secret"
                                 + "&deleteProcessedMessages=false"
                                 + "&processOnlyUnseenMessages=true"
                                 + "&consumer.delay=600000")
            .filter { it.in.headers.subject.contains('Groovy') }
            .to("log:groovymail?showAll=true&multiline=true")
    }
}

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