/** * Overrides the Java execution for settings the arguments correctly. * * @param device the current device * @param variables the variables for the current device */ public void execute(Device device, Map variables) { if (this.message != null) { String msg = PropertyUtil.writeProperties(this.message, variables); System.out.println(msg); } // remove all arguments: super.clearArgs(); Argument[] arguments = (Argument[]) this.argumentsList.toArray(new Argument[this.argumentsList.size()]); for (int i = 0; i < arguments.length; i++) { Argument argument = arguments[i]; String[] parts = argument.getParts(); StringBuffer buffer = new StringBuffer(); for (int j = 0; j < parts.length; j++) { String part = parts[j]; /* does not work anyhow if (part.indexOf(' ') != -1) { part = '"' + part + '"'; } */ buffer.append(part); if (j != parts.length - 1) { buffer.append(" "); } } String line = PropertyUtil.writeProperties(buffer.toString(), variables); Argument newArgument = super.createArg(); newArgument.setLine(line); } execute(); }
void checkBuild(String module, String classname, String[] args, boolean addAnt) { if (!shouldBuild(module)) { return; } assertTrue(null != module); checkJavac(); doTask(module, true, false); doTask(module, true, true); doTask(module, false, false); File jar = doTask(module, false, true, true); // verify if possible if (null != classname) { Java java = new Java(); Project project = new Project(); java.setProject(project); java.setFailonerror(true); Path cp = new Path(project); assertTrue(jar.canRead()); cp.append(new Path(project, jar.getAbsolutePath())); if (addAnt) { cp.append(new Path(project, getAntJar().getAbsolutePath())); cp.append(new Path(project, getJUnitJar().getAbsolutePath())); } java.setClasspath(cp); java.setClassname(classname); if (null != args) { for (int i = 0; i < args.length; i++) { Argument arg = java.createArg(); arg.setValue(args[i]); } } try { java.execute(); } catch (BuildException e) { e.printStackTrace(System.err); assertTrue("BuildException running " + classname, false); } } deleteJar(jar); }