aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java')
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java346
1 files changed, 0 insertions, 346 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java
deleted file mode 100644
index ec3506d4..00000000
--- a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java
+++ /dev/null
@@ -1,346 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-package org.apache.tools.ant.taskdefs.optional.junit;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.taskdefs.Delete;
-import org.apache.tools.ant.taskdefs.TempFile;
-import org.apache.tools.ant.taskdefs.XSLTProcess;
-import org.apache.tools.ant.types.EnumeratedAttribute;
-import org.apache.tools.ant.types.Path;
-import org.apache.tools.ant.types.Resource;
-import org.apache.tools.ant.types.resources.FileResource;
-import org.apache.tools.ant.types.resources.URLResource;
-import org.apache.tools.ant.util.FileUtils;
-import org.apache.tools.ant.util.JAXPUtils;
-import org.w3c.dom.Document;
-
-/**
- * Transform a JUnit xml report.
- * The default transformation generates an html report in either framed or non-framed
- * style. The non-framed style is convenient to have a concise report via mail, the
- * framed report is much more convenient if you want to browse into different
- * packages or testcases since it is a Javadoc like report.
- *
- */
-public class AggregateTransformer {
- /**
- * name of the frames format.
- */
- public static final String FRAMES = "frames";
-
- /**
- * name of the no frames format.
- */
- public static final String NOFRAMES = "noframes";
-
- /**
- * defines acceptable formats.
- */
- public static class Format extends EnumeratedAttribute {
- /**
- * list authorized values.
- * @return authorized values.
- */
- public String[] getValues() {
- return new String[]{FRAMES, NOFRAMES};
- }
- }
-
- // CheckStyle:VisibilityModifier OFF - bc
- /** Task */
- protected Task task;
-
- /** the xml document to process */
- protected Document document;
-
- /** the style directory. XSLs should be read from here if necessary */
- protected File styleDir;
-
- /** the destination directory, this is the root from where html should be generated */
- protected File toDir;
-
- /**
- * The internal XSLT task used to perform the transformation.
- *
- * @since Ant 1.9.5
- */
- private XSLTProcess xsltTask;
-
- /**
- * Instance of a utility class to use for file operations.
- *
- * @since Ant 1.7
- */
- private static final FileUtils FILE_UTILS = FileUtils.getFileUtils();
-
- /**
- * Used to ensure the uniqueness of a property
- */
- private static int counter = 0;
-
- /** the format to use for the report. Must be <tt>FRAMES</tt> or <tt>NOFRAMES</tt> */
- protected String format = FRAMES;
-
- /** XML Parser factory */
- private static DocumentBuilderFactory privateDBFactory;
-
- /** XML Parser factory accessible to subclasses */
- protected static DocumentBuilderFactory dbfactory;
-
- static {
- privateDBFactory = DocumentBuilderFactory.newInstance();
- dbfactory = privateDBFactory;
- }
- // CheckStyle:VisibilityModifier ON
-
- /**
- * constructor creating the transformer from the junitreport task.
- * @param task task delegating to this class
- */
- public AggregateTransformer(Task task) {
- this.task = task;
- xsltTask = new XSLTProcess();
- xsltTask.bindToOwner(task);
- }
-
- /**
- * Get the Document Builder Factory
- *
- * @return the DocumentBuilderFactory instance in use
- */
- protected static DocumentBuilderFactory getDocumentBuilderFactory() {
- return privateDBFactory;
- }
-
- /**
- * sets the format.
- * @param format Must be <tt>FRAMES</tt> or <tt>NOFRAMES</tt>
- */
- public void setFormat(Format format) {
- this.format = format.getValue();
- }
-
- /**
- * sets the input document.
- * @param doc input dom tree
- */
- public void setXmlDocument(Document doc) {
- this.document = doc;
- }
-
- /**
- * Set the xml file to be processed. This is a helper if you want
- * to set the file directly. Much more for testing purposes.
- * @param xmlfile xml file to be processed
- * @throws BuildException if the document cannot be parsed.
- */
- protected void setXmlfile(File xmlfile) throws BuildException {
- try {
- DocumentBuilder builder = privateDBFactory.newDocumentBuilder();
- InputStream in = new FileInputStream(xmlfile);
- try {
- Document doc = builder.parse(in);
- setXmlDocument(doc);
- } finally {
- in.close();
- }
- } catch (Exception e) {
- throw new BuildException("Error while parsing document: " + xmlfile, e);
- }
- }
-
- /**
- * set the style directory. It is optional and will override the
- * default xsl used.
- * @param styledir the directory containing the xsl files if the user
- * would like to override with its own style.
- */
- public void setStyledir(File styledir) {
- this.styleDir = styledir;
- }
-
- /** set the destination directory.
- * @param todir the destination directory
- */
- public void setTodir(File todir) {
- this.toDir = todir;
- }
-
- /** set the extension of the output files
- * @param ext extension.
- */
- public void setExtension(String ext) {
- task.log("extension is not used anymore", Project.MSG_WARN);
- }
-
- /**
- * Create an instance of an XSL parameter for configuration by Ant.
- *
- * @return an instance of the Param class to be configured.
- * @since Ant 1.7
- */
- public XSLTProcess.Param createParam() {
- return xsltTask.createParam();
- }
-
- /**
- * Creates a classpath to be used for the internal XSLT task.
- *
- * @return the classpath to be configured
- * @since Ant 1.9.5
- */
- public Path createClasspath() {
- return xsltTask.createClasspath();
- }
-
- /**
- * Creates a factory configuration to be used for the internal XSLT task.
- *
- * @return the factory description to be configured
- * @since Ant 1.9.5
- */
- public XSLTProcess.Factory createFactory() {
- return xsltTask.createFactory();
- }
-
- /**
- * transformation
- * @throws BuildException exception if something goes wrong with the transformation.
- */
- public void transform() throws BuildException {
- checkOptions();
- Project project = task.getProject();
-
- TempFile tempFileTask = new TempFile();
- tempFileTask.bindToOwner(task);
-
- xsltTask.setXslResource(getStylesheet());
-
- // acrobatic cast.
- xsltTask.setIn(((XMLResultAggregator) task).getDestinationFile());
- File outputFile = null;
- if (format.equals(FRAMES)) {
- String tempFileProperty = getClass().getName() + String.valueOf(counter++);
- File tmp = FILE_UTILS.resolveFile(project.getBaseDir(), project
- .getProperty("java.io.tmpdir"));
- tempFileTask.setDestDir(tmp);
- tempFileTask.setProperty(tempFileProperty);
- tempFileTask.execute();
- outputFile = new File(project.getProperty(tempFileProperty));
- } else {
- outputFile = new File(toDir, "junit-noframes.html");
- }
- xsltTask.setOut(outputFile);
- XSLTProcess.Param paramx = xsltTask.createParam();
- paramx.setProject(task.getProject());
- paramx.setName("output.dir");
- paramx.setExpression(toDir.getAbsolutePath());
- final long t0 = System.currentTimeMillis();
- try {
- xsltTask.execute();
- } catch (Exception e) {
- throw new BuildException("Errors while applying transformations: " + e.getMessage(), e);
- }
- final long dt = System.currentTimeMillis() - t0;
- task.log("Transform time: " + dt + "ms");
- if (format.equals(FRAMES)) {
- Delete delete = new Delete();
- delete.bindToOwner(task);
- delete.setFile(outputFile);
- delete.execute();
- }
- }
-
- /**
- * access the stylesheet to be used as a resource.
- * @return stylesheet as a resource
- */
- protected Resource getStylesheet() {
- String xslname = "junit-frames.xsl";
- if (NOFRAMES.equals(format)) {
- xslname = "junit-noframes.xsl";
- }
- if (styleDir == null) {
- // If style dir is not specified we have to retrieve
- // the stylesheet from the classloader
- URL stylesheetURL = getClass().getClassLoader().getResource(
- "org/apache/tools/ant/taskdefs/optional/junit/xsl/" + xslname);
- return new URLResource(stylesheetURL);
- }
- // If we are here, then the style dir is here and we
- // should read the stylesheet from the filesystem
- return new FileResource(new File(styleDir, xslname));
- }
-
- /** check for invalid options
- * @throws BuildException if something goes wrong.
- */
- protected void checkOptions() throws BuildException {
- // set the destination directory relative from the project if needed.
- if (toDir == null) {
- toDir = task.getProject().resolveFile(".");
- } else if (!toDir.isAbsolute()) {
- toDir = task.getProject().resolveFile(toDir.getPath());
- }
- }
-
- /**
- * Get the systemid of the appropriate stylesheet based on its
- * name and styledir. If no styledir is defined it will load
- * it as a java resource in the xsl child package, otherwise it
- * will get it from the given directory.
- * @return system ID of the stylesheet.
- * @throws IOException thrown if the requested stylesheet does
- * not exist.
- */
- protected String getStylesheetSystemId() throws IOException {
- String xslname = "junit-frames.xsl";
- if (NOFRAMES.equals(format)) {
- xslname = "junit-noframes.xsl";
- }
- if (styleDir == null) {
- URL url = getClass().getResource("xsl/" + xslname);
- if (url == null) {
- throw new FileNotFoundException("Could not find jar resource " + xslname);
- }
- return url.toExternalForm();
- }
- File file = new File(styleDir, xslname);
- if (!file.exists()) {
- throw new FileNotFoundException("Could not find file '" + file + "'");
- }
- return JAXPUtils.getSystemId(file);
- }
-
-}