Hi,

I'm currently working on my clojure plugin and want to provide something like a 
JavaExec. However I run into a funny compile error when I try to compile the 
ClojureExecAction. I derive it from JavaExecHandleBuilder and modify some of 
its behaviour. However the failure does not occur in my code?

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
/Users/mb/Documents/Projects/Clojure/gradle-plugin/clojuresque/clojuresque/src/main/groovy/clojuresque/ClojureExecAction.groovy:
 -1: The return type of org.gradle.process.JavaExecSpec 
setIgnoreExitValue(boolean) in 
org.gradle.process.internal.JavaExecHandleBuilder is incompatible with 
org.gradle.process.BaseExecSpec setIgnoreExitValue(boolean) in 
org.gradle.process.BaseExecSpec

Sincerely
Meikel

Here the code. Please note that it is not tested, maybe a bad idea, doesn't 
even work. I'm early in my investigations.

/*-
 * Copyright 2009,2010 © Meikel Brandmeyer.
 * All rights reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included
 * in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 * IN THE SOFTWARE.
 */

package clojuresque

import org.gradle.api.internal.file.FileResolver
import org.gradle.process.ExecResult
import org.gradle.process.internal.ExecHandle
import org.gradle.process.internal.JavaExecAction
import org.gradle.process.internal.JavaExecHandleBuilder


public class ClojureExecAction extends JavaExecHandleBuilder implements 
JavaExecAction {
    private String entryPoint = ""
    private List<String> clojureArgs = []

    public ClojureExecAction(FileResolver fileResolver) {
        super(fileResolver);
    }

    public ClojureExecAction setMain(String entryPoint) {
        this.entryPoint = entryPoint
        return this
    }

    public String getMain() {
        return "clojuresque.Driver"
    }

    public List<String> getArgs() {
        return [entryPoint] + super.getArgs()
    }

    public ExecResult execute() {
        ExecHandle execHandle = build();
        ExecResult execResult = execHandle.start().waitForFinish();
        if (!isIgnoreExitValue()) {
            execResult.assertNormalExitValue();
        }
        return execResult;
    }
}


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to