@@ -0,0 +1,1419 @@
+package org.jpos.transaction.participant;%0A%0Aimport groovy.lang.Script;%0Aimport org.jdom2.Element;%0Aimport org.jpos.core.ConfigurationException;%0Aimport org.jpos.transaction.GroupSelector;%0Aimport org.jpos.util.LogEvent;%0Aimport org.jpos.util.Logger;%0A%0Aimport java.io.Serializable;%0A%0A%0Apublic class GroovyGroupSelector extends GroovyParticipant implements GroupSelector %7B%0A%0A    private Object select;%0A%0A    @Override%0A    public String select(long id, Serializable context) %7B%0A        LogEvent ev = new LogEvent(this, %22select%22);%0A        String result = null;%0A        if (select == null)  %7B%0A            result =  defaultSelect(id, context); // nothing to do%0A        %7D%0A        try %7B%0A            if (compiled) %7B%0A                Script s= ((Class%3CScript%3E)select).newInstance();%0A                s.setBinding(newBinding(id, context));%0A                result = (String) s.run();%0A            %7D%0A            else%0A                result = (String) eval(getShell(id, context), select, scriptNames.get(%22select%22));%0A        %7D catch (Exception e) %7B%0A            error(e);%0A        %7D%0A        ev.addMessage(%22select%22, result);%0A        Logger.log(ev);%0A        return result;%0A    %7D%0A    @Override%0A    public void setConfiguration(Element e) throws ConfigurationException %7B%0A%0A        super.setConfiguration(e);%0A        select = getScript(e.getChild(%22select%22));%0A    %7D%0A    public String defaultSelect(long id, Serializable context) %7B%0A        return %22%22;%0A    %7D%0A%7D%0A

Create GroovyGroupSelector.java