FileDocCategorySizeDatePackage
ValidatorTask.javaAPI DocApache Tomcat 6.0.143740Fri Jul 20 04:20:32 BST 2007org.apache.catalina.ant

ValidatorTask

public class ValidatorTask extends BaseRedirectorHelperTask
Task for validating a web application deployment descriptor, using XML schema validation.
author
Remy Maucherat
version
$Revision: 467222 $ $Date: 2006-10-24 05:17:11 +0200 (mar., 24 oct. 2006) $
since
5.0

Fields Summary
protected String
path
The path to the webapp directory.
Constructors Summary
Methods Summary
public voidexecute()
Execute the specified command. This logic only performs the common attribute validation required by all subclasses; it does not perform any functional logic directly.

exception
BuildException if a validation error occurs


        if (path == null) {
            throw new BuildException("Must specify 'path'");
        }

        File file = new File(path, Constants.ApplicationWebXml);
        if ((!file.exists()) || (!file.canRead())) {
            throw new BuildException("Cannot find web.xml");
        }

        // Commons-logging likes having the context classloader set
        ClassLoader oldCL = Thread.currentThread().getContextClassLoader();
        Thread.currentThread().setContextClassLoader
            (ValidatorTask.class.getClassLoader());

        Digester digester = DigesterFactory.newDigester(true, true, null);
        try {
            file = file.getCanonicalFile();
            InputStream stream = 
                new BufferedInputStream(new FileInputStream(file));
            InputSource is = new InputSource(file.toURL().toExternalForm());
            is.setByteStream(stream);
            digester.parse(is);
            handleOutput("web.xml validated");
        } catch (Throwable t) {
            if (isFailOnError()) {
                throw new BuildException("Validation failure", t);
            } else {
                handleErrorOutput("Validation failure: " + t);
            }
        } finally {
            Thread.currentThread().setContextClassLoader(oldCL);
            closeRedirector();
        }

    
public java.lang.StringgetPath()


       
        return (this.path);
    
public voidsetPath(java.lang.String path)

        this.path = path;