diff options
author | kchong | 2009-01-05 15:04:32 +0000 |
---|---|---|
committer | kchong | 2009-01-05 15:04:32 +0000 |
commit | 2cf4d38de8b70eab77a7e42768b6ecead8b942b0 (patch) | |
tree | cb5d89f2b22883eb8de4cedee9fdc4b1f7fd2501 /bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ui/ant/WSDLValidate.java | |
parent | dd18c2a9ba5cdcb64f13dcaa65351c13c59b30c8 (diff) | |
download | webtools.webservices-200901051504.tar.gz webtools.webservices-200901051504.tar.xz webtools.webservices-200901051504.zip |
This commit was manufactured by cvs2svn to create tag 'v200901051504'.v200901051504
Diffstat (limited to 'bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ui/ant/WSDLValidate.java')
-rw-r--r-- | bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ui/ant/WSDLValidate.java | 489 |
1 files changed, 0 insertions, 489 deletions
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ui/ant/WSDLValidate.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ui/ant/WSDLValidate.java deleted file mode 100644 index b54f74431..000000000 --- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/ui/ant/WSDLValidate.java +++ /dev/null @@ -1,489 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ - -package org.eclipse.wst.wsdl.validation.internal.ui.ant; - -import java.io.File; -import java.net.URL; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.MissingResourceException; -import java.util.ResourceBundle; - -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.DirectoryScanner; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.Task; -import org.apache.tools.ant.types.DTDLocation; -import org.apache.tools.ant.types.FileSet; -import org.apache.tools.ant.types.Path; -import org.apache.tools.ant.types.XMLCatalog; -import org.eclipse.wst.wsdl.validation.internal.ClassloaderWSDLValidatorDelegate; -import org.eclipse.wst.wsdl.validation.internal.IValidationMessage; -import org.eclipse.wst.wsdl.validation.internal.IValidationReport; -import org.eclipse.wst.wsdl.validation.internal.WSDLValidationConfiguration; -import org.eclipse.wst.wsdl.validation.internal.WSDLValidator; -import org.eclipse.wst.wsdl.validation.internal.logging.LoggerFactory; -import org.eclipse.wst.wsdl.validation.internal.resolver.URIResolverDelegate; -import org.eclipse.wst.wsdl.validation.internal.util.MessageGenerator; -import org.eclipse.wst.wsdl.validation.internal.wsdl11.ClassloaderWSDL11ValidatorDelegate; -import org.eclipse.wst.wsdl.validation.internal.wsdl11.WSDL11ValidatorDelegate; - -/** - * An Ant task to run WSDL validation on a file or a set of files. - * - * Options - * - file - the file to run validation on (optional if fileset is used) - * - failonerror - fail the build process on the first file with an error - * - * Supported Nested Elements - * - xmlcatalog - an xml catalog - * - dtd - a dtd specification as would appear in an xmlcatalog - * - schema - a schema specification as would appear in an xmlcatalog - * - entity - an entity specification as would appear in an xmlcatalog - * - fileset - a set of files to validate - * - wsdl11validator - an extension WSDL 1.1 validator - * - uriresolver - an extension URI resolver - * - */ -public class WSDLValidate extends Task -{ - protected final String UI_PROPERTIES = "validatewsdlui"; - protected final String VALIDATOR_PROPERTIES = org.eclipse.wst.wsdl.validation.internal.Constants.WSDL_VALIDATOR_PROPERTIES_FILE; - protected final String _ERROR_NO_FILE_SPECIFIED = "_ERROR_NO_FILE_SPECIFIED"; - protected final String _UI_INFORMATION_DELIMITER = "_UI_INFORMATION_DELIMITER"; - protected final String _UI_ACTION_VALIDATING_FILE = "_UI_ACTION_VALIDATING_FILE"; - protected final String _UI_ERROR_MARKER = "_UI_ERROR_MARKER"; - protected final String _UI_WARNING_MARKER = "_UI_WARNING_MARKER"; - protected final String _UI_VALID = "_UI_VALID"; - protected final String _UI_INVALID = "_UI_INVALID"; - protected final String _EXC_UNABLE_TO_VALIDATE_FILE = "_EXC_UNABLE_TO_VALIDATE_FILE"; - protected final String _EXC_WSDL_FAIL_ON_ERROR = "_EXC_WSDL_FAIL_ON_ERROR"; - - protected final String FILE_PROTOCOL = "file:///"; - - // Global Vars - protected List filesets = new ArrayList(); - protected String file = null; - protected Path classpath; - protected String xsdDirectory = null; - protected boolean failOnError = false; - protected XMLCatalog globalXMLCatalog = new XMLCatalog(); - protected List wsdl11validators = new ArrayList(); - protected List extvalidators = new ArrayList(); - protected List extURIResolvers = new ArrayList(); - protected List properties = new ArrayList(); - - /** - * Constuctor. - */ - public WSDLValidate() - { - LoggerFactory.getInstance().setLogger(new AntLogger(this)); - } - - /** - * Tells the WSDL validate task to fail the build if an error is encountered. - * - * @param failOnError Whether to fail on error or not. - */ - public void setFailOnError(boolean failOnError) - { - this.failOnError = failOnError; - } - - /** - * Set the directory where the base schema files for the catalog are located. - * - * @param dir - the directory of the base schema files - */ - public void setSchemaDir(String dir) - { - xsdDirectory = dir; - } - - /** - * Set a file to run WSDL validation on. - * - * @param file - a file to run validation on - */ - public void setFile(String file) - { - this.file = file; - } - - /** - * Create a set of files to run WSDL validation on. - * - * @return the FileSet of files to run WSDL validation on - */ - public FileSet createFileset() - { - FileSet fileset = new FileSet(); - filesets.add(fileset); - return fileset; - } - - /** - * Add an XML catalog to the validator. - * - * @param catalog - the catalog to add to the validator - */ - public void addConfiguredXMLCatalog(XMLCatalog catalog) - { - globalXMLCatalog.addConfiguredXMLCatalog(catalog); - } - /** - * Add an extension validator. - * - * @param extVal The extension validator to add. - */ - public void addConfiguredExtensionValidator(ExtensionValidator extVal) - { - extvalidators.add(extVal); - } - - /** - * Add an extension WSDL 1.1 validator. - * - * @param extVal The extension WSDL 1.1 validator to add. - */ - public void addConfiguredWSDL11Validator(ExtensionValidator extVal) - { - wsdl11validators.add(extVal); - } - - /** - * Allow specification of an entity outside of an XMLCatalog. - * - * @return a DTDLocation with the specified entity - **/ - public DTDLocation createEntity() - { - DTDLocation dtdLoc = new DTDLocation(); - globalXMLCatalog.addEntity(dtdLoc); - return dtdLoc; - } - - /** - * Allow specification of a DTD outside of an XMLCatalog. - * - * @return a DTDLocation with the specified DTD - **/ - public DTDLocation createDTD() - { - DTDLocation dtdLoc = new DTDLocation(); - globalXMLCatalog.addEntity(dtdLoc); - return dtdLoc; - } - - /** - * Create a URIResolver extension. - * - * @return A URIResolver. - */ - public URIResolver createURIResolver() - { - URIResolver urires = new URIResolver(); - extURIResolvers.add(urires.getClassName()); - return urires; - } - - /** - * Add a property to the WSDL validator. - * - * @param property - * The property to add. - */ - public void addConfiguredProperty(Property property) - { - properties.add(property); - } - - /** - * Get a list of all the files to run WSDL validation on. Takes the file and fileset - * and creates the list. - * - * @return the list of files to be validated - */ - protected List getFileList() - { - List files = new ArrayList(); - - // if a specific file was specified add it to the list - if (file != null) - { - try - { - URL url = new URL(file); - files.add(url.toExternalForm()); - } - catch(Exception e) - { - File theFile = new File(file); - if(!theFile.isAbsolute()) - { - theFile = new File(getProject().getBaseDir(), file); - } - String absFile = theFile.toString(); - if(!absFile.startsWith("file:")) - { - absFile = FILE_PROTOCOL + absFile; - } - absFile = absFile.replace('\\','/'); - files.add(absFile); - } - } - - // go through all filesets specified and add all the files to the list - Iterator fsIter = filesets.iterator(); - while (fsIter.hasNext()) - { - FileSet fileset = (FileSet)fsIter.next(); - DirectoryScanner ds = fileset.getDirectoryScanner(fileset.getProject()); - String basedir = ds.getBasedir().toString() + File.separator; - - String[] filelist = ds.getIncludedFiles(); - int numFiles = filelist.length; - if (files != null && numFiles > 0) - { - for (int i = 0; i < numFiles; i++) - { - String absFile = FILE_PROTOCOL + basedir + filelist[i]; - absFile = absFile.replace('\\','/'); - files.add(absFile); - } - } - } - return files; - } - - /* (non-Javadoc) - * @see org.apache.tools.ant.Task#execute() - */ - public void execute() throws BuildException - { - // the resource bundles for the ui and validator are needed - MessageGenerator messGen = null; - try - { - ResourceBundle uiRB = ResourceBundle.getBundle(UI_PROPERTIES); - messGen = new MessageGenerator(uiRB); - } - catch (MissingResourceException e) - { - // if the resource bundles can't be opened we can't report error so throw an exception - throw new BuildException("Unable to open resource bundle. " + e); - } - - // Set the XML catalog. - org.eclipse.wst.wsdl.validation.internal.xml.XMLCatalog.setExtensionXMLCatalog(XMLCatalogImpl.class.getName(), getClass().getClassLoader()); - XMLCatalogImpl xmlCatalog = (XMLCatalogImpl)org.eclipse.wst.wsdl.validation.internal.xml.XMLCatalog.getExtensionCatalogInstance(); - xmlCatalog.addXMLCatalog(globalXMLCatalog); - - WSDLValidator wsdlValidator = new WSDLValidator(); - - WSDLValidationConfiguration configuration = new WSDLValidationConfiguration(); - // Set the properties. - Iterator propertyIter = properties.iterator(); - while(propertyIter.hasNext()) - { - Property property = (Property)propertyIter.next(); - configuration.setProperty(property.getName(), property.getValue()); - } - - // Set the extension URIResolvers. - Iterator resolversIter = extURIResolvers.iterator(); - while(resolversIter.hasNext()) - { - String resolverClass = (String)resolversIter.next(); - wsdlValidator.addURIResolver(new URIResolverDelegate(resolverClass, getClass().getClassLoader()).getURIResolver()); - } - - // Get the list of files to validate. - List files = getFileList(); - - // Register the WSDL 1.1 extension validators. - Iterator wsdl11extIter = wsdl11validators.iterator(); - while(wsdl11extIter.hasNext()) - { - ExtensionValidator extVal = (ExtensionValidator)wsdl11extIter.next(); - WSDL11ValidatorDelegate delegate = new ClassloaderWSDL11ValidatorDelegate(extVal.getClassName()); - wsdlValidator.registerWSDL11Validator(extVal.getNamespace(), delegate); - } - - // Register the extension validators. - Iterator extIter = extvalidators.iterator(); - while(extIter.hasNext()) - { - ExtensionValidator extVal = (ExtensionValidator)extIter.next(); - ClassloaderWSDLValidatorDelegate delegate = new ClassloaderWSDLValidatorDelegate(extVal.getClassName()); - wsdlValidator.registerWSDLExtensionValidator(extVal.getNamespace(), delegate); - } - - // The user didn't specify any files to validate. - if (files == null || files.isEmpty()) - { - log(messGen.getString(_ERROR_NO_FILE_SPECIFIED), Project.MSG_ERR); - return; - } - - if (xsdDirectory != null) - { - org.eclipse.wst.wsdl.validation.internal.xml.XMLCatalog.addSchemaDir(xsdDirectory); - } - - // Validate all the files specified. - Iterator iFiles = files.iterator(); - - // Common strings needed in validation output. - String infoDelim = messGen.getString(_UI_INFORMATION_DELIMITER); - String valid = messGen.getString(_UI_VALID); - String invalid = messGen.getString(_UI_INVALID); - String errormarker = messGen.getString(_UI_ERROR_MARKER); - String warningmarker = messGen.getString(_UI_WARNING_MARKER); - - StringBuffer result = null; - boolean notvalid = true; - while (iFiles.hasNext()) - { - result = new StringBuffer(); - notvalid = false; - String filename = (String)iFiles.next(); - try - { - result.append(infoDelim).append("\n"); - result.append(messGen.getString(_UI_ACTION_VALIDATING_FILE, filename)).append(" - "); - - IValidationReport valReport = wsdlValidator.validate(filename, null, configuration); - - IValidationMessage[] messages = valReport.getValidationMessages(); - - if (!valReport.hasErrors()) - { - result.append(valid); - } - else - { - result.append(invalid); - notvalid = true; - } - result.append("\n").append(infoDelim).append("\n"); - - result.append(reportMessages(messages, errormarker, warningmarker)); - - if(notvalid) - { - log(result.toString(), Project.MSG_ERR); - } - else - { - log(result.toString()); - } - } - catch (Exception e) - { - log(messGen.getString(_EXC_UNABLE_TO_VALIDATE_FILE, filename, e), Project.MSG_ERR); - } - finally - { - if (notvalid && failOnError) - { - // To fail on error, throw a build exception. - throw new BuildException(messGen.getString(_EXC_WSDL_FAIL_ON_ERROR)); - } - } - } - - org.eclipse.wst.wsdl.validation.internal.xml.XMLCatalog.reset(); - - } - - /** - * Return a string with formatted output for the messages. - * - * @param messages The messages to report. - * @param errormarker The marker to use for error messages. - * @param warningmarker The marker to use for warning messages. - * @return A string with the formatted output. - */ - protected String reportMessages(IValidationMessage[] messages, String errormarker, String warningmarker) - { - StringBuffer returnBuffer = new StringBuffer(); - - if (messages == null) - return returnBuffer.toString(); - - String prefix = null; - int numMessages = messages.length; - for(int i = 0; i < numMessages; i++) - { - IValidationMessage message = messages[i]; - - if(message.getSeverity() == IValidationMessage.SEV_ERROR) - { - prefix = errormarker; - } - else if(message.getSeverity() == IValidationMessage.SEV_WARNING) - { - prefix = warningmarker; - } - else - { - prefix = ""; - }if(message.getSeverity() == IValidationMessage.SEV_ERROR) - { - prefix = errormarker; - } - else if(message.getSeverity() == IValidationMessage.SEV_WARNING) - { - prefix = warningmarker; - } - else - { - prefix = ""; - }if(message.getSeverity() == IValidationMessage.SEV_ERROR) - { - prefix = errormarker; - } - else if(message.getSeverity() == IValidationMessage.SEV_WARNING) - { - prefix = warningmarker; - } - else - { - prefix = ""; - }if(message.getSeverity() == IValidationMessage.SEV_ERROR) - { - prefix = errormarker; - } - else if(message.getSeverity() == IValidationMessage.SEV_WARNING) - { - prefix = warningmarker; - } - else - { - prefix = ""; - } - returnBuffer - .append(prefix) - .append(" ") - .append(message.getLine()) - .append(":") - .append(message.getColumn()) - .append(":") - .append(message.getMessage()) - .append("\n"); - } - return returnBuffer.toString(); - } -}
\ No newline at end of file |