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