Browse Source

fmt/refac

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@557005 13f79535-47bb-0310-9956-ffa450edef68
master
Matthew Jason Benson 18 years ago
parent
commit
64886360cf
4 changed files with 148 additions and 260 deletions
  1. +48
    -70
      src/main/org/apache/tools/ant/XmlLogger.java
  2. +43
    -86
      src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java
  3. +48
    -86
      src/main/org/apache/tools/ant/taskdefs/XmlProperty.java
  4. +9
    -18
      src/main/org/apache/tools/ant/taskdefs/compilers/Jikes.java

+ 48
- 70
src/main/org/apache/tools/ant/XmlLogger.java View File

@@ -15,7 +15,6 @@
* limitations under the License. * limitations under the License.
* *
*/ */

package org.apache.tools.ant; package org.apache.tools.ant;


import java.io.FileOutputStream; import java.io.FileOutputStream;
@@ -30,6 +29,7 @@ import java.util.Enumeration;
import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.tools.ant.util.DOMElementWriter; import org.apache.tools.ant.util.DOMElementWriter;
import org.apache.tools.ant.util.FileUtils;
import org.apache.tools.ant.util.StringUtils; import org.apache.tools.ant.util.StringUtils;
import org.w3c.dom.Document; import org.w3c.dom.Document;
import org.w3c.dom.Element; import org.w3c.dom.Element;
@@ -73,36 +73,49 @@ public class XmlLogger implements BuildLogger {


/** XML element name for a build. */ /** XML element name for a build. */
private static final String BUILD_TAG = "build"; private static final String BUILD_TAG = "build";

/** XML element name for a target. */ /** XML element name for a target. */
private static final String TARGET_TAG = "target"; private static final String TARGET_TAG = "target";

/** XML element name for a task. */ /** XML element name for a task. */
private static final String TASK_TAG = "task"; private static final String TASK_TAG = "task";

/** XML element name for a message. */ /** XML element name for a message. */
private static final String MESSAGE_TAG = "message"; private static final String MESSAGE_TAG = "message";

/** XML attribute name for a name. */ /** XML attribute name for a name. */
private static final String NAME_ATTR = "name"; private static final String NAME_ATTR = "name";

/** XML attribute name for a time. */ /** XML attribute name for a time. */
private static final String TIME_ATTR = "time"; private static final String TIME_ATTR = "time";

/** XML attribute name for a message priority. */ /** XML attribute name for a message priority. */
private static final String PRIORITY_ATTR = "priority"; private static final String PRIORITY_ATTR = "priority";

/** XML attribute name for a file location. */ /** XML attribute name for a file location. */
private static final String LOCATION_ATTR = "location"; private static final String LOCATION_ATTR = "location";

/** XML attribute name for an error description. */ /** XML attribute name for an error description. */
private static final String ERROR_ATTR = "error"; private static final String ERROR_ATTR = "error";

/** XML element name for a stack trace. */ /** XML element name for a stack trace. */
private static final String STACKTRACE_TAG = "stacktrace"; private static final String STACKTRACE_TAG = "stacktrace";


/** The complete log document for this build. */ /** The complete log document for this build. */
private Document doc = builder.newDocument(); private Document doc = builder.newDocument();

/** Mapping for when tasks started (Task to TimedElement). */ /** Mapping for when tasks started (Task to TimedElement). */
private Hashtable tasks = new Hashtable(); private Hashtable tasks = new Hashtable();

/** Mapping for when targets started (Task to TimedElement). */ /** Mapping for when targets started (Task to TimedElement). */
private Hashtable targets = new Hashtable(); private Hashtable targets = new Hashtable();

/** /**
* Mapping of threads to stacks of elements * Mapping of threads to stacks of elements
* (Thread to Stack of TimedElement). * (Thread to Stack of TimedElement).
*/ */
private Hashtable threadStacks = new Hashtable(); private Hashtable threadStacks = new Hashtable();

/** /**
* When the build started. * When the build started.
*/ */
@@ -149,12 +162,10 @@ public class XmlLogger implements BuildLogger {
*/ */
public void buildFinished(BuildEvent event) { public void buildFinished(BuildEvent event) {
long totalTime = System.currentTimeMillis() - buildElement.startTime; long totalTime = System.currentTimeMillis() - buildElement.startTime;
buildElement.element.setAttribute(TIME_ATTR,
DefaultLogger.formatTime(totalTime));
buildElement.element.setAttribute(TIME_ATTR, DefaultLogger.formatTime(totalTime));


if (event.getException() != null) { if (event.getException() != null) {
buildElement.element.setAttribute(ERROR_ATTR,
event.getException().toString());
buildElement.element.setAttribute(ERROR_ATTR, event.getException().toString());
// print the stacktrace in the build file it is always useful... // print the stacktrace in the build file it is always useful...
// better have too much info than not enough. // better have too much info than not enough.
Throwable t = event.getException(); Throwable t = event.getException();
@@ -163,13 +174,11 @@ public class XmlLogger implements BuildLogger {
stacktrace.appendChild(errText); stacktrace.appendChild(errText);
buildElement.element.appendChild(stacktrace); buildElement.element.appendChild(stacktrace);
} }

String outFilename = event.getProject().getProperty("XmlLogger.file"); String outFilename = event.getProject().getProperty("XmlLogger.file");
if (outFilename == null) { if (outFilename == null) {
outFilename = "log.xml"; outFilename = "log.xml";
} }
String xslUri
= event.getProject().getProperty("ant.XmlLogger.stylesheet.uri");
String xslUri = event.getProject().getProperty("ant.XmlLogger.stylesheet.uri");
if (xslUri == null) { if (xslUri == null) {
xslUri = "log.xsl"; xslUri = "log.xsl";
} }
@@ -184,21 +193,14 @@ public class XmlLogger implements BuildLogger {
out = new OutputStreamWriter(stream, "UTF8"); out = new OutputStreamWriter(stream, "UTF8");
out.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); out.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
if (xslUri.length() > 0) { if (xslUri.length() > 0) {
out.write("<?xml-stylesheet type=\"text/xsl\" href=\""
+ xslUri + "\"?>\n\n");
out.write("<?xml-stylesheet type=\"text/xsl\" href=\"" + xslUri + "\"?>\n\n");
} }
(new DOMElementWriter()).write(buildElement.element, out, 0, "\t");
new DOMElementWriter().write(buildElement.element, out, 0, "\t");
out.flush(); out.flush();
} catch (IOException exc) { } catch (IOException exc) {
throw new BuildException("Unable to write log file", exc); throw new BuildException("Unable to write log file", exc);
} finally { } finally {
if (out != null) {
try {
out.close();
} catch (IOException e) {
// ignore
}
}
FileUtils.close(out);
} }
buildElement = null; buildElement = null;
} }
@@ -249,20 +251,16 @@ public class XmlLogger implements BuildLogger {
Target target = event.getTarget(); Target target = event.getTarget();
TimedElement targetElement = (TimedElement) targets.get(target); TimedElement targetElement = (TimedElement) targets.get(target);
if (targetElement != null) { if (targetElement != null) {
long totalTime
= System.currentTimeMillis() - targetElement.startTime;
targetElement.element.setAttribute(TIME_ATTR,
DefaultLogger.formatTime(totalTime));
long totalTime = System.currentTimeMillis() - targetElement.startTime;
targetElement.element.setAttribute(TIME_ATTR, DefaultLogger.formatTime(totalTime));


TimedElement parentElement = null; TimedElement parentElement = null;
Stack threadStack = getStack(); Stack threadStack = getStack();
if (!threadStack.empty()) { if (!threadStack.empty()) {
TimedElement poppedStack = (TimedElement) threadStack.pop(); TimedElement poppedStack = (TimedElement) threadStack.pop();
if (poppedStack != targetElement) { if (poppedStack != targetElement) {
throw new RuntimeException("Mismatch - popped element = "
+ poppedStack
+ " finished target element = "
+ targetElement);
throw new RuntimeException("Mismatch - popped element = " + poppedStack
+ " finished target element = " + targetElement);
} }
if (!threadStack.empty()) { if (!threadStack.empty()) {
parentElement = (TimedElement) threadStack.peek(); parentElement = (TimedElement) threadStack.peek();
@@ -296,8 +294,7 @@ public class XmlLogger implements BuildLogger {
name = ""; name = "";
} }
taskElement.element.setAttribute(NAME_ATTR, name); taskElement.element.setAttribute(NAME_ATTR, name);
taskElement.element.setAttribute(LOCATION_ATTR,
event.getTask().getLocation().toString());
taskElement.element.setAttribute(LOCATION_ATTR, event.getTask().getLocation().toString());
tasks.put(task, taskElement); tasks.put(task, taskElement);
getStack().push(taskElement); getStack().push(taskElement);
} }
@@ -312,36 +309,32 @@ public class XmlLogger implements BuildLogger {
public void taskFinished(BuildEvent event) { public void taskFinished(BuildEvent event) {
Task task = event.getTask(); Task task = event.getTask();
TimedElement taskElement = (TimedElement) tasks.get(task); TimedElement taskElement = (TimedElement) tasks.get(task);
if (taskElement != null) {
long totalTime = System.currentTimeMillis() - taskElement.startTime;
taskElement.element.setAttribute(TIME_ATTR,
DefaultLogger.formatTime(totalTime));
Target target = task.getOwningTarget();
TimedElement targetElement = null;
if (target != null) {
targetElement = (TimedElement) targets.get(target);
}
if (targetElement == null) {
buildElement.element.appendChild(taskElement.element);
} else {
targetElement.element.appendChild(taskElement.element);
}
Stack threadStack = getStack();
if (!threadStack.empty()) {
TimedElement poppedStack = (TimedElement) threadStack.pop();
if (poppedStack != taskElement) {
throw new RuntimeException("Mismatch - popped element = "
+ poppedStack + " finished task element = "
+ taskElement);
}
}
tasks.remove(task);
} else {
if (taskElement == null) {
throw new RuntimeException("Unknown task " + task + " not in " + tasks); throw new RuntimeException("Unknown task " + task + " not in " + tasks);
} }
long totalTime = System.currentTimeMillis() - taskElement.startTime;
taskElement.element.setAttribute(TIME_ATTR, DefaultLogger.formatTime(totalTime));
Target target = task.getOwningTarget();
TimedElement targetElement = null;
if (target != null) {
targetElement = (TimedElement) targets.get(target);
}
if (targetElement == null) {
buildElement.element.appendChild(taskElement.element);
} else {
targetElement.element.appendChild(taskElement.element);
}
Stack threadStack = getStack();
if (!threadStack.empty()) {
TimedElement poppedStack = (TimedElement) threadStack.pop();
if (poppedStack != taskElement) {
throw new RuntimeException("Mismatch - popped element = " + poppedStack
+ " finished task element = " + taskElement);
}
}
tasks.remove(task);
} }



/** /**
* Get the TimedElement associated with a task. * Get the TimedElement associated with a task.
* *
@@ -353,7 +346,6 @@ public class XmlLogger implements BuildLogger {
if (element != null) { if (element != null) {
return element; return element;
} }

for (Enumeration e = tasks.keys(); e.hasMoreElements();) { for (Enumeration e = tasks.keys(); e.hasMoreElements();) {
Task key = (Task) e.nextElement(); Task key = (Task) e.nextElement();
if (key instanceof UnknownElement) { if (key instanceof UnknownElement) {
@@ -362,7 +354,6 @@ public class XmlLogger implements BuildLogger {
} }
} }
} }

return null; return null;
} }


@@ -382,7 +373,7 @@ public class XmlLogger implements BuildLogger {
Element messageElement = doc.createElement(MESSAGE_TAG); Element messageElement = doc.createElement(MESSAGE_TAG);


String name = "debug"; String name = "debug";
switch (event.getPriority()) {
switch (priority) {
case Project.MSG_ERR: case Project.MSG_ERR:
name = "error"; name = "error";
break; break;
@@ -419,19 +410,6 @@ public class XmlLogger implements BuildLogger {
if (parentElement == null && target != null) { if (parentElement == null && target != null) {
parentElement = (TimedElement) targets.get(target); parentElement = (TimedElement) targets.get(target);
} }

/*
if (parentElement == null) {
Stack threadStack
= (Stack) threadStacks.get(Thread.currentThread());
if (threadStack != null) {
if (!threadStack.empty()) {
parentElement = (TimedElement) threadStack.peek();
}
}
}
*/

if (parentElement != null) { if (parentElement != null) {
parentElement.element.appendChild(messageElement); parentElement.element.appendChild(messageElement);
} else { } else {


+ 43
- 86
src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java View File

@@ -15,7 +15,6 @@
* limitations under the License. * limitations under the License.
* *
*/ */

package org.apache.tools.ant.taskdefs; package org.apache.tools.ant.taskdefs;


import java.io.File; import java.io.File;
@@ -205,8 +204,7 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
*/ */
public void addMapper(Mapper mapper) { public void addMapper(Mapper mapper) {
if (mapperElement != null) { if (mapperElement != null) {
throw new BuildException("Cannot define more than one mapper",
getLocation());
throw new BuildException("Cannot define more than one mapper", getLocation());
} }
mapperElement = mapper; mapperElement = mapper;
} }
@@ -229,8 +227,8 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
*/ */
public void addConfiguredStyle(Resources rc) { public void addConfiguredStyle(Resources rc) {
if (rc.size() != 1) { if (rc.size() != 1) {
throw new BuildException("The style element must be specified"
+ " with exactly one nested resource.");
throw new BuildException(
"The style element must be specified with exactly one nested resource.");
} }
setXslResource((Resource) rc.iterator().next()); setXslResource((Resource) rc.iterator().next());
} }
@@ -267,43 +265,34 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
log("Warning: the task name <style> is deprecated. Use <xslt> instead.", log("Warning: the task name <style> is deprecated. Use <xslt> instead.",
Project.MSG_WARN); Project.MSG_WARN);
} }

File savedBaseDir = baseDir; File savedBaseDir = baseDir;


DirectoryScanner scanner; DirectoryScanner scanner;
String[] list; String[] list;
String[] dirs; String[] dirs;


if (xslResource == null && xslFile == null) {
throw new BuildException("specify the "
+ "stylesheet either as a filename in style "
+ "attribute or as a nested resource", getLocation());
String baseMessage =
"specify the stylesheet either as a filename in style attribute or as a nested resource";


if (xslResource == null && xslFile == null) {
throw new BuildException(baseMessage, getLocation());
} }
if (xslResource != null && xslFile != null) { if (xslResource != null && xslFile != null) {
throw new BuildException("specify the "
+ "stylesheet either as a filename in style "
+ "attribute or as a nested resource but not "
+ "as both", getLocation());
throw new BuildException(baseMessage + " but not as both", getLocation());
} }

if (inFile != null && !inFile.exists()) { if (inFile != null && !inFile.exists()) {
throw new BuildException(
"input file " + inFile.toString() + " does not exist", getLocation());
throw new BuildException("input file " + inFile + " does not exist", getLocation());
} }

try { try {
if (baseDir == null) { if (baseDir == null) {
baseDir = getProject().resolveFile("."); baseDir = getProject().resolveFile(".");
} }

liaison = getLiaison(); liaison = getLiaison();


// check if liaison wants to log errors using us as logger // check if liaison wants to log errors using us as logger
if (liaison instanceof XSLTLoggerAware) { if (liaison instanceof XSLTLoggerAware) {
((XSLTLoggerAware) liaison).setLogger(this); ((XSLTLoggerAware) liaison).setLogger(this);
} }

log("Using " + liaison.getClass().toString(), Project.MSG_VERBOSE); log("Using " + liaison.getClass().toString(), Project.MSG_VERBOSE);


if (xslFile != null) { if (xslFile != null) {
@@ -317,8 +306,7 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
* the wrong version has been used. * the wrong version has been used.
*/ */
if (stylesheet.exists()) { if (stylesheet.exists()) {
log("DEPRECATED - the 'style' attribute should be relative "
+ "to the project's");
log("DEPRECATED - the 'style' attribute should be relative to the project's");
log(" basedir, not the tasks's basedir."); log(" basedir, not the tasks's basedir.");
} }
} }
@@ -327,13 +315,11 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
fr.setFile(stylesheet); fr.setFile(stylesheet);
xslResource = fr; xslResource = fr;
} }

// if we have an in file and out then process them // if we have an in file and out then process them
if (inFile != null && outFile != null) { if (inFile != null && outFile != null) {
process(inFile, outFile, xslResource); process(inFile, outFile, xslResource);
return; return;
} }

/* /*
* if we get here, in and out have not been specified, we are * if we get here, in and out have not been specified, we are
* in batch processing mode. * in batch processing mode.
@@ -357,8 +343,8 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
for (int j = 0; j < dirs.length; ++j) { for (int j = 0; j < dirs.length; ++j) {
list = new File(baseDir, dirs[j]).list(); list = new File(baseDir, dirs[j]).list();
for (int i = 0; i < list.length; ++i) { for (int i = 0; i < list.length; ++i) {
process(baseDir, dirs[j] + File.separator + list[i],
destDir, xslResource);
process(baseDir, dirs[j] + File.separator + list[i], destDir,
xslResource);
} }
} }
} }
@@ -546,12 +532,10 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
private Class loadClass(String classname) throws Exception { private Class loadClass(String classname) throws Exception {
if (classpath == null) { if (classpath == null) {
return Class.forName(classname); return Class.forName(classname);
} else {
loader = getProject().createClassLoader(classpath);
loader.setThreadContextLoader();
Class c = Class.forName(classname, true, loader);
return c;
} }
loader = getProject().createClassLoader(classpath);
loader.setThreadContextLoader();
return Class.forName(classname, true, loader);
} }


/** /**
@@ -621,9 +605,8 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
* @param stylesheet the stylesheet to use. * @param stylesheet the stylesheet to use.
* @exception BuildException if the processing fails. * @exception BuildException if the processing fails.
*/ */
private void process(File baseDir, String xmlFile, File destDir,
Resource stylesheet)
throws BuildException {
private void process(File baseDir, String xmlFile, File destDir, Resource stylesheet)
throws BuildException {


File outF = null; File outF = null;
File inF = null; File inF = null;
@@ -633,11 +616,9 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
inF = new File(baseDir, xmlFile); inF = new File(baseDir, xmlFile);


if (inF.isDirectory()) { if (inF.isDirectory()) {
log("Skipping " + inF + " it is a directory.",
Project.MSG_VERBOSE);
log("Skipping " + inF + " it is a directory.", Project.MSG_VERBOSE);
return; return;
} }

FileNameMapper mapper = null; FileNameMapper mapper = null;
if (mapperElement != null) { if (mapperElement != null) {
mapper = mapperElement.getImplementation(); mapper = mapperElement.getImplementation();
@@ -647,23 +628,18 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {


String[] outFileName = mapper.mapFileName(xmlFile); String[] outFileName = mapper.mapFileName(xmlFile);
if (outFileName == null || outFileName.length == 0) { if (outFileName == null || outFileName.length == 0) {
log("Skipping " + inFile + " it cannot get mapped to output.",
Project.MSG_VERBOSE);
log("Skipping " + inFile + " it cannot get mapped to output.", Project.MSG_VERBOSE);
return; return;
} else if (outFileName == null || outFileName.length > 1) { } else if (outFileName == null || outFileName.length > 1) {
log("Skipping " + inFile + " its mapping is ambiguos.",
Project.MSG_VERBOSE);
log("Skipping " + inFile + " its mapping is ambiguos.", Project.MSG_VERBOSE);
return; return;
} }

outF = new File(destDir, outFileName[0]); outF = new File(destDir, outFileName[0]);


if (force
|| inF.lastModified() > outF.lastModified()
|| styleSheetLastModified > outF.lastModified()) {
if (force || inF.lastModified() > outF.lastModified()
|| styleSheetLastModified > outF.lastModified()) {
ensureDirectoryFor(outF); ensureDirectoryFor(outF);
log("Processing " + inF + " to " + outF); log("Processing " + inF + " to " + outF);

configureLiaison(stylesheet); configureLiaison(stylesheet);
setLiaisonDynamicFileParameters(liaison, inF); setLiaisonDynamicFileParameters(liaison, inF);
liaison.transform(inF, outF); liaison.transform(inF, outF);
@@ -689,28 +665,22 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
* @param stylesheet the stylesheet to use. * @param stylesheet the stylesheet to use.
* @exception BuildException if the processing fails. * @exception BuildException if the processing fails.
*/ */
private void process(File inFile, File outFile, Resource stylesheet)
throws BuildException {
private void process(File inFile, File outFile, Resource stylesheet) throws BuildException {
try { try {
long styleSheetLastModified = stylesheet.getLastModified(); long styleSheetLastModified = stylesheet.getLastModified();
log("In file " + inFile + " time: " + inFile.lastModified(),
Project.MSG_DEBUG);
log("Out file " + outFile + " time: " + outFile.lastModified(),
Project.MSG_DEBUG);
log("Style file " + xslFile + " time: " + styleSheetLastModified,
Project.MSG_DEBUG);
log("In file " + inFile + " time: " + inFile.lastModified(), Project.MSG_DEBUG);
log("Out file " + outFile + " time: " + outFile.lastModified(), Project.MSG_DEBUG);
log("Style file " + xslFile + " time: " + styleSheetLastModified, Project.MSG_DEBUG);
if (force || inFile.lastModified() >= outFile.lastModified() if (force || inFile.lastModified() >= outFile.lastModified()
|| styleSheetLastModified >= outFile.lastModified()) {
|| styleSheetLastModified >= outFile.lastModified()) {
ensureDirectoryFor(outFile); ensureDirectoryFor(outFile);
log("Processing " + inFile + " to " + outFile,
Project.MSG_INFO);
log("Processing " + inFile + " to " + outFile, Project.MSG_INFO);
configureLiaison(stylesheet); configureLiaison(stylesheet);
setLiaisonDynamicFileParameters(liaison, inFile); setLiaisonDynamicFileParameters(liaison, inFile);
liaison.transform(inFile, outFile); liaison.transform(inFile, outFile);
} else { } else {
log("Skipping input file " + inFile
+ " because it is older than output file " + outFile
+ " and so is the stylesheet " + stylesheet, Project.MSG_DEBUG);
log("Skipping input file " + inFile + " because it is older than output file "
+ outFile + " and so is the stylesheet " + stylesheet, Project.MSG_DEBUG);
} }
} catch (Exception ex) { } catch (Exception ex) {
log("Failed to process " + inFile, Project.MSG_INFO); log("Failed to process " + inFile, Project.MSG_INFO);
@@ -727,13 +697,12 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
* @param targetFile the file for which the directories are required. * @param targetFile the file for which the directories are required.
* @exception BuildException if the directories cannot be created. * @exception BuildException if the directories cannot be created.
*/ */
private void ensureDirectoryFor(File targetFile)
throws BuildException {
private void ensureDirectoryFor(File targetFile) throws BuildException {
File directory = targetFile.getParentFile(); File directory = targetFile.getParentFile();
if (!directory.exists()) { if (!directory.exists()) {
if (!directory.mkdirs()) { if (!directory.mkdirs()) {
throw new BuildException("Unable to create directory: " throw new BuildException("Unable to create directory: "
+ directory.getAbsolutePath());
+ directory.getAbsolutePath());
} }
} }
} }
@@ -888,6 +857,7 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
public void setUnless(String unlessProperty) { public void setUnless(String unlessProperty) {
this.unlessProperty = unlessProperty; this.unlessProperty = unlessProperty;
} }

/** /**
* Ensures that the param passes the conditions placed * Ensures that the param passes the conditions placed
* on it with <code>if</code> and <code>unless</code> properties. * on it with <code>if</code> and <code>unless</code> properties.
@@ -896,16 +866,14 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
public boolean shouldUse() { public boolean shouldUse() {
if (ifProperty != null && project.getProperty(ifProperty) == null) { if (ifProperty != null && project.getProperty(ifProperty) == null) {
return false; return false;
} else if (unlessProperty != null
&& project.getProperty(unlessProperty) != null) {
}
if (unlessProperty != null && project.getProperty(unlessProperty) != null) {
return false; return false;
} }

return true; return true;
} }
} // Param } // Param



/** /**
* Create an instance of an output property to be configured. * Create an instance of an output property to be configured.
* @return the newly created output property. * @return the newly created output property.
@@ -917,7 +885,6 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
return p; return p;
} }



/** /**
* Specify how the result tree should be output as specified * Specify how the result tree should be output as specified
* in the <a href="http://www.w3.org/TR/xslt#output"> * in the <a href="http://www.w3.org/TR/xslt#output">
@@ -985,6 +952,7 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
fr.setFile(stylesheet); fr.setFile(stylesheet);
configureLiaison(fr); configureLiaison(fr);
} }

/** /**
* Loads the stylesheet and set xsl:param parameters. * Loads the stylesheet and set xsl:param parameters.
* *
@@ -1005,7 +973,6 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
if (liaison instanceof XSLTLiaison2) { if (liaison instanceof XSLTLiaison2) {
((XSLTLiaison2) liaison).configure(this); ((XSLTLiaison2) liaison).configure(this);
} }

if (liaison instanceof XSLTLiaison3) { if (liaison instanceof XSLTLiaison3) {
// If we are here we can set the stylesheet as a // If we are here we can set the stylesheet as a
// resource // resource
@@ -1015,12 +982,10 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
// a resource, but we can set it as a file. So, // a resource, but we can set it as a file. So,
// we make an attempt to get it as a file // we make an attempt to get it as a file
if (stylesheet instanceof FileResource) { if (stylesheet instanceof FileResource) {
liaison.setStylesheet(
((FileResource) stylesheet).getFile());
liaison.setStylesheet(((FileResource) stylesheet).getFile());
} else { } else {
throw new BuildException(liaison.getClass().toString() throw new BuildException(liaison.getClass().toString()
+ " accepts the stylesheet only as a file",
getLocation());
+ " accepts the stylesheet only as a file", getLocation());
} }
} }
for (Enumeration e = params.elements(); e.hasMoreElements();) { for (Enumeration e = params.elements(); e.hasMoreElements();) {
@@ -1030,8 +995,7 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
} }
} }
} catch (Exception ex) { } catch (Exception ex) {
log("Failed to transform using stylesheet " + stylesheet,
Project.MSG_INFO);
log("Failed to transform using stylesheet " + stylesheet, Project.MSG_INFO);
throw new BuildException(ex); throw new BuildException(ex);
} }
} }
@@ -1046,10 +1010,7 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
* *
* @since Ant 1.7 * @since Ant 1.7
*/ */
private void setLiaisonDynamicFileParameters(
XSLTLiaison liaison,
File inFile
) throws Exception {
private void setLiaisonDynamicFileParameters(XSLTLiaison liaison, File inFile) throws Exception {
if (fileNameParameter != null) { if (fileNameParameter != null) {
liaison.addParam(fileNameParameter, inFile.getName()); liaison.addParam(fileNameParameter, inFile.getName());
} }
@@ -1058,10 +1019,8 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
File file = new File(fileName); File file = new File(fileName);
// Give always a slash as file separator, so the stylesheet could be sure about that // Give always a slash as file separator, so the stylesheet could be sure about that
// Use '.' so a dir+"/"+name would not result in an absolute path // Use '.' so a dir+"/"+name would not result in an absolute path
liaison.addParam(
fileDirParameter,
(file.getParent() != null)
? file.getParent().replace('\\', '/') : ".");
liaison.addParam(fileDirParameter, file.getParent() != null ? file.getParent().replace(
'\\', '/') : ".");
} }
} }


@@ -1170,8 +1129,7 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
* @param value the value of the attribute * @param value the value of the attribute
* @throws BuildException on error * @throws BuildException on error
*/ */
public void setDynamicAttribute(String name, String value)
throws BuildException {
public void setDynamicAttribute(String name, String value) throws BuildException {
// only 'name' and 'value' exist. // only 'name' and 'value' exist.
if ("name".equalsIgnoreCase(name)) { if ("name".equalsIgnoreCase(name)) {
this.name = value; this.name = value;
@@ -1194,7 +1152,6 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger {
} }
} }
} // -- class Attribute } // -- class Attribute

} // -- class Factory } // -- class Factory


/** /**


+ 48
- 86
src/main/org/apache/tools/ant/taskdefs/XmlProperty.java View File

@@ -15,7 +15,6 @@
* limitations under the License. * limitations under the License.
* *
*/ */

package org.apache.tools.ant.taskdefs; package org.apache.tools.ant.taskdefs;


import java.io.File; import java.io.File;
@@ -172,7 +171,6 @@ import org.xml.sax.EntityResolver;
* *
* @ant.task name="xmlproperty" category="xml" * @ant.task name="xmlproperty" category="xml"
*/ */

public class XmlProperty extends org.apache.tools.ant.Task { public class XmlProperty extends org.apache.tools.ant.Task {


private Resource src; private Resource src;
@@ -193,8 +191,9 @@ public class XmlProperty extends org.apache.tools.ant.Task {
private static final String PATH = "path"; private static final String PATH = "path";
private static final String PATHID = "pathid"; private static final String PATHID = "pathid";
private static final String[] ATTRIBUTES = new String[] { private static final String[] ATTRIBUTES = new String[] {
ID, REF_ID, LOCATION, VALUE, PATH, PATHID
ID, REF_ID, LOCATION, VALUE, PATH, PATHID
}; };

private static final FileUtils FILE_UTILS = FileUtils.getFileUtils(); private static final FileUtils FILE_UTILS = FileUtils.getFileUtils();


/** /**
@@ -213,7 +212,6 @@ public class XmlProperty extends org.apache.tools.ant.Task {
xmlCatalog.setProject(getProject()); xmlCatalog.setProject(getProject());
} }



/** /**
* @return the xmlCatalog as the entityresolver. * @return the xmlCatalog as the entityresolver.
*/ */
@@ -227,16 +225,12 @@ public class XmlProperty extends org.apache.tools.ant.Task {
* @todo validate the source file is valid before opening, print a better error message * @todo validate the source file is valid before opening, print a better error message
* @todo add a verbose level log message listing the name of the file being loaded * @todo add a verbose level log message listing the name of the file being loaded
*/ */
public void execute()
throws BuildException {

public void execute() throws BuildException {
Resource r = getResource(); Resource r = getResource();


if (r == null) { if (r == null) {
String msg = "XmlProperty task requires a source resource";
throw new BuildException(msg);
throw new BuildException("XmlProperty task requires a source resource");
} }

try { try {
log("Loading " + src, Project.MSG_VERBOSE); log("Loading " + src, Project.MSG_VERBOSE);


@@ -270,10 +264,8 @@ public class XmlProperty extends org.apache.tools.ant.Task {
addNodeRecursively(topChildren.item(i), prefix, null); addNodeRecursively(topChildren.item(i), prefix, null);
} }
} }

} else { } else {
log("Unable to find property resource: " + r,
Project.MSG_VERBOSE);
log("Unable to find property resource: " + r, Project.MSG_VERBOSE);
} }


} catch (SAXException sxe) { } catch (SAXException sxe) {
@@ -283,7 +275,6 @@ public class XmlProperty extends org.apache.tools.ant.Task {
x = sxe.getException(); x = sxe.getException();
} }
throw new BuildException("Failed to load " + src, x); throw new BuildException("Failed to load " + src, x);

} catch (ParserConfigurationException pce) { } catch (ParserConfigurationException pce) {
// Parser with specified options can't be built // Parser with specified options can't be built
throw new BuildException(pce); throw new BuildException(pce);
@@ -294,9 +285,7 @@ public class XmlProperty extends org.apache.tools.ant.Task {
} }


/** Iterate through all nodes in the tree. */ /** Iterate through all nodes in the tree. */
private void addNodeRecursively(Node node, String prefix,
Object container) {

private void addNodeRecursively(Node node, String prefix, Object container) {
// Set the prefix for this node to include its tag name. // Set the prefix for this node to include its tag name.
String nodePrefix = prefix; String nodePrefix = prefix;
if (node.getNodeType() != Node.TEXT_NODE) { if (node.getNodeType() != Node.TEXT_NODE) {
@@ -305,13 +294,11 @@ public class XmlProperty extends org.apache.tools.ant.Task {
} }
nodePrefix += node.getNodeName(); nodePrefix += node.getNodeName();
} }

// Pass the container to the processing of this node, // Pass the container to the processing of this node,
Object nodeObject = processNode(node, nodePrefix, container); Object nodeObject = processNode(node, nodePrefix, container);


// now, iterate through children. // now, iterate through children.
if (node.hasChildNodes()) { if (node.hasChildNodes()) {

NodeList nodeChildren = node.getChildNodes(); NodeList nodeChildren = node.getChildNodes();
int numChildren = nodeChildren.getLength(); int numChildren = nodeChildren.getLength();


@@ -319,8 +306,7 @@ public class XmlProperty extends org.apache.tools.ant.Task {
// For each child, pass the object added by // For each child, pass the object added by
// processNode to its children -- in other word, each // processNode to its children -- in other word, each
// object can pass information along to its children. // object can pass information along to its children.
addNodeRecursively(nodeChildren.item(i), nodePrefix,
nodeObject);
addNodeRecursively(nodeChildren.item(i), nodePrefix, nodeObject);
} }
} }
} }
@@ -361,8 +347,7 @@ public class XmlProperty extends org.apache.tools.ant.Task {


// Is there an id attribute? // Is there an id attribute?
Node idNode = nodeAttributes.getNamedItem(ID); Node idNode = nodeAttributes.getNamedItem(ID);
id = (semanticAttributes && idNode != null
? idNode.getNodeValue() : null);
id = semanticAttributes && idNode != null ? idNode.getNodeValue() : null;


// Now, iterate through the attributes adding them. // Now, iterate through the attributes adding them.
for (int i = 0; i < nodeAttributes.getLength(); i++) { for (int i = 0; i < nodeAttributes.getLength(); i++) {
@@ -374,13 +359,11 @@ public class XmlProperty extends org.apache.tools.ant.Task {
String attributeValue = getAttributeValue(attributeNode); String attributeValue = getAttributeValue(attributeNode);
addProperty(prefix + attributeName, attributeValue, null); addProperty(prefix + attributeName, attributeValue, null);
} else { } else {

String nodeName = attributeNode.getNodeName(); String nodeName = attributeNode.getNodeName();
String attributeValue = getAttributeValue(attributeNode); String attributeValue = getAttributeValue(attributeNode);


Path containingPath = (container != null
&& container instanceof Path ? (Path) container : null);

Path containingPath = container != null && container instanceof Path ? (Path) container
: null;
/* /*
* The main conditional logic -- if the attribute * The main conditional logic -- if the attribute
* is somehow "special" (i.e., it has known * is somehow "special" (i.e., it has known
@@ -390,26 +373,22 @@ public class XmlProperty extends org.apache.tools.ant.Task {
if (nodeName.equals(ID)) { if (nodeName.equals(ID)) {
// ID has already been found above. // ID has already been found above.
continue; continue;
} else if (containingPath != null
&& nodeName.equals(PATH)) {
}
if (containingPath != null && nodeName.equals(PATH)) {
// A "path" attribute for a node within a Path object. // A "path" attribute for a node within a Path object.
containingPath.setPath(attributeValue); containingPath.setPath(attributeValue);
} else if (container instanceof Path
&& nodeName.equals(REF_ID)) {
} else if (container instanceof Path && nodeName.equals(REF_ID)) {
// A "refid" attribute for a node within a Path object. // A "refid" attribute for a node within a Path object.
containingPath.setPath(attributeValue); containingPath.setPath(attributeValue);
} else if (container instanceof Path
&& nodeName.equals(LOCATION)) {
} else if (container instanceof Path && nodeName.equals(LOCATION)) {
// A "location" attribute for a node within a // A "location" attribute for a node within a
// Path object. // Path object.
containingPath.setLocation(resolveFile(attributeValue)); containingPath.setLocation(resolveFile(attributeValue));
} else if (nodeName.equals(PATHID)) { } else if (nodeName.equals(PATHID)) {
// A node identifying a new path // A node identifying a new path
if (container != null) { if (container != null) {
throw new BuildException("XmlProperty does not "
+ "support nested paths");
throw new BuildException("XmlProperty does not support nested paths");
} }

addedPath = new Path(getProject()); addedPath = new Path(getProject());
getProject().addReference(attributeValue, addedPath); getProject().addReference(attributeValue, addedPath);
} else { } else {
@@ -420,56 +399,52 @@ public class XmlProperty extends org.apache.tools.ant.Task {
} }
} }
} }

String nodeText = null; String nodeText = null;
boolean emptyNode = false; boolean emptyNode = false;
boolean semanticEmptyOverride = false; boolean semanticEmptyOverride = false;
if (node.getNodeType() == Node.ELEMENT_NODE if (node.getNodeType() == Node.ELEMENT_NODE
&& semanticAttributes
&& node.hasAttributes()
&& (node.getAttributes().getNamedItem(VALUE) != null
|| node.getAttributes().getNamedItem(LOCATION) != null
|| node.getAttributes().getNamedItem(REF_ID) != null
|| node.getAttributes().getNamedItem(PATH) != null
|| node.getAttributes().getNamedItem(PATHID) != null)) {
&& semanticAttributes
&& node.hasAttributes()
&& (node.getAttributes().getNamedItem(VALUE) != null
|| node.getAttributes().getNamedItem(LOCATION) != null
|| node.getAttributes().getNamedItem(REF_ID) != null
|| node.getAttributes().getNamedItem(PATH) != null || node.getAttributes()
.getNamedItem(PATHID) != null)) {
semanticEmptyOverride = true; semanticEmptyOverride = true;
} }
if (node.getNodeType() == Node.TEXT_NODE) { if (node.getNodeType() == Node.TEXT_NODE) {
// For the text node, add a property. // For the text node, add a property.
nodeText = getAttributeValue(node); nodeText = getAttributeValue(node);
} else if ((node.getNodeType() == Node.ELEMENT_NODE)
&& (node.getChildNodes().getLength() == 1)
&& (node.getFirstChild().getNodeType() == Node.CDATA_SECTION_NODE)) {
} else if (node.getNodeType() == Node.ELEMENT_NODE
&& node.getChildNodes().getLength() == 1
&& node.getFirstChild().getNodeType() == Node.CDATA_SECTION_NODE) {


nodeText = node.getFirstChild().getNodeValue(); nodeText = node.getFirstChild().getNodeValue();
if ("".equals(nodeText) && !semanticEmptyOverride) { if ("".equals(nodeText) && !semanticEmptyOverride) {
emptyNode = true; emptyNode = true;
} }
} else if ((node.getNodeType() == Node.ELEMENT_NODE)
&& (node.getChildNodes().getLength() == 0)
&& !semanticEmptyOverride) {
} else if (node.getNodeType() == Node.ELEMENT_NODE
&& node.getChildNodes().getLength() == 0
&& !semanticEmptyOverride) {
nodeText = ""; nodeText = "";
emptyNode = true; emptyNode = true;
} else if ((node.getNodeType() == Node.ELEMENT_NODE)
&& (node.getChildNodes().getLength() == 1)
&& (node.getFirstChild().getNodeType() == Node.TEXT_NODE)
&& ("".equals(node.getFirstChild().getNodeValue()))
&& !semanticEmptyOverride) {
} else if (node.getNodeType() == Node.ELEMENT_NODE
&& node.getChildNodes().getLength() == 1
&& node.getFirstChild().getNodeType() == Node.TEXT_NODE
&& "".equals(node.getFirstChild().getNodeValue())
&& !semanticEmptyOverride) {
nodeText = ""; nodeText = "";
emptyNode = true; emptyNode = true;
} }

if (nodeText != null) { if (nodeText != null) {
// If the containing object was a String, then use it as the ID. // If the containing object was a String, then use it as the ID.
if (semanticAttributes && id == null
&& container instanceof String) {
if (semanticAttributes && id == null && container instanceof String) {
id = (String) container; id = (String) container;
} }
if (nodeText.trim().length() != 0 || emptyNode) { if (nodeText.trim().length() != 0 || emptyNode) {
addProperty(prefix, nodeText, id); addProperty(prefix, nodeText, id);
} }
} }

// Return the Path we added or the ID of this node for // Return the Path we added or the ID of this node for
// children to reference if needed. Path objects are // children to reference if needed. Path objects are
// definitely used by child path elements, and ID may be used // definitely used by child path elements, and ID may be used
@@ -526,18 +501,14 @@ public class XmlProperty extends org.apache.tools.ant.Task {
// attribute name. // attribute name.
if (attributeName.equals(REF_ID)) { if (attributeName.equals(REF_ID)) {
return ""; return "";
}
// Otherwise, return it appended unless property to hide it is set. // Otherwise, return it appended unless property to hide it is set.
} else if (!isSemanticAttribute(attributeName)
|| includeSemanticAttribute) {
if (!isSemanticAttribute(attributeName) || includeSemanticAttribute) {
return "." + attributeName; return "." + attributeName;
} else {
return "";
} }
} else if (collapseAttributes) {
return "." + attributeName;
} else {
return "(" + attributeName + ")";
return "";
} }
return collapseAttributes ? "." + attributeName : "(" + attributeName + ")";
} }


/** /**
@@ -572,7 +543,8 @@ public class XmlProperty extends org.apache.tools.ant.Task {
if (attributeName.equals(LOCATION)) { if (attributeName.equals(LOCATION)) {
File f = resolveFile(nodeValue); File f = resolveFile(nodeValue);
return f.getPath(); return f.getPath();
} else if (attributeName.equals(REF_ID)) {
}
if (attributeName.equals(REF_ID)) {
Object ref = getProject().getReference(nodeValue); Object ref = getProject().getReference(nodeValue);
if (ref != null) { if (ref != null) {
return ref.toString(); return ref.toString();
@@ -599,8 +571,7 @@ public class XmlProperty extends org.apache.tools.ant.Task {
throw new BuildException("the source can't be a directory"); throw new BuildException("the source can't be a directory");
} }
if (src instanceof FileResource && !supportsNonFileResources()) { if (src instanceof FileResource && !supportsNonFileResources()) {
throw new BuildException("Only FileSystem resources are"
+ " supported.");
throw new BuildException("Only FileSystem resources are supported.");
} }
this.src = src; this.src = src;
} }
@@ -611,8 +582,8 @@ public class XmlProperty extends org.apache.tools.ant.Task {
*/ */
public void addConfigured(ResourceCollection a) { public void addConfigured(ResourceCollection a) {
if (a.size() != 1) { if (a.size() != 1) {
throw new BuildException("only single argument resource collections"
+ " are supported as archives");
throw new BuildException(
"only single argument resource collections are supported as archives");
} }
setSrcResource((Resource) a.iterator().next()); setSrcResource((Resource) a.iterator().next());
} }
@@ -693,11 +664,7 @@ public class XmlProperty extends org.apache.tools.ant.Task {
* @return the file attribute. * @return the file attribute.
*/ */
protected File getFile () { protected File getFile () {
if (src instanceof FileResource) {
return ((FileResource) src).getFile();
} else {
return null;
}
return src instanceof FileResource ? ((FileResource) src).getFile() : null;
} }


/** /**
@@ -707,11 +674,8 @@ public class XmlProperty extends org.apache.tools.ant.Task {
// delegate this way around to support subclasses that // delegate this way around to support subclasses that
// overwrite getFile // overwrite getFile
File f = getFile(); File f = getFile();
if (f != null) {
return new FileResource(f);
} else {
return src;
}
return f == null ? src : src instanceof FileResource
&& ((FileResource) src).getFile().equals(f) ? src : new FileResource(f);
} }


/** /**
@@ -768,10 +732,8 @@ public class XmlProperty extends org.apache.tools.ant.Task {
* rootDirectory has been set. * rootDirectory has been set.
*/ */
private File resolveFile(String fileName) { private File resolveFile(String fileName) {
if (rootDirectory == null) {
return FILE_UTILS.resolveFile(getProject().getBaseDir(), fileName);
}
return FILE_UTILS.resolveFile(rootDirectory, fileName);
return FILE_UTILS.resolveFile(rootDirectory == null ? getProject().getBaseDir()
: rootDirectory, fileName);
} }


/** /**


+ 9
- 18
src/main/org/apache/tools/ant/taskdefs/compilers/Jikes.java View File

@@ -15,7 +15,6 @@
* limitations under the License. * limitations under the License.
* *
*/ */

package org.apache.tools.ant.taskdefs.compilers; package org.apache.tools.ant.taskdefs.compilers;


import org.apache.tools.ant.BuildException; import org.apache.tools.ant.BuildException;
@@ -156,13 +155,11 @@ public class Jikes extends DefaultCompilerAdapter {
* that don't exist. As this is often the case, these * that don't exist. As this is often the case, these
* warning can be pretty annoying. * warning can be pretty annoying.
*/ */
String warningsProperty =
project.getProperty("build.compiler.warnings");
String warningsProperty = project.getProperty("build.compiler.warnings");
if (warningsProperty != null) { if (warningsProperty != null) {
attributes.log("!! the build.compiler.warnings property is "
+ "deprecated. !!", Project.MSG_WARN);
attributes.log("!! Use the nowarn attribute instead. !!",
Project.MSG_WARN);
attributes.log("!! the build.compiler.warnings property is " + "deprecated. !!",
Project.MSG_WARN);
attributes.log("!! Use the nowarn attribute instead. !!", Project.MSG_WARN);
if (!Project.toBoolean(warningsProperty)) { if (!Project.toBoolean(warningsProperty)) {
cmd.createArgument().setValue("-nowarn"); cmd.createArgument().setValue("-nowarn");
} }
@@ -174,8 +171,7 @@ public class Jikes extends DefaultCompilerAdapter {
/** /**
* Jikes can issue pedantic warnings. * Jikes can issue pedantic warnings.
*/ */
String pedanticProperty =
project.getProperty("build.compiler.pedantic");
String pedanticProperty = project.getProperty("build.compiler.pedantic");
if (pedanticProperty != null && Project.toBoolean(pedanticProperty)) { if (pedanticProperty != null && Project.toBoolean(pedanticProperty)) {
cmd.createArgument().setValue("+P"); cmd.createArgument().setValue("+P");
} }
@@ -185,8 +181,7 @@ public class Jikes extends DefaultCompilerAdapter {
* checking", see the jikes documentation for differences * checking", see the jikes documentation for differences
* between -depend and +F. * between -depend and +F.
*/ */
String fullDependProperty =
project.getProperty("build.compiler.fulldepend");
String fullDependProperty = project.getProperty("build.compiler.fulldepend");
if (fullDependProperty != null if (fullDependProperty != null
&& Project.toBoolean(fullDependProperty)) { && Project.toBoolean(fullDependProperty)) {
cmd.createArgument().setValue("+F"); cmd.createArgument().setValue("+F");
@@ -198,14 +193,13 @@ public class Jikes extends DefaultCompilerAdapter {
if (source.equals("1.1") || source.equals("1.2")) { if (source.equals("1.1") || source.equals("1.2")) {
// support for -source 1.1 and -source 1.2 has been // support for -source 1.1 and -source 1.2 has been
// added with JDK 1.4.2, Jikes doesn't like it // added with JDK 1.4.2, Jikes doesn't like it
attributes.log("Jikes doesn't support '-source "
+ source + "', will use '-source 1.3' instead");
attributes.log("Jikes doesn't support '-source " + source
+ "', will use '-source 1.3' instead");
cmd.createArgument().setValue("1.3"); cmd.createArgument().setValue("1.3");
} else { } else {
cmd.createArgument().setValue(source); cmd.createArgument().setValue(source);
} }
} }

addCurrentCompilerArgs(cmd); addCurrentCompilerArgs(cmd);


int firstFileName = cmd.size(); int firstFileName = cmd.size();
@@ -215,12 +209,9 @@ public class Jikes extends DefaultCompilerAdapter {
cmd.createArgument().setValue("-bootclasspath"); cmd.createArgument().setValue("-bootclasspath");
cmd.createArgument().setPath(boot); cmd.createArgument().setPath(boot);
} }

logAndAddFilesToCompile(cmd); logAndAddFilesToCompile(cmd);


return
executeExternalCompile(cmd.getCommandline(), firstFileName) == 0;
return executeExternalCompile(cmd.getCommandline(), firstFileName) == 0;
} }



} }

Loading…
Cancel
Save