diff options
Diffstat (limited to 'bundles/org.eclipse.wst.wsi/src/org/eclipse/wst')
457 files changed, 0 insertions, 76516 deletions
diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/WSIPreferences.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/WSIPreferences.java deleted file mode 100644 index 84b8d2165..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/WSIPreferences.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal; - -/** - * WS-I test tools property. - * - * @author David Lauzon, IBM - * - */ - -public class WSIPreferences -{ - protected String complianceLevel = ""; - protected String tadfile = ""; - - /** - * Constructor. - */ - public WSIPreferences() - { - complianceLevel = WSITestToolsProperties.WARN_NON_WSI; - tadfile = WSITestToolsProperties.DEFAULT_ASSERTION_FILE; - } - - /** - * Returns the WS-I compliance level. - * @return the WS-I compliance level. - * @see #setComplianceLevel - */ - public String getComplianceLevel() - { - return complianceLevel; - } - - /** - * Set the WS-I compliance level. - * @param compliance the WS-I compliance level. - * @see #getComplianceLevel - */ - public void setComplianceLevel(String compliance) - { - this.complianceLevel = compliance; - } - - /** - * Returns the location of the Basic Profile Test Assertions file. - * @return the location of the Basic Profile Test Assertions file. - * @see #setTADFile - */ - public String getTADFile() - { - return tadfile; - } - - /** - * Set the location of the Basic Profile Test Assertions file. - * @param file the location of the Basic Profile Test Assertions file. - * @see #getTADFile - */ - public void setTADFile(String file) - { - this.tadfile = file; - } -} - diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/WSITestToolsEclipseProperties.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/WSITestToolsEclipseProperties.java deleted file mode 100644 index 7bac6635c..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/WSITestToolsEclipseProperties.java +++ /dev/null @@ -1,142 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 2009 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.Path; -import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver; -import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin; -import org.eclipse.wst.ws.internal.plugin.WSPlugin; -import org.eclipse.wst.ws.internal.preferences.PersistentWSIContext; - -/** - * WS-I test tool properties specific for Eclipse. - */ -public class WSITestToolsEclipseProperties extends WSITestToolsProperties -{ - /** - * @see org.eclipse.wst.wsi.internal.WSITestToolsProperties#checkWSIPreferences(java.lang.String) - */ - public static WSIPreferences checkWSIPreferences(String fileuri) - { - // Cache the WS-I tads. - cacheTADFiles(); - - WSIPreferences preferences = new WSIPreferences(); - // Remove file: and any slashes from the fileuri. - // Eclipse's resolution mechanism needs to start with the drive. - String uriStr = trimURI(fileuri); - - PersistentWSIContext APcontext = WSPlugin.getInstance().getWSIAPContext(); - PersistentWSIContext SSBPcontext = WSPlugin.getInstance().getWSISSBPContext(); - - IFile[] files = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocation(new Path(uriStr)); - if (files != null && files.length == 1) - { - //check project level compliance - IProject project = files[0].getProject(); - - if (APcontext.projectStopNonWSICompliances(project)) - { - preferences.setTADFile(AP_ASSERTION_FILE); - preferences.setComplianceLevel(PersistentWSIContext.STOP_NON_WSI); - } - else if (APcontext.projectWarnNonWSICompliances(project)) - { - preferences.setTADFile(AP_ASSERTION_FILE); - preferences.setComplianceLevel(PersistentWSIContext.WARN_NON_WSI); - } - else if (SSBPcontext.projectStopNonWSICompliances(project)) - { - preferences.setTADFile(SSBP_ASSERTION_FILE); - preferences.setComplianceLevel(PersistentWSIContext.STOP_NON_WSI); - } - else if (SSBPcontext.projectWarnNonWSICompliances(project)) - { - preferences.setTADFile(SSBP_ASSERTION_FILE); - preferences.setComplianceLevel(PersistentWSIContext.WARN_NON_WSI); - } - else - { - preferences.setTADFile(DEFAULT_ASSERTION_FILE); - preferences.setComplianceLevel(PersistentWSIContext.IGNORE_NON_WSI); - } - } - else - { - // If we can't obtain the project preference use the global preference. - String APlevel = APcontext.getPersistentWSICompliance(); - String SSBPlevel = SSBPcontext.getPersistentWSICompliance(); - if(APlevel.equals(PersistentWSIContext.STOP_NON_WSI)) - { - preferences.setTADFile(AP_ASSERTION_FILE); - preferences.setComplianceLevel(PersistentWSIContext.STOP_NON_WSI); - } - else if(APlevel.equals(PersistentWSIContext.WARN_NON_WSI)) - { - preferences.setTADFile(AP_ASSERTION_FILE); - preferences.setComplianceLevel(PersistentWSIContext.WARN_NON_WSI); - } - if(SSBPlevel.equals(PersistentWSIContext.STOP_NON_WSI)) - { - preferences.setTADFile(SSBP_ASSERTION_FILE); - preferences.setComplianceLevel(PersistentWSIContext.STOP_NON_WSI); - } - else if(SSBPlevel.equals(PersistentWSIContext.WARN_NON_WSI)) - { - preferences.setTADFile(SSBP_ASSERTION_FILE); - preferences.setComplianceLevel(PersistentWSIContext.WARN_NON_WSI); - } - else - { - preferences.setTADFile(DEFAULT_ASSERTION_FILE); - preferences.setComplianceLevel(PersistentWSIContext.IGNORE_NON_WSI); - } - } - return preferences; - } - - protected static void cacheTADFiles() - { - String resultAP = cacheFile(AP_ASSERTION_FILE); - if(resultAP != null) - { - AP_ASSERTION_FILE = resultAP; - } - - String resultSSBP = cacheFile(SSBP_ASSERTION_FILE); - if(resultSSBP != null) - { - SSBP_ASSERTION_FILE = resultSSBP; - } - } - - protected static String cacheFile(String uri) - { - URIResolver resolver = getURIResolver(); - String resolvedUri = resolver.resolve("", null, uri); - return resolver.resolvePhysicalLocation("", null, resolvedUri); - } - - /** - * Get the URI resolver to use for WS-I validaiton. - * - * @return - * The URI resolver to use for WS-I validation. - */ - public static URIResolver getURIResolver() - { - return URIResolverPlugin.createResolver(); - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/WSITestToolsPlugin.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/WSITestToolsPlugin.java deleted file mode 100644 index fa0dae143..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/WSITestToolsPlugin.java +++ /dev/null @@ -1,208 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal; - -import java.util.ArrayList; - -import org.eclipse.core.runtime.IConfigurationElement; -import org.eclipse.core.runtime.IExtension; -import org.eclipse.core.runtime.IExtensionPoint; -import org.eclipse.core.runtime.IExtensionRegistry; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Plugin; -import org.eclipse.wst.wsi.internal.core.profile.validator.BaseValidator; - -/** - * The WS-I test tools plugin. - * - * @author lauzond - */ - -public class WSITestToolsPlugin extends Plugin -{ - private static Plugin instance; - protected final String PLUGIN_PROPERTIES = "wsivalidate"; - protected static final String PLUGIN_ID = "org.eclipse.wst.wsi"; - protected static final String VALIDATOR_EXT_ID = PLUGIN_ID + ".wsivalidator"; - protected static final String TAD_VERSION_EXT_ID = PLUGIN_ID + ".tads"; - protected static final String REPORT_ARTIFACT_TYPES_EXT_ID = PLUGIN_ID + ".reportArtifactTypes"; - protected static final String ATT_CLASS = "class"; - protected static final String ATT_TAD_NAME = "name"; - protected static final String ATT_TAD_VERSION = "version"; - protected static final String ATT_ARTIFACT_TYPE = "artifactType"; - - /* Holds validators read from the platform registry. Lazy initialized in - * computeValidators(). */ - private BaseValidator validators[]; - - /* Holds arrays containing information about Test Assertion document (TAD) - * versions read from the platform registry. Each array has two elements: - * 0: the TAD name - * 1: the TAD version string - * Lazy initialized in computeTADVersions(). */ - private String tadVersions[][]; - - /* Holds artifact type names for reporting read from the platform registry. - * Lazy initialized in getAllReportArtifactTypes(). */ - private String reportArtifactTypes[]; - - /** - * Constructor for wsiTestToolsPlugin. - * @param descriptor an IPluginDescriptor object. - */ - public WSITestToolsPlugin() - { - super(); - instance = this; - - // set the current directory - WSITestToolsProperties.setEclipseContext(true); - //resourcebundle = ResourceBundle.getBundle(PLUGIN_PROPERTIES); - } - - /** - * Method getInstance. - * @return AbstractUIPlugin - */ - public static Plugin getInstance() - { - return instance; - } - - /** - * Method getPlugin. - * @return WSIToolsUtilPlugin - */ - public static WSITestToolsPlugin getPlugin() - { - return (WSITestToolsPlugin) instance; - } - - /* Computes the list of validators by scanning the platform registry. */ - private BaseValidator[] computeValidators() { - IExtensionRegistry registry = Platform.getExtensionRegistry(); - IExtensionPoint extensionPoint = registry.getExtensionPoint( - VALIDATOR_EXT_ID); - IExtension[] extensions = extensionPoint.getExtensions(); - ArrayList results = new ArrayList(); - for (int i = 0; i < extensions.length; i++) { - /* Only one validator per extension point */ - IConfigurationElement validatorElement = extensions[i]. - getConfigurationElements()[0]; - BaseValidator validator = null; - try { - validator = (BaseValidator) validatorElement. - createExecutableExtension(ATT_CLASS); - } catch (Throwable e) { - e.printStackTrace(); - } - results.add(validator); - } - return (BaseValidator[]) results.toArray(new BaseValidator[0]); - } - - /** - * Find all validators found in the platform registry extension points - * org.eclipse.wst.wsi.validator. - * @return an array containing these validators - */ - public BaseValidator[] getBaseValidators() - { - if (validators == null) - validators = computeValidators(); - return validators; - } - - /** - * Scan all validators found in the platform registry for supported artifact - * types. - * @return an array of artifact type names (Strings) - */ - public String[] getArtifactTypes() { - if (validators == null) - getBaseValidators(); - String artifactTypes[] = new String[validators.length]; - - for (int i = 0; i < validators.length; i++) - artifactTypes[i] = validators[i].getArtifactType(); - return artifactTypes; - } - - /* Computes the list of supported TAD versions by scanning the platform - * registry. See comment for tadVersions inst var for a description of the - * return type. */ - private String[][] computeTADVersions() { - IExtensionRegistry registry = Platform.getExtensionRegistry(); - IExtensionPoint extensionPoint = registry.getExtensionPoint( - TAD_VERSION_EXT_ID); - IExtension[] extensions = extensionPoint.getExtensions(); - ArrayList results = new ArrayList(); - for (int i = 0; i < extensions.length; i++) { - - IConfigurationElement versionElements[] = extensions[i]. - getConfigurationElements(); - for (int j = 0; j < versionElements.length; j++) { - String nameVersion[] = new String[2]; - nameVersion[0] = versionElements[j].getAttribute(ATT_TAD_NAME); - nameVersion[1] = versionElements[j].getAttribute(ATT_TAD_VERSION); - results.add(nameVersion); - } - } - return (String[][]) results.toArray(new String[0][0]); - } - - /** - * Find all TAD versions found in the platform registry extension points - * org.eclipse.wst.wsi.tad_versions. - * - * @return an array where each member is a two element arrays that describes - * one TAD version: - * element 0: the TAD name - * element 1: the TAD version string - */ - public String[][] getAllTADVersions() - { - if (tadVersions == null) - tadVersions = computeTADVersions(); - return tadVersions; - } - - /* Computes the list of artifact types by scanning the platform registry. */ - private String[] computeReportArtifactTypes() - { - IExtensionRegistry registry = Platform.getExtensionRegistry(); - IExtensionPoint extensionPoint = registry.getExtensionPoint(REPORT_ARTIFACT_TYPES_EXT_ID); - IExtension[] extensions = extensionPoint.getExtensions(); - ArrayList results = new ArrayList(); - for (int i = 0; i < extensions.length; i++) - { - IConfigurationElement reportArtifactElements[] = extensions[i].getConfigurationElements(); - for (int j = 0; j < reportArtifactElements.length; j++) - { - String reportArtifact = reportArtifactElements[j].getAttribute(ATT_ARTIFACT_TYPE); - results.add(reportArtifact); - } - } - return (String[]) results.toArray(new String[0]); - } - - /** - * Find all report artifact types tags found in the platform registry - * extension points org.eclipse.wst.wsi.reportArtifactTypes. - * @return an array containing these Strings - */ - public String[] getAllReportArtifactTypes() - { - if (reportArtifactTypes == null) - reportArtifactTypes = computeReportArtifactTypes(); - return reportArtifactTypes; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/WSITestToolsProperties.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/WSITestToolsProperties.java deleted file mode 100644 index b30334049..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/WSITestToolsProperties.java +++ /dev/null @@ -1,127 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal; - -import java.util.HashMap; -import java.util.Map; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.document.DocumentFactory; -import org.eclipse.wst.wsi.internal.core.profile.ProfileAssertions; -import org.eclipse.wst.wsi.internal.core.profile.ProfileAssertionsReader; - -/** - * WS-I test tools property. - */ -public class WSITestToolsProperties -{ - protected static String installURL = ""; - protected static String tadfile = ""; - - public final static String schemaDir = "common/schemas/"; - public static String SSBP_ASSERTION_FILE = "http://www.ws-i.org/Testing/Tools/2005/01/SSBP10_BP11_TAD_1-0.xml"; - public static String AP_ASSERTION_FILE = "http://www.ws-i.org/Testing/Tools/2004/12/AP10_BP11_SSBP10_TAD.xml"; - public final static String DEFAULT_ASSERTION_FILE = AP_ASSERTION_FILE; - - public static final String STOP_NON_WSI = "0"; - public static final String WARN_NON_WSI = "1"; - public static final String IGNORE_NON_WSI = "2"; - - protected static boolean eclipseContext = false; - protected static Map uriToAssertionsMap = new HashMap(); - protected static DocumentFactory documentFactory = null; - - /** - * Constructor. - */ - protected WSITestToolsProperties() - { - super(); - } - - public static void setEclipseContext(boolean eclipseActive) - { - eclipseContext = eclipseActive; - } - - public static boolean getEclipseContext() - { - return eclipseContext; - } - - /** - * Checks the WS-I preferences for the given file and return them in a - * WSIPreferences object. - * - * @param fileuri The file URI to check the WS-I preferences for. - * @return A WSIPreferences object containing the preference for this file URI. - */ - public static WSIPreferences checkWSIPreferences(String fileuri) - { - return new WSIPreferences(); - } - - /** - * Returns the profile assertions located at the given URI. - * @param assertionsURI the location of the TAD. - * @return the profile assertions located at the given URI. - * @throws WSIException - */ - public static ProfileAssertions getProfileAssertions(String assertionsURI) throws WSIException - { - ProfileAssertions result = null; - if (assertionsURI != null) - { - try - { - if (uriToAssertionsMap.containsKey(assertionsURI)) - result = (ProfileAssertions)uriToAssertionsMap.get(assertionsURI); - else - { - // Read profile assertions - if (documentFactory == null) - documentFactory = DocumentFactory.newInstance(); - ProfileAssertionsReader profileAssertionsReader = documentFactory.newProfileAssertionsReader(); - result = profileAssertionsReader.readProfileAssertions(assertionsURI); - if (result != null) - { - uriToAssertionsMap.put(assertionsURI, result); - } - } - } - catch (Exception e) - { - result = null; - } - } - return result; - } - - /** - * Remove file: and any slashes from the fileuri. - * Eclipse's resolution mechanism needs to start with the drive. - */ - protected static String trimURI(String fileuri) - { - String uriStr = fileuri; - - if(fileuri.startsWith("file:")) - { - uriStr = fileuri.substring(5); - } - while(uriStr.startsWith("/") || uriStr.startsWith("\\")) - { - uriStr = uriStr.substring(1); - } - return uriStr; - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/analyzer/MessageAnalyzer.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/analyzer/MessageAnalyzer.java deleted file mode 100644 index 4970d3d5d..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/analyzer/MessageAnalyzer.java +++ /dev/null @@ -1,313 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.analyzer; - -import java.io.UnsupportedEncodingException; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Vector; - -import org.eclipse.wst.common.uriresolver.internal.util.URIEncoder; -import org.eclipse.wst.wsi.internal.WSIPreferences; -import org.eclipse.wst.wsi.internal.WSITestToolsEclipseProperties; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AnalyzerConfig; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AssertionResultType; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AssertionResultsOption; -import org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLElement; -import org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLReference; -import org.eclipse.wst.wsi.internal.core.analyzer.config.impl.AssertionResultsOptionImpl; -import org.eclipse.wst.wsi.internal.core.analyzer.config.impl.WSDLElementImpl; -import org.eclipse.wst.wsi.internal.core.analyzer.config.impl.WSDLReferenceImpl; -import org.eclipse.wst.wsi.internal.core.common.AddStyleSheet; -import org.eclipse.wst.wsi.internal.core.common.impl.AddStyleSheetImpl; -import org.eclipse.wst.wsi.internal.core.document.DocumentFactory; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.report.Entry; -import org.eclipse.wst.wsi.internal.core.report.impl.FailureDetailImpl; -import org.eclipse.wst.wsi.internal.core.report.impl.ReportImpl; -import org.eclipse.wst.wsi.internal.core.xml.dom.ElementLocation; -import org.eclipse.wst.wsi.internal.report.AssertionError; - -/** - * MessageAnalyzer - * - * A class that allows simple access to the WS-I Test Tools in order to analyze - * messages in a log file. - */ - -public class MessageAnalyzer -{ - public final static String PLUGIN_ID = "org.wsi.test.tools"; - - public final static String TYPE_PORT = "port"; - public final static String TYPE_BINDING = "binding"; - public final static String TYPE_PORTTYPE = "porttype"; - public final static String TYPE_OPERATION = "operation"; - public final static String TYPE_MESSAGE = "message"; - - // Test result Strings - protected final String NOTPASSED = "notPassed"; - protected final String WARNING = "warning"; - protected final String FAILED = "failed"; - - protected String filename; - protected String wsdlfile = null; - protected String elementname = null; - protected String namespace = null; - protected String parentname = null; - protected boolean wsdlspecified = false; - protected String type = null; - protected List assertionwarnings; - protected List assertionerrors; - protected WSIPreferences wsiPreferences = null; - - /** - * Constructor for MessageAnalyzer. - * @param filename log file name. - */ - public MessageAnalyzer(String filename) - { - this.filename = filename.replace('\\', '/'); - - assertionwarnings = new Vector(); - assertionerrors = new Vector(); - this.wsiPreferences = WSITestToolsEclipseProperties.checkWSIPreferences(filename); - } - - /** - * Constructor for MessageAnalyzer. - * @param filename log file name. - */ - public MessageAnalyzer(String filename, WSIPreferences wsiPreferences) - { - this.filename = filename.replace('\\', '/'); - - assertionwarnings = new Vector(); - assertionerrors = new Vector(); - this.wsiPreferences = wsiPreferences; - } - - public MessageAnalyzer(String filename, String wsdlfile, String elementname, String namespace, String parentname, String type) - { - this(filename.replace('\\', '/')); - wsdlspecified = true; - - this.wsdlfile = wsdlfile.replace('\\', '/'); - this.elementname = elementname; - this.namespace = namespace; - this.parentname = parentname; - this.type = type; - } - - public MessageAnalyzer(String filename, String wsdlfile, String elementname, String namespace, String parentname, String type, WSIPreferences wsiPreferences) - { - this(filename, wsiPreferences); - wsdlspecified = true; - - this.wsdlfile = wsdlfile.replace('\\', '/'); - this.elementname = elementname; - this.namespace = namespace; - this.parentname = parentname; - this.type = type; - } - - /** - * Method validateConformance. - * - * Checks the conformance of the given logfile against the WS-I Basic Profile. - * If there are conformance problems they can be obtained from getAssertionErrors. - * - * @throws WSIAnalyzerException - */ - public void validateConformance() throws WSIAnalyzerException - { - try - { - if (wsiPreferences.getComplianceLevel() != WSITestToolsEclipseProperties.IGNORE_NON_WSI) - { - DocumentFactory documentFactory = DocumentFactory.newInstance(); - // Initialize the BasicProfileAnalyzer using an analyzerconfig object - AnalyzerConfig analyzerconfig = documentFactory.newAnalyzerConfig(); - if(wsdlspecified) - { - WSDLReference wsdlref = new WSDLReferenceImpl(); - wsdlref.setWSDLLocation(wsdlfile); - - WSDLElement wsdlelem = new WSDLElementImpl(); - wsdlelem.setName(elementname); - wsdlelem.setNamespace(namespace); - wsdlelem.setParentElementName(parentname); - wsdlelem.setType(type); - - wsdlref.setWSDLElement(wsdlelem); - - analyzerconfig.setWSDLReference(wsdlref); - } - - AssertionResultsOption aro = new AssertionResultsOptionImpl(); - aro.setAssertionResultType(AssertionResultType.newInstance(NOTPASSED)); - aro.setShowAssertionDescription(false); - aro.setShowFailureDetail(false); - aro.setShowFailureMessage(false); - aro.setShowMessageEntry(false); - - // although we don't use a stylesheet for our application it is required or the - // WS-I tools will fail - AddStyleSheet addstylesheet = new AddStyleSheetImpl(); - - analyzerconfig.setAssertionResultsOption(aro); - analyzerconfig.setAddStyleSheet(addstylesheet); - - analyzerconfig.setCorrelationType("endpoint"); - try - { - analyzerconfig.setLogLocation(URIEncoder.encode(filename, "UTF8")); - analyzerconfig.setTestAssertionsDocumentLocation(wsiPreferences.getTADFile()); - } - catch (UnsupportedEncodingException uee) - { - analyzerconfig.setLogLocation(URIEncoder.encode(filename, "UTF8")); - analyzerconfig.setTestAssertionsDocumentLocation(URIEncoder.encode(wsiPreferences.getTADFile(), "UTF8")); - } - //analyzerconfig.setLogLocation(filename); - //analyzerconfig.setTestAssertionsDocumentLocation(getBasicProfileTestAssertionsFile()); - analyzerconfig.setVerboseOption(false); - - - List analyzerConfigs = new Vector(); - analyzerConfigs.add(analyzerconfig); - // here's where the validation actually starts happening - WSIBasicProfileAnalyzer bpanalyzer = new WSIBasicProfileAnalyzer(analyzerConfigs); - - bpanalyzer.validateAll(); - ReportImpl report = (ReportImpl) bpanalyzer.getReport(); - - List entries = report.getEntries(); - - // if there are report entries we iterate through them and add all - // error and warning messages to the error list. - if (entries != null) - { - Iterator ientry = entries.iterator(); - while (ientry.hasNext()) - { - Entry entry = (Entry) ientry.next(); - Map assertionResults = entry.getAssertionResultList(); - - if (assertionResults != null) - { - Iterator iassertionResults = assertionResults.values().iterator(); - - while (iassertionResults.hasNext()) - { - AssertionResult ar = (AssertionResult) iassertionResults.next(); - - if (ar.getResult().equalsIgnoreCase(FAILED) && - wsiPreferences.getComplianceLevel().equals(WSITestToolsEclipseProperties.STOP_NON_WSI)) - { - TestAssertion ta = ar.getAssertion(); - if (ta.isEnabled()) - { - Iterator errorMessages = ar.getFailureDetailList().iterator(); - while (errorMessages.hasNext()) - { - FailureDetailImpl fdi = (FailureDetailImpl)errorMessages.next(); - int lineNumber = 0; - int columnNumber = 0; - - ElementLocation el = fdi.getElementLocation(); - - if (el != null) - { - lineNumber = el.getLineNumber(); - columnNumber = el.getColumnNumber(); - } - - //TODO: get assertion locations in the log file - assertionerrors.add( - new AssertionError( - ta.getId(), - "Message ID " + entry.getReferenceID() + ":" + ta.getFailureMessage(), - lineNumber, - columnNumber)); - } - } - } - else if (ar.getResult().equalsIgnoreCase(FAILED) && - wsiPreferences.getComplianceLevel().equals(WSITestToolsEclipseProperties.WARN_NON_WSI)) - { - TestAssertion ta = ar.getAssertion(); - if (ta.isEnabled()) - { - Iterator errorMessages = ar.getFailureDetailList().iterator(); - while (errorMessages.hasNext()) - { - FailureDetailImpl fdi = (FailureDetailImpl)errorMessages.next(); - int lineNumber = 0; - int columnNumber = 0; - - ElementLocation el = fdi.getElementLocation(); - - if (el != null) - { - lineNumber = el.getLineNumber(); - columnNumber = el.getColumnNumber(); - } - //TODO: get assertion locations in the log file - assertionwarnings.add( - new AssertionError( - ta.getId(), - "Message ID " + entry.getReferenceID() + ":" + ta.getFailureMessage(), - lineNumber, - columnNumber)); - } - } - } - } - } - } - } - } - } - catch (WSIException e) - { - throw new WSIAnalyzerException("The MessageAnalyzer was unable to validate the given logfile.", e.getTargetException()); - } - catch (Exception e) - { - throw new WSIAnalyzerException("The MessageAnalyzer was unable to validate the given logfile."); - } - - } - - /** - * Method getAssertionWarnings. - * Returns a list of any assertion warnings generated from validateConformance. - * @return List - */ - public List getAssertionWarnings() - { - return assertionwarnings; - } - - /** - * Method getAssertionFailures. - * Returns a list of any assertion errors generated from validateConformance. - * @return List - */ - public List getAssertionErrors() - { - return assertionerrors; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/analyzer/WSDLAnalyzer.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/analyzer/WSDLAnalyzer.java deleted file mode 100644 index 99bf23173..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/analyzer/WSDLAnalyzer.java +++ /dev/null @@ -1,384 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.analyzer; - -import java.io.UnsupportedEncodingException; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Vector; - -import org.eclipse.wst.common.uriresolver.internal.util.URIEncoder; -import org.eclipse.wst.wsi.internal.WSIPreferences; -import org.eclipse.wst.wsi.internal.WSITestToolsEclipseProperties; -import org.eclipse.wst.wsi.internal.WSITestToolsProperties; -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AnalyzerConfig; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AssertionResultType; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AssertionResultsOption; -import org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLElement; -import org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLReference; -import org.eclipse.wst.wsi.internal.core.analyzer.config.impl.AssertionResultsOptionImpl; -import org.eclipse.wst.wsi.internal.core.analyzer.config.impl.WSDLElementImpl; -import org.eclipse.wst.wsi.internal.core.analyzer.config.impl.WSDLReferenceImpl; -import org.eclipse.wst.wsi.internal.core.common.AddStyleSheet; -import org.eclipse.wst.wsi.internal.core.common.impl.AddStyleSheetImpl; -import org.eclipse.wst.wsi.internal.core.document.DocumentFactory; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.report.Entry; -import org.eclipse.wst.wsi.internal.core.report.impl.FailureDetailImpl; -import org.eclipse.wst.wsi.internal.core.report.impl.ReportImpl; -import org.eclipse.wst.wsi.internal.core.xml.dom.ElementLocation; -import org.eclipse.wst.wsi.internal.report.AssertionError; - -/** - * WSDLAnalyzer - * The interface to the WS-I Test Tools for analyzing a WSDL file. Allows a WSDL file to be analyzed - * at any of the following levels. - * port - * binding - * portType - * operation - * message - */ - -public class WSDLAnalyzer -{ - public final static String PLUGIN_ID = "org.wsi.test.tools"; - - public static final String PORT = "port"; - public static final String BINDING = "binding"; - public static final String PORTTYPE = "portType"; - public static final String OPERATION = "operation"; - public static final String MESSAGE = "message"; - - protected final String NOTPASSED = "notPassed"; - protected final String WARNING = "warning"; - protected final String FAILED = "failed"; - - protected List analyzerConfigs; - protected String wsdlURI; - // assertions to ignore - used for assertions that the tools have not implemented properly yet - //protected String[] ignoreAssertions = { /*"WSI2105" , "WSI2119"*/}; - protected List assertionerrors; - protected List assertionwarnings; - protected WSIPreferences wsiPreferences = null; - - /** - * Constructor. - * Given the file name, parent element name, the element to analyze and the type of element - * sets up the WSDLAnalyzer to analyze the file. - * @param fileName log file name. - * @param parentName parent element name. - * @param namespace a namespace. - * @param elementName the element to analyze. - * @param elementType the type of the element. - * @param wsiPreferences the preferences. - * @throws WSIAnalyzerException if unable to add configuration information. - */ - public WSDLAnalyzer(String fileName, String parentName, String namespace, String elementName, String elementType, WSIPreferences wsiPreferences) throws WSIAnalyzerException - { - this(fileName, wsiPreferences); - addConfigurationToTest(parentName, namespace, elementName, elementType); - - } - - /** - * Constructor. - * Given the file name, parent element name, the element to analyze and the type of element - * sets up the WSDLAnalyzer to analyze the file. - * @param fileName log file name. - * @param parentName parent element name. - * @param namespace a namespace. - * @param elementName the element to analyze. - * @param elementType the type of the element. - * @throws WSIAnalyzerException if unable to add configuration information. - */ - public WSDLAnalyzer(String fileName, String parentName, String namespace, String elementName, String elementType) throws WSIAnalyzerException - { - this(fileName); - addConfigurationToTest(parentName, namespace, elementName, elementType); - - } - - /** - * Constructor. - * @param fileName log file name. - */ - public WSDLAnalyzer(String fileName, WSIPreferences wsiPreferences) - { - reset(fileName); - this.wsiPreferences = wsiPreferences; - } - - /** - * Constructor. - * @param fileName log file name. - */ - public WSDLAnalyzer(String fileName) - { - reset(fileName); - if(WSITestToolsProperties.getEclipseContext()) - { - this.wsiPreferences = WSITestToolsEclipseProperties.checkWSIPreferences(fileName); - } - else - { - this.wsiPreferences = WSITestToolsProperties.checkWSIPreferences(fileName); - } - } - - public WSIPreferences getWSIPreferences() - { - return this.wsiPreferences; - } - - /** - * validateConformance. - * Validate the WSDL file as setup in the constructor. - * @throws WSIAnalyzerException if unable to validate the given WSDL File. - */ - public void validateConformance() throws WSIAnalyzerException - { - try - { - if (wsiPreferences.getComplianceLevel() != WSITestToolsProperties.IGNORE_NON_WSI) - { - // here's where the validation actually starts happening - WSIBasicProfileAnalyzer bpanalyzer = new WSIBasicProfileAnalyzer(analyzerConfigs,wsdlURI); - bpanalyzer.validateAll(); - ReportImpl report = (ReportImpl) bpanalyzer.getReport(); - - List entries = report.getEntries(); - - // if there are report entries we iterate through them and add all - // error and warning messages to the error list. - if (entries != null) - { - Iterator ientry = entries.iterator(); - while (ientry.hasNext()) - { - Entry entry = (Entry) ientry.next(); - Map assertionResults = entry.getAssertionResultList(); - - if (assertionResults != null) - { - Iterator iassertionResults = assertionResults.values().iterator(); - - while (iassertionResults.hasNext()) - { - AssertionResult ar = (AssertionResult) iassertionResults.next(); - TestAssertion ta = ar.getAssertion(); - // add in to skip errors for assertions that are reporting incorrect problems. - // This allows us to not report incorrect errors reported in the tools without disabling them - // String assertionId = ta.getId(); - // boolean ignoreAssertion = false; - // for(int i = ignoreAssertions.length-1; i >=0;i--) - // { - // if(ignoreAssertions[i].equalsIgnoreCase(assertionId)) - // { - // ignoreAssertion = true; - // } - // } - // if(ignoreAssertion) - // { - // continue; - // } - if (ar.getResult().equalsIgnoreCase(FAILED) && - wsiPreferences.getComplianceLevel().equals(WSITestToolsProperties.STOP_NON_WSI)) - { - if (ta.isEnabled()) - { - List errorMessageList = ar.getFailureDetailList(); - if (errorMessageList != null) - { - Iterator errorMessages = errorMessageList.iterator(); - - while (errorMessages.hasNext()) - { - FailureDetailImpl fdi = (FailureDetailImpl) errorMessages.next(); - int lineNumber = 0; - int columnNumber = 0; - - ElementLocation el = fdi.getElementLocation(); - - if (el != null) - { - lineNumber = el.getLineNumber(); - columnNumber = el.getColumnNumber(); - } - - assertionerrors.add( - new AssertionError(ta.getId(), ta.getFailureMessage(), lineNumber, columnNumber)); - } - } - // the errorMessageList is null but there is an error so assign it to line 0 for now - else - { - assertionerrors.add(new AssertionError(ta.getId(), ta.getFailureMessage(), 0, 0)); - } - } - } - else if (ar.getResult().equalsIgnoreCase(FAILED) && - wsiPreferences.getComplianceLevel().equals(WSITestToolsProperties.WARN_NON_WSI)) - { - if (ta.isEnabled()) - { - List errorMessageList = ar.getFailureDetailList(); - if (errorMessageList != null) - { - Iterator errorMessages = errorMessageList.iterator(); - while (errorMessages.hasNext()) - { - FailureDetailImpl fdi = (FailureDetailImpl) errorMessages.next(); - int lineNumber = 0; - int columnNumber = 0; - - ElementLocation el = fdi.getElementLocation(); - - if (el != null) - { - lineNumber = el.getLineNumber(); - columnNumber = el.getColumnNumber(); - } - assertionwarnings.add( - new AssertionError(ta.getId(), ta.getFailureMessage(), lineNumber, columnNumber)); - } - } - // the errorMessageList is null but there is an error so assign it to line 0 for now - else - { - assertionwarnings.add(new AssertionError(ta.getId(), ta.getFailureMessage(), 0, 0)); - } - } - } - } - } - } - } - } - } - - catch (Exception e) - { - throw new WSIAnalyzerException(e + "The WSDLAnalyzer was unable to validate the given WSDL File."); - } - - } - - /** - * Add configuration information. - * @param parentName parent element name. - * @param namespace a namespace. - * @param elementName the element to analyze. - * @param elementType the type of the element. - * @throws WSIAnalyzerException if unable to add configuration information. - */ - public void addConfigurationToTest( - String parentName, - String namespace, - String elementName, - String elementType) throws WSIAnalyzerException - { - try - { - WSDLReference wsdlReference = new WSDLReferenceImpl(); - - WSDLElement wsdlElement = (WSDLElement) new WSDLElementImpl(); - wsdlElement.setType(elementType); - if (parentName != null) - { - wsdlElement.setParentElementName(parentName); - } - wsdlElement.setNamespace(namespace); - wsdlElement.setName(elementName); - wsdlReference.setWSDLElement(wsdlElement); - - wsdlReference.setWSDLLocation(wsdlURI); - DocumentFactory documentFactory = DocumentFactory.newInstance(); - // Initialize the BasicProfileAnalyzer using an analyzerconfig object - AnalyzerConfig analyzerconfig = documentFactory.newAnalyzerConfig(); - - AssertionResultsOption aro = new AssertionResultsOptionImpl(); - aro.setAssertionResultType(AssertionResultType.newInstance(NOTPASSED)); - aro.setShowAssertionDescription(false); - aro.setShowFailureDetail(false); - aro.setShowFailureMessage(false); - aro.setShowMessageEntry(false); - - // although we don't use a stylesheet for our application it is required or the - // WS-I tools will fail - AddStyleSheet addstylesheet = new AddStyleSheetImpl(); - - analyzerconfig.setAssertionResultsOption(aro); - analyzerconfig.setAddStyleSheet(addstylesheet); - analyzerconfig.setReplaceReport(true); - //analyzerconfig.setLogLocation(filename); - analyzerconfig.setTestAssertionsDocumentLocation(wsiPreferences.getTADFile()); - analyzerconfig.setVerboseOption(false); - - // set the wsdlReference - analyzerconfig.setWSDLReference(wsdlReference); - analyzerConfigs.add(analyzerconfig); - } - catch (Exception e) - { - throw new WSIAnalyzerException("Unable to add AnalyzerConfig to list. " + e); - } - } - /** - * Method getAssertionFailures. - * Return a list of the assertion failures. - * @return a list of the assertion failures. - */ - public List getAssertionErrors() - { - return assertionerrors; - } - - /** - * Method getAssertionWarnings. - * Returns a list of any assertion warnings generated from validateConformance. - * @return a list of any assertion warnings generated from validateConformance. - */ - public List getAssertionWarnings() - { - return assertionwarnings; - } - - /** - * Reset. - * @param filename log file name. - */ - public void reset(String filename) - { - if (filename != null) - { - String tmp = filename.replace('\\', '/'); - if ((!tmp.startsWith(WSIConstants.HTTP_PREFIX)) && - (!tmp.startsWith(WSIConstants.FILE_PREFIX))) - { - tmp = WSIConstants.FILE_PROTOCOL + tmp; - } - try - { - wsdlURI = URIEncoder.encode(tmp, "UTF8"); - } - catch (UnsupportedEncodingException uee) - { - } - } - analyzerConfigs = new Vector(); - assertionerrors = new Vector(); - assertionwarnings = new Vector(); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/analyzer/WSIAnalyzerException.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/analyzer/WSIAnalyzerException.java deleted file mode 100644 index 57778532c..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/analyzer/WSIAnalyzerException.java +++ /dev/null @@ -1,82 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.analyzer; - -/** - * AnalyzerException - * - * Exception to be thrown if an analyzer fails - */ -public class WSIAnalyzerException extends Exception -{ - /** - * Comment for <code>serialVersionUID</code> - */ - private static final long serialVersionUID = 3835158350219194677L; - /** - * Throwable. - */ - protected Throwable throwable = null; - - /** - * Constructor for AnalyzerException. - */ - public WSIAnalyzerException() - { - super(); - } - - /** - * Constructor for AnalyzerException. - * @param s detail message. - */ - public WSIAnalyzerException(String s) - { - super(s); - } - - /** - * Create an exception with a message and related exception. - * - * @param msg the exception message - * @param throwable throwable that is related to this exception - */ - public WSIAnalyzerException(String msg, Throwable throwable) - { - // Exception - super(msg); - - // Save input reference - this.throwable = throwable; - } - - /** - * Returns the String representation of this object's values. - * - * @return Returns the detail message of this throwable object. - */ - public String getMessage() - { - return super.getMessage(); - } - - /** - * Returns the exception that caused this exception to be created. - * - * @return Returns the encapsulated throwable object. - */ - public Throwable getTargetException() - { - // Return throwable - return throwable; - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/analyzer/WSIBasicProfileAnalyzer.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/analyzer/WSIBasicProfileAnalyzer.java deleted file mode 100644 index fb9b92800..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/analyzer/WSIBasicProfileAnalyzer.java +++ /dev/null @@ -1,87 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.analyzer; - -import java.util.List; - -import org.eclipse.wst.wsi.internal.core.ToolInfo; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.BasicProfileAnalyzer; -import org.eclipse.wst.wsi.internal.core.profile.validator.ProfileValidatorFactory; -import org.eclipse.wst.wsi.internal.core.report.Report; -import org.eclipse.wst.wsi.internal.core.util.MessageList; -import org.eclipse.wst.wsi.internal.document.DocumentFactoryImpl; - -/** - * WSIBasicProfileAnalyzer - * - * An extension of the BasicProfileAnalyzer from the WS-I Test Tools that - * allows calling code to get the report generated from WS-I validation. - */ -public class WSIBasicProfileAnalyzer extends BasicProfileAnalyzer -{ - /** - * Default document factory class name. - */ - public static final String DEF_DOCUMENT_FACTORY = "org.eclipse.wsi.test.tools.util.document.DocumentFactoryImpl"; - - /** - * Constructor for WSIBasicProfileAnalyzer. - * @param analyzerConfig configuration information. - * @param wsdlURI the location of the WSDL document. - * @throws WSIException @throws WSIException if unable to create a Basic profile analyzer. - */ - public WSIBasicProfileAnalyzer(List analyzerConfig, String wsdlURI) throws WSIException - { - super(analyzerConfig, wsdlURI); - } - - /** - * Constructor for WSIBasicProfileAnalyzer. - * @param analyzerConfig configuration information. - * @throws WSIException @throws WSIException if unable to create a Basic profile analyzer. - */ - public WSIBasicProfileAnalyzer(List analyzerConfig) throws WSIException - { - super(analyzerConfig); - } - - /** - * Common initialization. - * @param toolInfo a ToolInfo object. - * @throws WSIException if problems during initialization. - */ - protected void init(ToolInfo toolInfo) throws WSIException - { - this.toolInfo = toolInfo; - - // Create message list - messageList = new MessageList(RESOURCE_BUNDLE_NAME); - - // Create profile validator factory - factory = ProfileValidatorFactory.newInstance(); - - // Create document factory - documentFactory = new DocumentFactoryImpl(); - } - - /** - * Method getReport. - * - * Return the Report generated by the validation. - * @return the Report generated by the validation. - */ - public Report getReport() - { - return reporter.getReport(); - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/ToolEnvironment.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/ToolEnvironment.java deleted file mode 100644 index 88bee3f5c..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/ToolEnvironment.java +++ /dev/null @@ -1,254 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core; - -import java.io.PrintWriter; -import java.io.StringWriter; - -import org.eclipse.wst.wsi.internal.core.util.XMLInfo; - -/** - * This class contains Tool environment information. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class ToolEnvironment -{ - /** - * Element name. - */ - public static final String ELEM_NAME = WSIConstants.ELEM_ENVIRONMENT; - - /** - * QName. - */ - //public static final QName QNAME = new QName(WSIConstants.NS_URI_WSI_COMMON, ELEM_NAME); - - /** - * Tool environment information. - */ - protected String runtimeName = System.getProperty("java.runtime.name"); - protected String runtimeVersion = System.getProperty("java.runtime.version"); - - protected String osName = System.getProperty("os.name"); - protected String osVersion = System.getProperty("os.version"); - - protected String xmlParserName = "?"; - protected String xmlParserVersion = "?"; - - /** - * Additional tool environment information. - */ - protected XMLInfo xmlInfo = null; - - /** - * Create object that represents tool runtime environment. - */ - public ToolEnvironment() - { - try - { - - // FUTURE: made compatible with later versions of Xerces where getVersion - // is no longer statically available. - // xmlParserVersion = new org.apache.xerces.impl.Version().getVersion(); - xmlParserVersion = org.apache.xerces.impl.Version.getVersion(); - - xmlParserName = "Apache Xerces"; - } - - catch (Exception e) - { - // ADD: How else can we get the name version number - } - - catch (Error err) - { - // ADD: How else can we get the name version number - } - } - - /** - * Create object that represents tool runtime environment. - * @param xmlInfo additional tool environment information. - */ - public ToolEnvironment(XMLInfo xmlInfo) - { - this.xmlInfo = xmlInfo; - } - - /** - * Returns the osName. - * @return the osName. - * @see #setOSName - */ - public String getOSName() - { - return osName; - } - - /** - * Returns the osVersion. - * @return the osVersion. - * @see #setOSVersion - */ - public String getOSVersion() - { - return osVersion; - } - - /** - * Returns the parserName. - * @return the parserName. - * @see #setXMLParserName - */ - public String getXMLParserName() - { - return xmlParserName; - } - - /** - * Returns the parserVersion. - * @return the parserVersion. - * @see #setXMLParserVersion - */ - public String getXMLParserVersion() - { - return xmlParserVersion; - } - - /** - * Returns the runtimeName. - * @return the runtimeName. - * @see #setRuntimeName - */ - public String getRuntimeName() - { - return runtimeName; - } - - /** - * Returns the runtimeVersion. - * @return the runtimeVersion. - * @see #setRuntimeVersion - */ - public String getRuntimeVersion() - { - return runtimeVersion; - } - - /** - * Sets the osName. - * @param osName the osName to set. - * @see #getOSName - */ - public void setOSName(String osName) - { - this.osName = osName; - } - - /** - * Sets the osVersion. - * @param osVersion the osVersion to set. - * @see #getOSVersion - */ - public void setOSVersion(String osVersion) - { - this.osVersion = osVersion; - } - - /** - * Sets the parserName. - * @param xmlParserName the parserName to set. - * @see #getXMLParserName - */ - public void setXMLParserName(String xmlParserName) - { - this.xmlParserName = xmlParserName; - } - - /** - * Sets the parserVersion. - * @param xmlParserVersion the parserVersion to set. - * @see #getXMLParserVersion - */ - public void setXMLParserVersion(String xmlParserVersion) - { - this.xmlParserVersion = xmlParserVersion; - } - - /** - * Sets the runtimeName. - * @param runtimeName the runtimeName to set. - * @see #getRuntimeName - */ - public void setRuntimeName(String runtimeName) - { - this.runtimeName = runtimeName; - } - - /** - * Sets the runtimeVersion. - * @param runtimeVersion the runtimeVersion to set. - * @see #getRuntimeVersion - */ - public void setRuntimeVersion(String runtimeVersion) - { - this.runtimeVersion = runtimeVersion; - } - - /** - * Sets the additional environment information. - * @param xmlInfo additional tool environment information. - */ - public void setAdditionalToolEnvironment(XMLInfo xmlInfo) - { - this.xmlInfo = xmlInfo; - } - - /** - * Return XML string representation of this object. - * @param namespaceName the namespace prefix. - * @return the XML string representation of this object. - */ - public String toXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if (!nsName.equals("")) - nsName += ":"; - - // Start element - pw.println(" <" + nsName + ELEM_NAME + ">"); - - pw.print(" <" + nsName + WSIConstants.ELEM_RUNTIME + " "); - pw.print(WSIConstants.ATTR_NAME + "=\"" + runtimeName + "\" "); - pw.println(WSIConstants.ATTR_VERSION + "=\"" + runtimeVersion + "\"/>"); - pw.print(" <" + nsName + WSIConstants.ELEM_OPERATING_SYSTEM + " "); - pw.print(WSIConstants.ATTR_NAME + "=\"" + osName + "\" "); - pw.println(WSIConstants.ATTR_VERSION + "=\"" + osVersion + "\"/>"); - pw.print(" <" + nsName + WSIConstants.ELEM_XML_PARSER + " "); - pw.print(WSIConstants.ATTR_NAME + "=\"" + xmlParserName + "\" "); - pw.println(WSIConstants.ATTR_VERSION + "=\"" + xmlParserVersion + "\"/>"); - - // If addtional info, then get it - if (xmlInfo != null) - pw.print(xmlInfo.toXMLString(nsName)); - - // End element - pw.println(" </" + nsName + ELEM_NAME + ">"); - - return sw.toString(); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/ToolInfo.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/ToolInfo.java deleted file mode 100644 index eb97ef484..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/ToolInfo.java +++ /dev/null @@ -1,447 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core; - -import java.io.FileWriter; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.MissingResourceException; -import java.util.ResourceBundle; - -import org.eclipse.wst.wsi.internal.core.util.Utils; -import org.eclipse.wst.wsi.internal.core.util.XMLInfo; - -/** - * Information that describes a conformance tool. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class ToolInfo -{ - /** - * Tool information property names. - */ - public static final String PROP_TOOL_VERSION = "wsi.tool.version"; - public static final String PROP_TOOL_RELEASE_DATE = "wsi.tool.release.date"; - public static final String PROP_TOOL_IMPLEMENTER = "wsi.tool.implementer"; - public static final String PROP_TOOL_LOCATION = "wsi.tool.location"; - - /** - * Default tool information property values. - */ - private static final String DEF_TOOL_VERSION = "1.0.1"; - private static final String DEF_TOOL_RELEASE_DATE = "2004-01-22"; - private static final String DEF_TOOL_IMPLEMENTER = "Eclipse.org Organization"; - private static final String DEF_TOOL_LOCATION = "http://www.eclipse.org/wsvt"; - - /** - * Tool information. - */ - protected String name; - protected String version; - protected String releaseDate; - protected String implementer; - protected String location; - - /** - * Tool environment. - */ - protected ToolEnvironment toolEnvironment = null; - - /** - * Tool info properties filename. - */ - public static final String PROP_FILENAME = "org.wsi.test.toolinfo"; - - /** - * Create tool information. - */ - public ToolInfo() - { - this.toolEnvironment = new ToolEnvironment(); - } - - /** - * Create tool information from information in the toolinfo.properties file. - * @param name the tool name. - */ - public ToolInfo(String name) - { - this.name = name; - - getProperties(); - - this.toolEnvironment = new ToolEnvironment(); - } - - /** - * Create tool information. - * @param name the tool name. - * @param version the version of the tool. - * @param releaseDate the release date of the tool. - * @param implementer the implementer of the tool. - * @param location the implementer location. - */ - public ToolInfo( - String name, - String version, - String releaseDate, - String implementer, - String location) - { - this.name = name; - this.version = version; - this.releaseDate = releaseDate; - this.implementer = implementer; - this.location = location; - - this.toolEnvironment = new ToolEnvironment(); - } - - /** - * Create tool information with tool unique environment information. - * @param name the tool name. - * @param version the version of the tool. - * @param releaseDate the release date of the tool. - * @param implementer the implementer of the tool. - * @param location the implementer location. - * @param xmlInfo additional tool environment information. - */ - public ToolInfo( - String name, - String version, - String releaseDate, - String implementer, - String location, - XMLInfo xmlInfo) - { - this.name = name; - this.version = version; - this.releaseDate = releaseDate; - this.implementer = implementer; - this.location = location; - - this.toolEnvironment = new ToolEnvironment(xmlInfo); - } - - /** - * Get name. - * @return name. - * @see #setName - */ - public String getName() - { - return name; - } - - /** - * Get version. - * @return version. - * @see #setVersion - */ - public String getVersion() - { - return version; - } - - /** - * Get release date. - * @return release date. - * @see #setReleaseDate - */ - public String getReleaseDate() - { - return releaseDate; - } - - /** - * Get implementer. - * @return implementer. - * @see #setImplementer - */ - public String getImplementer() - { - return implementer; - } - - /** - * Get implementer location. - * @return implementer location. - * @see #setLocation - */ - public String getLocation() - { - return location; - } - - /** - * Returns the toolEnvironment. - * @return ToolEnvironment - * @see #setToolEnvironment - */ - public ToolEnvironment getToolEnvironment() - { - return toolEnvironment; - } - - /** - * Sets the implementer. - * @param implementer the implementer to set. - * @see #getImplementer - */ - public void setImplementer(String implementer) - { - this.implementer = implementer; - } - - /** - * Sets the location. - * @param location the location to set. - * @see #getLocation - */ - public void setLocation(String location) - { - this.location = location; - } - - /** - * Sets the name. - * @param name the name to set. - * @see #getName - */ - public void setName(String name) - { - this.name = name; - } - - /** - * Sets the releaseDate. - * @param releaseDate the releaseDate to set. - * @see #getReleaseDate - */ - public void setReleaseDate(String releaseDate) - { - this.releaseDate = releaseDate; - } - - /** - * Sets the toolEnvironment. - * @param toolEnvironment the toolEnvironment to set. - * @see #getToolEnvironment - */ - public void setToolEnvironment(ToolEnvironment toolEnvironment) - { - this.toolEnvironment = toolEnvironment; - } - - /** - * Sets the toolEnvironment. - * @param xmlInfo additional tool environment information. - */ - public void setAdditionalToolEnvironment(XMLInfo xmlInfo) - { - this.toolEnvironment.setAdditionalToolEnvironment(xmlInfo); - } - - /** - * Sets the version. - * @param version the version to set. - * @see #getVersion - */ - public void setVersion(String version) - { - this.version = version; - } - - /** - * Return start XML string representation of this object. - * @param namespaceName the namespace prefix. - * @return the start XML string representation of this object. - */ - public String getStartXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if (!nsName.equals("")) - nsName += ":"; - - pw.print(" <" + nsName + getName().toLowerCase() + " "); - pw.print(WSIConstants.ATTR_VERSION + "=\"" + getVersion() + "\" "); - pw.println( - WSIConstants.ATTR_RELEASE_DATE + "=\"" + getReleaseDate() + "\">"); - - pw.print(" <" + nsName + WSIConstants.ELEM_IMPLEMENTER + " "); - pw.print(WSIConstants.ATTR_NAME + "=\"" + getImplementer() + "\" "); - pw.println(WSIConstants.ATTR_LOCATION + "=\"" + getLocation() + "\"/>"); - - // Environment - pw.print(toolEnvironment.toXMLString(namespaceName)); - - return sw.toString(); - } - - /** - * Return the end XML string representation of this object. - * @param namespaceName the namespace prefix. - * @return the end XML string representation of this object. - */ - public String getEndXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if (!nsName.equals("")) - nsName += ":"; - - pw.println(" </" + nsName + getName().toLowerCase() + ">"); - - return sw.toString(); - } - - /** - * Get values from the tools.properties file. - */ - protected void getProperties() - { - //Properties props = new Properties(); - ResourceBundle resourceBundle; - - try - { - // Try to load properties from wsi.properties - //InputStream is = Utils.getInputStream(PROP_FILENAME); - - // Load properties from file - //props.load(is); - - // Get resource - resourceBundle = ResourceBundle.getBundle(PROP_FILENAME); - - // Get property values - this.version = - getProperty(resourceBundle, PROP_TOOL_VERSION, DEF_TOOL_VERSION); - this.releaseDate = - getProperty( - resourceBundle, - PROP_TOOL_RELEASE_DATE, - DEF_TOOL_RELEASE_DATE); - this.implementer = - getProperty( - resourceBundle, - PROP_TOOL_IMPLEMENTER, - DEF_TOOL_IMPLEMENTER); - this.location = - getProperty(resourceBundle, PROP_TOOL_LOCATION, DEF_TOOL_LOCATION); - } - - catch (MissingResourceException mre) - { - // DEBUG: - //System.out.println("Exception loading properties: " + e.toString()); - - // Set default property values - this.version = DEF_TOOL_VERSION; - this.releaseDate = DEF_TOOL_RELEASE_DATE; - this.implementer = DEF_TOOL_IMPLEMENTER; - this.location = DEF_TOOL_LOCATION; - } - } - - /** - * Get property. - * @param resourceBundle a resource bundle. - * @param key a key. - * @param defaultValue a default value. - * @return property. If not found return default value. - */ - protected String getProperty( - ResourceBundle resourceBundle, - String key, - String defaultValue) - { - String value; - - if ((value = resourceBundle.getString(key)) == null) - value = defaultValue; - - return value; - } - - /** - * Create the tools.properties file from the command line. - * The input arguements are: - * <ol> - * <li>Filename for the properties file to create - * <li>Version number - * <li> - * </ol> - * @param args the arguments for main. - */ - public static void main(String[] args) - { - int statusCode = 0; - String filename = PROP_FILENAME; - String version = DEF_TOOL_VERSION; - String implementer = DEF_TOOL_IMPLEMENTER; - String location = DEF_TOOL_LOCATION; - - // Set the file name - if (args.length >= 1) - filename = args[0]; - - if (args.length >= 2) - version = args[1]; - - if (args.length >= 3) - implementer = args[2]; - - if (args.length >= 4) - location = args[3]; - - try - { - // Create file writer - FileWriter fileWriter = new FileWriter(filename); - - // Create print writer - PrintWriter printWriter = new PrintWriter(fileWriter); - - // Write out contents of properties file - printWriter.println(COMMENTS); - printWriter.println(PROP_TOOL_VERSION + "=" + version); - printWriter.println(PROP_TOOL_RELEASE_DATE + "=" + Utils.getDate()); - printWriter.println(PROP_TOOL_IMPLEMENTER + "=" + implementer); - printWriter.println(PROP_TOOL_LOCATION + "=" + location); - - // Close file writer - fileWriter.close(); - - // Done - System.out.println("File [" + filename + "] created."); - } - - catch (java.io.IOException ioe) - { - statusCode = 1; - System.out.println("EXCEPTION: " + ioe.toString()); - ioe.printStackTrace(); - } - - // Exit - System.exit(statusCode); - } - - private static final String COMMENTS = ""; -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/WSIConstants.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/WSIConstants.java deleted file mode 100644 index 4ec7c470d..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/WSIConstants.java +++ /dev/null @@ -1,483 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2003 IBM Corporation, Parasoft 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 - Initial API and implementation - * Parasoft - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core; - -/** - * WS-I constants. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - * @author Jim Clune - * @author Graham Turrell (gturrell@uk.ibm.com) - */ -public interface WSIConstants { - - /** - * XML declaration statement. - */ - public static final String XML_DECL = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; - - /** - * XML namespace URI. - */ - public static final String NS_URI_XMLNS = "http://www.w3.org/2000/xmlns/"; - public static final String NS_URI_XML = "http://www.w3.org/XML/1998/namespace"; - /** - * XML schema namespace URI. - */ - public static final String NS_URI_XSD = "http://www.w3.org/2001/XMLSchema"; - - /** - * XML schema location. - */ - public static final String XSD_SCHEMA_LOCATION = "http://www.w3.org/2001/XMLSchema.xsd"; - - /** - * XML schema namespace name. - */ - public static final String NS_NAME_XSD = "xsd"; - - /** - * XML schema instance namespace URI. - */ - public static final String NS_URI_XSI = "http://www.w3.org/2001/XMLSchema-instance"; - - /** - * XML schema namespace name. - */ - public static final String NS_NAME_XSI = "xsi"; - - - /** - * WS-I message log namespace URI. - */ - public static final String NS_URI_WSI_LOG = "http://www.ws-i.org/testing/2004/07/log/"; - - public static final String NS_NAME_WSI_LOG = "wsi-log"; - - /** - * WS-I conformance report namespace URI. - */ - public static final String NS_URI_WSI_REPORT = "http://www.ws-i.org/testing/2004/07/report/"; - public static final String NS_NAME_WSI_REPORT = "wsi-report"; - - /** - * WS-I profile test assertions namespace URI. - */ - public static final String NS_URI_WSI_ASSERTIONS_2003 = "http://www.ws-i.org/testing/2003/03/assertions/"; - public static final String NS_URI_WSI_ASSERTIONS = "http://www.ws-i.org/testing/2004/07/assertions/"; - - public static final String NS_NAME_WSI_ASSERTIONS = "wsi-assertions"; - - /** - * WS-I monitor configuration file namesapce URI. - */ - public static final String NS_URI_WSI_MONITOR_CONFIG_2003 = "http://www.ws-i.org/testing/2003/03/monitorConfig/"; - public static final String NS_URI_WSI_MONITOR_CONFIG = "http://www.ws-i.org/testing/2004/07/monitorConfig/"; - - - public static final String NS_NAME_WSI_MONITOR_CONFIG = "wsi-monConfig"; - - /** - * WS-I analyzer configuration file namesapce URI. - */ - public static final String NS_URI_WSI_ANALYZER_CONFIG_2003 = "http://www.ws-i.org/testing/2003/03/analyzerConfig/"; - public static final String NS_URI_WSI_ANALYZER_CONFIG = "http://www.ws-i.org/testing/2004/07/analyzerConfig/"; - - public static final String NS_NAME_WSI_ANALYZER_CONFIG = "wsi-analyzerConfig"; - - /** - * WS-I common namesapce URI. - */ - public static final String NS_URI_WSI_COMMON_2003 = "http://www.ws-i.org/testing/2003/03/common/"; - public static final String NS_URI_WSI_COMMON = "http://www.ws-i.org/testing/2004/07/common/"; - public static final String NS_NAME_WSI_COMMON = "wsi-common"; - - /** - * SOAP V1.1 namespace. - */ - public final static String NS_URI_SOAP = "http://schemas.xmlsoap.org/soap/envelope/"; - - /** - * SOAP/1.1 encoding. - */ - public final static String NS_URI_SOAP_ENCODING = "http://schemas.xmlsoap.org/soap/encoding/"; - - public static final String NS_URI_SOAP_NEXT_ACTOR = "http://schemas.xmlsoap.org/soap/actor/next" ; - /** - * HTTP transport. - */ - public final static String NS_URI_SOAP_HTTP = "http://schemas.xmlsoap.org/soap/http"; - - /** - * WSDL V1.1 namespace. - */ - public final static String NS_URI_WSDL = "http://schemas.xmlsoap.org/wsdl/"; - - /** - * WSDL SOAP binding namespace. - */ - public final static String NS_URI_WSDL_SOAP = "http://schemas.xmlsoap.org/wsdl/soap/"; - public final static String NS_URI_WSDL_SOAP12 = "http://schemas.xmlsoap.org/wsdl/soap12/"; - public final static String NS_NAME_WSDL_SOAP = "soap"; - - /** - * WSDL MIME binding namespace. - */ - public final static String NS_NAME_WSDL_MIME = "http://schemas.xmlsoap.org/wsdl/mime/"; - - /** - * WSDL HTTP GET & POST binding namespace. - */ - public final static String NS_NAME_WSDL_HTTP = "http://schemas.xmlsoap.org/wsdl/http/"; - - /** - * WSDL DIME binding namespace. - */ - public final static String NS_NAME_WSDL_DIME = "http://schemas.xmlsoap.org/ws/2002/04/dime/wsdl/"; - - /** - * Conformance Claim namespace. - */ - public final static String NS_URI_CLAIM = "http://ws-i.org/schemas/conformanceClaim/"; - - /** - * UDDI V2 namespace. - */ - public final static String NS_URI_UDDI_V2 = "urn:uddi-org:api_v2"; - - /** - * The XML Schema for the type used to refer to attachments from the SOAP - * envelope. - */ - public final static String NS_URI_SWA_REF = "http://ws-i.org/profiles/basic/1.1/xsd"; - - public final static String SCHEMA_TYPE_SWA_REF = "swaRef"; - - /** - * Element names. - */ - public static final String ELEM_ADD_STYLE_SHEET = "addStyleSheet"; - - public static final String ELEM_ADDITIONAL_ENTRY_TYPE_LIST = "additionalEntryTypeList"; - - public static final String ELEM_ANALYZER_FAILURE = "analyzerFailure"; - - public static final String ELEM_ARTIFACT = "artifact"; - - public static final String ELEM_ARTIFACT_REFERENCE = "artifactReference"; - - public static final String ELEM_ASSERTION_COVERAGE = "assertionCoverage"; - - public static final String ELEM_ASSERTION_DESCRIPTION = "assertionDescription"; - - public static final String ELEM_ASSERTION_RESULT = "assertionResult"; - - public static final String ELEM_ASSERTION_RESULT_SUMMARY = "assertionResultSummary"; - - public static final String ELEM_ASSERTION_RESULTS = "assertionResults"; - - public static final String ELEM_CLEANUP_TIMEOUT_SECONDS = "cleanupTimeoutSeconds"; - - public static final String ELEM_CONFIG = "configuration"; - - public static final String ELEM_COMMENT = "comment"; - - public static final String ELEM_CONTEXT = "context"; - - public static final String ELEM_DETAIL = "detail"; - - public static final String ELEM_DETAIL_DESCRIPTION = "detailDescription"; - - public static final String ELEM_DESCRIPTION = "description"; - - public static final String ELEM_ENVIRONMENT = "environment"; - - public static final String ELEM_ENTRY = "entry"; - - public static final String ELEM_FAILURE_DETAIL = "failureDetail"; - - public static final String ELEM_FAILURE_DETAIL_DESCRIPTION = "failureDetailDescription"; - - public static final String ELEM_FAILURE_MESSAGE = "failureMessage"; - - public static final String ELEM_HTTP_HEADERS = "httpHeaders"; - - public static final String ELEM_IMPLEMENTER = "implementer"; - - public static final String ELEM_INQUIRY_URL = "inquiryURL"; - - public static final String ELEM_LISTEN_PORT = "listenPort"; - - public static final String ELEM_LOG = "log"; - - public static final String ELEM_LOG_DURATION = "logDuration"; - - public static final String ELEM_LOG_FILE = "logFile"; - - public static final String ELEM_MAN_IN_THE_MIDDLE = "manInTheMiddle"; - - public static final String ELEM_MAX_CONNECTIONS = "maxConnections"; - - public static final String ELEM_MESSAGE_CONTENT = "messageContent"; - - public static final String ELEM_MESSAGE_CONTENT_WITH_ATTACHMENTS = "messageContentWithAttachments"; - - public static final String ELEM_MESSAGE_ENTRY = "messageEntry"; - - public static final String ELEM_MESSAGE_INPUT = "messageInput"; - - public static final String ELEM_MONITOR = "monitor"; - - public static final String ELEM_OPERATING_SYSTEM = "operatingSystem"; - - public static final String ELEM_PREREQ_FAILED_LIST = "prereqFailedList"; - - public static final String ELEM_PREREQ_LIST = "prereqList"; - - public static final String ELEM_PROFILE = "profile"; - - public static final String ELEM_PROFILE_ASSERTIONS = "profileAssertions"; - - public static final String ELEM_READ_TIMEOUT_SECONDS = "readTimeoutSeconds"; - - public static final String ELEM_RECEIVER_HOST_AND_PORT = "receiverHostAndPort"; - - public static final String ELEM_REDIRECT = "redirect"; - - public static final String ELEM_REPORT = "report"; - - public static final String ELEM_REPORT_FILE = "reportFile"; - - public static final String ELEM_RUNTIME = "runtime"; - - public static final String ELEM_SCHEME_AND_HOSTPORT = "schemeAndHostPort"; - - public static final String ELEM_SENDER_HOST_AND_PORT = "senderHostAndPort"; - - public static final String ELEM_SERVICE_LOCATION = "serviceLocation"; - - public static final String ELEM_SUMMARY = "summary"; - - public static final String ELEM_TEST_ASSERTION = "testAssertion"; - - public static final String ELEM_TEST_ASSERTIONS_FILE = "testAssertionsFile"; - - public static final String ELEM_TEST_ASSERTION_ID = "testAssertionID"; - - public static final String ELEM_TEST_COVERAGE = "testCoverage"; - - public static final String ELEM_UDDI_ENTRY = "uddiEntry"; - - public static final String ELEM_UDDI_KEY = "uddiKey"; - - public static final String ELEM_UDDI_REFERENCE = "uddiReference"; - - public static final String ELEM_VERBOSE = "verbose"; - - public static final String ELEM_WSDL_ELEMENT = "wsdlElement"; - - public static final String ELEM_WSDL_INPUT = "wsdlInput"; - - public static final String ELEM_WSDL_REFERENCE = "wsdlReference"; - - public static final String ELEM_WSDL_URI = "wsdlURI"; - - public static final String ELEM_XML_PARSER = "xmlParser"; - - public static final String ELEM_MIME_PART = "mimePart"; - - public static final String ELEM_MIME_HEADERS = "mimeHeaders"; - - public static final String ELEM_MIME_CONTENT = "mimeContent"; - - public static final String ELEM_BOUNDARY_STRING = "boundaryString"; - - /** - * Attribute names. - */ - public static final String ATTR_ALTERNATE = "alternate"; - - public static final String ATTR_ARRAY_TYPE = "arrayType"; - - public static final String ATTR_ASSERTION_DESCRIPTION = "assertionDescription"; - - public static final String ATTR_BOM = "BOM"; - - public static final String ATTR_CHARSET = "charset"; - - public static final String ATTR_CODE = "code"; - - public static final String ATTR_COLUMN_NUMBER = "columnNumber"; - - public static final String ATTR_CONVERSATION_ID = "conversationID"; - - public static final String ATTR_CORRELATION_TYPE = "correlationType"; - - public static final String ATTR_DATE = "date"; - - public static final String ATTR_ENABLED = "enabled"; - - public static final String ATTR_ENTRY_TYPE = "entryType"; - - public static final String ATTR_FAILURE_MESSAGE = "failureMessage"; - - public static final String ATTR_FAILURE_DETAIL = "failureDetail"; - - public static final String ATTR_HREF = "href"; - - public static final String ATTR_ID = "id"; - - public static final String ATTR_ID_UC = "ID"; - - public static final String ATTR_IMPLEMENTER = "implementer"; - - public static final String ATTR_LINE_NUMBER = "lineNumber"; - - public static final String ATTR_LOCATION = "location"; - - public static final String ATTR_MEDIA = "media"; - - public static final String ATTR_MESSAGE_ENTRY = "messageEntry"; - - public static final String ATTR_MESSAGES = "messages"; - - public static final String ATTR_NAME = "name"; - - public static final String ATTR_NAMESPACE = "namespace"; - - public static final String ATTR_PARENT_ELEMENT_NAME = "parentElementName"; - - public static final String ATTR_REFERENCE_ID = "referenceID"; - - public static final String ATTR_REFERENCE_TYPE = "referenceType"; - - public static final String ATTR_RELEASE_DATE = "releaseDate"; - - public static final String ATTR_REPLACE = "replace"; - - public static final String ATTR_RESULT = "result"; - - public static final String ATTR_SERVICE_NAME = "serviceName"; - - public static final String ATTR_SPECIFICATION = "specification"; - - public static final String ATTR_TIMESTAMP = "timestamp"; - - public static final String ATTR_TITLE = "title"; - - public static final String ATTR_TYPE = "type"; - - public static final String ATTR_VERSION = "version"; - - /** - * Default values. - */ - public static final String DEFAULT_REPORT_URI = "report.xml"; - - // TEMP: Use the following report title for the draft release only. - //public static final String DEFAULT_REPORT_TITLE = "WS-I Profile - // Conformance Report"; - public static final String DEFAULT_REPORT_TITLE = "WS-I Basic Profile Conformance Report."; - - public static final String DEFAULT_TEST_ASSERTIONS_DOCUMENT_URI = "http://www.ws-i.org/Testing/Tools/2004/12/AP10_BP11_SSBP10_TAD.xml"; - - public static final String DEFAULT_LOG_XSL = "../common/xsl/log.xsl"; - - public static final String DEFAULT_REPORT_XSL = "../common/xsl/report.xsl"; - - public static final String DEFAULT_XSL_TYPE = "text/xsl"; - - public static final String DEFAULT_XML_ENCODING = "UTF-8"; - - /** - * BOM constants. - * - */ - public static int BOM_UTF16 = 0xFFFE; - - public static int BOM_UTF16_BIG_ENDIAN = 0xFEFF; - - public static int BOM_UTF8 = 0xEFBBBF; - - /** - * Validation constants. - * - */ - public static final String ATTRVAL_SOAP_BODY_USE_LIT = "literal"; - - public static final String ATTRVAL_SOAP_BODY_USE_ENC = "encoded"; - - public static final String ATTRVAL_SOAP_BIND_STYLE_DOC = "document"; - - public static final String ATTRVAL_SOAP_BIND_STYLE_RPC = "rpc"; - - public static final String ATTRVAL_CORRELATION_TYPE_ENDPOINT = "endpoint"; - - public static final String ATTRVAL_CORRELATION_TYPE_NAMESPACE = "namespace"; - - public static final String ATTRVAL_CORRELATION_TYPE_OPERATION = "operation"; - - /** - * WS-I constants - attributes for conformance claims (discovery). - * - */ - - public static final String ATTRVAL_UDDI_CLAIM_KEYVALUE = "http://ws-i.org/profiles/basic/1.0"; - - public static final String ATTRVAL_UDDI_CLAIM_TMODELKEY = "uuid:65719168-72c6-3f29-8c20-62defb0961c0"; - - /** - * WS-I names and versions of the profile test assertion document supported - * in the current version of the test tools. - */ - /** @deprecated -- this has been replaced with a TAD registry mechanism. */ - public static final String BASIC_PROFILE_TAD_NAME = "Basic Profile Test Assertions"; - /** @deprecated -- this has been replaced with a TAD registry mechanism. */ - public static final String BASIC_PROFILE_1_1_TAD_NAME = "Basic Profile 1.1 Test Assertions"; - /** @deprecated -- this has been replaced with a TAD registry mechanism. */ - public static final String SIMPLE_SOAP_BINDINGS_PROFILE_TAD_NAME = "Simple Soap Binding Profile [1.0] (with Basic Profile [1.1]) Test Assertions"; - /** @deprecated -- this has been replaced with a TAD registry mechanism. */ - public static final String ATTACHMENTS_PROFILE_TAD_NAME = "Attachments Profile [1.0] (with Basic Profile [1.1] and Simple Soap Binding Profile [1.0]) Test Assertions"; - /** @deprecated -- this has been replaced with a TAD registry mechanism. */ - public static final String BASIC_PROFILE_TAD_VERSION = "1.1.0"; - /** @deprecated -- this has been replaced with a TAD registry mechanism. */ - public static final String BASIC_PROFILE_1_1_TAD_VERSION = "1.1.0"; - /** @deprecated -- this has been replaced with a TAD registry mechanism. */ - public static final String SIMPLE_SOAP_BINDINGS_PROFILE_TAD_VERSION = "1.0.0"; - /** @deprecated -- this has been replaced with a TAD registry mechanism. */ - public static final String ATTACHMENTS_PROFILE_TAD_VERSION = "1.0.0"; - - /** - * System dependent line separator character. - */ - public static final String LINE_SEPARATOR = System - .getProperty("line.separator"); - - /** - * System dependent path separator character. - */ - public static final String PATH_SEPARATOR = System - .getProperty("path.separator"); - - /** - * File which contains the copyright, license and feedback comments. - */ - public static final String COMMENTS_FILE = "comments.xml"; - public static final String CONTENT_TYPE_TEXT_XML = "text/xml"; - public static final String CONTENT_TYPE_MULTIPART = "multipart/related"; - - public static final String FILE_PREFIX = "file:"; - public static final String HTTP_PREFIX = "http:"; - public static final String FILE_PROTOCOL = "file:///"; - public static final String WSI_PREFIX = "WS-I: "; -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/WSIException.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/WSIException.java deleted file mode 100644 index e6e8db4b5..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/WSIException.java +++ /dev/null @@ -1,151 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core; - -import java.lang.reflect.InvocationTargetException; -import java.util.MissingResourceException; - -/** - * Primary WS-I exception. - * - * @version 1.0.1 - * @author Peter Brittenham - */ -public class WSIException extends Exception -{ - - /** - * Static needed for serializable class - */ - private static final long serialVersionUID = 5446823222767299308L; - - /** - * Throwable. - */ - protected Throwable throwable = null; - - /** - * Create an exception without a message. - */ - public WSIException() - { - // Exception - super(); - } - - /** - * Create an exception with a message. - * - * @param msg the exception message - */ - public WSIException(String msg) - { - // Exception - super(msg); - } - - /** - * Create an exception with a message and related exception. - * - * @param msg the exception message - * @param throwable throwable that is related to this exception - */ - public WSIException(String msg, Throwable throwable) - { - // Exception - super(msg); - - // Save input reference - this.throwable = throwable; - } - - /** - * Returns the String representation of this object's values. - * - * @return Returns the detail message of this throwable object. - */ - public String getMessage() - { - return super.getMessage(); - } - - /** - * Returns the String representation of this object's values. - * - * @return Returns the detail message of this throwable object. - */ - public String toString() - { - //StringWriter sw; - //PrintWriter pw; - - // Always get message from super class - String msg = super.getMessage(); - - // If this exception contains a reference to another exception, - // then add it to the message - if (throwable != null) - { - msg += "\n" - + "------------------------------------------------------------------------------\n" - + " Nested exception is: \n\n " - + throwable.toString() - + "\n"; - - // If throwable is MissingResourceException, - // then add class name and key to output - if (throwable instanceof MissingResourceException) - { - MissingResourceException mre = (MissingResourceException) throwable; - - // Get class name and key - msg += " - " - + mre.getKey() - + "\n\t" - + "[Class Name: " - + mre.getClassName() - + "]"; - } - - // If throwable is InvocationTargetException, - // then target of exception - else if (throwable instanceof InvocationTargetException) - { - InvocationTargetException ite = (InvocationTargetException) throwable; - - // Get target - msg += " - " + ite.getTargetException().toString(); - } - - // ADD: Print stack trace - //sw = new StringWriter(); - //pw = new PrintWriter(sw); - //throwable.printStackTrace(pw); - - // Add it to the message - //msg += sw.toString(); - } - - // Return message - return msg; - } - - /** - * Returns the exception that caused this exception to be created. - * - * @return Returns the encapsulated throwable object. - */ - public Throwable getTargetException() - { - // Return throwable - return throwable; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/WSIFileNotFoundException.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/WSIFileNotFoundException.java deleted file mode 100644 index 5abf5dbb8..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/WSIFileNotFoundException.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core; - -/** - * Signals that an attempt to open the file denoted by a specified - * pathname has failed. - * - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ -public class WSIFileNotFoundException extends WSIException -{ - - /** - * Static needed for serializable class - */ - private static final long serialVersionUID = -1916010444601666401L; - -/** - * Constructor for WSIFileNotFoundException. - */ - public WSIFileNotFoundException() - { - super(); - } - - /** - * Constructor for WSIFileNotFoundException. - * @param msg the detail message. - - */ - public WSIFileNotFoundException(String msg) - { - super(msg); - } - - /** - * Constructor for WSIFileNotFoundException. - * @param msg the detail message. - * @param throwable initial exception thrown. - */ - public WSIFileNotFoundException(String msg, Throwable throwable) - { - super(msg, throwable); - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/WSIRuntimeException.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/WSIRuntimeException.java deleted file mode 100644 index 6ae30b613..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/WSIRuntimeException.java +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core; - -/** - * This class represents runtime exceptions that occur after processing the configuration files. - * - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ -public class WSIRuntimeException extends WSIException -{ - - /** - * Static needed for serializable class - */ - private static final long serialVersionUID = 4309320981515513171L; - - /** - * Constructor for WSIRuntimeException. - */ - public WSIRuntimeException() - { - super(); - } - - /** - * Constructor for WSIRuntimeException. - * @param msg the detail message. - */ - public WSIRuntimeException(String msg) - { - super(msg); - } - - /** - * Constructor for WSIRuntimeException. - * @param msg the detail message. - * @param throwable the initial exception thrown. - - */ - public WSIRuntimeException(String msg, Throwable throwable) - { - super(msg, throwable); - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/WSITag.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/WSITag.java deleted file mode 100644 index 1fb343339..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/WSITag.java +++ /dev/null @@ -1,114 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core; - -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.xml.XMLTags; - -/** - * WS-I constants. - * - * @author Kulik - */ -public interface WSITag extends XMLTags -{ - /** - * Qualified names of WSDL elements. - */ - public final static QName WSDL_IMPORT = - new QName(WSIConstants.NS_URI_WSDL, "import"); - public final static QName WSDL_TYPES = - new QName(WSIConstants.NS_URI_WSDL, "types"); - public final static QName WSDL_MESSAGE = - new QName(WSIConstants.NS_URI_WSDL, "message"); - public final static QName WSDL_DOCUMENTATION = - new QName(WSIConstants.NS_URI_WSDL, "documentation"); - public final static QName WSDL_DEFINITIONS = - new QName(WSIConstants.NS_URI_WSDL, "definitions"); - public final static QName WSDL_BINDING = - new QName(WSIConstants.NS_URI_WSDL, "binding"); - public final static QName WSDL_OPERATION = - new QName(WSIConstants.NS_URI_WSDL, "operation"); - public final static QName WSDL_PART = - new QName(WSIConstants.NS_URI_WSDL, "part"); - public final static QName WSDL_INPUT = - new QName(WSIConstants.NS_URI_WSDL, "input"); - public final static QName WSDL_OUTPUT = - new QName(WSIConstants.NS_URI_WSDL, "output"); - public final static QName WSDL_FAULT = - new QName(WSIConstants.NS_URI_WSDL, "fault"); - public final static QName WSDL_SERVICE = - new QName(WSIConstants.NS_URI_WSDL, "service"); - public final static QName WSDL_PORT = - new QName(WSIConstants.NS_URI_WSDL, "port"); - public final static QName WSDL_PORTTYPE = - new QName(WSIConstants.NS_URI_WSDL, "portType"); - - public static final QName WSDL_SOAP_BINDING = - new QName(WSIConstants.NS_URI_WSDL_SOAP, "binding"); - public static final QName WSDL_SOAP_BODY = - new QName(WSIConstants.NS_URI_WSDL_SOAP, "body"); - public static final QName WSDL_SOAP_HEADER = - new QName(WSIConstants.NS_URI_WSDL_SOAP, "header"); - public static final QName WSDL_SOAP_HEADERFAULT = - new QName(WSIConstants.NS_URI_WSDL_SOAP, "headerfault"); - public static final QName WSDL_SOAP_FAULT = - new QName(WSIConstants.NS_URI_WSDL_SOAP, "fault"); - - public static final QName WSDL_MIME_CONTENT = - new QName(WSIConstants.NS_NAME_WSDL_MIME, "content"); - public static final QName WSDL_MIME_XML = - new QName(WSIConstants.NS_NAME_WSDL_MIME, "mimeXml"); - public static final QName WSDL_MIME_PART = - new QName(WSIConstants.NS_NAME_WSDL_MIME, "part"); - public static final QName WSDL_MIME_MULTIPART = - new QName(WSIConstants.NS_NAME_WSDL_MIME, "multipartRelated"); - - public final static QName ATTR_WSDL_ARRAYTYPE = - new QName(WSIConstants.NS_URI_WSDL, "arrayType"); - public final static QName ATTR_WSDL_NAMESPACE = - new QName(WSIConstants.NS_URI_WSDL, "namespace"); - public final static QName ATTR_WSDL_LOCATION = - new QName(WSIConstants.NS_URI_WSDL, "location"); - - /** - * Namespaces. - */ - public final static String NS_URI_CLAIM = - "http://ws-i.org/schemas/conformanceClaim/"; - public final static String NS_URI_SOAP = - "http://schemas.xmlsoap.org/soap/envelope/"; - public final static String NS_URI_SOAPENC = - "http://schemas.xmlsoap.org/soap/encoding/"; - public final static String NS_URI_BASIC_PROFILE10 = - "http://wsi.org/profiles/basic1.0/"; - - public final static QName SOAPENC_ARRAY = new QName(NS_URI_SOAPENC, "Array"); - - /** - * Qualified names of WS-I claim elements. - */ - public final static QName WSI_CLAIM = new QName(NS_URI_CLAIM, "Claim"); - public final static QName ATTR_CLAIM_CONFORMSTO = - new QName(NS_URI_CLAIM, "conformsTo"); - public final static QName ATTR_SOAP_MUSTUNDERSTAND = - new QName(NS_URI_SOAP, "mustUnderstand"); - - /** - * Qualified names of SOAP elements. - */ - public final static QName ELEM_SOAP_ENVELOPE = new QName(NS_URI_SOAP, "Envelope"); - public final static QName ELEM_SOAP_BODY = new QName(NS_URI_SOAP, "Body"); - public final static QName ELEM_SOAP_FAULT = new QName(NS_URI_SOAP, "Fault"); - public final static QName ELEM_SOAP_HEADER = new QName(NS_URI_SOAP, "Header"); - -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/Analyzer.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/Analyzer.java deleted file mode 100644 index 879aa2e9a..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/Analyzer.java +++ /dev/null @@ -1,314 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer; - -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.List; -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.ToolInfo; -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AnalyzerConfig; -import org.eclipse.wst.wsi.internal.core.document.DocumentFactory; -import org.eclipse.wst.wsi.internal.core.log.Log; -import org.eclipse.wst.wsi.internal.core.profile.ProfileAssertions; -import org.eclipse.wst.wsi.internal.core.profile.validator.ProfileValidatorFactory; -import org.eclipse.wst.wsi.internal.core.report.Reporter; -import org.eclipse.wst.wsi.internal.core.util.MessageList; -import org.eclipse.wst.wsi.internal.core.util.TestUtils; - -/** - * The Analyzer will process all Profile conformance functions. - * This class should be sub-classed for each profile. - * - * @version 1.0.1 - * @author Jim Clune - * @author Peter Brittenham - */ -public abstract class Analyzer -{ - /** - * Message list. - */ - protected MessageList messageList = null; - - protected final static String RESOURCE_BUNDLE_NAME = - "org.eclipse.wst.wsi.internal.core.analyzer.Analyzer"; - - public final static String USAGE_MESSAGE = - "Usage: Analyzer -config <configFilename>"; - - protected Reporter reporter = null; - protected AnalyzerContext analyzerContext = null; - protected CandidateInfo candidateInfo = null; - - /** - * Analyzer tool information. - */ - protected ToolInfo toolInfo = null; - - /** - * Profile validator factory. - */ - protected ProfileValidatorFactory factory = null; - - /** - * Profile validator factory. - */ - protected DocumentFactory documentFactory = null; - - /** - * Analyzer config file list. - */ - protected List analyzerConfigList = new Vector(); - protected int analyzerConfigIndex = 0; - - /** - * Profile assertions. - */ - protected ProfileAssertions profileAssertions = null; - - /** - * Log file. - */ - protected Log log = null; - - /** - * Create an instance of the analyzer tool. - * @param args command line arguments. - * @param toolInfo analyzer tool information. - * @throws WSIException if problems creating the instance of the analyzer tool. - */ - public Analyzer(String[] args, ToolInfo toolInfo) throws WSIException - { - init(toolInfo); - - // Get new config object - this.analyzerConfigList.add( - analyzerConfigIndex, - documentFactory.newAnalyzerConfig()); - getAnalyzerConfig().init(messageList); - - // Parse command line arguments - getAnalyzerConfig().parseArgs(args, true); - - // Display copyright and options that were specified - TestUtils.printToolInfo(toolInfo); - System.out.println(getAnalyzerConfig().toString()); - - // Display message - printMessage( - "progress01", - null, - "Please wait while the specified artifacts are analyzed..."); - } - - /** - * Create an instance of the analyzer tool. - * @param args command line arguments. - * @param toolInfo analyzer tool information. - * @param validate flag for config options validation. - * @throws WSIException if problems creating the instance of the analyzer tool. - */ - public Analyzer(String[] args, ToolInfo toolInfo, boolean validate) throws WSIException - { - init(toolInfo); - - // Get new config object - this.analyzerConfigList.add( - analyzerConfigIndex, - documentFactory.newAnalyzerConfig()); - getAnalyzerConfig().init(messageList); - - // Parse command line arguments - getAnalyzerConfig().parseArgs(args, validate); - - // Display copyright and options that were specified - TestUtils.printToolInfo(toolInfo); - System.out.println(getAnalyzerConfig().toString()); - - // Display message - printMessage( - "progress01", - null, - "Please wait while the specified artifacts are analyzed..."); - } - - /** - * Create an instance of the analyzer tool. - * @param analyzerConfigList analyzer config file list. - * @param toolInfo analyzer tool information. - * @throws WSIException if problems creating the instance of the analyzer tool. - */ - public Analyzer(List analyzerConfigList, ToolInfo toolInfo) - throws WSIException - { - init(toolInfo); - - this.analyzerConfigList = analyzerConfigList; - } - - /** - * Common initialization. - * @param toolInfo analyzer tool information. - * @throws WSIException if problems occur during common initialization. - */ - protected void init(ToolInfo info) throws WSIException - { - this.toolInfo = info; - - // Create message list - messageList = new MessageList(RESOURCE_BUNDLE_NAME); - - // Create profile validator factory - factory = ProfileValidatorFactory.newInstance(); - - // Create document factory - documentFactory = DocumentFactory.newInstance(); - } - - /** - * Process all conformance validation functions. - * @return status code. - * @throws WSIException if problems occur during validation. - */ - public int validateAll() throws WSIException - { - int statusCode = 0; - int tempStatusCode; - - for (int index = 0; index < analyzerConfigList.size(); index++) - { - // DEBUG: - //System.out.println("index: " + index); - - // Set current analyzer config index - setAnalyzerConfig(index); - - if ((tempStatusCode = validateConformance()) > statusCode) - statusCode = tempStatusCode; - } - - return statusCode; - } - - /** - * Process all conformance validation functions. - * @return status code. - * @throws WSIException if problems occur during conformance validation. - */ - public abstract int validateConformance() throws WSIException; - - /** - * Get tool information. - * @return the tool information. - */ - public ToolInfo getToolInfo() - - { - return this.toolInfo; - } - - /** - * Set current analyzer configuration. - * @param index urrent analyzer configuration. - * @see #getAnalyzerConfig - */ - protected void setAnalyzerConfig(int index) - { - this.analyzerConfigIndex = index; - } - - protected int getAnalyzerConfigIndex() - { - return this.analyzerConfigIndex; - } - - /** - * Get analyzer configuration information. - * @return analyzer configuration information. - * @see #setAnalyzerConfig - */ - public AnalyzerConfig getAnalyzerConfig() - { - return (AnalyzerConfig) this.analyzerConfigList.get(analyzerConfigIndex); - } - - /** - * Print a message from the resource bundle. - * @param key a key. - * @param messageData message data. - * @param defaultMessage a default message. - */ - public void printMessage( - String key, - String messageData, - String defaultMessage) - { - messageList.printMessage(key, messageData, defaultMessage); - } - - /** - * Print message. - * @param key a key. - * @param messageData message data. - * @param defaultMessage a default message. - */ - public static void staticPrintMessage( - String key, - String messageData, - String defaultMessage) - { - MessageList.printMessage( - RESOURCE_BUNDLE_NAME, - key, - messageData, - defaultMessage); - } - - /** - * Return XML string representation of this object. - * @param namespaceName a namespace prefix. - * @return XML string representation of this object. - */ - public String toXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - // Start - pw.print(toolInfo.getStartXMLString(namespaceName)); - - // Config - pw.print( - getAnalyzerConfig().toXMLString( - WSIConstants.NS_NAME_WSI_ANALYZER_CONFIG)); - - // End - pw.println(toolInfo.getEndXMLString(namespaceName)); - - return sw.toString(); - } - - /** - * Print a message. - * @param message a message. - */ - public void printMessage(String message) - { - if (getAnalyzerConfig().getVerboseOption()) - { - System.err.println(message); - } - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/Analyzer.properties b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/Analyzer.properties deleted file mode 100644 index c08482c34..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/Analyzer.properties +++ /dev/null @@ -1,45 +0,0 @@ -# /** -# * <copyright> -# * -# * Copyright (c) 2002-2005 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 - Initial API and implementation -# * -# * </copyright> -# */ - -# -# Analyzer resource bundle. -# -usage01=Usage: Analyzer -config <configFilename> -created01=Conformance report has been created. -progress01=Please wait while the specified artifacts are analyzed... -error01=Analyzer Error: -error02=Analyzer Stopped By Exception: -error03=The conformance validation process failed. -exception01=Exception: -config01=Analyzer configuration file was not found. Specified file location: -config02=Could not find log file. Specified file location: -config03=Could not find WSDL file. Specified file location: -config04=Can not specify both the WSDL reference and UDDI reference options. -config05=WSDL document was either not found or could not be processed. -config06=Invalid analyzer configuration element: -config07=Both the <wsdlElement> and <wsdlURI> elements must be specified. -config08=Could not read analyzer configuration file. Specified file location: -config09=The parentElementName attribute must be specified with a WSDL type of port or operation. -config10=The -wsdlElement option must appear after the -wsdlURI or -uddiKey options. -config11=The -serviceLocation option must appear after the -wsdlURI or -uddiKey options. -config12=The specified option is not supported: -config13=Option did not contain a value. Specified option: -config14=Could not find test assertion document. Specified file location: -config15=Report file already exists and replace option was not specified. -config16=Test assertion document location must be specified. -config17=Could not get report file location. -config18=Invalid correlation type specified. -config19=The WSDL element name must be specified. -config20=The WS-I Test Assertion Document (TAD)document was either not found or could not be processed. diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/AnalyzerContext.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/AnalyzerContext.java deleted file mode 100644 index 3fad5ad1d..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/AnalyzerContext.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer; - -import org.eclipse.wst.wsi.internal.core.wsdl.WSDLDocument; - -/** - * This class contains contextual information which is required by test assertions across all artifacts. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class AnalyzerContext -{ - protected ServiceReference serviceReference = null; - protected CandidateInfo candidateInfo = null; - protected WSDLDocument wsdlDocument = null; - - /** - * Create analyzer context with service reference. - * @param serviceReference a service reference. - */ - public AnalyzerContext(ServiceReference serviceReference) - { - this.serviceReference = serviceReference; - } - - /** - * Get service reference. - * @return service reference. - * @see #setServiceReference - */ - public ServiceReference getServiceReference() - { - return this.serviceReference; - } - - /** - * Set service reference. - * @param serviceReference a service reference. - * @see #getServiceReference - */ - public void setServiceReference(ServiceReference serviceReference) - { - this.serviceReference = serviceReference; - } - - /** - * Returns the candidateInfo. - * @return CandidateInfo. - * @see #setCandidateInfo - */ - public CandidateInfo getCandidateInfo() - { - return candidateInfo; - } - - /** - * Sets the candidateInfo. - * @param candidateInfo the candidateInfo to set. - * @see #getCandidateInfo - */ - public void setCandidateInfo(CandidateInfo candidateInfo) - { - this.candidateInfo = candidateInfo; - } - - /** - * Returns the wsdlDocument. - * @return WSDLDocument. - * @see #setWsdlDocument - */ - public WSDLDocument getWsdlDocument() { - return wsdlDocument; - } - - /** - * Sets the wsdlDocument. - * @param wsdlDocument the wsdlDocument to set. - * @see #getWsdlDocument - */ - public void setWsdlDocument(WSDLDocument wsdlDocument) { - this.wsdlDocument = wsdlDocument; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/AssertionFailException.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/AssertionFailException.java deleted file mode 100644 index 8df5a2b34..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/AssertionFailException.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer; - -/** - * Base Exception for Assertion Fail. - * - * @author gturrell - * */ -public class AssertionFailException extends Exception -{ - - /** - * Comment for <code>serialVersionUID</code> - */ - private static final long serialVersionUID = 3257007635743258933L; - - /** - * Constructor for AssertionException. - */ - public AssertionFailException() - { - super(); - } - - /** - * Constructor for AssertionException. - * @param arg0 the detail message. - */ - public AssertionFailException(String arg0) - { - super(arg0); - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/AssertionNotApplicableException.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/AssertionNotApplicableException.java deleted file mode 100644 index 6434a504d..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/AssertionNotApplicableException.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer; - -/** - * Exception for Assertion Not Applicable. - * - * @author gturrell - */ -public class AssertionNotApplicableException extends Exception -{ - - /** - * Comment for <code>serialVersionUID</code> - */ - private static final long serialVersionUID = 3905523782994112564L; - - /** - * Constructor for AssertionNotApplicableException. - */ - public AssertionNotApplicableException() - { - super(); - } - - /** - * Constructor for AssertionNotApplicableException. - * @param arg0 the detail message. - */ - public AssertionNotApplicableException(String arg0) - { - super(arg0); - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/AssertionPassException.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/AssertionPassException.java deleted file mode 100644 index 4957d665f..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/AssertionPassException.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer; - -/** - * Exception for Assertion Pass. - * - * @author gturrell - */ -public class AssertionPassException extends Exception -{ - - /** - * Comment for <code>serialVersionUID</code> - */ - private static final long serialVersionUID = 3257285842283541810L; - - /** - * Constructor for AssertionPAssException. - */ - public AssertionPassException() - { - super(); - } - - /** - * Constructor for AssertionPAssException. - * @param arg0 the detail message. - */ - public AssertionPassException(String arg0) - { - super(arg0); - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/AssertionResultException.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/AssertionResultException.java deleted file mode 100644 index 4e05aec49..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/AssertionResultException.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer; - -/** - * Exception for Assertion Result. - * - * @author gturrell - */ -public class AssertionResultException extends Exception -{ - - /** - * Comment for <code>serialVersionUID</code> - */ - private static final long serialVersionUID = 3256720684700152632L; - private String detailMessage; - /** - * Constructor for AssertionresultException. - */ - public AssertionResultException() - { - super(); - detailMessage = null; - } - - /** - * Constructor for AssertionResultException. - * @param arg0 the detail message. - */ - public AssertionResultException(String arg0) - { - super(arg0); - detailMessage = null; - } - - /** - * Constructor for AssertionResultException. - * @param arg0 the detail message. - * @param arg1 further detailed message. - */ - public AssertionResultException(String arg0, String arg1) - { - super(arg0); - detailMessage = arg1; - } - - /** - * Returns the detailMessage. - * @return the detailMessage. - */ - public String getDetailMessage() - { - return detailMessage; - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/BasicProfileAnalyzer.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/BasicProfileAnalyzer.java deleted file mode 100644 index d2518e787..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/BasicProfileAnalyzer.java +++ /dev/null @@ -1,473 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 2010 IBM Corporation, Parasoft, Beacon Information Technology Inc. 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 - Initial API and implementation - * Parasoft - Initial API and implementation - * BeaconIT - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer; - -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.Iterator; -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.WSDLException; - -import org.eclipse.wst.wsi.internal.WSITestToolsProperties; -import org.eclipse.wst.wsi.internal.core.ToolInfo; -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSIFileNotFoundException; -import org.eclipse.wst.wsi.internal.core.analyzer.config.UDDIReference; -import org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLElement; -import org.eclipse.wst.wsi.internal.core.analyzer.config.impl.WSDLElementImpl; -import org.eclipse.wst.wsi.internal.core.profile.validator.BaseValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.WSDLValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl.WSDLValidatorImpl; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.report.Report; -import org.eclipse.wst.wsi.internal.core.report.ReportArtifact; -import org.eclipse.wst.wsi.internal.core.report.ReportContext; -import org.eclipse.wst.wsi.internal.core.report.ReportWriter; -import org.eclipse.wst.wsi.internal.core.report.impl.DefaultReporter; -import org.eclipse.wst.wsi.internal.core.util.ArtifactType; -import org.eclipse.wst.wsi.internal.core.util.UDDIUtils; -import org.eclipse.wst.wsi.internal.core.util.WSIProperties; -import org.eclipse.wst.wsi.internal.core.wsdl.WSDLDocument; -import org.eclipse.wst.wsi.internal.core.wsdl.WSDLUtils; -import org.eclipse.wst.wsi.internal.core.xml.XMLDocumentCache; -import org.uddi4j.client.UDDIProxy; -import org.uddi4j.datatype.binding.BindingTemplate; -import org.uddi4j.datatype.tmodel.TModel; -import org.uddi4j.response.BindingDetail; -import org.uddi4j.response.TModelDetail; -import org.uddi4j.transport.TransportFactory; - - -/** - * Analyzes log files to confirm conformance to a profile. - * - * @version 1.0.1 - * @author Jim Clune - * @author Peter Brittenham - * @author Graham Turrell - */ -public class BasicProfileAnalyzer extends Analyzer -{ - /** - * Tool information. - */ - public static final String TOOL_NAME = "Analyzer"; - - /** - * WSDL document to analyze. - */ - protected WSDLDocument wsdlDocument = null; - // private WSDLValidator wsdlValidator; - - /** - * Basic profile analyzer. - * @param args command line arguments. - * @throws WSIException if unable to create a Basic profile analyzer. - */ - public BasicProfileAnalyzer(String[] args) throws WSIException - { - super(args, new ToolInfo(TOOL_NAME)); - new XMLDocumentCache(); - } - - /** - * Basic profile analyzer. - * @param args command line arguments. - * @param validate flag for command line argument validation. - * @throws WSIException if unable to create a Basic profile analyzer. - */ - public BasicProfileAnalyzer(String[] args, boolean validate) throws WSIException - { - super(args, new ToolInfo(TOOL_NAME), validate); - new XMLDocumentCache(); - } - - /** - * Basic profile analyzer. - * @param analyzerConfigList a list of configurations for the analyzer. - * @throws WSIException if unable to create a Basic profile analyzer. - */ - public BasicProfileAnalyzer(List analyzerConfigList) throws WSIException - { - super(analyzerConfigList, new ToolInfo(TOOL_NAME)); - new XMLDocumentCache(); - } - - /** - * Basic profile analyzer. - * @param analyzerConfigList a list of configurations for the analyzer. - * @param wsdlURI a wsdl document location. - * @throws WSIException if unable to create a Basic profile analyzer. - */ - public BasicProfileAnalyzer(List analyzerConfigList, String wsdlURI) - throws WSIException - { - super(analyzerConfigList, new ToolInfo(TOOL_NAME)); - new XMLDocumentCache(); - - try - { - // Get the WSDL document - if (wsdlURI != null) - this.wsdlDocument = new WSDLDocument(wsdlURI); - } - - catch (WSDLException we) - { - throw new WSIException(we.getMessage(), we); - } - - } - - private WSDLDocument getWsdlFromUddi() { - WSDLDocument wsdlDoc = null; - try { - UDDIProxy uddiProxy = new UDDIProxy(); - UDDIReference uddiReference = getAnalyzerConfig().getUDDIReference(); - uddiProxy.setInquiryURL(uddiReference.getInquiryURL()); - TModel tModel = null; - - if (uddiReference.getKeyType().equals(UDDIReference.BINDING_KEY)) { - BindingDetail bindingDetail = uddiProxy.get_bindingDetail( - uddiReference.getKey()); - BindingTemplate bindingTemplate = (BindingTemplate) bindingDetail. - getBindingTemplateVector().elementAt(0); - tModel = UDDIUtils.findTModel(uddiProxy, bindingTemplate, false); - } else { // UDDIReference.TMODEL_KEY - TModelDetail tModelDetail = uddiProxy.get_tModelDetail( - uddiReference.getKey()); - tModel = (TModel) tModelDetail.getTModelVector().elementAt(0); - } - - String overviewURL = UDDIUtils.getOverviewURL(tModel); - String wsdlURI = UDDIUtils.getWSDLLocation(overviewURL); - wsdlDoc = new WSDLDocument(wsdlURI); - - /* TODO: I refactored this code from BSP3001 but I'm not sure that - * it's correct. This overrides the <wsdlElement> child of - * <uddiReference> from the config file, which never gets used. - */ - // If the wsdlElement does not exist, then set it - if (analyzerContext.getServiceReference().getWSDLElement() == null) - { - Binding binding = UDDIUtils.getBinding(overviewURL, wsdlDoc); - String bindingName = - binding == null ? null : binding.getQName().getLocalPart(); - String namespace = - binding == null ? null : binding.getQName().getNamespaceURI(); - - // Get WSDL binding from the overviewURL and set in analyzerContext - WSDLElement wsdlElement = new WSDLElementImpl(); - wsdlElement.setName(bindingName); - wsdlElement.setNamespace(namespace); - wsdlElement.setType(WSDLValidator.TYPE_DESCRIPTION_BINDING); - analyzerContext.getServiceReference().setWSDLElement(wsdlElement); - } - return wsdlDoc; - - } catch (Exception e) { - /* If the wsdlDoc is set at the point of the exception, return it; - * otherwise return null. */ - return wsdlDoc; - } - } - - - /** - * Process all conformance validation functions. - * @return status code. - * @throws WSIException if conformance validation process failed. - */ - public int validateConformance() throws WSIException - { - int statusCode = 0; - - Report report = null; - ReportArtifact reportArtifact = null; - - // Set up initial analyzer context based on entries in the config file - this.analyzerContext = - new AnalyzerContext(new ServiceReference(getAnalyzerConfig())); - - ReportWriter reportWriter = null; - try - { - this.profileAssertions = WSITestToolsProperties.getProfileAssertions( - getAnalyzerConfig().getTestAssertionsDocumentLocation()); - - if (this.profileAssertions == null) - { - throw new WSIException(messageList.getMessage("config20", - "The WS-I Test Assertion Document (TAD)document was either not found or could not be processed.")); - } - - // Create report from document factory - report = documentFactory.newReport(); - report.setLocation(getAnalyzerConfig().getReportLocation()); - - // Create report context - ReportContext reportContext = - new ReportContext( - WSIConstants.DEFAULT_REPORT_TITLE, - profileAssertions, - this); - report.setReportContext(reportContext); - - // Create report writer - reportWriter = documentFactory.newReportWriter(); - // I18N: 2003.02.26 modified by K.Nakagome@BeaconIT - //reportWriter.setWriter(new FileWriter(analyzerConfig.getReportLocation())); - reportWriter.setWriter(getAnalyzerConfig().getReportLocation()); - - // Create reporter - this.reporter = new DefaultReporter(report, reportWriter); - - // fetch WSDL if not set in constructor - // First, attempt to get the WSDL URI from a UDDI tModel - if ((wsdlDocument == null) && (getAnalyzerConfig().isUDDIReferenceSet())) - wsdlDocument = getWsdlFromUddi(); - - /* Next, try to use the WSDL settings from the config file. If we can't - * fetch that WSDL, and the config file is set up to test a WSDL, then the - * validator fails here. */ - if ((wsdlDocument == null) && (getAnalyzerConfig().isWSDLReferenceSet())) - { - wsdlDocument = new WSDLDocument(getAnalyzerConfig(). - getWSDLLocation()); - - if (wsdlDocument == null) - throw new WSIException(messageList.getMessage("config05", - "WSDL document was either not found or could not be " + - "processed.")); - } - - /* - * Only validate messages against a wsdl document if the wsdl document - * does not contain soap 1.2 bindings. - */ - if (WSDLUtils.isSOAP12WSDL(wsdlDocument) && getAnalyzerConfig().getLogLocation() != null) - getAnalyzerConfig().setWSDLReference(null); - else - analyzerContext.setWsdlDocument(wsdlDocument); - - // Start writing report - this.reporter.startReport(); - - // Walk through the artifact elements from the TAD, validating each one - profileAssertions.getArtifactList().keySet().iterator(); - for (Iterator i = profileAssertions.getArtifactList().keySet().iterator(); - i.hasNext(); ) { - String artifactType = (String) i.next(); - // Set current artifact - reportArtifact = setCurrentArtifact(ArtifactType.getArtifactType( - artifactType)); - validate(reportArtifact, factory.getValidatorForArtifact( - artifactType)); - this.reporter.endCurrentArtifact(); - } - - // Finish the conformance report - reporter.finishReport(); - } - catch (Exception e) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String message = - messageList.getMessage( - "error03", - "The conformance validation process failed."); - - // Finish report - if (reporter != null) - { - pw.println(message); - pw.println( - messageList.getMessage("exception01", "Exception: ") - + e.getClass().getName()); - e.printStackTrace(pw); - reporter.finishReportWithError(sw.toString()); - } - - if (e instanceof WSIException) - throw (WSIException) e; - else - throw new WSIException(message, e); - } - finally - { - if (reportWriter != null) - { - reportWriter.close(); - } - } - - if (report != null) - { - statusCode = - (report.getSummaryResult().equals(AssertionResult.RESULT_PASSED) - ? 0 - : 1); - } - - return statusCode; - } - - /** - * Run test assertions. - */ - private void validate(ReportArtifact reportArtifact, BaseValidator validator) - throws WSIException - { - try - { - if (validator instanceof WSDLValidatorImpl) - { - ((WSDLValidatorImpl)validator).init(analyzerContext, profileAssertions, reportArtifact, getAnalyzerConfig(), reporter, - getAnalyzerConfigIndex() == 0); - } - else - { - validator.init(analyzerContext, profileAssertions, reportArtifact, getAnalyzerConfig(), reporter); - } - - if (validator.runTests()) { - validator.validateArtifact(); - } - else - { - validator.setAllMissingInput(); - } - } - finally - { - validator.cleanup(); - } - } - - /** - * Command line interface for the analyzer tool. - * @param args command line arguments. - * @throws IOException if IO problems occur. - */ - public static void main(String[] args) throws IOException - { - int statusCode = 0; - Analyzer analyzer = null; - - try - { - // Set document builder factory class - System.setProperty( - WSIProperties.PROP_JAXP_DOCUMENT_FACTORY, - WSIProperties.getProperty(WSIProperties.PROP_JAXP_DOCUMENT_FACTORY)); - - // Set the system property for UDDI4J transport - System.setProperty( - TransportFactory.PROPERTY_NAME, - WSIProperties.getProperty(TransportFactory.PROPERTY_NAME)); - - // Create the analyzer object - analyzer = new BasicProfileAnalyzer(args); - - // Have it process the conformance validation functions - statusCode = analyzer.validateConformance(); - - // Display message - analyzer.printMessage( - "created01", - null, - "Conformance report has been created."); - } - - catch (Exception e) - { - statusCode = 1; - - String messageID; - String defaultMessage; - String messageData; - - if ((e instanceof WSIFileNotFoundException) - || (e instanceof IllegalArgumentException)) - { - //printStackTrace = false; - messageID = "error01"; - defaultMessage = "Analyzer Error:"; - messageData = e.getMessage(); - } - - else - { - //printStackTrace = true; - messageID = "error02"; - defaultMessage = "Analyzer Stopped By Exception:"; - messageData = e.toString(); - } - - if (analyzer != null) - analyzer.printMessage(messageID, messageData, defaultMessage); - else - Analyzer.staticPrintMessage(messageID, messageData, defaultMessage); - - if (analyzer != null - && analyzer.getAnalyzerConfig() != null - && analyzer.getAnalyzerConfig().getVerboseOption()) - dump(e); - } - - // Exit - System.exit(statusCode); - } - - /** - * Set current artifact. - * @param artifactType an ArtifactType object. - * @return a ReportArtifact object. - * @throws WSIException if problems creating report artifact. - */ - protected ReportArtifact setCurrentArtifact(ArtifactType artifactType) - throws WSIException - { - // Create artifact - ReportArtifact reportArtifact = reporter.createArtifact(); - reportArtifact.setType(artifactType); - - // Add artifact to report - this.reporter.setCurrentArtifact(reportArtifact); - - return reportArtifact; - } - - /** - * Print exception. - * @param t a Throwable object. - */ - public static void dump(Throwable t) - { - while (t instanceof WSIException) - { - Throwable nested = ((WSIException) t).getTargetException(); - if (nested == null) - break; - else - t = nested; - } - t.printStackTrace(); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/CandidateInfo.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/CandidateInfo.java deleted file mode 100644 index 6fe828d9c..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/CandidateInfo.java +++ /dev/null @@ -1,922 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Vector; - -import javax.wsdl.Binding; -import javax.wsdl.Definition; -import javax.wsdl.Fault; -import javax.wsdl.Import; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.Port; -import javax.wsdl.PortType; -import javax.wsdl.Service; -import javax.wsdl.Types; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.soap.SOAPAddress; -import javax.xml.namespace.QName; - -import org.apache.xerces.util.URI; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLElement; -import org.eclipse.wst.wsi.internal.core.wsdl.WSDLDocument; -import org.eclipse.wst.wsi.internal.core.wsdl.WSDLUtils; - -/** - * Provide a normalized set of data relating to the service under test. - * For example, with endpoint correlation and wsdlElement of type "message" - * there could be multiple matches for most element types including WSDL Service. - * (though the objective is to ensure filtering to a single service if at all possible). - * - * @author gturrell - */ - -// ADD:could be better as a singleton? - -public class CandidateInfo -{ - - // Normalized fixed correlation data derived from the analyzer config and the wsdl, - // representing what we know about the service from these two sources. - private Definition[] definitions = null; - - private Import[] imports = null; - private Types[] types = null; - - private Message[] messages = null; - private Operation[] operations = null; - private PortType[] portTypes = null; - private Binding[] bindings = null; - private Port[] ports = null; - - private URI[] endPoints = null; // list obtainable from a port - - private WSDLDocument wsdlDocument; // reference probably not desirable here - - /** - * Constructor for CandidateInfo. - * Extract normalised entry data from wsdl, according to config wsdlElement & serviceLocation - * @param serviceReference a ServiceReference object. - * @param wsdlDocument a WSDL document. - * @throws WSIException if problems occur creating CandidateInfo object. - */ - public CandidateInfo( - ServiceReference serviceReference, - WSDLDocument wsdlDocument) - throws WSIException - { - - // ADD: check for null document? - - WSDLElement wsdlElement = serviceReference.getWSDLElement(); - - this.wsdlDocument = wsdlDocument; - - /* - * Generalised fields independent of wsdlElement: - */ - // ADD: check whether these need to be either expanded or filtered down. - // Assume WSDL4J pulls int the full tree at the root document for now - //this.imports = wsdlDocument.getImports(); - - // ... or if only down to first level.... - this.imports = - (Import[]) getAllImports( - wsdlDocument.getDefinitions()).toArray(new Import[] { - }); - - /* Definitions. - * Note that the the first array element is for the root doc - * which contains all WSDL elements in scope via <import> declarations, - * as well as the root document itself. Therefore the second definitions - * array element and above are redundant, but *may* prove useful to the assertion - * code. - */ - - this.definitions = new Definition[imports.length + 1]; - // allow room for root doc - - this.definitions[0] = wsdlDocument.getDefinitions(); // root document - - // Allocate array for types elements - Types[] tempTypes = new Types[definitions.length]; - - int typesCount = 0; - - if (definitions[0].getTypes() != null) - { - tempTypes[0] = this.definitions[0].getTypes(); // root document - typesCount++; - } - - // Definitions from other (imported) wsdls correlating to the candidate - // Only one level down for now - for (int i = 0; i < imports.length; i++) - { - if (((definitions[i + 1] = imports[i].getDefinition()) != null) - && (definitions[i + 1].getTypes() != null)) - { - tempTypes[typesCount] = definitions[i + 1].getTypes(); - typesCount++; - } - } - - if (typesCount > 0) - { - this.types = new Types[typesCount]; - - for (int i = 0; i < typesCount; i++) - this.types[i] = tempTypes[i]; - } - /* - * Populate element hierachy: - * Port - * Binding - * PortType - * operation(s) - * message(s) - */ - - if (wsdlElement.isPort()) - { - - Port port = null; - - // Use parentElementName to qualify the port within a service. - QName serviceName = wsdlElement.getParentElementQName(); - Service[] s = wsdlDocument.getServices(); - String portName = wsdlElement.getName(); - for (int i = 0; i < s.length && port == null; i++) - { - if (s[i].getQName().equals(serviceName)) - { - port = s[i].getPort(portName); - } - } - - if (port == null) - { - throw new WSIException( - "WSDL Port \'" - + portName - + "\' for Service \'" - + serviceName - + "\' not found in service description"); - } - else - { - this.ports = new Port[] { port }; - // ADD: do serviceLocation check for soapbind:address? - descendents(port); - } - - // ADD: the following could be instantiated here instead to refine context info - // definitions - // imports - // types - - } - - else if (wsdlElement.isBinding()) - { - if (wsdlElement.getQName() != null - && wsdlElement.getQName().getLocalPart() != null - && wsdlElement.getQName().getLocalPart().length() > 0) - { - Binding binding = - wsdlDocument.getDefinitions().getBinding(wsdlElement.getQName()); - - if (binding == null) - { - throw new WSIException( - "WSDL Binding named \'" - + wsdlElement.getQName() - + "\' not found in service description"); - } - else - { - this.bindings = new Binding[] { binding }; - - // the rest ... below binding: - // portTypes from binding - // operations from portTypes - // messages from operations - descendents(binding); - - // above binding: - // ports - // definitions, imports, types (future?) - // ancestors(bindings); - } - } - } - - else if (wsdlElement.isPortType()) - { - - PortType portType = - wsdlDocument.getDefinitions().getPortType(wsdlElement.getQName()); - this.portTypes = new PortType[] { portType }; - - if (portType == null) - { - throw new WSIException( - "WSDL PortType named \'" - + wsdlElement.getQName() - + "\' not found in service description"); - } - else - { - this.portTypes = new PortType[] { portType }; - // the rest ... below portType: - descendents(portType); - - // above portType: - // ports - // definitions, imports, types (future) ? - //ancestors(portTypes); - } - } - else if (wsdlElement.isOperation()) - { - - Operation operation = null; - String configOpName = wsdlElement.getName(); - - // Use parentElementName to qualify the operation within a portType. - QName portTypeName = wsdlElement.getParentElementQName(); - PortType[] p = wsdlDocument.getPortTypes(); - for (int i = 0; i < p.length && operation == null; i++) - { - if (p[i].getQName().equals(portTypeName)) - { - // wsdl4j available method call below implies that only - // name+inputname+outputname uniquely defines operation! - // Since we do not have <input> & <output> name information - // available in the config, use this instead for now: - - // Get the first operation we find: - Iterator opIt = p[i].getOperations().iterator(); - Operation op = null; - while (opIt.hasNext() && operation == null) - { - op = (Operation) opIt.next(); - if (configOpName.equals(op.getName())) - { - operation = op; - } - } - } - } - - if (operation == null) - { - throw new WSIException( - "No WSDL Operation named \'" - + wsdlElement.getQName() - + "\' found in service description"); - } - else - { - this.operations = new Operation[] { operation }; - - descendents(operation); - //ancestors(operations); - } - } - - else if (wsdlElement.isMessage()) - { - - Message message = - wsdlDocument.getDefinitions().getMessage(wsdlElement.getQName()); - if (message == null) - { - throw new WSIException( - "No WSDL Message named \'" - + wsdlElement.getQName() - + "\' found in service description"); - } - else - { - this.messages = new Message[] { message }; - - //ancestors(messages); - } - } - - else - { - throw new WSIException( - "Unrecognised <WSDLElement type> in config: " + wsdlElement.getType()); - } - - // get info about the effective service location (s) - //this.endPoints = deriveEndpoints(analyzerConfig, this.ports, this.definitions); - this.endPoints = - deriveEndpoints(serviceReference, this.ports, this.definitions); - } - - /** - * ancestor code is not used at present. - * - */ - /* - protected void ancestors(Port[] ports) { - // no ancestors of Port required (for now) - } - protected void ancestors(Binding[] bindings) { - // Ports from Bindings 1-2-1 - - // *** cheat for now - get ports from all services in the wsdl doc - // ADD: find correct mapping based on the supplied bindings - Service[] service = wsdlDocument.getServices(); - HashSet set = new HashSet(); - for (int i=0; i>service.length; i++) { - set.add(service[i].getPorts()); - } - - // assign the parent group and process the grandparents if any - ancestors(this.ports = (Port[])set.toArray(this.ports = new Port[0])); - } - protected void ancestors(PortType[] portTypes) { - // Bindings from PortTypes 1-2-1 - - // add have to start with all bindings in doc and search for those - // with the portType - HashSet set = new HashSet(); - for (int i=0; i>portTypes.length; i++) { - // set.add(portTypes[i].get()); - } - - // assign the parent group and process the grandparents if any - ancestors(this.bindings = (Binding[])set.toArray(this.bindings = new Binding[0])); - } - protected void ancestors(Operation[] operations) { - // PortTypes from Operations 1-2-1 - - HashSet set = new HashSet(); - for (int i=0; i>operations.length; i++) { - // set.add(operations[i].get()); - } - - // assign the parent group and process the grandparents if any - ancestors(this.portTypes = (PortType[])set.toArray(this.portTypes = new PortType[0])); - } - protected void ancestors(Message[] messages) { - // Operations from Messages 1-2-1 - // ADD fix it! - HashSet set = new HashSet(); - for (int i=0; i>messages.length; i++) { - // set.add(messages[i].get()); - } - - // assign the parent group - this.portTypes = (PortType[])set.toArray(this.portTypes = new PortType[0]); - } - */ - - /** - * Descendant method for completing candidate service context creation. - * @param port a Port object - * @throws WSIException if port is null. - */ - protected void descendents(Port port) throws WSIException - { - // Binding from Port 1-2-1 - - if (port == null) - { - throw new WSIException("Internal error: expected a Port value"); - } - else - { - this.bindings = new Binding[] { port.getBinding()}; - if (this.bindings[0] != null) - { - /* Assign the child group and process the grandchildren if any. - * Null argument value passed into the following method would - * suggest a WSDL definition inconsistency - * which will be picked up during Description Artifact TA testing. - */ - descendents(this.bindings[0]); - } - } - } - - /** - * Descendant method for completing candidate service context creation. - * @param binding a Binding object - * @throws WSIException if binding is null. - */ - protected void descendents(Binding binding) throws WSIException - { - // portType from Binding 1-2-1 - - if (binding == null) - { - throw new WSIException("Internal error: expected a Binding value"); - } - else - { - this.portTypes = new PortType[] { binding.getPortType()}; - if (this.portTypes[0] != null) - { - /* Assign the child group and process the grandchildren if any. - * Null argument value passed into the following method would - * suggest a WSDL definition inconsistency - * which will be picked up during Description Artifact TA testing. - */ - descendents(this.portTypes[0]); - - // Get any messages that are referenced from headers and headerfaults - - // Get reference to definition - Definition definition = definitions[0]; - - // If there are messages already, then get them as a collection - HashSet messageSet = new HashSet(); - if (messages != null) - { - for (int i = 0; i < messages.length; i++) - { - messageSet.add(messages[i]); - } - } - - // Get the messages that are referenced only by a binding - HashSet bindingMessages = WSDLUtils.findMessages(definition, binding); - - // Add these messages to the complete message list - messageSet.addAll(bindingMessages); - - // Create array from message set - this.messages = - (Message[]) messageSet.toArray(this.messages = new Message[0]); - } - } - } - - /** - * Descendant method for completing candidate service context creation. - * @param portType a PortType object - * @throws WSIException if portType is null. - */ - protected void descendents(PortType portType) throws WSIException - { - // Operations from PortType 1-2-n - - if (portType == null) - { - throw new WSIException("Internal error: expected a PortType value"); - } - else - { - this.operations = - (Operation[]) (portType - .getOperations() - .toArray(this.operations = new Operation[0])); - if (this.operations.length > 0) - { - descendents(this.operations); - } - } - } - - /** - * Descendant method for completing candidate service context creation. - * @param operation a Operation object - * @throws WSIException if operation is null. - */ - protected void descendents(Operation operation) throws WSIException - { - // Messages from Operation - - if (operation == null) - { - throw new WSIException("Internal error: expected an Operation value"); - } - else - { - descendents(new Operation[] { operation }); - } - } - - /** - * Descendant method for completing candidate service context creation. - * @param operations an array of operations. - * @throws WSIException if operations is null. - */ - protected void descendents(Operation[] operations) throws WSIException - { - // Messages from Operations 1-2-n - - if (operations == null) - { - throw new WSIException("Internal error: expected an Operation[] value"); - } - - HashSet set = new HashSet(); - for (int i = 0; i < operations.length; i++) - { - if (operations[i].getInput() != null) - set.add(operations[i].getInput().getMessage()); //1-2-1 - if (operations[i].getOutput() != null) - set.add(operations[i].getOutput().getMessage()); //1-2-1 - - // get messages associated with faults for this operation - // 1-2-n - Iterator it = operations[i].getFaults().values().iterator(); - while (it.hasNext()) - { - set.add(((Fault) it.next()).getMessage()); - } - } - this.messages = (Message[]) set.toArray(this.messages = new Message[0]); - // no descendents of messages so stop. - } - - /** - * Provide a recursive non-repeating list of imports for the specified - * WSDL document definition. - */ - /* private HashSet getAllImports(Definition rootDef) throws WSIException { - - HashSet importSet = new HashSet(); - - Collection importList = rootDef.getImports().values(); - Iterator i = importList.iterator(); - - while (i.hasNext()) { - Import nextImport = (Import)(i.next()); - if (nextImport != null) { - // its a wsdl document - importSet.addAll(getAllImports(nextImport.getDefinition())); - } - } - - return (importSet); - } - */ - private HashSet getAllImports(Definition rootDef) throws WSIException - { - - HashSet importSet = new HashSet(); - importSet = getAllImports(new ArrayList(), rootDef); - return (importSet); - } - - private HashSet getAllImports(List alreadyProcessedDefinitions, Definition rootDef) - { - HashSet importSet = new HashSet(); - if ((rootDef != null) && (!alreadyProcessedDefinitions.contains(rootDef))) - { - alreadyProcessedDefinitions.add(rootDef); - Map importMap = rootDef.getImports(); - Iterator i = importMap.values().iterator(); - - while (i.hasNext()) - { - List nextImportList = (List) (i.next()); - Iterator listIt = nextImportList.iterator(); - while (listIt.hasNext()) - { - Import nextImport = (Import) listIt.next(); - if (nextImport != null) - { - importSet.add(nextImport); - Definition def = nextImport.getDefinition(); - HashSet nestedImports = getAllImports(alreadyProcessedDefinitions, def); - for (Iterator j = nestedImports.iterator(); j.hasNext();) - importSet.add(j.next()); - } - } - } - } - return importSet; - } - - /** - * get all service location endpoint values - * relevant to the service under test. - * - * If the service location is specified in the config we use - * just that. - * Otherwise, if the port is specified, we get all endpoints - * associated with that port. - * If we have neither the service location value or the port, - * then all endpoints in the definition are used. - */ - private URI[] deriveEndpoints( - //AnalyzerConfig analyzerConfig, - ServiceReference serviceReference, Port[] ports, Definition[] definitions) - { - - URI[] endp = null; - //Port port = null; - try - { - String serviceLocation = null; - // try service location... - //if ((serviceLocation = analyzerConfig.getServiceLocation()) != null) { - if ((serviceLocation = serviceReference.getServiceLocation()) != null) - { - endp = new URI[] { new URI(serviceLocation)}; - } - //else if (analyzerConfig.getWSDLElement().isPort()) { - else if (serviceReference.getWSDLElement().isPort()) - { - if (ports.length != 1) - { - throw new WSIException("Internal error - expected 1-element Port array"); - } - //else { - // port = ports[0]; // if Port was given in config, there is just one - //} - //QName soapAddress = new QName(WSIConstants.NS_URI_WSDL_SOAP, "address"); - Iterator i = ports[0].getExtensibilityElements().iterator(); - while (i.hasNext() && serviceLocation == null) - { - ExtensibilityElement extElem = (ExtensibilityElement) i.next(); - if (extElem instanceof SOAPAddress) - { - //if (extEl.getElementType().equals(soapAddress) { - // this element is our SOAPAddress - get the location - serviceLocation = ((SOAPAddress) extElem).getLocationURI(); - endp = new URI[] { new URI(serviceLocation)}; - } - } - } - else - { // no port info from config, so supply all in document - // QName soapAddress = new QName(WSIConstants.NS_URI_WSDL_SOAP, "address"); - HashSet endpointSet = new HashSet(); - Iterator i = definitions[0].getExtensibilityElements().iterator(); - while (i.hasNext()) - { - ExtensibilityElement extElem = (ExtensibilityElement) i.next(); - if (extElem instanceof SOAPAddress) - { - //if (extEl.getElementType().equals(soapAddress) { - // this element is our SOAPAddress - get the location - endpointSet.add(((SOAPAddress) extElem).getLocationURI()); - } - } - // Convert the derived List to a URI array - endp = (URI[]) endpointSet.toArray(endp = new URI[0]); - } - } - catch (Exception e) - { - } - return endp; - } - - /** - * Returns the binding. - * @return Binding - */ - public Binding[] getBindings() - { - return bindings; - } - - /** - * Returns the endPoints. - * @return URI[] - */ - public URI[] getEndPoints() - { - // get list of matching endpoint(s) associated with service. - return endPoints; - } - - /** - * Returns the endPoints matching the specified host and port. - * @param hostAndPort host and port location. - * @return URI[] if matched, null otherwise. - */ - public URI[] getEndPoints(String hostAndPort) - { - // get list of matching endpoints associated with service, - // having the specified host and port configuration - String port; - - Vector matchedEndpoints = new Vector(); - for (int i = 0; i < endPoints.length; i++) - { - // PB: If the endpoint does not contain a port number, then default it to "80" - port = - (endPoints[i].getPort() == -1) - ? "80" - : String.valueOf(endPoints[i].getPort()); - if (hostAndPort.equals(endPoints[i].getHost() + ":" + port)) - { - matchedEndpoints.add(endPoints[i]); - } - } - return (URI[]) matchedEndpoints.toArray(new URI[0]); - } - - /** - * Returns the operation. - * @return Operation - */ - public Operation[] getOperations() - { - return operations; - } - - /** - * Returns the portType. - * @return PortType - */ - public PortType[] getPortType() - { - return portTypes; - } - - /** - * Returns true if the hostAndPort matches at least one context endpoint. - * @param hostAndPortString a host and port location. - * @return true if the hostAndPort matches at least one context endpoint. - * @throws WSIException if given hostandPort String does not convert to URI. - */ - public boolean hasHostAndPort(String hostAndPortString) throws WSIException - { - URI hostAndPort; - try - { - hostAndPort = new URI(hostAndPortString); - } - catch (Exception e) - { - throw new WSIException( - "Could not convert string to URI: " + hostAndPortString); - } - String host = hostAndPort.getHost(); - int port = hostAndPort.getPort(); - for (int i = 0; i < this.endPoints.length; i++) - { - if (this.endPoints[i].getHost().equals(host) - && this.endPoints[i].getPort() == port) - { - return true; - } - } - return false; // for now - } - - /** - * Returns the definitions. - * @return Definition[] - */ - public Definition[] getDefinitions() - { - return definitions; - } - - /** - * Returns the imports. - * @return Import[] - */ - public Import[] getImports() - { - return imports; - } - - /** - * Returns the messages. - * @return Message[] - */ - public Message[] getMessages() - { - return messages; - } - - /** - * Returns the ports. - * @return Port[] - */ - public Port[] getPorts() - { - return ports; - } - - /** - * Returns the portTypes. - * @return PortType[] - */ - public PortType[] getPortTypes() - { - return portTypes; - } - - /** - * Returns the types. - * @return Types[] - */ - public Types[] getTypes() - { - return types; - } - /** - * Returns the wsdlDocument. - * @return WSDLDocument - */ - public WSDLDocument getWsdlDocument() - { - return wsdlDocument; - } - - /** - * Return the definition element that contains the types element. - * @param types a Types object. - * @return the definition element that contains the types element. - */ - public Definition getDefinition(Types types) - { - Definition definition = null; - Types checkTypes; - - for (int i = 0; i < definitions.length && definition == null; i++) - { - if (((checkTypes = definitions[i].getTypes()) != null) - && (checkTypes.equals(types))) - { - definition = definitions[i]; - } - } - - return definition; - } - - /** - * Return the definition element that contains the binding element. - * @param binding a Binding object. - * @return the definition element that contains the binding element. - */ - public Definition getDefinition(Binding binding) - { - Definition definition = null; - - for (int i = 0; i < definitions.length && definition == null; i++) - { - if (definitions[i].getBinding(binding.getQName()) != null) - definition = definitions[i]; - } - - return definition; - } - - /** - * Return the definition element that contains the portType element. - * @param portType a PortType object. - * @return the definition element that contains the portType element. - */ - public Definition getDefinition(PortType portType) - { - Definition definition = null; - - for (int i = 0; i < definitions.length && definition == null; i++) - { - if (definitions[i].getPortType(portType.getQName()) != null) - definition = definitions[i]; - } - - return definition; - } - - /** - * Return the definition element that contains the message. - * @param message a Message object. - * @return the definition element that contains the message. - */ - public Definition getDefinition(Message message) - { - Definition definition = null; - - for (int i = 0; i < definitions.length && definition == null; i++) - { - if (definitions[i].getMessage(message.getQName()) != null) - definition = definitions[i]; - } - - return definition; - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/EnvironmentInfo.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/EnvironmentInfo.java deleted file mode 100644 index 3f3eb4d1c..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/EnvironmentInfo.java +++ /dev/null @@ -1,83 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer; - -import java.io.PrintWriter; -import java.io.StringWriter; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.util.XMLInfo; - -/** - * This class maintains the Environment information. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class EnvironmentInfo implements XMLInfo -{ - /** - * Log timestamp. - */ - protected String logTimestamp = null; - - /** - * Monitor config comment. - */ - protected String monitorConfigComment = null; - - /** - * Create object. - * @param logTimestamp the log timestamp. - * @param monitorConfigComment the Monitor config comment. - */ - public EnvironmentInfo(String logTimestamp, String monitorConfigComment) - { - this.logTimestamp = logTimestamp; - this.monitorConfigComment = monitorConfigComment; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.util.XMLInfo#toXMLString(String) - */ - public String toXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if (!nsName.equals("")) - nsName += ":"; - - // Start element - pw.print(" <" + nsName + WSIConstants.ELEM_LOG + " "); - pw.println( - WSIConstants.ATTR_TIMESTAMP + "=\"" + this.logTimestamp + "\"/>"); - - pw.print( - " <" - + WSIConstants.NS_NAME_WSI_LOG - + WSIConstants.ELEM_COMMENT - + ">"); - pw.print(this.monitorConfigComment); - pw.println( - " </" - + WSIConstants.NS_NAME_WSI_LOG - + WSIConstants.ELEM_COMMENT - + ">"); - - // End element - pw.println(" </" + nsName + WSIConstants.ELEM_LOG + ">"); - - return sw.toString(); - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/ServiceReference.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/ServiceReference.java deleted file mode 100644 index 773e484ff..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/ServiceReference.java +++ /dev/null @@ -1,109 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer; - -import org.eclipse.wst.wsi.internal.core.analyzer.config.AnalyzerConfig; -import org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLElement; - -/** - * This class contains all of the information that is needed to process description test assertions. The infromation - * in this object will be derived from analyzer configuration information, UDDI entries, or the WSDL port element. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class ServiceReference -{ - protected WSDLElement wsdlElement; - protected String wsdlLocation; - protected String serviceLocation; - - /** - * Create service reference without references. All of them will be set later as test assertions are - * being processed. - */ - public ServiceReference() - { - } - - /** - * Create service reference from entries specified in the analyzer config file. This information may include - * the information extracted from the wsdlElement, wsdlURI and serviceLocation elements. - * @param analyzerConfig an AnalyzerConfig object. - */ - public ServiceReference(AnalyzerConfig analyzerConfig) - { - this.wsdlElement = analyzerConfig.getWSDLElement(); - this.wsdlLocation = analyzerConfig.getWSDLLocation(); - this.serviceLocation = analyzerConfig.getServiceLocation(); - - } - - /** - * Get the WSDL element where analysis should begin. - * @return he WSDL element where analysis should begin. - * @see #setWSDLElement - */ - public WSDLElement getWSDLElement() - { - return this.wsdlElement; - } - - /** - * Set the WSDL element where analysis should begin. - * @param wsdlElement the WSDL element where analysis should begin. - * @see #getWSDLElement - */ - public void setWSDLElement(WSDLElement wsdlElement) - { - this.wsdlElement = wsdlElement; - } - - /** - * Get WSDL document location. - * @return WSDL document location. - * @see #setWSDLLocation - */ - public String getWSDLLocation() - { - return this.wsdlLocation; - } - - /** - * Set WSDL document location. - * @param wsdlLocation WSDL document location. - * @see #getWSDLLocation - */ - public void setWSDLLocation(String wsdlLocation) - { - this.wsdlLocation = wsdlLocation; - } - - /** - * Get Web service location. - * @return Web service location. - * @see #setServiceLocation - */ - public String getServiceLocation() - { - return this.serviceLocation; - } - - /** - * Set Web service location. - * @param serviceLocation eb service location. - * @see #getServiceLocation - */ - public void setServiceLocation(String serviceLocation) - { - this.serviceLocation = serviceLocation; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/AnalyzerConfig.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/AnalyzerConfig.java deleted file mode 100644 index 14a219943..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/AnalyzerConfig.java +++ /dev/null @@ -1,256 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer.config; - -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.common.AddStyleSheet; -import org.eclipse.wst.wsi.internal.core.document.WSIDocument; -import org.eclipse.wst.wsi.internal.core.util.MessageList; - -/** - * This is the interface for the analzyer configuration file. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface AnalyzerConfig extends WSIDocument -{ - /** - * Element name. - */ - public static final String ELEM_NAME = WSIConstants.ELEM_CONFIG; - - /** - * QName. - */ - public static final QName QNAME = - new QName(WSIConstants.NS_URI_WSI_ANALYZER_CONFIG, ELEM_NAME); - - /** - * Correlation types. - */ - public static final String CORRELATION_TYPE_OPERATION = "operation"; - public static final String CORRELATION_TYPE_NAMESPACE = "namespace"; - public static final String CORRELATION_TYPE_ENDPOINT = "endpoint"; - - /** - * Initialize analyzer config. - * @param messageList a MessageList object. - */ - public void init(MessageList messageList); - - /** - * Get optional description. - * @return optional description. - * @see #setDescription - */ - public String getDescription(); - - /** - * Set optional description. - * @param description an optional description. - * @see #getDescription - */ - public void setDescription(String description); - - /** - * Get verbose option. - * @return true if verbose. - * @see #setVerboseOption - */ - public boolean getVerboseOption(); - - /** - * Set verbose option. - * @param verbose verbose option. - * @see #getVerboseOption - */ - public void setVerboseOption(boolean verbose); - - /** - * Get assertion results option. - * @return assertion results option. - * @see #setAssertionResultsOption - */ - public AssertionResultsOption getAssertionResultsOption(); - - /** - * Set assertion results option. - * @param assertionResultsOption assertion results option. - * @see #getAssertionResultsOption - */ - public void setAssertionResultsOption(AssertionResultsOption assertionResultsOption); - - /** - * Get replace report file option. - * @return replace report file option. - * @see #setReplaceReport - */ - public boolean getReplaceReport(); - - /** - * Set replace report file option. - * @param replaceReport eplace report file option. - * @see #getReplaceReport - */ - public void setReplaceReport(boolean replaceReport); - - /** - * Get report file location. - * @return report file location. - * @see #setReportLocation - */ - public String getReportLocation(); - - /** - * Set replace report file option. - * @param reportURI report location. - * @see #getReportLocation - */ - public void setReportLocation(String reportURI); - - /** - * Get style sheet. - * @return style sheet. - * @see #setAddStyleSheet - */ - public AddStyleSheet getAddStyleSheet(); - - /** - * Set style sheet. - * @param addStyleSheet a style sheet. - * @see #getAddStyleSheet - */ - public void setAddStyleSheet(AddStyleSheet addStyleSheet); - - /** - * Get profile test assertions document location. - * @return rofile test assertions document location. - * @see #setTestAssertionsDocumentLocation - */ - public String getTestAssertionsDocumentLocation(); - - /** - * Set profile test assertions document location. - * @param testAssertionsDocumentURI profile test assertions document location. - * @see #getTestAssertionsDocumentLocation - */ - public void setTestAssertionsDocumentLocation(String testAssertionsDocumentURI); - - /** - * Get mesage log location. - * @return mesage log location. - * @see #setLogLocation - */ - public String getLogLocation(); - - /** - * Set message log location. - * @param logURI message log location. - * @see #getLogLocation - */ - public void setLogLocation(String logURI); - - /** - * Is message log location specified. - * @return true if message log location is set. - */ - public boolean isLogSet(); - - /** - * Get correlation type. - * @return correlation type. - * @see #setCorrelationType - */ - public String getCorrelationType(); - - /** - * Set correlation type. - * @param correlationType correlation type. - * @see #getCorrelationType - */ - public void setCorrelationType(String correlationType); - - /** - * Is WSDL reference set. - * @return true if WSDL reference is set. - */ - public boolean isWSDLReferenceSet(); - - /** - * Get WSDL reference. - * @return WSDL reference. - * @see #setWSDLReference - */ - public WSDLReference getWSDLReference(); - - /** - * Set WSDL reference. - * @param wsdlReference WSDL reference. - * @see #getWSDLReference - */ - public void setWSDLReference(WSDLReference wsdlReference); - - /** - * Get WSDL element. - * @return WSDL element. - */ - public WSDLElement getWSDLElement(); - - /** - * Get WSDL document location. - * @return WSDL document location. - */ - public String getWSDLLocation(); - - /** - * Get service location. - * @return service location. - */ - public String getServiceLocation(); - - /** - * Is UDDI reference set. - * @return true if UDDI reference is set. - */ - public boolean isUDDIReferenceSet(); - - /** - * Get UDDI reference. - * @return UDDI reference. - * @see #setUDDIReference - */ - public UDDIReference getUDDIReference(); - - /** - * Set UDDI reference. - * @param uddiReference UDDI reference. - * @see #getUDDIReference - */ - public void setUDDIReference(UDDIReference uddiReference); - - /** - * Parse the command line arguments. - * @param args the command line arguments. - * @param validate flag for command line validation. - * @throws WSIException if problems parsing the command line arguments. - */ - public void parseArgs(String[] args, boolean validate) throws WSIException; - - /** - * Get string representation of this object. - * @return string representation of this object. - */ - public String toString(); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/AnalyzerConfigReader.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/AnalyzerConfigReader.java deleted file mode 100644 index 7c364fb4e..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/AnalyzerConfigReader.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer.config; - -import java.io.Reader; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.document.DocumentReader; -import org.eclipse.wst.wsi.internal.core.util.MessageList; - - -/** - * Defines the interface used to read the analyzer config documents. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface AnalyzerConfigReader extends DocumentReader { - - /** - * Initialize analyzer config reader. - * @param messageList a MessageList object. - */ - public void init(MessageList messageList); - - /** - * Read the analyzer config file. - * @param analyzerConfigURI the analyzer config file location. - * @return the AnalyzerConfig object. - * @throws WSIException if unable to read the analyzer config file. - */ - public AnalyzerConfig readAnalyzerConfig(String analyzerConfigURI) throws WSIException; - - /** - * Read the analyzer config file. - * @param reader a Reader object. - * @return the AnalyzerConfig object. - * @throws WSIException if unable to parse the analyzer config file. - */ - public AnalyzerConfig readAnalyzerConfig(Reader reader) throws WSIException; -} - - diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/AssertionResultType.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/AssertionResultType.java deleted file mode 100644 index 020c9d136..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/AssertionResultType.java +++ /dev/null @@ -1,160 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer.config; - -import org.eclipse.wst.wsi.internal.core.WSIException; - -/** - * Test assertion result type. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public final class AssertionResultType -{ - /** - * This type. - */ - private String resultType = _ALL; - - /** - * String version of result types. - */ - private static final String _ALL = "all"; - private static final String _NOT_INFO = "notInfo"; - private static final String _ONLY_FAILED = "onlyFailed"; - private static final String _NOT_PASSED = "notPassed"; - - /** - * Result types. - */ - public static final AssertionResultType ALL = new AssertionResultType(_ALL); - public static final AssertionResultType NOT_INFO = new AssertionResultType(_NOT_INFO); - public static final AssertionResultType ONLY_FAILED = - new AssertionResultType(_ONLY_FAILED); - public static final AssertionResultType NOT_PASSED = - new AssertionResultType(_NOT_PASSED); - - /** - * Do not allow this object to be created with null constructor. - */ - private AssertionResultType() - { - } - - /** - * Create result type. - * @param resultType a result type. - */ - private AssertionResultType(String resultType) - { - this.resultType = resultType; - } - - /** - * Is result type all. - * @return true if the result type is all. - */ - public boolean isAll() - { - return resultType.equals(_ALL); - } - - /** - * Is result type failed only. - * @return true if the result type is failed only. - */ - public boolean isFailedOnly() - { - return resultType.equals(_ONLY_FAILED); - } - - /** - * Is result type not passed. - * @return true if the result type is not passed. - */ - public boolean isNotPassed() - { - return resultType.equals(_NOT_PASSED); - } - - /** - * Is result type not info. - * @return true if the result type is not info. - */ - public boolean isNotInfo() - { - return resultType.equals(_NOT_INFO); - } - - /** - * Get result type. - * @return result type. - */ - public String getType() - { - return resultType; - } - - /** - * Create new assertion result type. - * @param resultType an assertion result type. - * @return new assertion result type. - * @throws WSIException if invalid assertion result type was specified. - */ - public static AssertionResultType newInstance(String resultType) - throws WSIException - { - AssertionResultType assertionResultType = null; - - if (resultType == null) - { - assertionResultType = NOT_INFO; - } - - else if (resultType.equals(_ALL)) - { - assertionResultType = ALL; - } - - else if (resultType.equals(_ONLY_FAILED)) - { - assertionResultType = ONLY_FAILED; - } - - else if (resultType.equals(_NOT_PASSED)) - { - assertionResultType = NOT_PASSED; - } - else if (resultType.equals(_NOT_INFO)) - { - assertionResultType = NOT_INFO; - } - - else - { - throw new WSIException( - "An invalid assertion result type was specified: " + resultType + "."); - } - - return assertionResultType; - } - - /** - * Get string representation of this object. - * @return string representation of this object. - */ - public String toString() - { - return resultType; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/AssertionResultsOption.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/AssertionResultsOption.java deleted file mode 100644 index 34ed56f14..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/AssertionResultsOption.java +++ /dev/null @@ -1,100 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer.config; - -import org.eclipse.wst.wsi.internal.core.document.DocumentElement; - -/** - * This interface contains a definition of the assertion results that - * should be included in the report. It also contains information - * that indicates which messages should be included in the report. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface AssertionResultsOption extends DocumentElement -{ - /** - * Get assertion result type. - * @return assertion result type. - * @see #setAssertionResultType - */ - public AssertionResultType getAssertionResultType(); - - /** - * Set assertion result type. - * @param resultType assertion result type. - * @see #getAssertionResultType - */ - public void setAssertionResultType(AssertionResultType resultType); - - /** - * Get show message entry indicator. - * @return show message entry indicator. - * @see #setShowMessageEntry - */ - public boolean getShowMessageEntry(); - - /** - * Set show message entry indictor. - * @param showMessageEntry show message entry indictor. - * @see #getShowMessageEntry - */ - public void setShowMessageEntry(boolean showMessageEntry); - - /** - * Get show assertion description indicator. - * @return show assertion description indicator. - * @see #setShowAssertionDescription - */ - public boolean getShowAssertionDescription(); - - /** - * Set show assertion description indictor. - * @param showAssertionDescription show assertion description indictor. - * @see #getShowAssertionDescription - */ - public void setShowAssertionDescription(boolean showAssertionDescription); - - /** - * Get show failure message indicator. - * @return show failure message indicator. - * @see #setShowFailureMessage - */ - public boolean getShowFailureMessage(); - - /** - * Set show failure message indicator. - * @param showFailureMessage show failure message indicator. - * @see #getShowFailureMessage - */ - public void setShowFailureMessage(boolean showFailureMessage); - - /** - * Get show error detail indicator. - * @return show error detail indicator. - * @see #setShowFailureDetail - */ - public boolean getShowFailureDetail(); - - /** - * Set show error detail indicator. - * @param showfailureDetail show error detail indicator. - * @see #getShowFailureDetail - */ - public void setShowFailureDetail(boolean showfailureDetail); - - /** - * Get string representation of this object. - * @return string representation of this object. - */ - public String toString(); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/UDDIReference.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/UDDIReference.java deleted file mode 100644 index 2a3bcd215..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/UDDIReference.java +++ /dev/null @@ -1,116 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer.config; - -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.document.DocumentElement; - -/** - * The interface for a reference to a discovery artifact. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface UDDIReference extends DocumentElement -{ - /** - * Element name. - */ - public static final String ELEM_NAME = WSIConstants.ELEM_UDDI_REFERENCE; - - /** - * QName. - */ - public static final QName QNAME = - new QName(WSIConstants.NS_URI_WSI_ANALYZER_CONFIG, ELEM_NAME); - - /** - * UDDI key type: bindingKey. - */ - public static final String BINDING_KEY = "bindingKey"; - - /** - * UDDI key type: tModelKey. - */ - public static final String TMODEL_KEY = "tModelKey"; - - /** - * Get UDDI key type. - * @return UDDI key type. - * @see #setKeyType - */ - public String getKeyType(); - - /** - * Set UDDI key type. - * @param keyType UDDI key type. - * @see #getKeyType - */ - public void setKeyType(String keyType); - - /** - * Get UDDI key. - * @return UDDI key. - * @see #setKey - */ - public String getKey(); - - /** - * Set UDDI key. - * @param key UDDI key. - * @see #getKey - */ - public void setKey(String key); - - /** - * Get UDDI inquiry URL. - * @return UDDI inquiry URL. - * @see #setInquiryURL - */ - public String getInquiryURL(); - - /** - * Set UDDI inquiryURL. - * @param inquiryURL UDDI inquiryURL. - * @see #getInquiryURL - */ - public void setInquiryURL(String inquiryURL); - - /** - * Get WSDL element. - * @return WSDL element. - * @see #setWSDLElement - */ - public WSDLElement getWSDLElement(); - - /** - * Set WSDL element. - * @param wsdlElement WSDL element. - * @see #getWSDLElement - */ - public void setWSDLElement(WSDLElement wsdlElement); - - /** - * Get service location. - * @return service location. - * @see #setServiceLocation - */ - public String getServiceLocation(); - - /** - * Set service location. - * @param serviceLocation service location. - * @see #getServiceLocation - */ - public void setServiceLocation(String serviceLocation); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/WSDLElement.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/WSDLElement.java deleted file mode 100644 index 2be33e22c..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/WSDLElement.java +++ /dev/null @@ -1,135 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer.config; - -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.document.DocumentElement; - -/** - * The base interface for WSDL definitions. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface WSDLElement extends DocumentElement -{ - /** - * Element name. - */ - public static final String ELEM_NAME = WSIConstants.ELEM_WSDL_ELEMENT; - - /** - * QName. - */ - public static final QName QNAME = - new QName(WSIConstants.NS_URI_WSI_ANALYZER_CONFIG, ELEM_NAME); - - /** - * Get WSDL element type. - * @return WSDL element type. - * @see #setType - */ - public String getType(); - - /** - * Set WSDL element type. - * @param type WSDL element type. - * @see #getType - */ - public void setType(String type); - - /** - * Get WSDL element namespace. - * @return WSDL element namespace. - * @see #setNamespace - */ - public String getNamespace(); - - /** - * Set WSDL element namespace. - * @param namespace WSDL element namespace. - * @see #getNamespace - */ - public void setNamespace(String namespace); - - /** - * Get WSDL element name. - * @return WSDL element name. - * @see #setName - */ - public String getName(); - - /** - * Set WSDL element name. - * @param name WSDL element name. - * @see #getName - */ - public void setName(String name); - - /** - * Get WSDL element qualified name. - * @return WSDL element qualified name. - */ - public QName getQName(); - - /** - * Get WSDL parent element name. - * @return WSDL parent element name. - * @see #setParentElementName - * - */ - public String getParentElementName(); - - /** - * Set WSDL parent element name. - * @param parentElementName WSDL parent element name. - * @see #getParentElementName - */ - public void setParentElementName(String parentElementName); - - /** - * Get WSDL parent element QName. - * @return WSDL parent element QName. - */ - public QName getParentElementQName(); - - /** - * Is port element. - * @return true if the element is a port. - */ - public boolean isPort(); - - /** - * Is binding element. - * @return true if the lement is a binding. - */ - public boolean isBinding(); - - /** - * Is portType element. - * @return true if element is a port type. - */ - public boolean isPortType(); - - /** - * Is operation element. - * @return true if the element is an operation. - */ - public boolean isOperation(); - - /** - * Is message element. - * @return true if element is a message. - */ - public boolean isMessage(); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/WSDLReference.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/WSDLReference.java deleted file mode 100644 index ec550c249..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/WSDLReference.java +++ /dev/null @@ -1,78 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer.config; - -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.document.DocumentElement; - -/** - * The interface for a reference to a description artifact. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface WSDLReference extends DocumentElement -{ - /** - * Element name. - */ - public static final String ELEM_NAME = WSIConstants.ELEM_WSDL_REFERENCE; - - /** - * QName. - */ - public static final QName QNAME = - new QName(WSIConstants.NS_URI_WSI_ANALYZER_CONFIG, ELEM_NAME); - - /** - * Get WSDL element. - * @return WSDL element. - * @see #setWSDLElement - */ - public WSDLElement getWSDLElement(); - - /** - * Set WSDL element. - * @param wsdlElement WSDL element. - * @see #getWSDLElement - */ - public void setWSDLElement(WSDLElement wsdlElement); - - /** - * Get WSDL location. - * @return WSDL location. - * @see #setWSDLLocation - */ - public String getWSDLLocation(); - - /** - * Set WSDL location. - * @param wsdlLocation WSDL location. - * @see #getWSDLLocation - */ - public void setWSDLLocation(String wsdlLocation); - - /** - * Get service location. - * @return service location. - * @see #setServiceLocation - */ - public String getServiceLocation(); - - /** - * Set service location. - * @param serviceLocation service location. - * @see #getServiceLocation - */ - public void setServiceLocation(String serviceLocation); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/impl/AnalyzerConfigImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/impl/AnalyzerConfigImpl.java deleted file mode 100644 index 95ee74a0d..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/impl/AnalyzerConfigImpl.java +++ /dev/null @@ -1,1060 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer.config.impl; - -import java.io.File; -import java.io.PrintWriter; -import java.io.StringWriter; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.Analyzer; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AnalyzerConfig; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AnalyzerConfigReader; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AssertionResultType; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AssertionResultsOption; -import org.eclipse.wst.wsi.internal.core.analyzer.config.UDDIReference; -import org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLElement; -import org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLReference; -import org.eclipse.wst.wsi.internal.core.common.AddStyleSheet; -import org.eclipse.wst.wsi.internal.core.common.impl.AddStyleSheetImpl; -import org.eclipse.wst.wsi.internal.core.util.MessageList; -import org.eclipse.wst.wsi.internal.core.util.Utils; - -/** - * This class is an implementation of the analyzer configuration file interface. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class AnalyzerConfigImpl implements AnalyzerConfig -{ - /** - * Message list reference. - */ - protected MessageList messageList = null; - - /** - * Analyzer configuration file URI. - */ - protected String configURI = null; - - /** - * Optional description. - */ - protected String description = null; - - /** - * Verbose option. - */ - protected boolean verbose = false; - - /** - * Assertion results option. - */ - protected AssertionResultsOption assertionResultsOption = - new AssertionResultsOptionImpl(); - - /** - * Report location. - */ - protected String reportURI = WSIConstants.DEFAULT_REPORT_URI; - - /** - * Replace report indicator. - */ - protected boolean replaceReport = false; - - /** - * Add style sheet. - */ - protected AddStyleSheet addStyleSheet; - - /** - * Profile test assertions document location. - */ - protected String testAssertionsDocumentURI = - WSIConstants.DEFAULT_TEST_ASSERTIONS_DOCUMENT_URI; - - /** - * Message log location. - */ - protected String logURI = null; - - /** - * Message correlation type. - */ - protected String correlationType = - WSIConstants.ATTRVAL_CORRELATION_TYPE_OPERATION; - - /** - * WSDL reference. - */ - protected WSDLReference wsdlReference = null; - - /** - * UDDI reference. - */ - protected UDDIReference uddiReference = null; - - /** - * Default constructor. - */ - public AnalyzerConfigImpl() - { - } - - /** - * Constructor with all settings. - * @param description an optional description. - * @param verbose the verbose option. - * @param assertionResultsOption an assertion results option. - * @param reportURI report location. - * @param replaceReport a replace report indicator. - * @param addStyleSheet add style sheet. - * @param testAssertionsDocumentURI profile test assertions document location. - * @param logURI message log location. - * @param correlationType message correlation type. - * @param wsdlReference a WSDL reference.. - * @param uddiReference a UUDDI reference. - */ - public AnalyzerConfigImpl( - String description, - boolean verbose, - AssertionResultsOption assertionResultsOption, - String reportURI, - boolean replaceReport, - AddStyleSheet addStyleSheet, - String testAssertionsDocumentURI, - String logURI, - String correlationType, - WSDLReference wsdlReference, - UDDIReference uddiReference) - { - this.description = description; - this.verbose = verbose; - this.assertionResultsOption = assertionResultsOption; - this.reportURI = reportURI; - this.replaceReport = replaceReport; - this.addStyleSheet = addStyleSheet; - this.testAssertionsDocumentURI = testAssertionsDocumentURI; - this.logURI = logURI; - this.correlationType = correlationType; - this.wsdlReference = wsdlReference; - this.uddiReference = uddiReference; - } - - /** - * Initialize analyzer config. - */ - public void init(MessageList messageList) - { - this.messageList = messageList; - } - - /** - * Get optional description. - * @see #setDescription - */ - public String getDescription() - { - return this.description; - } - - /** - * Set optional description. - * @see #getDescription - */ - public void setDescription(String description) - { - this.description = description; - } - - /** - * @see #setVerboseOption - */ - public boolean getVerboseOption() - { - return this.verbose; - } - - /** - * @see #getVerboseOption - */ - public void setVerboseOption(boolean verbose) - { - this.verbose = verbose; - } - - /** - * Get assertion results option. - * @see #setAssertionResultsOption - */ - public AssertionResultsOption getAssertionResultsOption() - { - return this.assertionResultsOption; - } - - /** - * Set assertion results option. - * @see #getAssertionResultsOption - */ - public void setAssertionResultsOption(AssertionResultsOption assertionResultsOption) - { - this.assertionResultsOption = assertionResultsOption; - } - - /** - * @see #setReportLocation - */ - public String getReportLocation() - { - return this.reportURI; - } - - /** - * @see #getReportLocation - */ - public void setReportLocation(String reportURI) - { - this.reportURI = reportURI; - } - - /** - * Get replace report file option. - * @see #setReplaceReport - */ - public boolean getReplaceReport() - { - return this.replaceReport; - } - - /** - * Set report file location. - * @see #getReplaceReport - */ - public void setReplaceReport(boolean replaceReport) - { - this.replaceReport = replaceReport; - } - - /** - * Get add style sheet. - * @see #setAddStyleSheet - */ - public AddStyleSheet getAddStyleSheet() - { - return this.addStyleSheet; - } - - /** - * Set replace report file option. - * @see #getAddStyleSheet - */ - public void setAddStyleSheet(AddStyleSheet addStyleSheet) - { - this.addStyleSheet = addStyleSheet; - } - - /** - * @see #setTestAssertionDocumentLocation - */ - public String getTestAssertionsDocumentLocation() - { - return this.testAssertionsDocumentURI; - } - - /** - * @see #getTestAssertionDocumentLocation - */ - public void setTestAssertionsDocumentLocation(String testAssertionsDocumentURI) - { - this.testAssertionsDocumentURI = testAssertionsDocumentURI; - } - - /** - * @see #setLogLocation - */ - public String getLogLocation() - { - return logURI; - } - - /** - * @see #getLogLocation - */ - public void setLogLocation(String logURI) - { - this.logURI = logURI; - } - - public boolean isLogSet() - { - return (logURI != null); - } - - /** - * Get correlation type. - * @see #setCorrelationType - */ - public String getCorrelationType() - { - return this.correlationType; - } - - /** - * Set correlation type. - * @see #getCorrelationType - * - */ - public void setCorrelationType(String correlationType) - { - this.correlationType = correlationType; - } - - /** - * Is WSDL reference set. - */ - public boolean isWSDLReferenceSet() - { - return (this.wsdlReference == null ? false : true); - } - - /** - * Get WSDL reference. - * @see #setWSDLReference - */ - public WSDLReference getWSDLReference() - { - return this.wsdlReference; - } - - /** - * Set WSDL reference. - * @see #getWSDLReference - */ - public void setWSDLReference(WSDLReference wsdlReference) - { - this.wsdlReference = wsdlReference; - } - - /** - * Get WSDL element. - * - */ - public WSDLElement getWSDLElement() - { - return (this.wsdlReference == null) - ? null - : this.wsdlReference.getWSDLElement(); - } - - /** - * Get service location. - */ - public String getServiceLocation() - { - return (this.wsdlReference == null) - ? null - : this.wsdlReference.getServiceLocation(); - } - - /** - * @see org.eclipse.wst.wsi.internal.core.analyzer.config.AnalyzerConfig#getWSDLLocation() - */ - public String getWSDLLocation() - { - return (this.wsdlReference == null) - ? null - : this.wsdlReference.getWSDLLocation(); - } - - /** - * @see org.wsi.test.analyzer.config.AnalyzerConfig#isUddiReferenceSet) - */ - public boolean isUDDIReferenceSet() - { - return (this.uddiReference == null ? false : true); - } - - /** - * Get UDDI reference. - * @see #setUDDIReference - */ - public UDDIReference getUDDIReference() - { - return this.uddiReference; - } - - /** - * Set UDDI reference. - * @see #getUDDIReference - */ - public void setUDDIReference(UDDIReference uddiReference) - { - this.uddiReference = uddiReference; - } - - /** - * @see #setLocation - */ - public String getLocation() - { - return configURI; - } - - /** - * @see getLocation - */ - public void setLocation(String configURI) - { - this.configURI = configURI; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.document.WSIDocument#toXMLString() - */ - public String toXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - // Start element - pw.println(" <" + nsName + ELEM_NAME + ">"); - - // Verbose option - pw.print(" <" + nsName + WSIConstants.ELEM_VERBOSE + ">"); - pw.print(getVerboseOption()); - pw.println("</" + nsName + WSIConstants.ELEM_VERBOSE + ">"); - - // Get assertion results option - pw.print(assertionResultsOption.toXMLString(nsName)); - - // report file - pw.print(" <" + nsName + WSIConstants.ELEM_REPORT_FILE + " "); - pw.print(WSIConstants.ATTR_REPLACE + "=\"" + getReplaceReport() + "\" "); - pw.println( - WSIConstants.ATTR_LOCATION + "=\"" + getReportLocation() + "\">"); - pw.print(getAddStyleSheet().toXMLString(namespaceName)); - pw.println(" </" + nsName + WSIConstants.ELEM_REPORT_FILE + ">"); - - // test assertion file - pw.print( - " <" + nsName + WSIConstants.ELEM_TEST_ASSERTIONS_FILE + ">"); - pw.print(getTestAssertionsDocumentLocation()); - pw.println("</" + nsName + WSIConstants.ELEM_TEST_ASSERTIONS_FILE + ">"); - - // log file - pw.print(" <" + nsName + WSIConstants.ELEM_LOG_FILE); - pw.print( - " " - + WSIConstants.ATTR_CORRELATION_TYPE - + "=\"" - + this.correlationType - + "\">"); - pw.print(getLogLocation()); - pw.println("</" + nsName + WSIConstants.ELEM_LOG_FILE + ">"); - - // WSDL reference - if (this.wsdlReference != null) - { - pw.print(getWSDLReference().toXMLString(nsName)); - } - - // UDDI Reference - if (this.uddiReference != null) - { - pw.print(getUDDIReference().toXMLString(nsName)); - } - - // End element - pw.println(" </" + nsName + ELEM_NAME + ">"); - - return sw.toString(); - } - - /** - * Get string representation of this object. - */ - public String toString() - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - // verbose option - pw.println(" verbose .................... " + this.verbose); - - // assertionResults options - pw.print(this.assertionResultsOption.toString()); - - // reportFile options - pw.println(" Report File:"); - pw.println(" replace .................. " + this.replaceReport); - pw.println(" location ................. " + this.reportURI); - if (this.addStyleSheet != null) - { - pw.println(" Style Sheet:"); - if (this.addStyleSheet.getHref() != null) - pw.println( - " href ................... " + this.addStyleSheet.getHref()); - if (this.addStyleSheet.getType() != null) - pw.println( - " type ................... " + this.addStyleSheet.getType()); - if (this.addStyleSheet.getTitle() != null) - pw.println( - " title .................. " + this.addStyleSheet.getTitle()); - if (this.addStyleSheet.getMedia() != null) - pw.println( - " media .................. " + this.addStyleSheet.getMedia()); - if (this.addStyleSheet.getCharset() != null) - pw.println( - " charset ................ " + this.addStyleSheet.getCharset()); - if (this.addStyleSheet.getAlternate() != null) - pw.println( - " alternate .............. " - + this.addStyleSheet.getAlternate()); - } - - // testAssertionsFile parameter - pw.println( - " testAssertionsFile ......... " + this.testAssertionsDocumentURI); - - // logFile options - if (this.logURI != null) - { - pw.println(" Message Log File:"); - pw.println(" location ................. " + this.logURI); - pw.println(" correlationType .......... " + this.correlationType); - } - - // wsdlReference options - if (this.isWSDLReferenceSet()) - { - pw.print(this.wsdlReference.toString()); - } - - // uddiReference options - if (this.isUDDIReferenceSet()) - { - pw.print(this.uddiReference.toString()); - } - - // description parameter - if (this.description != null) - { - pw.println(" description ................ " + this.description); - } - - return sw.toString(); - } - - /** - * Set config values from another analyzer config object. - */ - private void setConfig(AnalyzerConfig analyzerConfig) - { - this.configURI = analyzerConfig.getLocation(); - this.description = analyzerConfig.getDescription(); - this.verbose = analyzerConfig.getVerboseOption(); - this.assertionResultsOption = analyzerConfig.getAssertionResultsOption(); - this.reportURI = analyzerConfig.getReportLocation(); - this.replaceReport = analyzerConfig.getReplaceReport(); - this.logURI = analyzerConfig.getLogLocation(); - this.correlationType = analyzerConfig.getCorrelationType(); - this.testAssertionsDocumentURI = - analyzerConfig.getTestAssertionsDocumentLocation(); - this.addStyleSheet = analyzerConfig.getAddStyleSheet(); - this.wsdlReference = analyzerConfig.getWSDLReference(); - this.uddiReference = analyzerConfig.getUDDIReference(); - } - - /** - * Parse command line arguments. - */ - public void parseArgs(String[] args, boolean validate) throws WSIException - { - WSDLReference wsdlReference = null; - UDDIReference uddiReference = null; - - // Get new config reader - AnalyzerConfigReader analyzerConfigReader = new AnalyzerConfigReaderImpl(); - analyzerConfigReader.init(this.messageList); - - // Analyzer config object which will be merged after all of the input parms are processed - AnalyzerConfig analyzerConfigFromArgs = null; - - // Assertion results option - AssertionResultsOption assertionResultsOption = null; - - // If no input arguments, then throw exception - if (args.length == 0) - { - // ADD: - throw new IllegalArgumentException( - getMessage("usage01", Analyzer.USAGE_MESSAGE)); - } - - // Parse the command line arguments to locate the config file option (if it was specified) - for (int argCount = 0; argCount < args.length; argCount++) - { - // -config - if ((args[argCount].equalsIgnoreCase("-config")) - || (args[argCount].equals("-c"))) - { - argCount++; - analyzerConfigFromArgs = - analyzerConfigReader.readAnalyzerConfig( - getOptionValue(args, argCount)); - } - } - - // If config file was not specified, then create analyzer config object - if (analyzerConfigFromArgs == null) - { - analyzerConfigFromArgs = new AnalyzerConfigImpl(); - analyzerConfigFromArgs.init(this.messageList); - } - - // Get assertion results option - if ((assertionResultsOption = - analyzerConfigFromArgs.getAssertionResultsOption()) - == null) - { - assertionResultsOption = new AssertionResultsOptionImpl(); - analyzerConfigFromArgs.setAssertionResultsOption(assertionResultsOption); - } - - // Parse all of the command line arguments - for (int argCount = 0; argCount < args.length; argCount++) - { - // -config - if ((args[argCount].equalsIgnoreCase("-config")) - || (args[argCount].equals("-c"))) - { - // Skip this option since it was already processed - argCount++; - } - - // -verbose - else if ( - (args[argCount].equalsIgnoreCase("-verbose")) - || (args[argCount].equals("-v"))) - { - argCount++; - analyzerConfigFromArgs.setVerboseOption( - Boolean.valueOf(getOptionValue(args, argCount)).booleanValue()); - } - - // -assertionResults - else if ( - (args[argCount].equalsIgnoreCase("-assertionResults")) - || (args[argCount].equals("-a"))) - { - argCount++; - assertionResultsOption.setAssertionResultType( - AssertionResultType.newInstance(getOptionValue(args, argCount))); - } - - // -messageEntry - else if ( - (args[argCount].equalsIgnoreCase("-messageEntry")) - || (args[argCount].equals("-M"))) - { - argCount++; - assertionResultsOption.setShowMessageEntry( - Boolean.valueOf(getOptionValue(args, argCount)).booleanValue()); - } - - // -assertionDescription - else if ( - (args[argCount].equalsIgnoreCase("-assertionDescription")) - || (args[argCount].equals("-A"))) - { - argCount++; - assertionResultsOption.setShowAssertionDescription( - Boolean.valueOf(args[argCount]).booleanValue()); - } - - // -failureMessage - else if ( - (args[argCount].equalsIgnoreCase("-failureMessage")) - || (args[argCount].equals("-F"))) - { - argCount++; - assertionResultsOption.setShowFailureMessage( - Boolean.valueOf(getOptionValue(args, argCount)).booleanValue()); - } - - // -failureDetail - else if ( - (args[argCount].equalsIgnoreCase("-failureDetail")) - || (args[argCount].equals("-D"))) - { - argCount++; - assertionResultsOption.setShowFailureDetail( - Boolean.valueOf(getOptionValue(args, argCount)).booleanValue()); - } - - // -logFile - else if ( - (args[argCount].equalsIgnoreCase("-logFile")) - || (args[argCount].equals("-l"))) - { - argCount++; - analyzerConfigFromArgs.setLogLocation(getOptionValue(args, argCount)); - } - - // -testAssertionFile - else if ( - (args[argCount].equalsIgnoreCase("-testAssertionFile")) - || (args[argCount].equals("-t"))) - { - argCount++; - analyzerConfigFromArgs.setTestAssertionsDocumentLocation( - getOptionValue(args, argCount)); - } - - // -reportFile - else if ( - (args[argCount].equalsIgnoreCase("-reportFile")) - || (args[argCount].equals("-r"))) - { - argCount++; - analyzerConfigFromArgs.setReportLocation( - getOptionValue(args, argCount)); - } - - // -replace - else if ( - (args[argCount].equalsIgnoreCase("-replace")) - || (args[argCount].equals("-R"))) - { - argCount++; - analyzerConfigFromArgs.setReplaceReport( - Boolean.valueOf(getOptionValue(args, argCount)).booleanValue()); - } - - // -correlationType - else if ( - (args[argCount].equalsIgnoreCase("-correlationType")) - || (args[argCount].equals("-C"))) - { - argCount++; - analyzerConfigFromArgs.setCorrelationType( - getOptionValue(args, argCount)); - } - - // -wsdlElement - else if ( - (args[argCount].equalsIgnoreCase("-wsdlElement")) - || (args[argCount].equals("-W"))) - { - String optionName = args[argCount]; - argCount++; - - WSDLElement wsdlElement = new WSDLElementImpl(); - wsdlElement.setName(getOptionValue(args, argCount, optionName)); - argCount++; - wsdlElement.setType(getOptionValue(args, argCount, optionName)); - argCount++; - wsdlElement.setNamespace(getOptionValue(args, argCount, optionName)); - if (!args[argCount].startsWith("-")) - { - argCount++; - wsdlElement.setParentElementName( - getOptionValue(args, argCount, optionName)); - } - - if (wsdlReference != null) - { - wsdlReference.setWSDLElement(wsdlElement); - } - else if (uddiReference != null) - { - uddiReference.setWSDLElement(wsdlElement); - } - else - { - throw new IllegalArgumentException( - getMessage( - "config10", - "The -wsdlElement option must appear after the -wsdlURI or -uddiKey options.")); - } - - analyzerConfigFromArgs.setWSDLReference(wsdlReference); - } - - // -serviceLocation - else if ( - (args[argCount].equalsIgnoreCase("-serviceLocation")) - || (args[argCount].equals("-S"))) - { - argCount++; - - if (wsdlReference != null) - { - wsdlReference.setServiceLocation(getOptionValue(args, argCount)); - } - else if (uddiReference != null) - { - uddiReference.setServiceLocation(getOptionValue(args, argCount)); - } - else - { - throw new IllegalArgumentException( - getMessage( - "config11", - "The -serviceLocation option must appear after the -wsdlURI or -uddiKey options.")); - } - } - - // -wsdlURI - else if ( - (args[argCount].equalsIgnoreCase("-wsdlURI")) - || (args[argCount].equals("-W"))) - { - argCount++; - if (wsdlReference == null) - wsdlReference = new WSDLReferenceImpl(); - wsdlReference.setWSDLLocation(getOptionValue(args, argCount)); - analyzerConfigFromArgs.setWSDLReference(wsdlReference); - } - - // -uddiKeyType - else if ( - (args[argCount].equalsIgnoreCase("-uddiKeyType")) - || (args[argCount].equals("-K"))) - { - argCount++; - if (uddiReference == null) - uddiReference = new UDDIReferenceImpl(); - uddiReference.setKeyType(getOptionValue(args, argCount)); - analyzerConfigFromArgs.setUDDIReference(uddiReference); - } - - // -uddiKey - else if ( - (args[argCount].equalsIgnoreCase("-uddiKey")) - || (args[argCount].equals("-k"))) - { - argCount++; - if (uddiReference == null) - uddiReference = new UDDIReferenceImpl(); - uddiReference.setKey(getOptionValue(args, argCount)); - analyzerConfigFromArgs.setUDDIReference(uddiReference); - } - - // -inquiryURL - else if ( - (args[argCount].equalsIgnoreCase("-inquiryURL")) - || (args[argCount].equals("-i"))) - { - argCount++; - if (uddiReference == null) - uddiReference = new UDDIReferenceImpl(); - uddiReference.setInquiryURL(getOptionValue(args, argCount)); - analyzerConfigFromArgs.setUDDIReference(uddiReference); - } - - // ADD: Need to add support for other options (-config, -binding, etc.) - else - { - throw new IllegalArgumentException( - getMessage( - "config12", - args[argCount], - "The specified option is not supported:")); - } - } - - // If addStyleSheet was not specified, then create a comment version of it - if (analyzerConfigFromArgs.getAddStyleSheet() == null) - { - AddStyleSheet addStyleSheet = new AddStyleSheetImpl(); - addStyleSheet.setHref(WSIConstants.DEFAULT_REPORT_XSL); - addStyleSheet.setType(WSIConstants.DEFAULT_XSL_TYPE); - addStyleSheet.setComment(true); - analyzerConfigFromArgs.setAddStyleSheet(addStyleSheet); - } - - // Merge config info into this object - setConfig(analyzerConfigFromArgs); - - if (validate) - { - // Verify that all required options were specified and - // that the specified ones were correct - checkConfigOptions(); - } - } - - /** - * Verify config options. - */ - private void checkConfigOptions() throws WSIException - { - String fileLocation; - - // If wsdlReference and uddiReference specified, then throw exception - if ((this.isWSDLReferenceSet()) && (this.isUDDIReferenceSet())) - { - throw new IllegalArgumentException( - getMessage( - "config04", - "Can not specify both the WSDL reference and UDDI reference options")); - } - - // Check if test assertion file exists - if ((fileLocation = this.getTestAssertionsDocumentLocation()) == null) - { - throw new IllegalArgumentException( - getMessage( - "config16", - "Test assertion document location must be specified.")); - } - - else if (!Utils.fileExists(fileLocation)) - { - throw new IllegalArgumentException( - getMessage( - "config14", - fileLocation, - "Could not find test assertion document. Specified file location:")); - } - - // Check if log file exists - if ((fileLocation = this.getLogLocation()) != null) - { - if (!Utils.fileExists(fileLocation)) - throw new IllegalArgumentException( - messageList.getMessage( - "config02", - fileLocation, - "Could not find log file:")); - } - - // Check if WSDL file exists - if ((this.getWSDLReference() != null) - && (fileLocation = this.getWSDLReference().getWSDLLocation()) != null) - { - if (!Utils.fileExists(fileLocation)) - throw new IllegalArgumentException( - messageList.getMessage( - "config03", - fileLocation, - "Could not find WSDL file:")); - } - - File file = null; - try - { - // Get file object for report file - file = new File(this.getReportLocation()); - } - - catch (Exception e) - { - throw new IllegalArgumentException( - messageList.getMessage( - "config17", - "Could not get report file location.")); - } - - // If replace flag is false and file exists, then throw exception - if (file.exists() && !this.getReplaceReport()) - { - throw new IllegalArgumentException( - messageList.getMessage( - "config15", - "Report file already exists and replace option was not specified.")); - } - - if (correlationType != null - && !this.correlationType.equals( - WSIConstants.ATTRVAL_CORRELATION_TYPE_ENDPOINT) - && !this.correlationType.equals( - WSIConstants.ATTRVAL_CORRELATION_TYPE_NAMESPACE) - && !this.correlationType.equals( - WSIConstants.ATTRVAL_CORRELATION_TYPE_OPERATION)) - { - throw new IllegalArgumentException( - messageList.getMessage( - "config18", - "Invalid correlation type specified.")); - } - } - - /** - * Get option value. - */ - private String getOptionValue(String[] args, int index) throws WSIException - { - return getOptionValue(args, index, args[index - 1]); - } - - /** - * Get option value. - */ - private String getOptionValue(String[] args, int index, String optionName) - throws WSIException - { - // If index greater than array length, then throw exception - if (index >= args.length) - { - throw new IllegalArgumentException( - getMessage( - "config13", - optionName, - "Option did not contain a value. Specified option:")); - } - - // If the value is an option (i.e. starts with a "-"), then throw exception - if (args[index].startsWith("-")) - { - throw new IllegalArgumentException( - getMessage( - "config13", - optionName, - "Option did not contain a value. Specified option:")); - } - - return (args[index]); - } - - /** - * Get message from resource bundle. - */ - private String getMessage(String messageID, String defaultMessage) - { - return getMessage(messageID, null, defaultMessage); - } - - /** - * Get message from resource bundle. - */ - private String getMessage( - String messageID, - String messageData, - String defaultMessage) - { - String message = defaultMessage; - if (messageList != null) - message = messageList.getMessage(messageID, messageData, defaultMessage); - else if (messageData != null) - message += " " + messageData + "."; - - return message; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/impl/AnalyzerConfigReaderImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/impl/AnalyzerConfigReaderImpl.java deleted file mode 100644 index da991ca46..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/impl/AnalyzerConfigReaderImpl.java +++ /dev/null @@ -1,559 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer.config.impl; - -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.Reader; -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSIFileNotFoundException; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AnalyzerConfig; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AnalyzerConfigReader; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AssertionResultType; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AssertionResultsOption; -import org.eclipse.wst.wsi.internal.core.analyzer.config.UDDIReference; -import org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLElement; -import org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLReference; -import org.eclipse.wst.wsi.internal.core.common.AddStyleSheet; -import org.eclipse.wst.wsi.internal.core.common.impl.AddStyleSheetImpl; -import org.eclipse.wst.wsi.internal.core.profile.validator.WSDLValidator; -import org.eclipse.wst.wsi.internal.core.util.MessageList; -import org.eclipse.wst.wsi.internal.core.util.TestUtils; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - - -/** - * This class is the implementation used to read the analyzer config documents. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class AnalyzerConfigReaderImpl implements AnalyzerConfigReader -{ - /** - * Message list. - */ - protected MessageList messageList; - - /** - * Document location. - */ - protected String documentURI; - - /** - * Initialize analyzer config reader. - */ - public void init(MessageList messageList) - { - this.messageList = messageList; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.analyzer.config.AnalyzerConfigReader#readAnalyzerConfig(String) - */ - public AnalyzerConfig readAnalyzerConfig(String analyzerConfigURI) - throws WSIException - { - FileReader fileReader = null; - try - { - fileReader = new FileReader(analyzerConfigURI); - } - - catch (FileNotFoundException fnfe) - { - throw new WSIFileNotFoundException( - getMessage( - "config01", - analyzerConfigURI, - "Could not find analyzer config file: "), - fnfe); - } - - catch (Exception e) - { - throw new WSIException( - getMessage( - "config08", - analyzerConfigURI, - "Could not read analyzer config file: "), - e); - } - - return readAnalyzerConfig(fileReader); - } - - /** - * @see org.eclipse.wst.wsi.internal.core.analyzer.config.AnalyzerConfigReader#readAnalyzerConfig(Reader) - */ - public AnalyzerConfig readAnalyzerConfig(Reader reader) throws WSIException - { - AnalyzerConfig analyzerConfig = new AnalyzerConfigImpl(); - - // Parse XML - Document doc = XMLUtils.parseXML(reader); - - // Parse elements in the config document - parseConfigElement(analyzerConfig, doc.getDocumentElement()); - - return analyzerConfig; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.document.DocumentReader#getLocation() - */ - public String getLocation() - { - return this.documentURI; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.document.DocumentReader#setLocation(String) - */ - public void setLocation(String documentURI) - { - this.documentURI = documentURI; - } - - /** - * Parse config element. - */ - private void parseConfigElement( - AnalyzerConfig analyzerConfig, - Element element) - throws WSIException - { - // ADD: Get name and version - - // ADD: Verify that this is the config element - - // Get first child element - Element nextElement = XMLUtils.getFirstChild(element); - - // DEBUG: - //System.out.println("Element name: " + nextElement.getClass().getName()); - - // Process each child element - while (nextElement != null) - { - // <description> - if (isElement(nextElement, WSIConstants.ELEM_DESCRIPTION)) - { - analyzerConfig.setDescription(XMLUtils.getText(nextElement)); - } - - // <verbose> - else if (isElement(nextElement, WSIConstants.ELEM_VERBOSE)) - { - analyzerConfig.setVerboseOption( - XMLUtils.getBooleanValue(nextElement, false)); - } - - // <assertionResults> - else if (isElement(nextElement, WSIConstants.ELEM_ASSERTION_RESULTS)) - { - // Create assertion results option object - AssertionResultsOption assertionResultsOption = - new AssertionResultsOptionImpl(); - analyzerConfig.setAssertionResultsOption(assertionResultsOption); - - // Set result type - String resultType = - XMLUtils.getAttributeValue(nextElement, WSIConstants.ATTR_TYPE); - assertionResultsOption.setAssertionResultType( - AssertionResultType.newInstance(resultType)); - - // Set show log entry - assertionResultsOption.setShowMessageEntry( - XMLUtils.getBooleanValue( - nextElement, - WSIConstants.ATTR_MESSAGE_ENTRY, - assertionResultsOption.getShowMessageEntry())); - - // Set show failure message - assertionResultsOption.setShowFailureMessage( - XMLUtils.getBooleanValue( - nextElement, - WSIConstants.ATTR_FAILURE_MESSAGE, - assertionResultsOption.getShowFailureMessage())); - - // Set show failure detail - assertionResultsOption.setShowFailureDetail( - XMLUtils.getBooleanValue( - nextElement, - WSIConstants.ATTR_FAILURE_DETAIL, - assertionResultsOption.getShowFailureDetail())); - - // REMOVE: Set show warning message - //assertionResultsOption.setShowWarningMessage(XMLUtils.getBooleanValue(nextElement, - // WSIConstants.ATTR_WARNING_MESSAGE, assertionResultsOption.getShowWarningMessage())); - } - - // <reportFile> - else if (isElement(nextElement, WSIConstants.ELEM_REPORT_FILE)) - { - parseReportFileElement(analyzerConfig, nextElement); - } - - // <testAssertionFile> - else if (isElement(nextElement, WSIConstants.ELEM_TEST_ASSERTIONS_FILE)) - { - analyzerConfig.setTestAssertionsDocumentLocation( - XMLUtils.getText(nextElement)); - } - - // <logFile> - else if (isElement(nextElement, WSIConstants.ELEM_LOG_FILE)) - { - String correlationType = - XMLUtils.getAttributeValue( - nextElement, - WSIConstants.ATTR_CORRELATION_TYPE); - analyzerConfig.setCorrelationType( - correlationType == null ? "operation" : correlationType); - analyzerConfig.setLogLocation(XMLUtils.getText(nextElement)); - } - - // <wsdlReference> - else if (isElement(nextElement, WSIConstants.ELEM_WSDL_REFERENCE)) - { - parseWsdlReference(analyzerConfig, nextElement); - } - - // <uddiReference> - else if (isElement(nextElement, WSIConstants.ELEM_UDDI_REFERENCE)) - { - parseUddiReference(analyzerConfig, nextElement); - } - - else - { - // Throw exception - throw new IllegalArgumentException( - getMessage( - "config06", - nextElement.getLocalName(), - "Invalid analyzer config element:")); - } - - // Get next element - nextElement = XMLUtils.getNextSibling(nextElement); - } - } - - /** - * Parse reportFile element. - */ - private void parseReportFileElement( - AnalyzerConfig analyzerConfig, - Element element) - throws WSIException - { - // Get report location and replace indicator - analyzerConfig.setReplaceReport( - XMLUtils.getBooleanValue(element, WSIConstants.ATTR_REPLACE, false)); - analyzerConfig.setReportLocation( - XMLUtils.getAttributeValue( - element, - WSIConstants.ATTR_LOCATION, - WSIConstants.DEFAULT_REPORT_URI)); - - // ADD: If the report location wasn't specified, then throw an exception - //if (analyzerConfig.getReportLocation() == null) - // throw new WSIException("The analyzer configuration file must contain the report file location."); - - // Get first child element - Element nextElement = XMLUtils.getFirstChild(element); - - // Process each child element - while (nextElement != null) - { - // <addStyleSheet> - if (isElement(nextElement, WSIConstants.ELEM_ADD_STYLE_SHEET)) - { - AddStyleSheet addStyleSheet = new AddStyleSheetImpl(); - - // Parse the element - TestUtils.parseAddStyleSheet( - nextElement, - addStyleSheet, - WSIConstants.DEFAULT_REPORT_XSL); - - // Set add style sheet - analyzerConfig.setAddStyleSheet(addStyleSheet); - } - - else - { - // Throw exception - throw new IllegalArgumentException( - getMessage( - "config06", - nextElement.getLocalName(), - "Invalid analyzer config element:")); - } - - // Get next element - nextElement = XMLUtils.getNextSibling(nextElement); - } - } - - /** - * Parse wsdl reference element. - */ - private void parseWsdlReference( - AnalyzerConfig analyzerConfig, - Element element) - throws WSIException - { - // Create UDDI reference - WSDLReference wsdlReference = new WSDLReferenceImpl(); - - // Set WSDL reference - analyzerConfig.setWSDLReference(wsdlReference); - - // Get first child element - Element nextElement = XMLUtils.getFirstChild(element); - - // Process each child element - while (nextElement != null) - { - // <wsdlURI> - if (isElement(nextElement, WSIConstants.ELEM_WSDL_URI)) - { - // Set WSDL location - wsdlReference.setWSDLLocation(XMLUtils.getText(nextElement)); - } - - // <serviceLocation> - else if (isElement(nextElement, WSIConstants.ELEM_SERVICE_LOCATION)) - { - // Set service location - wsdlReference.setServiceLocation(XMLUtils.getText(nextElement)); - } - - // <wsdlElement> - else if (isElement(nextElement, WSIConstants.ELEM_WSDL_ELEMENT)) - { - // Set WSDL element - wsdlReference.setWSDLElement(parseWsdlElement(nextElement)); - } - - else - { - // Throw exception - throw new IllegalArgumentException( - getMessage( - "config06", - nextElement.getLocalName(), - "Invalid analyzer config element:")); - } - - // Get next element - nextElement = XMLUtils.getNextSibling(nextElement); - } - - // If WSDL element or WSL URI not specified, then throw exception - if ((wsdlReference.getWSDLElement() == null) - || (wsdlReference.getWSDLLocation() == null)) - { - throw new IllegalArgumentException( - getMessage( - "config07", - "Both the <wsdlElement> and <wsdlURI> elements must be specified.")); - } - - // If type is port or operation, then parent element name must be specified - if (((wsdlReference - .getWSDLElement() - .getType() - .equalsIgnoreCase(WSDLValidator.TYPE_DESCRIPTION_PORT)) - || (wsdlReference - .getWSDLElement() - .getType() - .equalsIgnoreCase(WSDLValidator.TYPE_DESCRIPTION_OPERATION))) - && (wsdlReference.getWSDLElement().getParentElementName() == null)) - { - throw new IllegalArgumentException( - getMessage( - "config09", - "The parentElementName attribute must be specified with a WSDL type of " - + WSDLValidator.TYPE_DESCRIPTION_PORT - + " or " - + WSDLValidator.TYPE_DESCRIPTION_OPERATION - + ".")); - } - } - - /** - * Parse uddi reference. - */ - private void parseUddiReference( - AnalyzerConfig analyzerConfig, - Element element) - throws WSIException - { - // Create UDDI reference - UDDIReference uddiReference = new UDDIReferenceImpl(); - - // Set UDDI reference - analyzerConfig.setUDDIReference(uddiReference); - - // Get first child element - Element nextElement = XMLUtils.getFirstChild(element); - - // Process each child element - while (nextElement != null) - { - // <inquiryURL> - if (isElement(nextElement, WSIConstants.ELEM_INQUIRY_URL)) - { - // Set inquiry URL - uddiReference.setInquiryURL(XMLUtils.getText(nextElement)); - } - - // <uddiKey> - else if (isElement(nextElement, WSIConstants.ELEM_UDDI_KEY)) - { - // Set UDDI key and key type - uddiReference.setKey(XMLUtils.getText(nextElement)); - uddiReference.setKeyType( - XMLUtils.getAttributeValue(nextElement, WSIConstants.ATTR_TYPE)); - } - - // <wsdlElement> - else if (isElement(nextElement, WSIConstants.ELEM_WSDL_ELEMENT)) - { - // Set WSDL element - uddiReference.setWSDLElement(parseWsdlElement(nextElement)); - } - - // <serviceLocation> - else if (isElement(nextElement, WSIConstants.ELEM_SERVICE_LOCATION)) - { - // Set service location - uddiReference.setServiceLocation(XMLUtils.getText(nextElement)); - } - - /* REMOVE: - // <wsdlElement> - else if (isElement(nextElement, WSIConstants.ELEM_WSDL_ELEMENT)) { - // Set service location - parseWsdlElement(analyzerConfig, nextElement); - } - */ - - else - { - // Throw exception - throw new IllegalArgumentException( - getMessage( - "config06", - nextElement.getLocalName(), - "Invalid analyzer config element:")); - } - - // Get next element - nextElement = XMLUtils.getNextSibling(nextElement); - } - } - - /** - * Parse WSDL element. - */ - private WSDLElement parseWsdlElement(Element element) throws WSIException - { - WSDLElement wsdlElement = new WSDLElementImpl(); - - // Set type, namespace, parent element name and name - wsdlElement.setType( - XMLUtils.getAttributeValue(element, WSIConstants.ATTR_TYPE)); - wsdlElement.setNamespace( - XMLUtils.getAttributeValue(element, WSIConstants.ATTR_NAMESPACE)); - wsdlElement.setParentElementName( - XMLUtils.getAttributeValue( - element, - WSIConstants.ATTR_PARENT_ELEMENT_NAME)); - - String wsdlElementName = XMLUtils.getText(element); - if (wsdlElementName.equals("")) - { - // Throw exception - throw new IllegalArgumentException( - getMessage("config19", "The WSDL element name must be specified.")); - } - wsdlElement.setName(wsdlElementName); - - return wsdlElement; - } - - /** - * Determine if this element matches specified local name in the analyzer config namespace. - */ - private boolean isElement(Element element, String localName) - { - return isElement( - element, - getValidWSIAnalyzerConfigNamespaces(), - localName); - } - - - static public List getValidWSIAnalyzerConfigNamespaces() - { - ArrayList list = new ArrayList(); - list.add(WSIConstants.NS_URI_WSI_ANALYZER_CONFIG_2003); - list.add(WSIConstants.NS_URI_WSI_ANALYZER_CONFIG); - return list; - } - - /** - * Determine if this element matches specified local name in the analyzer config namespace. - */ - private boolean isElement( - Element element, - List namespaces, - String localName) - { - return XMLUtils.isElement(element, namespaces, localName); - } - - /** - * Get message from resource bundle. - */ - private String getMessage(String messageID, String defaultMessage) - { - return getMessage(messageID, null, defaultMessage); - } - - /** - * Get message from resource bundle. - */ - private String getMessage( - String messageID, - String messageData, - String defaultMessage) - { - String message = defaultMessage; - if (messageList != null) - message = messageList.getMessage(messageID, messageData, defaultMessage); - else - message += " " + messageData + "."; - - return message; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/impl/AssertionResultsOptionImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/impl/AssertionResultsOptionImpl.java deleted file mode 100644 index fbe3d0f74..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/impl/AssertionResultsOptionImpl.java +++ /dev/null @@ -1,200 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2003 IBM Corporation, Parasoft 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 - Initial API and implementation - * Parasoft - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer.config.impl; - -import java.io.PrintWriter; -import java.io.StringWriter; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AssertionResultType; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AssertionResultsOption; - -/** - * This class contains the assertion results option definition. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class AssertionResultsOptionImpl implements AssertionResultsOption -{ - /** - * Assertion result type. - */ - protected AssertionResultType resultType = AssertionResultType.ALL; - - /** - * Show message entry indicator. - */ - protected boolean showMessageEntry = true; - - /** - * Show assertion description indicator. - */ - protected boolean showAssertionDescription = false; - - /** - * Show failure message indicator. - */ - protected boolean showFailureMessage = true; - - /** - * Show failure detail indicator. - */ - protected boolean showFailureDetail = true; - - /** - * Get assertion result type. - * @see #setAssertionResultType - */ - public AssertionResultType getAssertionResultType() - { - return resultType; - } - - /** - * Set assertion result type. - * @see #getAssertionResultType - */ - public void setAssertionResultType(AssertionResultType resultType) - { - this.resultType = resultType; - } - - /** - * Get show message entry indicator. - * @see #setShowMessageEntry - */ - public boolean getShowMessageEntry() - { - return this.showMessageEntry; - } - - /** - * Set show message entry indictor. - * @see #getShowMessageEntry - */ - public void setShowMessageEntry(boolean showMessageEntry) - { - this.showMessageEntry = showMessageEntry; - } - - /** - * Get show assertion description indicator. - * @see #setShowAssertionDescription - */ - public boolean getShowAssertionDescription() - { - return this.showAssertionDescription; - } - - /** - * Set show assertion description indictor. - * @see #getShowAssertionDescription - */ - public void setShowAssertionDescription(boolean showAssertionDescription) - { - this.showAssertionDescription = showAssertionDescription; - } - - /** - * Get show failure message indicator. - * @see #setShowFailureMessage - */ - public boolean getShowFailureMessage() - { - return this.showFailureMessage; - } - - /** - * Set show failure mesage indicator. - * @see #getShowFailureMessage - */ - public void setShowFailureMessage(boolean showFailureMessage) - { - this.showFailureMessage = showFailureMessage; - } - - /** - * Get show failure detail indicator. - * @see #setShowFailureDetail - */ - public boolean getShowFailureDetail() - { - return this.showFailureDetail; - } - - /** - * Set show failure detail indicator. - * @see #getShowFailureDetail - */ - public void setShowFailureDetail(boolean showFailureDetail) - { - this.showFailureDetail = showFailureDetail; - } - - /** - * Get string representation of this object. - */ - public String toString() - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - pw.println(" Assertion Results:"); - pw.println(" type ..................... " + this.resultType); - pw.println(" messageEntry ............. " + this.showMessageEntry); - pw.println( - " assertionDescription ..... " + this.showAssertionDescription); - pw.println(" failureMessage ........... " + this.showFailureMessage); - pw.println(" failureDetail ............ " + this.showFailureDetail); - - return sw.toString(); - } - - /** - * Get representation of this object as an XML string. - */ - public String toXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - // Config options - pw.print(" <" + nsName + WSIConstants.ELEM_ASSERTION_RESULTS + " "); - pw.print(WSIConstants.ATTR_TYPE + "=\"" + getAssertionResultType() + "\" "); - pw.print( - WSIConstants.ATTR_MESSAGE_ENTRY + "=\"" + getShowMessageEntry() + "\" "); - pw.print( - WSIConstants.ATTR_ASSERTION_DESCRIPTION - + "=\"" - + getShowAssertionDescription() - + "\" "); - pw.print( - WSIConstants.ATTR_FAILURE_MESSAGE - + "=\"" - + getShowFailureMessage() - + "\" "); - pw.println( - WSIConstants.ATTR_FAILURE_DETAIL - + "=\"" - + getShowFailureDetail() - + "\"/>"); - // REMOVE: - //pw.println(WSIConstants.ATTR_WARNING_MESSAGE + "=\"" + getShowWarningMessage() + "\"/>"); - - return sw.toString(); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/impl/UDDIReferenceImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/impl/UDDIReferenceImpl.java deleted file mode 100644 index 8dc7b6c72..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/impl/UDDIReferenceImpl.java +++ /dev/null @@ -1,197 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer.config.impl; - -import java.io.PrintWriter; -import java.io.StringWriter; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.analyzer.config.UDDIReference; -import org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLElement; - -/** - * The iimplementation for a reference to a discovery artifact. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class UDDIReferenceImpl implements UDDIReference -{ - /** - * UDDI key type. - */ - protected String keyType = null; - - /** - * UDDI key. - */ - protected String key = null; - - /** - * UDDI inquiry URL. - */ - protected String inquiryURL = null; - - /** - * WSDL element. - */ - protected WSDLElement wsdlElement = null; - - /** - * Service location. - */ - protected String serviceLocation = null; - - /** - * @see org.eclipse.wst.wsi.internal.core.analyzer.config.UDDIReference#getKeyType() - */ - public String getKeyType() - { - return this.keyType; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.analyzer.config.UDDIReference#setKeyType(String) - */ - public void setKeyType(String keyType) - { - if (keyType.equals(BINDING_KEY) || keyType.equals(TMODEL_KEY)) - this.keyType = keyType; - else - throw new IllegalArgumentException( - "Invalid UDDI key type: [" + keyType + "]."); - } - - /** - * @see org.eclipse.wst.wsi.internal.core.analyzer.config.UDDIReference#getKey() - */ - public String getKey() - { - return this.key; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.analyzer.config.UDDIReference#setKey(String) - */ - public void setKey(String key) - { - this.key = key; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.analyzer.config.UDDIReference#getInquiryURL() - */ - public String getInquiryURL() - { - return this.inquiryURL; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.analyzer.config.UDDIReference#setInquiryURL(String) - */ - public void setInquiryURL(String inquiryURL) - { - this.inquiryURL = inquiryURL; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLReference#getWSDLElement() - */ - public WSDLElement getWSDLElement() - { - return this.wsdlElement; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLReference#setWSDLElement(WSDLElement) - */ - public void setWSDLElement(WSDLElement wsdlElement) - { - this.wsdlElement = wsdlElement; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLReference#getServiceLocation() - */ - public String getServiceLocation() - { - return this.serviceLocation; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLReference#setServiceLocation() - */ - public void setServiceLocation(String serviceLocation) - { - this.serviceLocation = serviceLocation; - } - - /** - * Get string representation of this object. - */ - public String toString() - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - pw.println(" UDDI Reference: "); - pw.println(" UDDI Key: "); - pw.println(" type ................... " + this.keyType); - pw.println(" key .................... " + this.key); - pw.println(" inquiryURL ............... " + this.inquiryURL); - if (this.serviceLocation != null) - pw.println(" serviceLocation .......... " + this.serviceLocation); - if (this.wsdlElement != null) - pw.print(this.wsdlElement.toString()); - - return sw.toString(); - } - - /** - * @see org.eclipse.wst.wsi.internal.core.document.DocumentElement#toXMLString(String) - */ - public String toXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - // Element - pw.println(" <" + nsName + ELEM_NAME + ">"); - pw.print(" <" + nsName + WSIConstants.ELEM_UDDI_KEY + " "); - pw.print(WSIConstants.ATTR_TYPE + "=\"" + getKeyType() + "\">"); - pw.print(getKey()); - pw.println("</" + nsName + WSIConstants.ELEM_UDDI_KEY + ">"); - pw.print(" <" + nsName + WSIConstants.ELEM_INQUIRY_URL + ">"); - pw.print(getInquiryURL()); - pw.println("</" + nsName + WSIConstants.ELEM_INQUIRY_URL + ">"); - - if (this.wsdlElement != null) - pw.print(getWSDLElement().toXMLString(nsName)); - - if (this.serviceLocation != null) - { - pw.print(" <" + nsName + WSIConstants.ELEM_SERVICE_LOCATION + ">"); - pw.print(getServiceLocation()); - pw.println( - " </" + nsName + WSIConstants.ELEM_SERVICE_LOCATION + ">"); - } - - pw.println(" </" + nsName + ELEM_NAME + ">"); - - return sw.toString(); - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/impl/WSDLElementImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/impl/WSDLElementImpl.java deleted file mode 100644 index fec67d440..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/impl/WSDLElementImpl.java +++ /dev/null @@ -1,202 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer.config.impl; - -import java.io.PrintWriter; -import java.io.StringWriter; - -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLElement; -import org.eclipse.wst.wsi.internal.core.profile.validator.WSDLValidator; - -/** - * The implementation for WSDL definitions. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class WSDLElementImpl implements WSDLElement -{ - protected String type; - protected String namespace; - protected String name; - protected String parentElementName; - - /** - * @see #setType - */ - public String getType() - { - return this.type; - } - - /** - * @see #getType - */ - public void setType(String type) - { - this.type = type; - } - - /** - * @see #setNamespace - */ - public String getNamespace() - { - return this.namespace; - } - - /** - * @see #getNamespace - */ - public void setNamespace(String namespace) - { - this.namespace = namespace; - } - - /** - * @see #setName - */ - public String getName() - { - return this.name; - } - - /** - * @see #getName - */ - public void setName(String name) - { - this.name = name; - } - - public QName getQName() - { - return new QName(this.namespace, this.name); - } - - /** - * Get WSDL parent element name. - * @see #setParentElementName - - */ - public String getParentElementName() - { - return this.parentElementName; - } - - /** - * Set WSDL parent element name. - * @see #getParentElementName - */ - public void setParentElementName(String parentElementName) - { - this.parentElementName = parentElementName; - } - - /** - * @see org.eclipse.wst.wsi.test.analyzer.config.WSDLElement#getParentElementQName() - */ - public QName getParentElementQName() - { - return new QName(this.namespace, this.parentElementName); - } - - /** - * Is port element. - */ - public boolean isPort() - { - return type.equals(WSDLValidator.TYPE_DESCRIPTION_PORT); - } - - /** - * Is binding element. - */ - public boolean isBinding() - { - return type.equals(WSDLValidator.TYPE_DESCRIPTION_BINDING); - } - - /** - * Is portType element. - */ - public boolean isPortType() - { - return type.equals(WSDLValidator.TYPE_DESCRIPTION_PORTTYPE); - } - - /** - * Is operation element. - */ - public boolean isOperation() - { - return type.equals(WSDLValidator.TYPE_DESCRIPTION_OPERATION); - } - - /** - * Is message element. - */ - public boolean isMessage() - { - return type.equals(WSDLValidator.TYPE_DESCRIPTION_MESSAGE); - } - - /** - * Get string representation of this object. - */ - public String toString() - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - pw.println(" WSDL Element: "); - pw.println(" type ................... " + this.type); - pw.println(" namespace .............. " + this.namespace); - pw.println(" name ................... " + this.name); - - if (this.parentElementName != null) - pw.println(" parentElementName ...... " + this.parentElementName); - - return sw.toString(); - } - - /** - * Get representation of this object as an XML string. - */ - public String toXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - // Config options - pw.print(" <" + nsName + ELEM_NAME + " "); - pw.print(WSIConstants.ATTR_TYPE + "=\"" + getType() + "\" "); - pw.print(WSIConstants.ATTR_NAMESPACE + "=\"" + getNamespace() + "\" "); - if (this.parentElementName != null) - pw.print( - WSIConstants.ATTR_PARENT_ELEMENT_NAME - + "=\"" - + getParentElementName() - + "\""); - pw.print(">"); - pw.print(getName()); - pw.println("</" + nsName + ELEM_NAME + ">"); - - return sw.toString(); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/impl/WSDLReferenceImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/impl/WSDLReferenceImpl.java deleted file mode 100644 index 64bff4363..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/config/impl/WSDLReferenceImpl.java +++ /dev/null @@ -1,163 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer.config.impl; - -import java.io.PrintWriter; -import java.io.StringWriter; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLElement; -import org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLReference; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; - -/** - * The implementation for a reference to a description artifact. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class WSDLReferenceImpl implements WSDLReference -{ - /** - * WSDL element. - */ - protected WSDLElement wsdlElement = null; - - /** - * Service location. - */ - protected String serviceLocation = null; - - /** - * WSDL document location. - */ - protected String wsdlLocation = null; - - /** - * Default constructor. - */ - public WSDLReferenceImpl() - { - } - - /** - * Constructor with all settings. - * @param wsdlElement a WSDL element. - * @param wsdlLocation a WSDL document location. - * @param serviceLocation a service location. - */ - public WSDLReferenceImpl( - WSDLElement wsdlElement, - String wsdlLocation, - String serviceLocation) - { - this.wsdlElement = wsdlElement; - this.wsdlLocation = wsdlLocation; - this.serviceLocation = serviceLocation; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLReference#getWSDLElement() - */ - public WSDLElement getWSDLElement() - { - return this.wsdlElement; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLReference#setWSDLElement(WSDLElement) - */ - public void setWSDLElement(WSDLElement wsdlElement) - { - this.wsdlElement = wsdlElement; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLReference#getWSDLLocation() - */ - public String getWSDLLocation() - { - return this.wsdlLocation; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLReference#setWSDLLocation() - */ - public void setWSDLLocation(String wsdlLocation) - { - this.wsdlLocation = wsdlLocation; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLReference#getServiceLocation() - */ - public String getServiceLocation() - { - return this.serviceLocation; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLReference#setServiceLocation() - */ - public void setServiceLocation(String serviceLocation) - { - this.serviceLocation = serviceLocation; - } - - /** - * Get string representation of this object. - */ - public String toString() - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - pw.println(" WSDL Reference:"); - pw.print(this.wsdlElement.toString()); - pw.println(" wsdlURI .................. " + this.wsdlLocation); - if (this.serviceLocation != null) - pw.println(" serviceLocation .......... " + this.serviceLocation); - - return sw.toString(); - } - - /** - * @see org.eclipse.wst.wsi.internal.core.document.DocumentElement#toXMLString(String) - */ - public String toXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - // Element - pw.println(" <" + nsName + ELEM_NAME + ">"); - pw.print(getWSDLElement().toXMLString(nsName)); - pw.print(" <" + nsName + WSIConstants.ELEM_WSDL_URI + ">"); - pw.print(getWSDLLocation()); - pw.println("</" + nsName + WSIConstants.ELEM_WSDL_URI + ">"); - - if (this.serviceLocation != null) - { - pw.print(" <" + nsName + WSIConstants.ELEM_SERVICE_LOCATION + ">"); - pw.print(XMLUtils.xmlEscapedString(getServiceLocation())); - pw.println("</" + nsName + WSIConstants.ELEM_SERVICE_LOCATION + ">"); - } - - pw.println(" </" + nsName + ELEM_NAME + ">"); - - return sw.toString(); - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/common/AddStyleSheet.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/common/AddStyleSheet.java deleted file mode 100644 index 0fdf7f90c..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/common/AddStyleSheet.java +++ /dev/null @@ -1,124 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.common; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.document.DocumentElement; - -/** - * The interface for AddStyleSheet element. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface AddStyleSheet extends DocumentElement -{ - /** - * Element name. - */ - public static final String ELEM_NAME = WSIConstants.ELEM_ADD_STYLE_SHEET; - - /** - * Get href. - * @return href. - * @see #setHref - */ - public String getHref(); - - /** - * Set href. - * @param href a href. - * @see #getHref - */ - public void setHref(String href); - - /** - * Get type. - * @return type. - * @see #setType - */ - public String getType(); - - /** - * Set type. - * @param type a type. - * @see #getType - */ - public void setType(String type); - - /** - * Get title. - * @return title. - * @see #setTitle - */ - public String getTitle(); - - /** - * Set title. - * @param title a title. - * @see #getTitle - */ - public void setTitle(String title); - - /** - * Get media. - * @return media. - * @see #setMedia - */ - public String getMedia(); - - /** - * Set title. - * @param media media. - * @see #getMedia - */ - public void setMedia(String media); - - /** - * Get charset. - * @return charset. - * @see #setCharset - */ - public String getCharset(); - - /** - * Set charset. - * @param charset charset. - * @see #getCharset - */ - public void setCharset(String charset); - - /** - * Get alternate. - * @return alternate. - * @see #setAlternate - */ - public String getAlternate(); - - /** - * Set alternate. - * @param alternate alternate. - * @see #getAlternate - */ - public void setAlternate(String alternate); - - /** - * Set if the style sheet declaration should be a comment. - * @param comment a boolean. - */ - public void setComment(boolean comment); - - /** - * Get style sheet declaration. - * @return style sheet declaration. - */ - public String getStyleSheetString(); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/common/impl/AddStyleSheetImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/common/impl/AddStyleSheetImpl.java deleted file mode 100644 index 9965d1696..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/common/impl/AddStyleSheetImpl.java +++ /dev/null @@ -1,220 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.common.impl; - -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.TreeMap; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.common.AddStyleSheet; - -/** - * The implementation for AddStyleSheet element. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class AddStyleSheetImpl implements AddStyleSheet -{ - /** - * Attribute values. - */ - protected TreeMap attributeValueList = new TreeMap(); - - /** - * List of attributes. - */ - protected String[] attributeNameList = - { - WSIConstants.ATTR_HREF, - WSIConstants.ATTR_TYPE, - WSIConstants.ATTR_TITLE, - WSIConstants.ATTR_MEDIA, - WSIConstants.ATTR_CHARSET, - WSIConstants.ATTR_ALTERNATE }; - - /** - * Set if the style sheet declaration should be a comment. - */ - protected boolean comment = false; - - /* (non-Javadoc) - * @see org.wsi.test.common.AddStyleSheet#getHref() - */ - public String getHref() - { - return (String) this.attributeValueList.get(WSIConstants.ATTR_HREF); - } - - /* (non-Javadoc) - * @see org.wsi.test.common.AddStyleSheet#setHref(String) - */ - public void setHref(String href) - { - this.attributeValueList.put(WSIConstants.ATTR_HREF, href); - } - - /* (non-Javadoc) - * @see org.wsi.test.common.AddStyleSheet#getType() - */ - public String getType() - { - return (String) this.attributeValueList.get(WSIConstants.ATTR_TYPE); - } - - /* (non-Javadoc) - * @see org.wsi.test.common.AddStyleSheet#setType(String) - */ - public void setType(String type) - { - this.attributeValueList.put(WSIConstants.ATTR_TYPE, type); - } - - /* (non-Javadoc) - * @see org.wsi.test.common.AddStyleSheet#getTitle() - */ - public String getTitle() - { - return (String) this.attributeValueList.get(WSIConstants.ATTR_TITLE); - } - - /* (non-Javadoc) - * @see org.wsi.test.common.AddStyleSheet#setTitle(String) - */ - public void setTitle(String title) - { - this.attributeValueList.put(WSIConstants.ATTR_TITLE, title); - } - - /* (non-Javadoc) - * @see org.wsi.test.common.AddStyleSheet#getMedia() - */ - public String getMedia() - { - return (String) this.attributeValueList.get(WSIConstants.ATTR_MEDIA); - } - - /* (non-Javadoc) - * @see org.wsi.test.common.AddStyleSheet#setMedia(String) - */ - public void setMedia(String media) - { - this.attributeValueList.put(WSIConstants.ATTR_MEDIA, media); - } - - /* (non-Javadoc) - * @see org.wsi.test.common.AddStyleSheet#getCharset() - */ - public String getCharset() - { - return (String) this.attributeValueList.get(WSIConstants.ATTR_CHARSET); - } - - /* (non-Javadoc) - * @see org.wsi.test.common.AddStyleSheet#setCharset(String) - */ - public void setCharset(String charset) - { - this.attributeValueList.put(WSIConstants.ATTR_CHARSET, charset); - } - - /* (non-Javadoc) - * @see org.wsi.test.common.AddStyleSheet#getAlternate() - */ - public String getAlternate() - { - return (String) this.attributeValueList.get(WSIConstants.ATTR_ALTERNATE); - } - - /* (non-Javadoc) - * @see org.wsi.test.common.AddStyleSheet#setAlternate(String) - */ - public void setAlternate(String alternate) - { - this.attributeValueList.put(WSIConstants.ATTR_ALTERNATE, alternate); - } - - /* (non-Javadoc) - * Set if the style sheet declaration should be a comment. - */ - public void setComment(boolean comment) - { - this.comment = comment; - } - - /* (non-Javadoc) - * @see org.wsi.test.common.AddStyleSheet#getStyleSheetString() - */ - public String getStyleSheetString() - { - StringBuffer styleSheet = new StringBuffer(); - - if (comment) - styleSheet.append("<!-- "); - - styleSheet.append("<?xml-stylesheet"); - - String value; - for (int i = 0; i < attributeNameList.length; i++) - { - if ((value = (String) attributeValueList.get(attributeNameList[i])) - != null) - styleSheet.append(" " + attributeNameList[i] + "=\"" + value + "\""); - } - - // End element - styleSheet.append(" ?>"); - - if (comment) - styleSheet.append(" -->"); - - return styleSheet.toString(); - } - - /** - * Get string representation of this object. - */ - public String toString() - { - return getStyleSheetString(); - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentElement#toXMLString(String) - */ - public String toXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - // Config options - pw.print(" <" + nsName + ELEM_NAME + " "); - pw.print(WSIConstants.ATTR_HREF + "=\"" + getHref() + "\" "); - pw.print(WSIConstants.ATTR_TYPE + "=\"" + getType() + "\" "); - if (getTitle() != null) - pw.print(WSIConstants.ATTR_TITLE + "=\"" + getTitle() + "\" "); - if (getMedia() != null) - pw.print(WSIConstants.ATTR_MEDIA + "=\"" + getMedia() + "\" "); - if (getCharset() != null) - pw.print(WSIConstants.ATTR_CHARSET + "=\"" + getCharset() + "\" "); - if (getAlternate() != null) - pw.print(WSIConstants.ATTR_ALTERNATE + "=\"" + getAlternate() + "\" "); - pw.println("/>"); - - return sw.toString(); - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/document/DocumentElement.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/document/DocumentElement.java deleted file mode 100644 index c96d27864..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/document/DocumentElement.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.document; - -/** - * Defines the interface used for all Conformance XML documents. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface DocumentElement -{ - /** - * Return XML string representation of this object. - * @param namespaceName a namespace prefix. - * @return XML string representation of this object. - */ - public String toXMLString(String namespaceName); - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/document/DocumentFactory.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/document/DocumentFactory.java deleted file mode 100644 index 8f8de3772..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/document/DocumentFactory.java +++ /dev/null @@ -1,182 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.document; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AnalyzerConfig; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AnalyzerConfigReader; -import org.eclipse.wst.wsi.internal.core.log.Log; -import org.eclipse.wst.wsi.internal.core.log.LogReader; -import org.eclipse.wst.wsi.internal.core.log.LogWriter; -import org.eclipse.wst.wsi.internal.core.monitor.config.MonitorConfig; -import org.eclipse.wst.wsi.internal.core.monitor.config.MonitorConfigReader; -import org.eclipse.wst.wsi.internal.core.profile.ProfileAssertions; -import org.eclipse.wst.wsi.internal.core.profile.ProfileAssertionsReader; -import org.eclipse.wst.wsi.internal.core.report.Report; -import org.eclipse.wst.wsi.internal.core.report.ReportWriter; -import org.eclipse.wst.wsi.internal.core.report.Reporter; -import org.eclipse.wst.wsi.internal.core.util.WSIProperties; - -/** - * This abstract class defines the factory interface that can be used to - * read and write all of the Conformance XML documents. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public abstract class DocumentFactory -{ - /** - * Get a new instance of a DocumentFactory. - * @return a new instance of a DocumentFactory. - * @throws WSIException if problems occur during creation. - */ - public static DocumentFactory newInstance() throws WSIException - { - // Return instance of factory - return newInstance(getFactoryClassName()); - } - - /** - * Get a new instance of a DocumentFactory using the specified - * factory class name. - * @param factoryClassName factory class name. - * @return a new instance of a DocumentFactory. - * @throws WSIException if problems occur during creation. - */ - public static DocumentFactory newInstance(String factoryClassName) - throws WSIException - { - DocumentFactory documentFactory = null; - - // If a factory class name was specified, then create object - if (factoryClassName != null) - { - try - { - // Get class object - Class factoryClass = Class.forName(factoryClassName); - - // Create new factory - documentFactory = (DocumentFactory) factoryClass.newInstance(); - } - - catch (Exception e) - { - throw new WSIException( - "Could not instantiate document factory class: " - + factoryClassName - + ".", - e); - } - } - else - { - throw new WSIException("A WSIDocumentFactory implementation class was not found."); - } - - // Return factory - return documentFactory; - } - - // DOCUMENT TYPES - - /** - * Create log file. - * @return log file. - */ - public abstract Log newLog(); - - /** - * Create monitor config. - * @return newly created monitor config. - */ - public abstract MonitorConfig newMonitorConfig(); - - /** - * Create analyzer config. - * @return newly created analyzer config. - */ - public abstract AnalyzerConfig newAnalyzerConfig(); - - /** - * Create profile assertions. - * @return newly created profile assertions. - */ - public abstract ProfileAssertions newProfileAssertions(); - - /** - * Create report. - * @return newly created report. - */ - public abstract Report newReport(); - - // READERS - - /** - * Create profile assertions reader. - * @return newly created profile assertions reader. - */ - public abstract ProfileAssertionsReader newProfileAssertionsReader(); - - /** - * Create monitor config reader. - * @return newly created monitor config reader. - */ - public abstract MonitorConfigReader newMonitorConfigReader(); - - /** - * Create analyzer config reader. - * @return newly created analyzer config reader. - */ - public abstract AnalyzerConfigReader newAnalyzerConfigReader(); - - /** - * Create log reader. - * @return newly created log reader. - */ - public abstract LogReader newLogReader(); - - // ADD: Add other readers - - // WRITERS - - /** - * Create report writer. - * @return newly created report writer. - */ - public abstract ReportWriter newReportWriter(); - - /** - * Create log writer. - * @return newly created log writer. - */ - public abstract LogWriter newLogWriter(); - - /** - * Create a reporter. - * @return newly created reporter. - */ - public abstract Reporter newReporter(Report report, ReportWriter reportWriter); - - // ADD: Add other writers - - /** - * Find the factory class name which can be specified as a Java property. - */ - private static String getFactoryClassName() - { - // Get property value - return WSIProperties.getProperty( - WSIProperties.PROP_DOCUMENT_FACTORY, - WSIProperties.DEF_DOCUMENT_FACTORY); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/document/DocumentReader.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/document/DocumentReader.java deleted file mode 100644 index 387ce5336..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/document/DocumentReader.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.document; - -/** - * Defines the interface used to read the Conformance XML documents. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface DocumentReader -{ - /** - * Get document location. - * @return document location. - * @see #setLocation - */ - public String getLocation(); - - /** - * Set document location. - * @param documentURI document location. - * @see #getLocation - */ - public void setLocation(String documentURI); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/document/DocumentWriter.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/document/DocumentWriter.java deleted file mode 100644 index 9c8892654..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/document/DocumentWriter.java +++ /dev/null @@ -1,67 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.document; - -import java.io.IOException; -import java.io.Reader; -import java.io.Writer; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.w3c.dom.Document; - -/** - * Defines the interface used to write the Conformance XML documents. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface DocumentWriter -{ - /** - * Get the Document object associated with this Conformance document. - * @return the Document object associated with this Conformance document. - * @throws UnsupportedOperationException if operation is not supported. - */ - public Document getDocument() throws UnsupportedOperationException; - - /** - * Set writer. - * @param documentLocation the location of the document. - * @throws IOException if failed or interrupted I/O operations. - */ - public void setWriter(String documentLocation) throws IOException; - - /** - * Write out only a part of a document to the location - * that was previously set using the setLocation method. - * @param reader a Reader object. - * @throws WSIException if there is trouble writing out the document. - * @throws IllegalStateException if this operation has been invoked - * at an illegal or inappropriate time. - */ - public void write(Reader reader) throws WSIException, IllegalStateException; - - /** - * Write out only a part of a document. - * @param reader a Reader object. - * @param writer a Writer object. - * @throws WSIException if there is trouble writing out the document. - */ - public void write(Reader reader, Writer writer) throws WSIException; - - /** - * Close writer. - * @throws WSIException if there is trouble closing the writer. - * @throws IllegalStateException if this operation has been invoked - * at an illegal or inappropriate time. - */ - public void close() throws WSIException, IllegalStateException; -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/document/WSIDocument.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/document/WSIDocument.java deleted file mode 100644 index b8db0d700..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/document/WSIDocument.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.document; - -/** - * Defines the interface used for all Conformance XML documents. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface WSIDocument extends DocumentElement -{ - /** - * Get the location of the document. - * @return the location of the document. - * @see #setLocation - */ - public String getLocation(); - - /** - * Set the location of the document. - * @param documentURI the location of the document. - * @see #getLocation - */ - public void setLocation(String documentURI); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/document/impl/DocumentFactoryImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/document/impl/DocumentFactoryImpl.java deleted file mode 100644 index 293ffd9e7..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/document/impl/DocumentFactoryImpl.java +++ /dev/null @@ -1,166 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.document.impl; - -import org.eclipse.wst.wsi.internal.core.analyzer.config.AnalyzerConfig; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AnalyzerConfigReader; -import org.eclipse.wst.wsi.internal.core.analyzer.config.impl.AnalyzerConfigImpl; -import org.eclipse.wst.wsi.internal.core.analyzer.config.impl.AnalyzerConfigReaderImpl; -import org.eclipse.wst.wsi.internal.core.document.DocumentFactory; -import org.eclipse.wst.wsi.internal.core.log.Log; -import org.eclipse.wst.wsi.internal.core.log.LogReader; -import org.eclipse.wst.wsi.internal.core.log.LogWriter; -import org.eclipse.wst.wsi.internal.core.log.impl.LogImpl; -import org.eclipse.wst.wsi.internal.core.log.impl.LogReaderImpl; -import org.eclipse.wst.wsi.internal.core.log.impl.LogWriterImpl; -import org.eclipse.wst.wsi.internal.core.monitor.config.MonitorConfig; -import org.eclipse.wst.wsi.internal.core.monitor.config.MonitorConfigReader; -import org.eclipse.wst.wsi.internal.core.monitor.config.impl.MonitorConfigImpl; -import org.eclipse.wst.wsi.internal.core.monitor.config.impl.MonitorConfigReaderImpl; -import org.eclipse.wst.wsi.internal.core.profile.ProfileAssertions; -import org.eclipse.wst.wsi.internal.core.profile.ProfileAssertionsReader; -import org.eclipse.wst.wsi.internal.core.profile.impl.ProfileAssertionsImpl; -import org.eclipse.wst.wsi.internal.core.profile.impl.ProfileAssertionsReaderImpl; -import org.eclipse.wst.wsi.internal.core.report.Report; -import org.eclipse.wst.wsi.internal.core.report.ReportWriter; -import org.eclipse.wst.wsi.internal.core.report.Reporter; -import org.eclipse.wst.wsi.internal.core.report.impl.DefaultReporter; -import org.eclipse.wst.wsi.internal.core.report.impl.ReportImpl; -import org.eclipse.wst.wsi.internal.core.report.impl.ReportWriterImpl; - -/** - * This is the implementation of the Conformance document factory which provides access to - * implementations of the documents, readers and writers. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class DocumentFactoryImpl extends DocumentFactory -{ - /** - * Document factory implementation. - */ - public DocumentFactoryImpl() - { - } - - /** - * Create log file. - */ - public Log newLog() - { - return new LogImpl(); - } - - /** - * Create monitor config. - */ - public MonitorConfig newMonitorConfig() - { - return new MonitorConfigImpl(); - } - - /** - * Create analyzer config. - */ - public AnalyzerConfig newAnalyzerConfig() - { - return new AnalyzerConfigImpl(); - } - - /** - * Create profile assertions. - */ - public ProfileAssertions newProfileAssertions() - { - return new ProfileAssertionsImpl(); - } - - /** - * Create report. - */ - public Report newReport() - { - return new ReportImpl(); - } - - /** - * Create monitor config reader. - */ - public MonitorConfigReader newMonitorConfigReader() - { - return new MonitorConfigReaderImpl(); - } - - /** - * Create analyzer config reader. - */ - public AnalyzerConfigReader newAnalyzerConfigReader() - { - return new AnalyzerConfigReaderImpl(); - } - - /** - * Create profile assertions reader. - */ - public ProfileAssertionsReader newProfileAssertionsReader() - { - // Return implementation - return new ProfileAssertionsReaderImpl(); - } - - /** - * Create log reader. - */ - public LogReader newLogReader() - { - // Return implementation - return new LogReaderImpl(); - } - - // WRITERS - - /** - * Create log writer. - */ - public LogWriter newLogWriter() - { - return new LogWriterImpl(); - } - - /** - * Create a new instance of a DocumentReader. - */ - public ReportWriter newReportWriter() - { - // Return implementation - return new ReportWriterImpl(); - } - - /** - * Create a new instance of a DefaultReporter - */ - public Reporter newReporter(Report report, ReportWriter reportWriter) - { - return new DefaultReporter(report, reportWriter); - } - - /** - * Find the factory class name which can be specified as a Java property. - */ - //private static String getFactoryClassName() - //{ - // // Get property value - // return WSIProperties.getProperty( - // WSIProperties.PROP_DOCUMENT_FACTORY, - // WSIProperties.DEF_DOCUMENT_FACTORY); - //} -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/document/impl/DocumentWriterImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/document/impl/DocumentWriterImpl.java deleted file mode 100644 index a61e6d1f0..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/document/impl/DocumentWriterImpl.java +++ /dev/null @@ -1,133 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2003 IBM Corporation, Beacon Information Technology Inc. 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 - Initial API and implementation - * BeaconIT - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.document.impl; - -import java.io.BufferedReader; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStreamWriter; -import java.io.PrintWriter; -import java.io.Reader; -import java.io.UnsupportedEncodingException; -import java.io.Writer; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.document.DocumentWriter; -import org.w3c.dom.Document; - -/** - * Defines the implementation used to write the Conformance XML - * documents. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public abstract class DocumentWriterImpl implements DocumentWriter -{ - /** - * Document writer. - */ - protected Writer writer = null; - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentWriter#getDocument() - */ - public Document getDocument() throws UnsupportedOperationException - { - // ADD: - return null; - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentWriter#setWriter(String) - */ - public void setWriter(String documentLocation) - throws UnsupportedEncodingException, FileNotFoundException - { - // I18N: 2003.02.26 modified by K.Nakagome@BeaconIT - this.writer = - new PrintWriter( - new OutputStreamWriter( - new FileOutputStream(documentLocation), - "UTF-8")); - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentWriter#write(Reader) - */ - public synchronized void write(Reader reader) - throws WSIException, IllegalStateException - { - // If the writer was not specified, then throw an exception - if (writer == null) - throw new IllegalStateException("Could not write document since writer was not set."); - - write(reader, writer); - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentWriter#write(Reader, Writer) - */ - public synchronized void write(Reader reader, Writer writer) - throws WSIException - { - // Create buffered reader - BufferedReader bufReader = new BufferedReader(reader); - - // Create print writer - PrintWriter printWriter = new PrintWriter(writer); - - String nextLine = null; - - try - { - // Read each line from the reader - while ((nextLine = bufReader.readLine()) != null) - { - // Write text and flush stream - printWriter.println(nextLine); - } - } - - catch (Exception e) - { - throw new WSIException("Could not write document.", e); - } - - // Flush and close the writer - printWriter.flush(); - //printWriter.close(); - } - - /** - * Close writer. - */ - public void close() throws WSIException, IllegalStateException - { - // If the writer was not specified, then throw an exception - if (writer == null) - throw new IllegalStateException("Could not write log file since writer was not set."); - - try - { - // Close the writer - writer.close(); - } - - catch (IOException ioe) - { - throw new WSIException(ioe.toString(), ioe); - } - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/Log.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/Log.java deleted file mode 100644 index 4c586b7e9..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/Log.java +++ /dev/null @@ -1,98 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.log; - -import java.util.Vector; - -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.document.WSIDocument; - -/** - * The interface for the message log file. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface Log extends WSIDocument -{ - /** - * Element name. - */ - public static final String ELEM_NAME = WSIConstants.ELEM_LOG; - - /** - * QName. - */ - public static final QName QNAME = - new QName(WSIConstants.NS_URI_WSI_LOG, ELEM_NAME); - - /** - * Add message to log file. The message will contain both - * transport and content information. - * @param logEntry message containing both transport and content information. - * @throws WSIException if problems occur adding the message to log file. - */ - public void addLogEntry(MessageEntry logEntry) throws WSIException; - - /** - * Get the number of log entries. - * @return the number of log entries. - */ - public int getEntryCount(); - - /** - * Get a specific log file entry. - * @param index index into log entries. - * @return log file entry at specified index. - */ - public MessageEntry getLogEntry(int index); - - /** - * Get log entry list. - * @return list of log entries. - */ - public Vector getLogEntryList(); - - /** - * Get last log entry. - * @return ast log entry. - */ - public MessageEntry getLastLogEntry(); - - /** - * Create log entry object. - * @return newly created log entry. - */ - public MessageEntry createLogEntry(); - - /** - * Set style sheet string. - * @param styleSheetString a style sheet string. - */ - public void setStyleSheetString(String styleSheetString); - - /** - * Get start element string. - * @param namespaceName a namespace prefix. - * @return start element string. - */ - public String getStartXMLString(String namespaceName); - - /** - * Get end element string. - * @param namespaceName a namespace prefix. - * @return end element string. - */ - public String getEndXMLString(String namespaceName); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/LogBuilder.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/LogBuilder.java deleted file mode 100644 index d34ca77a8..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/LogBuilder.java +++ /dev/null @@ -1,431 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.log; - -import java.io.PrintWriter; -import java.io.StringReader; -import java.io.StringWriter; -import java.util.Date; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.core.resources.IFile; -import org.eclipse.wst.wsi.internal.core.ToolInfo; -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.common.AddStyleSheet; -import org.eclipse.wst.wsi.internal.core.common.impl.AddStyleSheetImpl; -import org.eclipse.wst.wsi.internal.core.document.DocumentFactory; -import org.eclipse.wst.wsi.internal.core.log.impl.LogImpl; -import org.eclipse.wst.wsi.internal.core.log.impl.LogWriterImpl; -import org.eclipse.wst.wsi.internal.core.log.impl.MessageEntryImpl; -import org.eclipse.wst.wsi.internal.core.monitor.config.Comment; -import org.eclipse.wst.wsi.internal.core.monitor.config.ManInTheMiddle; -import org.eclipse.wst.wsi.internal.core.monitor.config.MonitorConfig; -import org.eclipse.wst.wsi.internal.core.monitor.config.impl.CommentImpl; -import org.eclipse.wst.wsi.internal.core.monitor.config.impl.ManInTheMiddleImpl; -import org.eclipse.wst.wsi.internal.core.util.Utils; - -import com.ibm.icu.text.SimpleDateFormat; -import com.ibm.icu.util.TimeZone; - -/** - * Given a list of RequestHandlers, this class builds a - * WS-I compliant Message Log file. - * - * @author David Lauzon, IBM - */ -public class LogBuilder -{ - public static final String copyright = "(c) Copyright IBM Corporation 2000, 2002."; - - /** - * IDs to identify requests and corresponding responses. - */ - protected int conversationId = 1; - - /** - * IDs to uniquely identify each and every message within the log file. - */ - protected int id = 1; - - /** - * The actual log object. - */ - protected Log log = null; - - /** - * The log file. - */ - protected IFile ifile; - - /** - * Tool information property values. - */ - private static final String TOOL_NAME = "Monitor"; - private static final String TOOL_VERSION = "1.0"; - private static final String TOOL_RELEASE_DATE = "2003-03-20"; - private static final String TOOL_IMPLEMENTER = "IBM"; - private static final String TOOL_LOCATION = ""; - - /** - * Common timestamp format. - */ - public static final SimpleDateFormat timestampFormat = new SimpleDateFormat ("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); - - /** - * Constructor. - * @param ifile: the file handler for the log. - */ - public LogBuilder(IFile ifile) - { - this.ifile = ifile; - } - - /** - * This builds and then returns a log based on the list of request-response pairs. - * @param requestResponses: a list of messages in the form of request-response pairs. - * @return a log based on a list of request-response pairs. - */ - public Log buildLog(List requestResponses) - { - log = new LogImpl(); - logMonitorInformation(); - - // log the messages - for (Iterator i = requestResponses.iterator(); i.hasNext();) - { - RequestHandler rr = (RequestHandler)i.next(); - if (rr != null) { - try { - logRequestResponse(rr); - } catch (Exception e) { - /* Empty catch block. This request/response pair is not a valid SOAP - * message, so skip it. */ - } - } - } - return log; - } - - /** - * Currently a no-op. - */ - public void logMonitorInformation() - { - } - - /** - * Log the request-response pair. - *@param rr: a request-response pair. - */ - protected void logRequestResponse(RequestHandler rr) - { - if (rr != null) - { - byte[] requestHeaderBytes = rr.getRequestHeader(); - byte[] responseHeaderBytes = rr.getResponseHeader(); - - if ((requestHeaderBytes != null) || (responseHeaderBytes != null)) - { - long timestamp = rr.getDate().getTime(); - String localHostAndPort = "localhost:" + rr.getLocalPort(); - String remoteHostAndPort = rr.getRemoteHost() + ":" + rr.getRemotePort(); - - int conversationId = getNextAvailableConversationId(); - try - { - if (requestHeaderBytes != null) - { - String requestHeader = new String(requestHeaderBytes); - byte[] unchunkedRequestBody = rr.getRequestContent(); - int requestId = getNextAvailableId(); - - MessageEntry messageEntryRequest = createMessageEntry(requestId, conversationId, - MessageEntry.TYPE_REQUEST, timestamp, localHostAndPort, - remoteHostAndPort, unchunkedRequestBody, requestHeader); - - if (messageEntryRequest != null) - { - log.addLogEntry(messageEntryRequest); - } - } - if (responseHeaderBytes != null) - { - String responseHeader = new String(responseHeaderBytes); - byte[] unchunkedResponseBody = rr.getResponseContent(); - int responseId = getNextAvailableId(); - - MessageEntry messageEntryResponse = createMessageEntry(responseId, conversationId, - MessageEntry.TYPE_RESPONSE, timestamp + rr.getResponseTime(), remoteHostAndPort, - localHostAndPort, unchunkedResponseBody, responseHeader); - - if (messageEntryResponse != null) - { - log.addLogEntry(messageEntryResponse); - } - } - } - catch (Exception e) - { - // ignore the request response pair - } - } - } - } - - /** - * Returns true if the content of the message has at least - * one left and one right bracket. - * @param message: a message content. - * @return true if the content of the message has at least - * one left and one right bracket. - */ - public boolean isMessageWithBrackets(String message) - { - return ((message != null) && - (message.indexOf("<")!= -1) && - (message.indexOf(">") != -1)); - } - /** - * Returns the header of a message. - * @param requestOrResponse: a message. - * @param headerLength: the length of the header in the message. - * @return the header of a message. - */ - protected String getHeader(byte[] requestOrResponse, int headerLength) - { - String result = null; - - if ((requestOrResponse != null) && - (headerLength > 0) && - (requestOrResponse.length >= headerLength)) - { - byte[] header = new byte[headerLength]; - System.arraycopy(requestOrResponse, 0, header, 0, headerLength); - result = new String(header); - } - return result; - } - - /** - * Returns the body of a message. - * @param requestOrResponse: a message. - * @param headerLength: the length of the header in the message. - * @return the body of a message. - */ - protected String getBody(byte[] requestOrResponse, int headerLength) - { - String result = null; - - if ((requestOrResponse != null) && - (headerLength > 0) && - (requestOrResponse.length > headerLength)) - { - int bodyLength = requestOrResponse.length - headerLength; - byte[] body = new byte[bodyLength]; - System.arraycopy(requestOrResponse, headerLength, body, 0, bodyLength); - result = new String(body); - } - return result; - } - - /** - * Create a log entry. - * @param id: unique message id within the log. - * @param conversationId: conversation id to identify request-response pairs. - * @param type: type indicating a request or response. - * @param timestamp: the date and time of the message. - * @param senderHostAndPort: the host and port of the sender. - * @param receiverHostAndPort: the host and port of the receiver. - * @param messageContent: the content or body of the message. - * @param header: the header of the message. - * @return a log entry. - */ - protected MessageEntry createMessageEntry(int id, int conversationId, String type, long timestamp, - String senderHostAndPort, String receiverHostAndPort, byte[] messageContent, String header) - { - // Create log entry - MessageEntry messageEntry = new MessageEntryImpl(); - messageEntry.setId(String.valueOf(id)); - messageEntry.setConversationId(String.valueOf(conversationId)); - messageEntry.setType(type); - messageEntry.setTimestamp(getTimestamp(new Date(timestamp))); - messageEntry.setSenderHostAndPort(senderHostAndPort); - messageEntry.setReceiverHostAndPort(receiverHostAndPort); - messageEntry.setEncoding(WSIConstants.DEFAULT_XML_ENCODING); - - messageEntry.setHTTPHeaders(header); - - if (Utils.isMultipartRelatedMessage(header)) - { - MimeParts mimeParts = Utils.parseMultipartRelatedMessage(messageContent, header, WSIConstants.DEFAULT_XML_ENCODING); - if (mimeParts == null) - { - // problem creating Mimeparts -- treat it as simple SOAP message - if (messageContent != null) - { - messageEntry.setMessage(new String(messageContent)); - } - else - { - messageEntry.setMessage(""); - } - messageEntry.setMimeContent(false); - } - else - { - messageEntry.setMimeParts(mimeParts); - messageEntry.setMimeContent(true); - } - } - else - { - // Get the message content - if (messageContent != null) - { - messageEntry.setMessage(new String(messageContent)); - } - else - { - messageEntry.setMessage(""); - } - messageEntry.setMimeContent(false); - } - return messageEntry; - } - - /** - * Returns the next available id, then increments the id value. - * @return the next available id. - */ - protected int getNextAvailableId() - { - return id++; - } - - /** - * Returns the next available conversation id, then increments the conversation id value. - * A conversation id identfies a request and its corresponding response. - * @return the next available converasationid. - */ - protected int getNextAvailableConversationId() - { - return conversationId++; - } - - public int getHeaderLength(Integer obj) - { - int result = 0; - if (obj != null) - { - result = obj.intValue(); - } - return result; - } - - /** - * Write log out to file. - * @param log: log to be written to file. - */ - - public void writeLog(Log log) - { - try - { - // Get log writer - LogWriter logWriter = new LogWriterImpl(); - - logWriter.setWriter(ifile.getLocation().toString()); - - // Write start of log file - logWriter.write(new StringReader(log.getStartXMLString(""))); - - // Write monitor tool information - String monitorInfo = generateMonitorToolInfo(); - logWriter.write(new StringReader(monitorInfo)); - - for (int i=0; i<log.getEntryCount(); i++) - { - MessageEntry me = log.getLogEntry(i); - logWriter.write(new StringReader(me.toXMLString(""))); - } - logWriter.write(new StringReader(log.getEndXMLString(""))); - logWriter.close(); - } - catch (Exception e) - { - System.out.println("Exception thrown when printing log file."); - } - } - - - /** - * Returns XML string representation of the Monitor tool. - * @return XML string representation of the Monitor tool. - */ - protected String generateMonitorToolInfo() - { - - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - try - { - // Tool information - ToolInfo toolInfo = new ToolInfo(TOOL_NAME, TOOL_VERSION, TOOL_RELEASE_DATE, TOOL_IMPLEMENTER, TOOL_LOCATION); - - DocumentFactory documentFactory = DocumentFactory.newInstance(); - MonitorConfig monitorConfig = documentFactory.newMonitorConfig(); - - Comment comment = new CommentImpl(); - comment.setText("Comment"); - monitorConfig.setComment(comment); - monitorConfig.setLogLocation("URL"); - monitorConfig.setReplaceLog(true); - - AddStyleSheet addStyleSheet = new AddStyleSheetImpl(); - monitorConfig.setAddStyleSheet(addStyleSheet); - - monitorConfig.setLogDuration(600); - monitorConfig.setTimeout(3); - - ManInTheMiddle manInTheMiddle = new ManInTheMiddleImpl(); - monitorConfig.setManInTheMiddle(manInTheMiddle); - - monitorConfig.setLocation("documentURI"); - monitorConfig.setVerboseOption(false); - - // Start - pw.print(toolInfo.getStartXMLString("")); - - // Config - pw.print(monitorConfig.toXMLString(WSIConstants.NS_NAME_WSI_MONITOR_CONFIG)); - - // End - pw.println(toolInfo.getEndXMLString("")); - } - catch (Exception e) - { - } - return sw.toString(); - } - - /** - * Get the given date and time as a timestamp. - * @param date: a date object. - * @return the given date and time as a timestamp. - */ - public static String getTimestamp(Date date) - { - timestampFormat.setTimeZone(TimeZone.getDefault()); - return timestampFormat.format(date); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/LogReader.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/LogReader.java deleted file mode 100644 index cd6012844..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/LogReader.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.log; - -import java.io.Reader; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.document.DocumentReader; - -/** - * Defines the interface used to read the Log file. - * - * @version 1.0.1 - * @author Neil Delima (nddelima@ca.ibm.com) - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface LogReader extends DocumentReader -{ - /** - * Start reading log entries from a specified URI location using the specified callback. - * - * @param logURI the location of the log file. - * @param logEntryHandler the function that will be called to process each log entry. - * @throws WSIException if problem reading log. - */ - public void readLog(String logURI, MessageEntryHandler logEntryHandler) - throws WSIException; - - /** - * Start reading log entries from a reader using the specified callback. - * - * @param reader the source for the log file. - * @param logEntryHandler the function that will be called to process each log entry. - * @throws WSIException if problem reading log. - */ - public void readLog(Reader reader, MessageEntryHandler logEntryHandler) - throws WSIException; - - // ADD: Do we need to add functions that will read the entire log file? -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/LogWriter.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/LogWriter.java deleted file mode 100644 index e8e33e896..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/LogWriter.java +++ /dev/null @@ -1,46 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.log; - -import java.io.Writer; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.document.DocumentWriter; - -/** - * Defines the interface used to write the Log file. - * - * @version 1.0.1 - * @author Neil Delima (nddelima@ca.ibm.com) - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface LogWriter extends DocumentWriter -{ - /** - * Write the entire contents of the document using the location - * that was previously set using the setLocation method. - * @param log the Log object. - * @throws IllegalStateException if this operation has been invoked - * at an illegal or inappropriate time - * @throws WSIException if problems occur during the writing of - * the log. - */ - public void write(Log log) throws IllegalStateException, WSIException; - - /** - * Write the entire contents of the document. - * @param log the Log object. - * @param writer a Writer object. - * @throws WSIException if problems occur during the writing of - * the log. - */ - public void write(Log log, Writer writer) throws WSIException; -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/MessageEntry.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/MessageEntry.java deleted file mode 100644 index 1b58ff311..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/MessageEntry.java +++ /dev/null @@ -1,217 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.log; - -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.document.DocumentElement; -import org.eclipse.wst.wsi.internal.core.xml.dom.ElementLocation; - -/** -* Message entry interface. -* -* @version 1.0.1 -* @author Peter Brittenham (peterbr@us.ibm.com) -*/ -public interface MessageEntry extends DocumentElement -{ - /** - * Element name. - */ - public static final String ELEM_NAME = WSIConstants.ELEM_MESSAGE_ENTRY; - - /** - * QName. - */ - public static final QName QNAME = - new QName(WSIConstants.NS_URI_WSI_LOG, ELEM_NAME); - - /** - * Type of log entry. - */ - public static final String TYPE_REQUEST = "request"; - public static final String TYPE_RESPONSE = "response"; - - /** - * Gets the id. - * @return the id. - * @see #setId - */ - public String getId(); - - /** - * Sets the id. - * @param id the identifier for the log entry. - * @see #getId - */ - public void setId(String id); - - /** - * Gets the conversation id. - * @return the conversation id. - * @see #setConversationId - */ - public String getConversationId(); - - /** - * Sets the conversation id. - * @param conversationId the conversation id. - * @see #getConversationId - */ - public void setConversationId(String conversationId); - - /** - * Gets the timestamp. - * @return the timestamp. - * @see #setTimestamp - */ - public String getTimestamp(); - - /** - * Sets the timestamp. - * @param timestamp the timestamp. - * @see #getTimestamp - */ - public void setTimestamp(String timestamp); - - /** - * Gets the type. - * @return the type. - * @see #setType - */ - public String getType(); - - /** - * Sets the type. - * @param type the type. - * @see #getType - */ - public void setType(String type); - - /** - * Gets the sender host and port. - * @return the sender host and port. - * @see #setSenderHostAndPort - */ - public String getSenderHostAndPort(); - - /** - * Sets the sender host and port. - * @param senderHostAndPort the sender host and port. - * @see #getSenderHostAndPort - */ - public void setSenderHostAndPort(String senderHostAndPort); - - /** - * Gets the receiver host and port. - * @return the receiver host and port. - * @see #setReceiverHostAndPort - */ - public String getReceiverHostAndPort(); - - /** - * Sets the receiver host and port. - * @param receiverHostAndPort the receiver host and port. - * @see #getReceiverHostAndPort - */ - public void setReceiverHostAndPort(String receiverHostAndPort); - - /** - * Gets the message. - * @return the message. - * @see #setMessage - */ - public String getMessage(); - - /** - * Sets the message. - * @param message the message. - * @see #getMessage - */ - public void setMessage(String message); - - /** - * Sets the encoding. - * @param encoding the encoding. - * @see #getMessage - */ - public void setEncoding(String encoding); - - /** - * Gets the BOM. - * @return the BOM. - * @see #setBOM - */ - public int getBOM(); - - /** - * Sets the BOM. - * @param bom the BOM. - * @see #getBOM - */ - public void setBOM(int bom); - - /** - * Gets the HTTP headers. - * @return the HTTP headers. - * @see #setHTTPHeaders - */ - public String getHTTPHeaders(); - - /** - * Sets the HTTP headers. - * @param httpHeaders the HTTP headers. - * @see #getHTTPHeaders - */ - public void setHTTPHeaders(String httpHeaders); - - /** - * Gets element location. - * @return element location. - * @see #setElementLocation - */ - public ElementLocation getElementLocation(); - - /** - * Sets element location. - * @param elementLocation element location. - * @see #getElementLocation - */ - public void setElementLocation(ElementLocation elementLocation); - - /** - * If content is MIME type returns true, otherwise false - * @return if content is MIME type returns true, otherwise false - */ - public boolean isMimeContent(); - - /** - * Set flag to determine if content is MIME type. - * @param isMimeContent a booolean value - */ - public void setMimeContent(boolean isMimeContent); - - /** - * Returns array of the MIME parts of the message. - * @return array of the MIME parts of the message. - * @see #isMIMEContent() - */ - public MimeParts getMimeParts(); - - /** - * Sets the MIME parts of the message. - * @param mimeParts he MIME parts of the message. - * @see #getMimeParts - */ - public void setMimeParts(MimeParts mimeParts); - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/MessageEntryHandler.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/MessageEntryHandler.java deleted file mode 100644 index 0401e2ad7..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/MessageEntryHandler.java +++ /dev/null @@ -1,41 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.log; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.report.ArtifactReference; - -/** - * Defines the interface for the MessageEntry handler. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - * @author Graham Turrell (gturrell@uk.ibm.com) - */ -public interface MessageEntryHandler -{ - /** - * Process artifact reference. - * @param artifactReference artifact reference. - * @throws WSIException if problems occur while processing artifact reference. - */ - public void processArtifactReference(ArtifactReference artifactReference) - throws WSIException; - - /** - * Process a single log entry. - * @param entryContext a single log entry. - * @throws WSIException if problems occur while processing a single log entry. - - */ - public void processLogEntry(EntryContext entryContext) throws WSIException; -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/MimePart.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/MimePart.java deleted file mode 100644 index ee46dc519..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/MimePart.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.log; - -import org.eclipse.wst.wsi.internal.core.document.DocumentElement; - -/** - * @author lauzond - * - * TODO To change the template for this generated type comment go to Window - - * Preferences - Java - Code Style - Code Templates - */ -public interface MimePart extends DocumentElement { - - /** - * Gets the content for the mime part. - * - * @return the mime content. - * @see #setContent - */ - public String getContent(); - - /** - * Sets the content for the mime part. - * - * @param mimeContent - * the mime content. - * @see #getContent - */ - public void setContent(String mimeContent); - - /** - * Gets the headers for the mime part. - * - * @return the mime headers. - * @see #setMimeHeaders - */ - public String getHeaders(); - - /** - * Sets the headers for the mime part. - * - * @param mimeHeaders - * the mime headers. - * @see #getHeaders - */ - public void setHeaders(String mimeHeaders); - - /** - * Gets the boundary strings for the mime part. Note that the last part of a - * multipart/ related message will have 2 boundary strings. All other parts - * will have one. - * - * @return the boundary strings. - * @see #setBoundaryStrings - */ - public String[] getBoundaryStrings(); - - /** - * Sets the boundary strings for the mime part. Note that the last part of a - * multipart/ related message will have 2 boundary strings. All other parts - * will have one. - * - * @param boundaryStrings - * the boundary strings. - * @see #getBoundaryStrings - */ - public void setBoundaryStrings(String[] mimeHeaders); - - public String toXMLString(String namespaceName); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/MimeParts.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/MimeParts.java deleted file mode 100644 index cce3f1c15..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/MimeParts.java +++ /dev/null @@ -1,60 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.log; - -import java.util.Collection; - -/** - * Mime parts interface. - * - * @version 1.0.1 - * @author David Lauzon (lauzond@ca.ibm.com) - */ -public interface MimeParts -{ - /** - * Returns the start attribute value from the . - * @return the he start attribute value. - * @see #setRootPart - */ - /** - * Returns the root part, otherwise null. - * @return the root part. - * @see #setRootPart - */ - public MimePart getRootPart(); - - /** - * Sets the root part. - * @param rootPart the root part. - * @see #getRootPart - */ - public void setRootPart(MimePart rootPart); - - /** - * Returns the number of parts. - * @return the number of parts. - */ - public int count(); - - /** - * Gets the conversation id. - * @return the conversation id. - * @see #setConversationId - */ - public void addPart(MimePart part); - - /** - * Returns a list of mime parts. - * @return a list of mime parts. - */ - public Collection getParts(); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/RequestHandler.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/RequestHandler.java deleted file mode 100644 index 8a92df449..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/RequestHandler.java +++ /dev/null @@ -1,132 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.log; - -import java.util.Date; - -/** - * Represents a TCP/IP request made between the client and the server. - * Each request represents a request-response pair, where the request - * is from client -> server, and the response is from server -> client. - * - * @author lauzond - */ - -public interface RequestHandler -{ - /** - * Returns just the HTTP header of the request portion of this request. - * @return the content bytes - */ - byte[] getRequestHeader(); - - /** - * Add the HTTP header of the request portion of this request. - * @param requestHeader byte[] - */ - void setRequestHeader(byte[] requestHeader); - - /** - * Returns just the HTTP header of the response portion of this request. - * @return the content bytes - */ - byte[] getResponseHeader(); - - /** - * Add the HTTP header of the response portion of this request. - * @param responseHeader byte[] - */ - void setResponseHeader(byte[] responseHeader); - - /** - * Returns just the HTTP body of the request portion of this request. - * @return the content bytes - */ - byte[] getRequestContent(); - - /** - * Add the HTTP body of the request portion of this request. - * @param requestContent byte[] - */ - void setRequestContent(byte[] requestContent); - - /** - * Returns just the HTTP body of the response portion of this request. - * @return the content bytes - */ - byte[] getResponseContent(); - - /** - * Add the HTTP body of the response portion of this request. - * @param responseContent byte[] - */ - void setResponseContent(byte[] responseContent); - - /** - * Returns the time this request was made. - * @return the timestamp - */ - Date getDate(); - - /** - * Add the time this request was made. - * @param date the time - */ - void setDate(Date date); - - /** - * Returns the local (client) port. - * @return the local port number - */ - int getLocalPort(); - - /** - * Add the local (client) port. - * @param localPort the local port - */ - void setLocalPort(int localPort); - - /** - * Returns the remote (server) port. - * @return the remote port number - */ - int getRemotePort(); - - /** - * Add the the remote (server) port. - * @param remotePort the remote port - */ - void setRemotePort(int remotePort); - - /** - * Returns the remote (server) host. - * @return the remote host - */ - String getRemoteHost(); - - /** - * Add the remote (server) host. - * @param remoteHost the remote host - */ - void setRemoteHost(String remoteHost); - - /** - * Returns the server's response time in milliseconds. - * @return the server's response time - */ - long getResponseTime(); - - /** - * Add the the server's response time in milliseconds. - * @param responseTime the response time - */ - void setResponseTime(long responseTime); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/impl/LogImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/impl/LogImpl.java deleted file mode 100644 index 02d78ad98..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/impl/LogImpl.java +++ /dev/null @@ -1,219 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.log.impl; - -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.log.Log; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.util.TestUtils; -import org.eclipse.wst.wsi.internal.core.util.Utils; - -/** - * This class represents the message log file. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class LogImpl implements Log -{ - /** - * Log URI. - */ - protected String logURI = null; - - /** - * Start time stamp. - */ - protected String startTimestamp = null; - - /** - * Log entries. - */ - protected Vector logEntryList = new Vector(); - - /** - * Last log entry. - */ - protected MessageEntry lastLogEntry = null; - - /** - * Log title. - */ - // ADD: Should we provide a way to set the log title? - protected String logTitle = "Message Log File"; - - /** - * Style sheet string. - */ - protected String styleSheetString = null; - - /** - * @see org.eclipse.wst.wsi.internal.core.log.Log#addLogEntry(LogEntry) - */ - public void addLogEntry(MessageEntry logEntry) throws WSIException - { - // Save last log entry - lastLogEntry = logEntry; - - // Add log entry - logEntryList.add(logEntry); - } - - /** - * @see org.eclipse.wst.wsi.internal.core.log.Log#getEntryCount() - */ - public int getEntryCount() - { - return logEntryList.size(); - } - - /** - * @see org.eclipse.wst.wsi.internal.core.log.Log#getLogEntry(int) - */ - public MessageEntry getLogEntry(int index) - { - return (MessageEntry) logEntryList.elementAt(index); - } - - /** - * @see org.eclipse.wst.wsi.internal.core.log.Log#getLogEntryList() - */ - public Vector getLogEntryList() - { - return logEntryList; - } - - /** - * Get last log entry. - */ - public MessageEntry getLastLogEntry() - { - return lastLogEntry; - } - - /** - * Create log entry object. - */ - public MessageEntry createLogEntry() - { - return new MessageEntryImpl(); - } - - /** - * @see org.eclipse.wst.wsi.internal.core.document.WSIDocument#getLocation() - */ - public String getLocation() - { - return this.logURI; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.document.WSIDocument#setLocation(String) - */ - public void setLocation(String documentURI) - { - this.logURI = documentURI; - } - - /** - * Set style sheet string. - */ - public void setStyleSheetString(String styleSheetString) - { - this.styleSheetString = styleSheetString; - } - - /** - * Get start element string. - */ - public String getStartXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - // Create report element - pw.println(WSIConstants.XML_DECL); - if (this.styleSheetString != null) - pw.println(this.styleSheetString); - - // Add XML comment - String comment; - if ((comment = TestUtils.getXMLComment()) != null) - pw.print(comment); - - // Log - pw.print("<" + nsName + ELEM_NAME); - - // REMOVED: No longer required by the monitor spec - //pw.print(" " + WSIConstants.ATTR_NAME + "=\"" + logTitle + "\""); - pw.println( - " " + WSIConstants.ATTR_TIMESTAMP + "=\"" + Utils.getTimestamp() + "\""); - pw.println(" xmlns=\"" + WSIConstants.NS_URI_WSI_LOG + "\""); - pw.println( - " xmlns:" - + WSIConstants.NS_NAME_WSI_MONITOR_CONFIG - + "=\"" - + WSIConstants.NS_URI_WSI_MONITOR_CONFIG - + "\""); - //pw.println(" xmlns:" + WSIConstants.NS_NAME_WSI_COMMON + "=\"" + - // WSIConstants.NS_URI_WSI_COMMON + "\""); - pw.println( - " xmlns:" - + WSIConstants.NS_NAME_XSI - + "=\"" - + WSIConstants.NS_URI_XSI - + "\">"); - - // Add monitor tool info - //pw.println(monitor.toXMLString(nsName)); - - // Return XML string - return sw.toString(); - } - - /** - * Get end element string. - */ - public String getEndXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - // End log element - pw.println("</" + nsName + ELEM_NAME + ">"); - - // Return XML string - return sw.toString(); - } - - /** - * @see org.eclipse.wst.wsi.internal.core.document.DocumentElement#toXMLString(String) - */ - public String toXMLString(String namespaceName) - { - // ADD: - return null; - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/impl/LogReaderImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/impl/LogReaderImpl.java deleted file mode 100644 index 67aa76352..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/impl/LogReaderImpl.java +++ /dev/null @@ -1,857 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.log.impl; - -import java.io.Reader; -import java.util.ArrayList; -import java.util.List; -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.ToolEnvironment; -import org.eclipse.wst.wsi.internal.core.ToolInfo; -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.log.LogReader; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.log.MessageEntryHandler; -import org.eclipse.wst.wsi.internal.core.log.MimePart; -import org.eclipse.wst.wsi.internal.core.log.MimeParts; -import org.eclipse.wst.wsi.internal.core.monitor.config.Comment; -import org.eclipse.wst.wsi.internal.core.monitor.config.impl.CommentImpl; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.MessageValidator; -import org.eclipse.wst.wsi.internal.core.report.ArtifactReference; -import org.eclipse.wst.wsi.internal.core.report.Entry; -import org.eclipse.wst.wsi.internal.core.report.impl.ArtifactReferenceImpl; -import org.eclipse.wst.wsi.internal.core.report.impl.EntryImpl; -import org.eclipse.wst.wsi.internal.core.util.EntryType; -import org.eclipse.wst.wsi.internal.core.util.Utils; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.eclipse.wst.wsi.internal.core.xml.dom.ElementLocation; -import org.xml.sax.Attributes; -import org.xml.sax.InputSource; -import org.xml.sax.Locator; -import org.xml.sax.XMLReader; -import org.xml.sax.helpers.DefaultHandler; - -/** - * Defines the implementation used to read the Log file. - * - * @version 1.0.1 - * @author Neil Delima (nddelima@ca.ibm.com) - * @author Peter Brittenham (peterbr@us.ibm.com) - * @author Graham Turrell (gturrell@uk.ibm.com) - */ -public class LogReaderImpl implements LogReader -{ - /** - * Document location. - */ - private String documentURI; - - /** Used to ensure that the implementer is the first element after the log element **/ - private int firstLogElement = 0; - private int elementCount = 0; - private boolean bMonitorFirst = false; - - private WSIException wsiException = null; - - /** - * @see org.eclipse.wst.wsi.internal.core.log.LogReader#readLog(String, LogEntryHandler) - */ - public void readLog(String logURI, MessageEntryHandler logReaderCallback) - throws WSIException - { - // Read the log file entries - readLog(new InputSource(logURI), logReaderCallback); - } - - /** - * @see org.eclipse.wst.wsi.internal.core.log.LogReader#readLog(Reader, LogEntryHandler) - */ - public void readLog(Reader reader, MessageEntryHandler logReaderCallback) - throws WSIException - { - // Read the log file entries - readLog(new InputSource(reader), logReaderCallback); - } - - /** - * Read and parse the log file. - * @param inputSource an InputSource object - * @param messageEntryHandler a MessageEntryHandler object - * @throws WSIException if a problem occurs while reading the log file. - */ - protected void readLog( - InputSource inputSource, - MessageEntryHandler messageEntryHandler) - throws WSIException - { - try - { - // Get the XML reader - XMLReader xmlReader = XMLUtils.getXMLReader(); - - /** TO DO: The LogFile must be valid wrt its schema. The schemaLocation probably - * needs to be set in some properties file. - * These two are to turn on validation - reader.setFeature(FEATURE_VALIDATION,true); - */ - - // Set the content handler - xmlReader.setContentHandler(new LogFileHandler(messageEntryHandler)); - - // Start parsing the file - xmlReader.parse(inputSource); - - // ADD: Need to find a way to determine when this exception should be thrown, - // since by the time we get here all of the test assertions have been processed. - // Also, only the last exception is propogated back. Should all of the exceptions - // be captured and propogated back? - if (wsiException != null) - { - // TEMP: For now, don't throw the exception - //throw wsiException; - } - - //Requirement, the monitor MUST be the first child of the log. - //Perhaps we need to preprocess the log if this is the first condition to be met. - if (!bMonitorFirst) - throw new WSIException( - "The Element \"" - + WSIConstants.ELEM_MONITOR - + "\" is not the first child of the Element \"log\""); - } - catch (Exception e) - { - throw new WSIException( - "An error occurred while processing the message log file.", - e); - } - } - - /** - * @see org.eclipse.wst.wsi.internal.core.document.DocumentReader#getLocation() - */ - public String getLocation() - { - return this.documentURI; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.document.DocumentReader#setLocation(String) - */ - public void setLocation(String documentURI) - { - this.documentURI = documentURI; - } - - /** - * Process and handles elements and attribute in the log file and invokes - * message validation assertions serially as the file is being processed, - * if a messagevalidator exists. - */ - private class LogFileHandler extends DefaultHandler - { - - /** private members that represent a MessageEntry.*/ - private String id; - private String conversationID; - private String type; - private String timestamp; - private StringBuffer senderHostAndPort = null; - private StringBuffer receiverHostAndPort = null; - private StringBuffer messageContent = null; - private StringBuffer httpHeaders = null; - private StringBuffer boundary = null; - private StringBuffer mimeHeaders = null; - private StringBuffer mimeContent = null; - private MimeParts mimeParts = null; - private List boundaries = null; - - private int bom = 0; - - private String logTimestamp = null; - private StringBuffer monitorComment; - private boolean ignoreComment = false; - - /** Other private members */ - private String currentElement; - - private ElementLocation entryElementLocation = null; - - private ToolInfo toolInfo = null; - - private Vector messageEntryList = new Vector(); - - private MessageEntryHandler logEntryHandler = null; - - private Locator locator = null; - - /** - * Log file handler. - */ - public LogFileHandler(MessageEntryHandler logEntryHandler) - { - this.logEntryHandler = logEntryHandler; - - toolInfo = new ToolInfo(); - toolInfo.setToolEnvironment(new ToolEnvironment()); - } - - /** - * Start document. - */ - public void startDocument() - { - } - - /** - * Set document locato. - */ - public void setDocumentLocator(Locator locator) - { - this.locator = locator; - - // DEBUG: - //System.out.println("line: " + locator.getLineNumber() + ", column: " + locator.getColumnNumber()); - } - - /** - * Start element. - */ - public void startElement( - String namespaceURI, - String localName, - String qName, - Attributes attributes) - { - // DEBUG: - //System.out.println("localName:" + localName + ", line: " + locator.getLineNumber() + ", column: " + locator.getColumnNumber()); - - //Requirement, the implementer MUST be the first child of the log - if (elementCount == 2) - if (firstLogElement == 1) - bMonitorFirst = true; - - elementCount++; - - // <log> - if (localName == WSIConstants.ELEM_LOG) - { - // Save the timestamp value - this.logTimestamp = attributes.getValue(WSIConstants.ATTR_TIMESTAMP); - } - - // <wsi-config:configuration> - else if ( - (localName == WSIConstants.ELEM_CONFIG) - && (namespaceURI == WSIConstants.NS_URI_WSI_MONITOR_CONFIG)) - { - // Save comment element if it exists - ignoreComment = false; - } - - // <wsi-config:comment> - else if ( - (localName == WSIConstants.ELEM_COMMENT) - && (namespaceURI == WSIConstants.NS_URI_WSI_MONITOR_CONFIG)) - { - // If this is the comment element within the configuration element, then get its content - if (!ignoreComment) - { - currentElement = WSIConstants.ELEM_COMMENT; - monitorComment = new StringBuffer(); - } - } - - // <wsi-config:redirect> - else if ( - (localName == WSIConstants.ELEM_REDIRECT) - && (namespaceURI == WSIConstants.NS_URI_WSI_MONITOR_CONFIG)) - { - // After hitting the first redirect statement, ignore all comment elements - ignoreComment = true; - monitorComment = null; - } - - // <monitor> - else if (localName == WSIConstants.ELEM_MONITOR) - { - firstLogElement++; - toolInfo.setName(WSIConstants.ELEM_MONITOR); - - // Get the monitor version and release date - toolInfo.setVersion(attributes.getValue(WSIConstants.ATTR_VERSION)); - toolInfo.setReleaseDate( - attributes.getValue(WSIConstants.ATTR_RELEASE_DATE)); - } - - // <implementer> - else if (localName == WSIConstants.ELEM_IMPLEMENTER) - { - currentElement = WSIConstants.ELEM_IMPLEMENTER; - toolInfo.setImplementer(attributes.getValue(WSIConstants.ATTR_NAME)); - toolInfo.setLocation(attributes.getValue(WSIConstants.ATTR_LOCATION)); - } - - // <runtime> - else if (localName == WSIConstants.ELEM_RUNTIME) - { - currentElement = WSIConstants.ELEM_RUNTIME; - toolInfo.getToolEnvironment().setRuntimeName( - attributes.getValue(WSIConstants.ATTR_NAME)); - toolInfo.getToolEnvironment().setRuntimeVersion( - attributes.getValue(WSIConstants.ATTR_VERSION)); - } - - // <operatingSystem> - else if (localName == WSIConstants.ELEM_OPERATING_SYSTEM) - { - currentElement = WSIConstants.ELEM_OPERATING_SYSTEM; - toolInfo.getToolEnvironment().setOSName( - attributes.getValue(WSIConstants.ATTR_NAME)); - toolInfo.getToolEnvironment().setOSVersion( - attributes.getValue(WSIConstants.ATTR_VERSION)); - } - - // <xmlParser> - else if (localName == WSIConstants.ELEM_XML_PARSER) - { - currentElement = WSIConstants.ELEM_XML_PARSER; - toolInfo.getToolEnvironment().setXMLParserName( - attributes.getValue(WSIConstants.ATTR_NAME)); - toolInfo.getToolEnvironment().setXMLParserVersion( - attributes.getValue(WSIConstants.ATTR_VERSION)); - } - - // <messageEntry> - else if (localName == WSIConstants.ELEM_MESSAGE_ENTRY) - { - currentElement = WSIConstants.ELEM_MESSAGE_ENTRY; - entryElementLocation = new ElementLocation(this.locator); - timestamp = attributes.getValue(WSIConstants.ATTR_TIMESTAMP); - conversationID = attributes.getValue(WSIConstants.ATTR_CONVERSATION_ID); - id = attributes.getValue(WSIConstants.ATTR_ID_UC); - type = attributes.getValue(WSIConstants.ATTR_TYPE); - } - - // <httpHeaders> - else if (localName == WSIConstants.ELEM_HTTP_HEADERS) - { - //Note: Character data could be split up and returned - //in more more than one characters call. - httpHeaders = new StringBuffer(); - currentElement = WSIConstants.ELEM_HTTP_HEADERS; - } - - // <messageContent> - else if (localName == WSIConstants.ELEM_MESSAGE_CONTENT) - { - messageContent = new StringBuffer(); - mimeParts = null; - currentElement = WSIConstants.ELEM_MESSAGE_CONTENT; - String bomString = attributes.getValue(WSIConstants.ATTR_BOM); - if (bomString != null) - bom = Integer.valueOf(bomString).intValue(); - else - bom = 0; - } - - // <messageContentWithAttachments> - else if (localName == WSIConstants.ELEM_MESSAGE_CONTENT_WITH_ATTACHMENTS) - { - messageContent = null; - mimeParts = new MimePartsImpl(); - - String bomString = attributes.getValue(WSIConstants.ATTR_BOM); - if (bomString != null) - bom = Integer.valueOf(bomString).intValue(); - else - bom = 0; - } - - // <mimePart> - else if (localName == WSIConstants.ELEM_MIME_PART) - { - if (boundaries == null) - boundaries = new ArrayList(2); - else - boundaries.clear(); - } - - // <boundaryString> - else if (localName == WSIConstants.ELEM_BOUNDARY_STRING) - { - boundary = new StringBuffer(); - currentElement = WSIConstants.ELEM_BOUNDARY_STRING; - } - - // <mimeHeaders> - else if (localName == WSIConstants.ELEM_MIME_HEADERS) - { - mimeHeaders = new StringBuffer(); - currentElement = WSIConstants.ELEM_MIME_HEADERS; - } - - // <mimeContent> - else if (localName == WSIConstants.ELEM_MIME_CONTENT) - { - mimeContent = new StringBuffer(); - currentElement = WSIConstants.ELEM_MIME_CONTENT; - } - - // <senderHostAndPort> - else if (localName == WSIConstants.ELEM_SENDER_HOST_AND_PORT) - { - senderHostAndPort = new StringBuffer(); - currentElement = WSIConstants.ELEM_SENDER_HOST_AND_PORT; - } - - // <receiverHostAndPort> - else if (localName == WSIConstants.ELEM_RECEIVER_HOST_AND_PORT) - { - receiverHostAndPort = new StringBuffer(); - currentElement = WSIConstants.ELEM_RECEIVER_HOST_AND_PORT; - } - } - - /** - * Characters callback. - */ - public void characters(char ch[], int start, int length) - { - // Ignoring CRLF that appears in log elements - int altStart = start; - int altLength = length; - if (start > 0 && ch[start-1] == 13 && ch[start] == 10) - { - altStart++; - altLength--; - } - - // <wsi-monConfig:comment> - if (monitorComment != null && currentElement == WSIConstants.ELEM_COMMENT) - { - monitorComment.append(ch, start, length); - } - - // <messageContent> - else if (messageContent != null - && currentElement == WSIConstants.ELEM_MESSAGE_CONTENT) - { - messageContent.append(ch, start, length); - } - - // <httpHeaders> - else if (httpHeaders != null - && currentElement == WSIConstants.ELEM_HTTP_HEADERS) - { - httpHeaders.append(ch, start, length); - } - - // <boundaryString> - else if (boundary != null - && currentElement == WSIConstants.ELEM_BOUNDARY_STRING) - { - boundary.append(ch, altStart, altLength); - } - - // <mimeHeaders> - else if (mimeHeaders != null - && currentElement == WSIConstants.ELEM_MIME_HEADERS) - { - mimeHeaders.append(ch, altStart, altLength); - } - - // <mimeContent> - else if (mimeContent != null - && currentElement == WSIConstants.ELEM_MIME_CONTENT) - { - mimeContent.append(ch, altStart, altLength); - } - - // <senderHostAndPort> - else if (senderHostAndPort != null - && currentElement == WSIConstants.ELEM_SENDER_HOST_AND_PORT) - { - senderHostAndPort.append(ch, start, length); - } - - // <receiverHostAndPort> - else if (receiverHostAndPort != null - && currentElement == WSIConstants.ELEM_RECEIVER_HOST_AND_PORT) - { - receiverHostAndPort.append(ch, start, length); - } - } - - /** - * End Element. - */ - public void endElement(String namespaceURI, String localName, String qName) - { - // <wsi-config:comment> - if ( - (localName == WSIConstants.ELEM_COMMENT) - && (namespaceURI == WSIConstants.NS_URI_WSI_MONITOR_CONFIG)) - { - // If we saved the comment, then process it and the log timestamp - if (this.monitorComment != null) - { - ArtifactReference artifactReference = new ArtifactReferenceImpl(); - artifactReference.setTimestamp(this.logTimestamp); - Comment comment = new CommentImpl(); - comment.setText(monitorComment.toString()); - artifactReference.setDocumentElement( - comment, - WSIConstants.NS_NAME_WSI_MONITOR_CONFIG); - processArtifactReference(artifactReference); - } - } - - // <boundaryString> - else if (localName == WSIConstants.ELEM_BOUNDARY_STRING) - { - // Adding boundary string to a list - boundaries.add(boundary.toString()); - } - - // <mimePart> - else if (localName == WSIConstants.ELEM_MIME_PART) - { - // Creating a MessageMIMEPart instance - MimePart part = new MimePartImpl(); - part.setHeaders(mimeHeaders.toString()); - part.setContent(mimeContent.toString()); - part.setBoundaryStrings((String[])boundaries.toArray(new String[0])); - - mimeParts.addPart(part); - } - - // <messageEntry> - else if (localName == WSIConstants.ELEM_MESSAGE_ENTRY) - { - // Assumption: Related messages are sequentially available in the message log. - if (MessageEntry.TYPE_REQUEST.equalsIgnoreCase(type)) - { - // Create log entry - MessageEntry messageEntryRequest = - createMessageEntry( - id, - conversationID, - type, - timestamp, - senderHostAndPort.toString(), - receiverHostAndPort.toString(), - messageContent == null ? "" : messageContent.toString(), - httpHeaders.toString(), - mimeParts, - entryElementLocation); - - // Add log entry to the list - messageEntryList.add(messageEntryRequest); - // Request is now processed only when the response is received. - } - - else if (MessageEntry.TYPE_RESPONSE.equalsIgnoreCase(type)) - { - // Create log entry - MessageEntry messageEntryResponse = - createMessageEntry( - id, - conversationID, - type, - timestamp, - senderHostAndPort.toString(), - receiverHostAndPort.toString(), - messageContent == null ? "" : messageContent.toString(), - httpHeaders.toString(), - mimeParts, - entryElementLocation); - - if (logEntryHandler != null) - { - // look up the request message - // ISSUE : need to throw & catch a nullpointerexception in here... - MessageEntry messageEntryRequest = findRelatedRequest(messageEntryResponse); - - if (messageEntryRequest != null) - { - if (!isMessageEncrypted(messageEntryRequest.getMessage()) && - !isMessageEncrypted(messageEntryResponse.getMessage())) - { - if (!omitRequest(messageEntryRequest)) - { - // Create entry - // ADD: Need to create entry from report - //Entry entry = this.reporter.getReport().createEntry(); - Entry entry = new EntryImpl(); - entry.setEntryType( - EntryType.getEntryType(MessageValidator.TYPE_MESSAGE_REQUEST)); - entry.setReferenceID(messageEntryRequest.getId()); - entry.setEntryDetail(messageEntryRequest); - - // Create the context for the request-response pair - EntryContext requestTargetContext = - new EntryContext( - entry, - messageEntryRequest, - messageEntryResponse); - if (requestTargetContext != null) - processLogEntry(requestTargetContext); - - // Create entry - // ADD: Need to create entry from report - //Entry entry = this.reporter.getReport().createEntry(); - entry = new EntryImpl(); - entry.setEntryType( - EntryType.getEntryType(MessageValidator.TYPE_MESSAGE_RESPONSE)); - entry.setReferenceID(messageEntryResponse.getId()); - entry.setEntryDetail(messageEntryResponse); - - EntryContext responseTargetContext = - new EntryContext( - entry, - messageEntryRequest, - messageEntryResponse); - if (responseTargetContext != null) - processLogEntry(responseTargetContext); - } - } - } - } - } - } - - currentElement = null; - } - - /** - * End Document. - */ - public void endDocument() - { - //If we want to serially process the log file. Invoke validateMessages with - //msgValidator!=null. Here we have the option of clearing the logEntry vector - //once message validation is done. - //if (msgValidator!=null) - //logEntryList.clear(); - - /* Process all remaining requests in the messageEntryList */ - for (int i = 0; i < messageEntryList.size(); i++) { - MessageEntry logEntry = (MessageEntry) messageEntryList.get(i); - if (!omitRequest(logEntry)) - { - Entry entry = new EntryImpl(); - entry.setEntryType(EntryType.getEntryType( - MessageValidator.TYPE_MESSAGE_REQUEST)); - entry.setReferenceID(logEntry.getId()); - entry.setEntryDetail(logEntry); - EntryContext requestTargetContext = - new EntryContext(entry, logEntry, null); - if (requestTargetContext != null) - processLogEntry(requestTargetContext); - } - } - } - - /** - * Process the message in the log entry. - */ - public void processLogEntry(EntryContext entryContext) - { - try - { - //Before validating any messages check if implementer is the first element. - logEntryHandler.processLogEntry(entryContext); - } - catch (Exception e) - { - wsiException = - new WSIException( - "An error occurred while validating" - + " the message logEntry: " - + entryContext.getMessageEntry().getId(), - e); - } - } - - /** - * Process the artifact reference. - */ - private void processArtifactReference(ArtifactReference artifactReference) - { - try - { - //Before validating any messages check if implementer is the first element. - logEntryHandler.processArtifactReference(artifactReference); - } - - catch (Exception e) - { - wsiException = - new WSIException( - "An error occurred while processing" - + " the artifact reference: " - + artifactReference.toString(), - e); - } - } - - /** - * Find the related Request LogEntry. The current rule for related log entires is - * that a request will always precede its response. - * ISSUE: Sequence in log file is timestamp driven (monitor spec). - * Assertion is that for a given conversationID, a second request is not sent - * until its response is received (chronologically). - * This method will have to be modified if the rule changes. - */ - // could be made more efficient by keeping a much smaller list of unresponded requests... - public MessageEntry findRelatedRequest(MessageEntry logEntryResponse) - { - if (logEntryResponse != null) - { - for (int entry = messageEntryList.size() - 1; entry >= 0; entry--) - { - // Get the log entry of the matching request - MessageEntry logEntry = (MessageEntry) messageEntryList.get(entry); - // Ignore own entry - if (!logEntryResponse.equals(logEntry)) - { - if (logEntryResponse - .getConversationId() - .equals(logEntry.getConversationId())) - { - // found the most recently read message with the same conversationID. - // From above, this should be the corresponding request. Check as far as possible. - if (logEntry.getType().equals(MessageEntry.TYPE_REQUEST)) - { - messageEntryList.remove(entry); - return logEntry; - } - else - { - return null; // expected a request. need to throw an exception! - } - } - } - } - } - return null; - // conversationID match not found anywhere. need to throw an exception! - } - - /** - * Create log entry. - */ - private MessageEntry createMessageEntry( - String id, - String conversationId, - String type, - String timestamp, - String senderIPPort, - String receiverIPPort, - String messageContent, - String httpHeaders, - MimeParts mimeParts, - ElementLocation elementLocation) - { - // Create log entry - MessageEntry messageEntry = new MessageEntryImpl(); - messageEntry.setId(id); - messageEntry.setConversationId(conversationID); - messageEntry.setType(type); - messageEntry.setTimestamp(timestamp); - messageEntry.setSenderHostAndPort(senderIPPort); - messageEntry.setReceiverHostAndPort(receiverIPPort); - messageEntry.setHTTPHeaders(httpHeaders); - messageEntry.setBOM(bom); - messageEntry.setElementLocation(elementLocation); - - String encoding = null; - if (mimeParts == null) - { - // Get the encoding for this message content - encoding = Utils.getXMLEncoding(messageContent); - messageEntry.setMessage(messageContent); - messageEntry.setMimeContent(false); - } - else - { - messageEntry.setMimeParts(mimeParts); - MimePart root = Utils.findRootPart(httpHeaders, mimeParts.getParts()); - if (root != null) - { - // Get the encoding for this message content - encoding = Utils.getXMLEncoding(root.getContent()); - mimeParts.setRootPart(root); - } - // else empty body - messageEntry.setMimeContent(true); - } - if ((encoding == null) || (encoding.equals(""))) - encoding = WSIConstants.DEFAULT_XML_ENCODING; - messageEntry.setEncoding(encoding); - - return messageEntry; - } - - } //End ContentHandler - - /** - * Check for HTTP messages that should not be logged. - * @param rr: a request-response pair. - * @return true if the request-response pair should be omitted from the log. - */ - private boolean omitRequest(MessageEntry messageEntryRequest) - { - boolean omit = false; - if (messageEntryRequest == null) - omit = true; - else - { - String requestHeaders = messageEntryRequest.getHTTPHeaders(); - if ((requestHeaders != null) && - ((requestHeaders.startsWith("CONNECT")) || - (requestHeaders.startsWith("TRACE")) || - (requestHeaders.startsWith("DELETE")) || - (requestHeaders.startsWith("OPTIONS")) || - (requestHeaders.startsWith("HEAD")) || - ((requestHeaders.startsWith("GET")) && - (!isMessageWithBrackets(messageEntryRequest.getMessage()))))) - { - omit = true; - } - } - return omit; - } - - /** - * Returns true if the content of the message has at least - * one left and one right bracket. - * @param message: a message content. - * @return true if the content of the message has at least - * one left and one right bracket. - */ - public boolean isMessageWithBrackets(String message) - { - return ((message != null) && - (message.indexOf("<")!= -1) && - (message.indexOf(">") != -1)); - } - - private boolean isMessageEncrypted(String message) - { - return ((message != null) && - (message.indexOf("<EncryptedKey ") != -1)); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/impl/LogWriterImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/impl/LogWriterImpl.java deleted file mode 100644 index 90ee98217..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/impl/LogWriterImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.log.impl; - -import java.io.Writer; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.document.impl.DocumentWriterImpl; -import org.eclipse.wst.wsi.internal.core.log.Log; -import org.eclipse.wst.wsi.internal.core.log.LogWriter; - -/** - * Defines the implementation used to write the Log file. - * - * @version 1.0.1 - * @author Neil Delima (nddelima@ca.ibm.com) - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class LogWriterImpl extends DocumentWriterImpl implements LogWriter -{ - /** - * @see org.eclipse.wst.wsi.internal.core.log.LogWriter#write(Log) - */ - public synchronized void write(Log log) - throws IllegalStateException, WSIException - { - // If the writer was not specified, then throw an exception - if (writer == null) - throw new IllegalStateException("Could not write log file since writer was not set."); - - // Write log file - write(log, writer); - } - - /** - * @see org.eclipse.wst.wsi.internal.core.log.LogWriter#write(Log, Writer) - */ - public synchronized void write(Log log, Writer writer) throws WSIException - { - // ADD: - throw new WSIException("Write entire log file function not supported yet."); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/impl/MessageEntryImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/impl/MessageEntryImpl.java deleted file mode 100644 index afc7a3f3e..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/impl/MessageEntryImpl.java +++ /dev/null @@ -1,374 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.log.impl; - -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.Collection; -import java.util.Iterator; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.log.MimePart; -import org.eclipse.wst.wsi.internal.core.log.MimeParts; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.eclipse.wst.wsi.internal.core.xml.dom.ElementLocation; - -/** - * Message entry implementation. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class MessageEntryImpl implements MessageEntry -{ - /** - * Log entry id. - */ - protected String id; - - protected String conversationId; - protected String type; - protected String timestamp; - protected String senderHostAndPort; - protected String receiverHostAndPort; - protected String message = ""; - protected String httpHeaders = ""; - protected int bom; - protected String encoding = ""; - protected boolean isMimeContent = false; - protected MimeParts mimeParts = new MimePartsImpl(); - - protected ElementLocation elementLocation = null; - - /** - * Empty constructor. - */ - public MessageEntryImpl() - { - } - - /* (non-Javadoc) - * @see org.wsi.test.log.LogEntry#getId() - */ - public String getId() - { - return this.id; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.LogEntry#setId(String) - */ - public void setId(String id) - { - this.id = id; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.LogEntry#getConversationId() - */ - public String getConversationId() - { - return this.conversationId; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.LogEntry#setConversationId(String) - */ - public void setConversationId(String conversationId) - { - this.conversationId = conversationId; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.LogEntry#getTimestamp() - */ - public String getTimestamp() - { - return this.timestamp; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.LogEntry#setTimestamp(String) - */ - public void setTimestamp(String timestamp) - { - this.timestamp = timestamp; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.LogEntry#getType() - */ - public String getType() - { - return this.type; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.LogEntry#setType(String) - */ - public void setType(String type) - { - this.type = type; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.LogEntry#getSenderHostAndPort() - */ - public String getSenderHostAndPort() - { - return this.senderHostAndPort; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.LogEntry#setSenderHostAndPort(String) - */ - public void setSenderHostAndPort(String senderHostAndPort) - { - this.senderHostAndPort = senderHostAndPort; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.LogEntry#getReceiverHostAndPort() - */ - public String getReceiverHostAndPort() - { - return this.receiverHostAndPort; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.LogEntry#setReceiverHostAndPort(String) - */ - public void setReceiverHostAndPort(String receiverHostAndPort) - { - this.receiverHostAndPort = receiverHostAndPort; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.LogEntry#getMessage() - */ - public String getMessage() - { - if (!this.isMimeContent) - return this.message; - else - { - if (this.mimeParts.getRootPart() == null) return ""; - else return this.mimeParts.getRootPart().getContent(); - } - } - - /* (non-Javadoc) - * @see org.wsi.test.log.LogEntry#setMessage(String) - */ - public void setMessage(String message) - { - this.message = message; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.LogEntry#setEncoding(String) - */ - public void setEncoding(String encoding) - { - this.encoding = encoding; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.MessageEntry#getBOM() - */ - public int getBOM() - { - return bom; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.MessageEntry#setBOM(int) - */ - public void setBOM(int bom) - { - this.bom = bom; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.LogEntry#getHTTPHeaders() - */ - public String getHTTPHeaders() - { - return this.httpHeaders; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.LogEntry#setHTTPHeaders(String) - */ - public void setHTTPHeaders(String httpHeaders) - { - this.httpHeaders = httpHeaders; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.MessageEntry#getElementLocation() - */ - public ElementLocation getElementLocation() - { - return this.elementLocation; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.MessageEntry#setElementLocation(org.wsi.xml.dom.ElementLocation) - */ - public void setElementLocation(ElementLocation elementLocation) - { - this.elementLocation = elementLocation; - } - - /** - * Get string representation of this object. - */ - public String toString() - { - return toXMLString(WSIConstants.NS_NAME_WSI_LOG); - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentElement#toXMLString(String) - */ - public String toXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - // ADD: Need to add way to indicate XML schema type for logEntry - // Add log entry - pw.print("<" + nsName + ELEM_NAME + " "); - pw.print( - "xsi:type=\"httpMessageEntry\" "); - pw.print(WSIConstants.ATTR_ID_UC + "=\"" + id + "\" "); - pw.print( - WSIConstants.ATTR_CONVERSATION_ID + "=\"" + conversationId + "\" "); - pw.print(WSIConstants.ATTR_TYPE + "=\"" + type + "\" "); - pw.println(WSIConstants.ATTR_TIMESTAMP + "=\"" + timestamp + "\">"); - - if (isMimeContent()) - { - // Add message content with attachments element - pw.print("<" + nsName + WSIConstants.ELEM_MESSAGE_CONTENT_WITH_ATTACHMENTS); - if (bom != 0) - pw.print(" " + WSIConstants.ATTR_BOM + "=\"" + bom + "\""); - pw.print(">"); - - Collection partList = mimeParts.getParts(); - if (!partList.isEmpty()) - { - Iterator iMimeParts = partList.iterator(); - while (iMimeParts.hasNext()) - { - MimePart mimePart = (MimePart)iMimeParts.next(); - pw.print(mimePart.toXMLString(namespaceName)); - } - } - - // Add end message element - pw.println("</" + nsName + WSIConstants.ELEM_MESSAGE_CONTENT_WITH_ATTACHMENTS + ">"); - } - else - { - // Add message content element - pw.print("<" + nsName + WSIConstants.ELEM_MESSAGE_CONTENT); - if (bom != 0) - pw.print(" " + WSIConstants.ATTR_BOM + "=\"" + bom + "\""); - pw.print(">"); - - // Add encoded message - pw.print(XMLUtils.xmlEscapedString(message)); - - // Add end message element - pw.println("</" + nsName + WSIConstants.ELEM_MESSAGE_CONTENT + ">"); - } - - // Add senderIPPort element - pw.println( - "<" - + nsName - + WSIConstants.ELEM_SENDER_HOST_AND_PORT - + ">" - + senderHostAndPort - + "</" - + nsName - + WSIConstants.ELEM_SENDER_HOST_AND_PORT - + ">"); - - // Add receiverIP element - pw.println( - "<" - + nsName - + WSIConstants.ELEM_RECEIVER_HOST_AND_PORT - + ">" - + receiverHostAndPort - + "</" - + nsName - + WSIConstants.ELEM_RECEIVER_HOST_AND_PORT - + ">"); - - // Add HTTPHeaders element - pw.print("<" + nsName + WSIConstants.ELEM_HTTP_HEADERS + ">"); - - // ADD: Does this string need to be XML encoded? - // Add HTTP headers - pw.print(XMLUtils.xmlEscapedString(httpHeaders)); - - // End HTTPHeaders element - pw.println("</" + nsName + WSIConstants.ELEM_HTTP_HEADERS + ">"); - - // End log entry - pw.println("</" + nsName + ELEM_NAME + ">"); - - // Return string - return sw.toString(); - } - - /* (non-Javadoc) - * @see org.wsi.test.log.MessageEntry#isMimeContent() - */ - public boolean isMimeContent() - { - return isMimeContent; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.MessageEntry#setMimeContent() - */ - public void setMimeContent(boolean isMimeContent) - { - this.isMimeContent = isMimeContent; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.MessageEntry#getMIMEParts() - */ - public MimeParts getMimeParts() - { - return mimeParts; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.MessageEntry#setMimeParts() - */ - public void setMimeParts(MimeParts mimeParts) - { - this.mimeParts = mimeParts; - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/impl/MimePartImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/impl/MimePartImpl.java deleted file mode 100644 index c9e7dfe3a..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/impl/MimePartImpl.java +++ /dev/null @@ -1,139 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.log.impl; - -import java.io.PrintWriter; -import java.io.StringWriter; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.log.MimePart; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; - -/** - * @author lauzond - * - * TODO To change the template for this generated type comment go to - * Window - Preferences - Java - Code Style - Code Templates - */ -public class MimePartImpl implements MimePart -{ - private String mimeContent; - private String mimeHeaders; - private String[] boundaryStrings = new String[0]; - - public MimePartImpl () - { - } - - /* (non-Javadoc) - * @see org.wsi.test.log.MimePart#getContent() - */ - public String getContent() - { - return this.mimeContent; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.MimePart#setContent(String) - */ - public void setContent(String mimeContent) - { - this.mimeContent = mimeContent; - } - - /** - /* (non-Javadoc) - * @see org.eclipse.wst.wsi.internal.core.log.MimePart#getHeaders() - */ - public String getHeaders() - { - return this.mimeHeaders; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.MimePart#setHeaders(String) - */ - public void setHeaders(String mimeHeaders) - { - this.mimeHeaders = mimeHeaders; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.MimePart#getBoundaryStrings() - */ - public String[] getBoundaryStrings() - { - return this.boundaryStrings; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.MimePart#setBoundaryStrings(String[]) - */ - public void setBoundaryStrings(String[] boundaryStrings) - { - this.boundaryStrings = boundaryStrings; - } - - /** - * Get string representation of this object. - */ - public String toString() - { - return toXMLString(WSIConstants.NS_NAME_WSI_LOG); - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentElement#toXMLString(String) - */ - public String toXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - // Add mimePart element - pw.println("<" + nsName + WSIConstants.ELEM_MIME_PART + ">"); - - // Add boundary string element - for (int i = 0; i < boundaryStrings.length; i++) - { - pw.print("<" + nsName + WSIConstants.ELEM_BOUNDARY_STRING + ">"); - pw.print(boundaryStrings[i]); - pw.println("</" + nsName + WSIConstants.ELEM_BOUNDARY_STRING + ">"); - } - - // Add mimeHeaders element - pw.print("<" + nsName + WSIConstants.ELEM_MIME_HEADERS + ">"); - pw.print(XMLUtils.xmlEscapedString(mimeHeaders)); - pw.println("</" + nsName + WSIConstants.ELEM_MIME_HEADERS + ">"); - - // Add encoded content - pw.print("<" + nsName + WSIConstants.ELEM_MIME_CONTENT + ">"); - if ((mimeContent.indexOf("<") != -1) || - (mimeContent.indexOf(">") != -1) || - (mimeContent.indexOf("\"") != -1) || - (mimeContent.indexOf("\'") != -1)) - pw.print(XMLUtils.xmlEscapedString(mimeContent)); - else - pw.print(getContent()); - pw.println("</" + nsName + WSIConstants.ELEM_MIME_CONTENT + ">"); - - // Add end message element - pw.println("</" + nsName + WSIConstants.ELEM_MIME_PART + ">"); - - // Return string - return sw.toString(); - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/impl/MimePartsImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/impl/MimePartsImpl.java deleted file mode 100644 index d3392c1a9..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/log/impl/MimePartsImpl.java +++ /dev/null @@ -1,75 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.log.impl; - -import java.util.ArrayList; -import java.util.Collection; - -import org.eclipse.wst.wsi.internal.core.log.MimePart; -import org.eclipse.wst.wsi.internal.core.log.MimeParts; - -/** - * MimePartsImpl class. - * - * @version 1.0.1 - * @author David Lauzon (lauzond@ca.ibm.com) - */ -public class MimePartsImpl implements MimeParts -{ - - protected MimePart rootPart; - protected Collection mimeParts = new ArrayList(); - - public MimePartsImpl() - { - } - - /* (non-Javadoc) - * @see org.wsi.test.log.MimeParts#getRootPart() - */ - public MimePart getRootPart() - { - return rootPart; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.MimeParts#setRootPart(MimePart) - */ - public void setRootPart(MimePart rootPart) - { - this.rootPart = rootPart; - } - - /* (non-Javadoc) - * @see org.wsi.test.log.MimeParts#count() - */ - public int count() - { - return mimeParts.size(); - } - - /* (non-Javadoc) - * @see org.wsi.test.log.MimeParts#addPart(MimePart) - */ - public void addPart(MimePart part) - { - if (part != null) - mimeParts.add(part); - } - - /* (non-Javadoc) - * @see org.wsi.test.log.MimeParts#getParts() - */ - public Collection getParts() - { - return mimeParts; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/ChunkedData.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/ChunkedData.java deleted file mode 100644 index c6b1a01a5..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/ChunkedData.java +++ /dev/null @@ -1,221 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.monitor; - -/** - * This class will process chunked data. - * - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ -public class ChunkedData -{ - protected boolean moreChunkedData = false; - protected String chunkedData = ""; - protected SocketHandler socketHandler = null; - - /** - * Constructs a ChunkedData object. - */ - public ChunkedData() - { - } - - /** - * Constructs a ChunkedData object. - * @param socketHandler socket handler. - * @param moreChunkedData chunked data. - */ - public ChunkedData(SocketHandler socketHandler, boolean moreChunkedData) - { - this.socketHandler = socketHandler; - this.moreChunkedData = moreChunkedData; - } - - /** - * Constructs a ChunkedData object. - * @param socketHandler socket handler. - * @param chunkedData chunked data. - */ - public ChunkedData(SocketHandler socketHandler, String chunkedData) - { - this.socketHandler = socketHandler; - this.chunkedData = chunkedData; - this.moreChunkedData = checkData(chunkedData); - } - - /** - * Add the chunked data to the buffer. - * @param chunkedData chunked data. - */ - public void addData(String chunkedData) - { - this.chunkedData += chunkedData; - this.moreChunkedData = checkData(chunkedData); - } - - /** - * Get data buffer. - * @return data buffer. - */ - public String getData() - { - return this.chunkedData; - } - - /** - * Clear data buffer. - */ - public void clearData() - { - this.chunkedData = ""; - } - - /** - * Returns true if there is more chunked data. - * @return true if there is more chunked data. - */ - public boolean isMoreChunkedData() - { - return this.moreChunkedData; - } - - /** - * Decode and add data to the buffer. - * @param messageBuffer a StringBuffer object. - * @return true if data is added to the buffer. - */ - public boolean decodeAndAddDataToBuffer(StringBuffer messageBuffer) - { - boolean moreChunkedData = false; - if (!this.moreChunkedData) - { - // DEBUG: - debug("decodeAndAddDataToBuffer", "chunkedData: " + chunkedData); - - moreChunkedData = decodeData(chunkedData, messageBuffer); - } - - return moreChunkedData; - } - - /** - * Check data. - */ - private boolean checkData(String chunkedData) - { - boolean moreChunkedData = false; - // Look for [CRLF][0][CRLF] in the chunked data - if (chunkedData.indexOf(SocketHandler.CRLF + "0" + SocketHandler.CRLF) != -1) - { - moreChunkedData = false; - - // DEBUG: - debug( - "checkData", - "Chunk contains [CRLF][0][CRLF], so there is no more data."); - } - - // Look for [0][CRLF] at start of chunked data - else if (chunkedData.startsWith("0" + SocketHandler.CRLF)) - { - moreChunkedData = false; - - // DEBUG: - debug( - "checkData", - "Chunk data starts with [0][CRLF], so there is no more data."); - } - - // Otherwise step through it to see if we have all of the data - else - { - moreChunkedData = true; - } - - return moreChunkedData; - } - - /** - * Decode chunked data. - * - * Data format: - * <pre> - * [Chunk Size][CRLF][Data Chunk][CRLF][Chunk Size][CRLF][Data Chunk][CRLF]...[0][CRLF][Optional Footer][CRLF] - * </pre> - * - * @param chunkedData - * @param messageLoggingBuffer - */ - private boolean decodeData(String chunkedData, StringBuffer messageBuffer) - { - boolean endOfData = false; - int nextIndex = 0; - int prevIndex = 0; - int chunkSize = 0; - - String nextChunkData = null; - - // Process each chunk of data - while (!(endOfData) - && (nextIndex < chunkedData.length()) - && (nextIndex = chunkedData.indexOf(SocketHandler.CRLF, prevIndex)) != -1) - { - // Get the data length which is right after this - String hexChunkedSize = chunkedData.substring(prevIndex, nextIndex); - - // Decode length - chunkSize = Integer.decode("0x" + hexChunkedSize).intValue(); - - // DEBUG: - debug("decodeData", "chunkedSize: " + chunkSize); - - // If size is zero, then we have hit the end of the chunked data - if (chunkSize == 0) - { - endOfData = true; - } - - // If we don't have all of the data then stop - else if (nextIndex + 2 + chunkSize > chunkedData.length()) - { - break; - } - - else - { - nextChunkData = - chunkedData.substring(nextIndex + 2, nextIndex + 2 + chunkSize); - - // DEBUG: - debug("decodeData", "nextChunkData: " + nextChunkData); - - // Get message based on length - if (messageBuffer != null) - messageBuffer.append(nextChunkData); - } - - // Point at the next chunk size - prevIndex = nextIndex + 2 + chunkSize + 2; - } - - return endOfData; - } - - /** - * Debug. - */ - private void debug(String method, String message) - { - this.socketHandler.debug("ChunkedData", method, message); - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/ConnectionListener.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/ConnectionListener.java deleted file mode 100644 index f48ce9e48..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/ConnectionListener.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.monitor; - -/** - * This interface is for receiving connection events. - * - * @author Sergey Suhoruchkin - * @version 1.0.1 - */ -public interface ConnectionListener -{ - /** - * Invoked when connection is closed. - * @param connection socket connection. - */ - public void connectionClosed(SocketConnection connection); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/MessageEntryQueue.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/MessageEntryQueue.java deleted file mode 100644 index 49cc049f6..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/MessageEntryQueue.java +++ /dev/null @@ -1,220 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.monitor; - -import java.io.StringReader; -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.log.Log; -import org.eclipse.wst.wsi.internal.core.log.LogWriter; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; - -/** - * This class is the queue that is used to write request and response messages - * to the log file in the correct order. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class MessageEntryQueue -{ - /** - * Request type message entry queue. - */ - protected Vector requestList = new Vector(); - - /** - * Response type message entry queue. - */ - protected Vector responseList = new Vector(); - - /** - * Monitor. - */ - protected Monitor monitor = null; - - /** - * Log file. - */ - protected Log log = null; - - /** - * Log writer. - */ - protected LogWriter logWriter = null; - - /** - * List lock. - */ - protected String listLock = "listLock"; - - /** - * Message ID which is incremented when a new log entry is added to the log file. - */ - protected int messageId = 1; - - /** - * Create message entry queue. - * @param monitor a monitor. - * @param log the log. - * @param logWriter a log writer. - */ - public MessageEntryQueue(Monitor monitor, Log log, LogWriter logWriter) - { - // Save input references - this.monitor = monitor; - this.log = log; - this.logWriter = logWriter; - } - - /** - * Add log entry to queue. - * @param messageEntry a message entry. - * @throws WSIException is there is a problem adding the log - * entry to the queue. - */ - public synchronized void addMessageEntry(MessageEntry messageEntry) - throws WSIException - { - synchronized (listLock) - { - // If this is a request type of message entry, then add to request list - if (messageEntry.getType().equals(MessageEntry.TYPE_REQUEST)) - { - requestList.add(messageEntry); - } - - // Otherwise this is a response type of message entry - else - { - responseList.add(messageEntry); - } - } - - // Tell the log entry writer thread to run - writeFromQueue(); - } - - /** - * Determine if any log entries need to be written. - * @throws WSIException is there is a problem adding log entries. - - */ - public synchronized void writeFromQueue() throws WSIException - { - MessageEntry requestMessageEntry = null; - MessageEntry responseMessageEntry = null; - boolean responseFound = false; - - // Create array that will contain list of index to remove from request list - int[] requestIndexList = new int[requestList.size()]; - int reqIndexCount = 0; - - synchronized (listLock) - { - // If there are entries in the request queue, - // then try to match them with entries in the response queue - for (int reqIndex = 0; reqIndex < requestList.size(); reqIndex++) - { - // Get request log entry - requestMessageEntry = (MessageEntry) requestList.elementAt(reqIndex); - - // Check each response log entry to see if the conversationId matches - responseFound = false; - for (int respIndex = 0; - respIndex < responseList.size() && !responseFound; - respIndex++) - { - // Get response log entry - responseMessageEntry = - (MessageEntry) responseList.elementAt(respIndex); - - // If the request and response have the same conversationId, - // then write them out to the log file - if (requestMessageEntry - .getConversationId() - .equals(responseMessageEntry.getConversationId())) - { - responseFound = true; - - // Set the id for the log entries - requestMessageEntry.setId(getNextMessageId()); - responseMessageEntry.setId(getNextMessageId()); - - // Write out request and then response - //==== SS start : what this line is used for??? - causes memory leak, as no removeLogEntry is called ==== - // log.addLogEntry(requestMessageEntry); - //==== SS end === - StringReader requestReader = - new StringReader(requestMessageEntry.toXMLString("")); - logWriter.write(requestReader); - - // Display message - printMessage(requestMessageEntry); - - // Write out response - //==== SS start : what this line is used for??? - causes memory leak, as no removeLogEntry is called ==== - // log.addLogEntry(responseMessageEntry); - //==== SS end === - StringReader responseReader = - new StringReader(responseMessageEntry.toXMLString("")); - logWriter.write(responseReader); - - // Display message - printMessage(responseMessageEntry); - - // Add request to list so that it can be removed later - requestIndexList[reqIndexCount++] = reqIndex; - - // Remove log entry from response list - responseList.remove(respIndex); - } - } - } - - // Remove requests that were written out - for (int count = 0; count < reqIndexCount; count++) - requestList.remove(requestIndexList[count]); - } - } - - /** - * Get the next message identifier. - * @return the next message identifier. - */ - protected synchronized String getNextMessageId() - { - return String.valueOf(messageId++); - } - - /** - * Display message. - * @param messageEntry a message entry. - */ - protected void printMessage(MessageEntry messageEntry) - { - // Display message - monitor.printMessage( - "log01", - messageEntry.getId() - + ", " - + messageEntry.getType() - + ", " - + messageEntry.getSenderHostAndPort(), - "Log message entry - ID: " - + messageEntry.getId() - + ", Type: " - + messageEntry.getType() - + ", Sender: " - + messageEntry.getSenderHostAndPort()); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/Monitor.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/Monitor.java deleted file mode 100644 index 5031dd075..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/Monitor.java +++ /dev/null @@ -1,505 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2007 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.monitor; - -import java.io.BufferedReader; -import java.io.File; -import java.io.InputStreamReader; -import java.io.PrintWriter; -import java.io.StringReader; -import java.io.StringWriter; -import java.util.Iterator; -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.ToolInfo; -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSIFileNotFoundException; -import org.eclipse.wst.wsi.internal.core.document.DocumentFactory; -import org.eclipse.wst.wsi.internal.core.log.Log; -import org.eclipse.wst.wsi.internal.core.log.LogWriter; -import org.eclipse.wst.wsi.internal.core.monitor.config.ManInTheMiddle; -import org.eclipse.wst.wsi.internal.core.monitor.config.MonitorConfig; -import org.eclipse.wst.wsi.internal.core.monitor.config.Redirect; -import org.eclipse.wst.wsi.internal.core.util.MessageList; -import org.eclipse.wst.wsi.internal.core.util.TestUtils; - -/** - * Message Monitor. - * - * @author Peter Brittenham (peterbr.us.ibm.com) - */ - -public class Monitor -{ - /** - * Message list. - */ - protected MessageList messageList = null; - - private final static String RESOURCE_BUNDLE_NAME = - "org.eclipse.wst.wsi.internal.core.monitor.Monitor"; - - public final static String USAGE_MESSAGE = - "Usage: Monitor -config <configFilename>"; - - /** - * Conversation ID. - */ - private int conversationId = 1; - - private Log log = null; - private LogWriter logWriter = null; - private MonitorConfig monitorConfig = null; - - /** - * Tool information. - */ - public static final String TOOL_NAME = "Monitor"; - - protected ToolInfo toolInfo = null; - - protected Vector listenerList = new Vector(); - - protected MessageEntryQueue messageEntryQueue = null; - - /** - * Message monitor. - * @param args command line arguments. - * @throws WSIException if there is a problem creating a Monitor object. - */ - public Monitor(String[] args) throws WSIException - { - // Create message list - this.messageList = new MessageList(RESOURCE_BUNDLE_NAME); - - // Tool information - toolInfo = new ToolInfo(TOOL_NAME); - - // Create document factory - DocumentFactory documentFactory = DocumentFactory.newInstance(); - - // Get new config object - monitorConfig = documentFactory.newMonitorConfig(); - monitorConfig.init(this.messageList); - - // Parse command line arguments - monitorConfig.parseArgs(args); - - String logLocation = monitorConfig.getLogLocation(); - if (logLocation.indexOf(WSIConstants.PATH_SEPARATOR) > -1) - { - throw new WSIException( - messageList.getMessage( - "config11", - monitorConfig.getLogLocation(), - "The log file location value cannot contain the pass separator character:")); - } - - File file = null; - try - { - // Get file object for log file - file = new File(monitorConfig.getLogLocation()); - } - - catch (Exception e) - { - throw new WSIException( - messageList.getMessage("config07", "Could not get log file location."), - e); - } - - // If replace flag is false and file exists, then throw exception - if (file.exists() && !monitorConfig.getReplaceLog()) - { - throw new IllegalArgumentException( - messageList.getMessage( - "config08", - monitorConfig.getLogLocation(), - "Log file already exists:")); - } - - try - { - // Create output file - log = documentFactory.newLog(); - - // Set style sheet string - log.setStyleSheetString( - monitorConfig.getAddStyleSheet().getStyleSheetString()); - - // Get log writer - logWriter = documentFactory.newLogWriter(); - logWriter.setWriter(monitorConfig.getLogLocation()); - - // Write start of log file - logWriter.write(new StringReader(log.getStartXMLString(""))); - - // Write monitor tool information - logWriter.write(new StringReader(toXMLString(""))); - - // Create log entry queue - messageEntryQueue = new MessageEntryQueue(this, log, logWriter); - } - - catch (Exception e) - { - throw new WSIException( - messageList.getMessage( - "error03", - "Could not create log or log writer."), - e); - } - - // Get manInTheMiddle settings - ManInTheMiddle manInTheMiddle = monitorConfig.getManInTheMiddle(); - - // Get list of redirects - Iterator iterator = manInTheMiddle.getRedirectList().iterator(); - - // Process each redirect - Redirect redirect; - while (iterator.hasNext()) - { - // Get next redirect - redirect = (Redirect) iterator.next(); - - // Create server socket socket listener - listenerList.add(new ServerSocketListener(this, redirect)); - } - - // Add shutdown hook - Runtime.getRuntime().addShutdownHook(new ShutdownHook()); - - // Create and start console - Console console = new Console(); - console.start(); - } - - /** - * Get the monitor config file. - * @return the monitor config file. - */ - public MonitorConfig getMonitorConfig() - { - return monitorConfig; - } - - /** - * Get the log object. - * @return the log object. - */ - public Log getLog() - { - return this.log; - } - - /** - * Get the log entry queue object. - * @return the log entry queue object. - */ - public MessageEntryQueue getMessageEntryQueue() - { - return this.messageEntryQueue; - } - - /** - * Terminate the monitor. - */ - void exitMonitor() - { - printMessage("stopping01", "Stopping the monitor..."); - System.exit(0); - } - - /** - * Stop the monitor because an exception occurred. - */ - void exitMonitor(Exception e) - { - // Display error message - printMessage( - "stopping02", - "Stopping monitor because an exception occurred."); - System.err.println("EXCEPTION: " + e.toString()); - if (this.monitorConfig.getVerboseOption()) - e.printStackTrace(); - - // Exit monitor - exitMonitor(); - } - - /** - * Stop the monitor. - */ - void stopMonitor() - { - try - { - // Get list of listeners to stop - Iterator iterator = listenerList.iterator(); - - while (iterator.hasNext()) - { - ((ServerSocketListener) iterator.next()).shutdown(); - } - - // Wait for the cleanup timeout seconds - Thread.sleep(monitorConfig.getTimeout() * 1000); - - // Write end of log file - if (logWriter != null) - { - logWriter.write(new StringReader(log.getEndXMLString(""))); - - logWriter.close(); - } - } - - catch (Exception e) - { - // ADD: How should this execption be handled? - } - - printMessage("stopped01", "Monitor stopped."); - } - - /** - * Command line interface. - * @param args command line arguments. - */ - public static void main(String[] args) - { - Monitor monitor = null; - - try - { - if (args.length < 2) - { - staticPrintMessage("usage01", USAGE_MESSAGE); - System.exit(1); - } - - if (!args[0].equalsIgnoreCase("-config")) - { - staticPrintMessage("usage01", USAGE_MESSAGE); - System.exit(1); - } - - // Run the monitor - monitor = new Monitor(args); - } - - catch (Exception e) - { - boolean printStackTrace = true; - String messageID; - String defaultMessage; - String messageData; - - if ((e instanceof WSIFileNotFoundException) - || (e instanceof IllegalArgumentException)) - { - printStackTrace = false; - messageID = "error01"; - defaultMessage = "Monitor Error:"; - messageData = e.getMessage(); - } - - else - { - printStackTrace = true; - messageID = "error02"; - defaultMessage = "Monitor Stopped By Exception:"; - messageData = e.toString(); - } - - if (monitor != null) - monitor.printMessage(messageID, messageData, defaultMessage); - else - Monitor.staticPrintMessage(messageID, messageData, defaultMessage); - - if (printStackTrace) - e.printStackTrace(); - - // Exit - if (monitor != null) - monitor.exitMonitor(); - else - System.exit(2); - } - } - - /** - * Print a message from the resource bundle. - * @param key a key. - * @param defaultMessage a default message. - */ - public void printMessage(String key, String defaultMessage) - { - printMessage(key, null, defaultMessage); - } - - /** - * Print a message from the resource bundle. - * @param key a key. - * @param messageData message data. - * @param defaultMessage a default message. - */ - public void printMessage( - String key, - String messageData, - String defaultMessage) - { - messageList.printMessage(key, messageData, defaultMessage); - } - - /** - * Print message. - * @param key a key. - * @param defaultMessage a default message. - */ - public static void staticPrintMessage(String key, String defaultMessage) - { - staticPrintMessage(key, null, defaultMessage); - } - - /** - * Print message. - * @param key a key. - * @param messageData message data. - * @param defaultMessage a default message. - - */ - public static void staticPrintMessage( - String key, - String messageData, - String defaultMessage) - { - MessageList.printMessage( - RESOURCE_BUNDLE_NAME, - key, - messageData, - defaultMessage); - } - - /** - * Get the next conversation identifier. - * @return the next conversation identifier. - */ - synchronized int getNextConversationId() - { - return conversationId++; - } - - /** - * Return XML string representation of this object. - * @param namespaceName namespace prefix. - * @return XML string representation of this object. - */ - public String toXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - // Start - pw.print(toolInfo.getStartXMLString(namespaceName)); - - // Config - pw.print( - monitorConfig.toXMLString(WSIConstants.NS_NAME_WSI_MONITOR_CONFIG)); - - // End - pw.println(toolInfo.getEndXMLString(namespaceName)); - - return sw.toString(); - } - - /** - * Shutdown hook. - */ - class ShutdownHook extends Thread - { - /** - * Run shutdown procedure. - */ - public void run() - { - stopMonitor(); - } - } - - /** - * Run command from console. - */ - class Console extends Thread - { - /** - * Prompt user and wait for input. - */ - public void run() - { - // Get the exit string - String exitString = messageList.getMessage("exit01", "exit"); - - // Display options and how to stop application - TestUtils.printToolInfo(toolInfo); - System.out.print(monitorConfig.toString()); - System.out.println(" "); - printMessage( - "start01", - "The " - + toolInfo.getName() - + " tool is ready to intercept and log web service messages."); - printMessage( - "start02", - "Type \"exit\" to stop the " + toolInfo.getName() + "."); - System.out.println(" "); - - // Get the time to stop accepting connections - long stopTime = - System.currentTimeMillis() + (monitorConfig.getLogDuration() * 1000); - // SS - - try - { - // Get stdin as a buffered reader - BufferedReader reader = - new BufferedReader(new InputStreamReader(System.in)); - - // Process input from console - boolean exit = false; - while ((!exit) && (System.currentTimeMillis() < stopTime)) - { // SS - // Sleep - Thread.sleep(500); - - // Check for user input - if (reader.ready()) - { - if (reader.readLine().equalsIgnoreCase(exitString)) - exit = true; - } - } - } - - catch (Exception e) - { - // ADD: How should this be handled? - System.err.println(e.toString()); - } - - // Exit - exitMonitor(); - } - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/Monitor.properties b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/Monitor.properties deleted file mode 100644 index d4d606cb5..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/Monitor.properties +++ /dev/null @@ -1,38 +0,0 @@ -# /******************************************************************************* -# * Copyright (c) 2002-2005 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 - Initial API and implementation -# *******************************************************************************/ - -# -# Monitor message resource bundle. -# -usage01=Usage: Monitor -config <configFilename> -stopped01=Monitor stopped. -error01=Monitor Error: -error02=Monitor Stopped By Exception: -error03=Could not create log or log writer. -error04=Monitor cannot connect to a redirect host: -stopping01=Stopping the monitor... -stopping02=Stopping monitor because an exception occurred. -log01=Log message entry [ID, Type, Sender]: -start01=The Monitor tool is ready to intercept and log web service messages. -start02=Type "exit" to stop the Monitor. -exit01=exit -config01=The specified option is not supported: -config02=Monitor configuration file was not found. Specified file location: -config03=Could not read monitor configuration file. Specified file location: -config04=Element must contain an integer value. Element name: -config05=Monitor configuration file did not contain any redirect statements. -config06=Monitor configuration file did not contain the log file URI. -config07=Could not get log file location. -config08=Log file already exists. Specified file location: -config09=Element is missing. Element name: -config10=Parameter value can't be negative. Element name: -config11=The log file location value cannot contain the pass separator character: - diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/ServerSocketListener.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/ServerSocketListener.java deleted file mode 100644 index 7516c8c0b..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/ServerSocketListener.java +++ /dev/null @@ -1,140 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.monitor; - -import java.net.ServerSocket; -import java.net.Socket; -import java.util.Iterator; -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.monitor.config.Redirect; - -/** - * A server socket listener. - * - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ -public class ServerSocketListener - extends Thread - implements ConnectionListener // SS -{ - protected Monitor monitor = null; - protected Redirect redirect = null; - - protected ServerSocket serverSocket = null; - protected boolean stopServerSocket = false; - - protected Vector connectionList = new Vector(); - - /** - * Create server socket listener. - * @param monitor a Monitor object. - * @param redirect a Redirect object. - */ - public ServerSocketListener(Monitor monitor, Redirect redirect) - { - this.monitor = monitor; - this.redirect = redirect; - - // Start listening - start(); - } - - /** - * Run the thread and listen for a connection on the socket. - */ - public void run() - { - try - { - // Create server socket - serverSocket = - new ServerSocket( - redirect.getListenPort(), - redirect.getMaxConnections()); - // SS - - // Set timeout so that server socket will continue to accept connections - serverSocket.setSoTimeout(0); - - // Listen for connections until interrupted - while (!stopServerSocket) - { - // Accept connections - Socket socket = serverSocket.accept(); - - // If the server socket was NOT stopped, process connection - if (!stopServerSocket) - { - // Create new connection - SocketConnection socketConnection = - new SocketConnection(this.monitor, this.redirect, socket); - - //register as a listener - socketConnection.addConnectionListener(this); // SS - - // Add to connection list - connectionList.add(socketConnection); - } - } - } - - catch (Exception e) - { - // If the exception was NOT caused by closing the socket, then stop monitor - if (!e.getMessage().equals("socket closed")) - { - monitor.exitMonitor(e); - } - } - } - - /** - * Stop listening for a connection on the socket. - */ - public void shutdown() - { - try - { - // Shutdown all active connections - Iterator iterator = connectionList.iterator(); - while (iterator.hasNext()) - { - ((SocketConnection) iterator.next()).shutdown(); - } - - // Tell the server socket listening thread to stop - this.stopServerSocket = true; - - // Set the server socket timeout to 1 ms - serverSocket.setSoTimeout(1); - - // Close the server socket - if (serverSocket != null) - serverSocket.close(); - } - - catch (Exception e) - { - } - } - - // ==== SS start ==== - /* (non-Javadoc) - * @see org.wsi.test.monitor.ConnectionListener#connectionClosed() - */ - public void connectionClosed(SocketConnection connection) - { - connectionList.remove(connection); - } - // ==== SS end ==== -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/SocketConnection.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/SocketConnection.java deleted file mode 100644 index fe2a0f4cf..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/SocketConnection.java +++ /dev/null @@ -1,306 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.monitor; - -import java.net.Socket; -import java.util.Iterator; -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.log.MimeParts; -import org.eclipse.wst.wsi.internal.core.monitor.config.Redirect; -import org.eclipse.wst.wsi.internal.core.util.Utils; - -/** - * A socket connection. - * - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ -public class SocketConnection extends Thread -{ - protected Monitor monitor; - protected Redirect redirect; - protected Socket inSocket; - protected Socket outSocket; - - protected String httpProxyHost = null; - protected int httpProxyPort; - - protected SocketHandler requestSocketHandler = null; - protected SocketHandler responseSocketHandler = null; - - private Vector listeners = new Vector(); // SS - - /** - * Create socket connection. - * @param monitor a Monitor object. - * @param redirect a Redirect object. - * @param inSocket in socket. - */ - public SocketConnection(Monitor monitor, Redirect redirect, Socket inSocket) - { - this.monitor = monitor; - this.redirect = redirect; - this.inSocket = inSocket; - - // Start processing the connection - start(); - } - - /** - * Process the socket connection. - */ - public void run() - { - // Get the HTTP proxy settings if there are any set (not used currently) - loadHttpProxySettings(); - - try - { - // Open the connection to the server - this.outSocket = new Socket(redirect.getToHost(), redirect.getToPort()); - - // Set the read timeout for the input socket - this.inSocket.setSoTimeout(redirect.getReadTimeoutSeconds() * 1000); - - // Get the next conversation ID - int conversationId = monitor.getNextConversationId(); - - // Create the socket handlers which are used to send the data from - // the client to the server - requestSocketHandler = - new SocketHandler( - this, - MessageEntry.TYPE_REQUEST, - conversationId, - redirect.getToHost(), - this.inSocket, - this.outSocket, - redirect.getReadTimeoutSeconds()); - responseSocketHandler = - new SocketHandler( - this, - MessageEntry.TYPE_RESPONSE, - conversationId, - redirect.getToHost(), - this.outSocket, - this.inSocket, - redirect.getReadTimeoutSeconds()); - - // Tell each socketHandler about the other one - requestSocketHandler.setPairedSocketHandler(responseSocketHandler); - responseSocketHandler.setPairedSocketHandler(requestSocketHandler); - } - - catch (Exception e) - { - Monitor.staticPrintMessage( - "error04", - redirect.getToHost(), - "Monitor cannot connect to a redirect host:"); - - shutdown(); - - try - { - this.inSocket.close(); - } - catch (Throwable t) - { - } - } - } - - /** - * Log message. - * @param conversationID the coversation id. - * @param connectionType the connection type. - * @param timestamp the timestamp. - * @param senderHostAndPort the sender host and port. - * @param receiverHostAndPort the receiver host and port. - * @param messageBuffer the message. - * @param bom the BOM. - * @param encoding the encoding. - * @throws WSIException if there is a problem logging message. - */ - public void logMessage( - int conversationID, - String connectionType, - String timestamp, - String senderHostAndPort, - String receiverHostAndPort, - StringBuffer messageBuffer, - int bom, - String encoding) - throws WSIException - { - MessageEntry messageEntry = null; - - // Create message entry - messageEntry = - createMessageEntry( - conversationID, - connectionType, - timestamp, - senderHostAndPort, - receiverHostAndPort, - messageBuffer.toString(), - bom, - encoding); - - // DEBUG: - //debug("logMessage", " messageEntry: " + messageEntry); - - // Add entry to the queue - monitor.getMessageEntryQueue().addMessageEntry(messageEntry); - } - - /** - * Create a log entry from all of the data that was gathered. - */ - private MessageEntry createMessageEntry( - int conversationID, - String messageType, - String timestamp, - String senderHostAndPort, - String receiverHostAndPort, - String message, - int bom, - String encoding) - throws WSIException - { - // Create log entry object - MessageEntry messageEntry = monitor.getLog().createLogEntry(); - - // Set input information in log entry - // NOTE: The ID is set just before the log entry is written to the log file in LogEntryQueue - //logEntry.setId(id); - messageEntry.setConversationId(String.valueOf(conversationID)); - messageEntry.setType(messageType); - messageEntry.setTimestamp(timestamp); - messageEntry.setSenderHostAndPort(senderHostAndPort); - messageEntry.setReceiverHostAndPort(receiverHostAndPort); - messageEntry.setEncoding(encoding); - - // Get HTTP headers from full message - String httpHeaders = Utils.getHTTPHeaders(message); - messageEntry.setHTTPHeaders(httpHeaders); - - if (Utils.isMultipartRelatedMessage(httpHeaders)) - { - MimeParts mimeParts = Utils.parseMultipartRelatedMessage(message, httpHeaders, encoding); - if (mimeParts == null) - { - // problem creating Mimeparts -- treat it as simple SOAP message - String content = Utils.getContent(message); - messageEntry.setMessage(content); - messageEntry.setMimeContent(false); - } - else - { - messageEntry.setMimeParts(mimeParts); - messageEntry.setMimeContent(true); - } - } - else - { - // Get the message content - String content = Utils.getContent(message); - messageEntry.setMessage(content); - messageEntry.setMimeContent(false); - } - - // Set the BOM, if there is one - if (bom != 0) - messageEntry.setBOM(bom); - - return messageEntry; - } - - /** - * Load HTTP proxy settings. - */ - public void loadHttpProxySettings() - { - // Get the HTTP proxy host setting - this.httpProxyHost = System.getProperty("http.proxyHost"); - if (this.httpProxyHost != null && httpProxyHost.equals("")) - this.httpProxyHost = null; - - // If there was an HTTP proxy host setting, then get the port - if (this.httpProxyHost != null) - { - String portString = System.getProperty("http.proxyPort"); - - // Set default to 80 - if (portString == null || portString.equals("")) - this.httpProxyPort = 80; - else - httpProxyPort = Integer.parseInt(portString); - } - } - - Monitor getMonitor() - { - return this.monitor; - } - - synchronized void wakeUp() - { - fireConnectionClosed(); // SS - notifyAll(); - } - - /** - * Shutdown. - */ - public void shutdown() - { - if (this.requestSocketHandler != null) - this.requestSocketHandler.shutdown(); - if (this.responseSocketHandler != null) - this.responseSocketHandler.shutdown(); - } - - // ==== SS start ==== - /** - * Add connection event listener. - * @param listener event listener. - * @see #removeConnectionListener - */ - public void addConnectionListener(ConnectionListener listener) - { - listeners.add(listener); - } - /** - * Remove connection event listener. - * @param listener event listener. - * @see #addConnectionListener - */ - public void removeConnectionListener(ConnectionListener listener) - { - listeners.remove(listener); - } - /** - * Notify listeners on connection close. - */ - private void fireConnectionClosed() - { - for (Iterator i = listeners.iterator(); i.hasNext();) - { - ConnectionListener listener = (ConnectionListener) i.next(); - listener.connectionClosed(this); - } - } - // ==== SS end ==== -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/SocketHandler.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/SocketHandler.java deleted file mode 100644 index 8a38a2645..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/SocketHandler.java +++ /dev/null @@ -1,963 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2003 IBM Corporation, Beacon Information Technology Inc. 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 - Initial API and implementation - * BeaconIT - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.monitor; - -import java.io.IOException; -import java.io.InputStream; -import java.io.InterruptedIOException; -import java.io.OutputStream; -import java.io.UnsupportedEncodingException; -import java.net.Socket; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.util.Utils; - -/** - * Socket Handler. - * - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ -public class SocketHandler extends Thread -{ - protected SocketConnection socketConnection; - protected SocketHandler pairedSocketHandler; - protected String connectionType; - protected int conversationID; - protected String targetHost; - protected int readTimeoutSeconds; - - protected Socket inSocket; - protected Socket outSocket; - protected InputStream inputStream = null; - protected OutputStream outputStream = null; - - protected boolean verbose = false; - - protected boolean readTimedOut = false; - - // I18N: 2003.02.26 modified by K.Nakagome@BeaconIT - private String mimeCharset = null; - private String xmlEncoding = null; - - protected static final String CRLF = "\r\n"; - - protected static final String HTTP_100_CONTINUE = - "100 Continue".toUpperCase(); - protected static final String CHUNKED = - "Transfer-Encoding: chunked".toUpperCase(); - protected static final String CHUNKED_WITH_QUOTES = - "Transfer-Encoding: \"chunked\"".toUpperCase(); - protected static final String CONTENT_LENGTH = - "Content-Length:".toUpperCase(); - - /** - * Create socket handler. - * @param socketConnection socket connection. - * @param connectionType connection type. - * @param conversationID conversation id. - * @param targetHost target host. - * @param inSocket in socket. - * @param outSocket out socket. - * @param readTimeoutSeconds read timeout seconds. - */ - public SocketHandler( - SocketConnection socketConnection, - String connectionType, - int conversationID, - String targetHost, - Socket inSocket, - Socket outSocket, - int readTimeoutSeconds) - { - this.socketConnection = socketConnection; - this.connectionType = connectionType; - this.conversationID = conversationID; - this.targetHost = targetHost; - this.inSocket = inSocket; - this.outSocket = outSocket; - this.readTimeoutSeconds = readTimeoutSeconds; - - // ADD: - verbose = - socketConnection.getMonitor().getMonitorConfig().getVerboseOption(); - - start(); - } - - /** - * Set paired socket handler. - * @param pairedSocketHandler paired socket handler. - */ - public void setPairedSocketHandler(SocketHandler pairedSocketHandler) - { - this.pairedSocketHandler = pairedSocketHandler; - } - - /** - * Send the data from the input socket to the output socket. - */ - public void run() - { - int readLen; - String readMsg; - MessageContext messageContext = null; - - // Create read buffer - byte[] readBuffer = new byte[4096]; - - try - { - // Get the input and output streams - this.inputStream = this.inSocket.getInputStream(); - this.outputStream = this.outSocket.getOutputStream(); - - // Process while the connection is active - // (NOTE: there might be more than 1 message per connection) - boolean connectionActive = true; - while (connectionActive) - { - // Reset all data - readLen = 0; - messageContext = new MessageContext(); - - // Read until message is complete - boolean messageComplete = false; - while (!messageComplete) - { - try - { - // DEBUG: - debug("run", "Read data from the input stream."); - - // Read data from the input stream - readLen = inputStream.read(readBuffer, 0, readBuffer.length); - - // Reset read timeout flag - readTimedOut = false; - - // DEBUG: - debug("run", "readLen: " + readLen); - - if (readLen == -1) - { - connectionActive = false; - messageComplete = true; - } - - // If data was read, then check for 100 continue - else if (readLen > 0) - { - // If this is the first data that was read, then get the timestamp - if (messageContext.timestamp == null) - messageContext.timestamp = Utils.getTimestamp(); - - if (connectionType.equals(MessageEntry.TYPE_REQUEST)) - { - byte[] toHost = - new String( - socketConnection.redirect.getToHost() - + ":" - + socketConnection.redirect.getToPort()) - .getBytes(); - - String message = new String(readBuffer, 0, readLen); - - int index = message.indexOf(CRLF + "Host: "); - if (index > -1) - { - index += 8; - int secondPart = message.indexOf(CRLF, index); - - // Write the data to the output stream and then go format it - write(this.outputStream, readBuffer, 0, index); - write(this.outputStream, toHost, 0, toHost.length); - write( - this.outputStream, - readBuffer, - secondPart, - readLen - secondPart); - } - else - { - // Write the data to the output stream and then go format it - write(this.outputStream, readBuffer, 0, readLen); - } - } - else - { - // Write the data to the output stream and then go format it - write(this.outputStream, readBuffer, 0, readLen); - } - - // DEBUG: - if (verbose) - { - String bufferString = new String(readBuffer, 0, readLen); - debug("run", "buffer as string: [" + bufferString + "]"); - if (bufferString.length() <= 50) - debug( - "run", - "buffer as hexstring: [" - + Utils.toHexString(bufferString) - + "]"); - else - debug( - "run", - "buffer as hexstring: [" - + Utils.toHexString(bufferString.substring(0, 50)) - + " ...]"); - } - - // See if this part of the buffer contains the BOM - if (messageContext.bom == 0) - { - messageContext.bom = getBOM(readBuffer); - } - - // DEBUG - debug("run", "bom: " + messageContext.bom); - - String encoding; - - try - { - encoding = getEncoding(); - readMsg = - new String( - readBuffer, - 0, - readLen, - Utils.getJavaEncoding(encoding)); - setEncoding(readMsg); - if (!encoding.equals(getEncoding())) - { - encoding = getEncoding(); - readMsg = - new String( - readBuffer, - 0, - readLen, - Utils.getJavaEncoding(encoding)); - } - } - - catch (UnsupportedEncodingException uee) - { - debug("run", "EXCEPTION (3): " + uee.toString()); - throw new RuntimeException(uee.toString()); - } - - // Set encoding in the message context - messageContext.encoding = encoding; - - // DEBUG - debug("run", "encoding: " + messageContext.encoding); - - // Process message - messageContext = processMessage(readLen, readMsg, messageContext); - } - - // If message is complete, then log it and reset buffer - if ((isMessageComplete(messageContext)) - || ((readLen == -1) && (messageContext.messageBuffer.length() > 0))) - { - // Log message - logMessage(messageContext); - - // Set message complete - messageComplete = true; - } - } - - catch (InterruptedIOException ie) - { - // Set read timeout flag - readTimedOut = true; - - debug("run", "InterruptedIOException: " + ie.toString()); - - // If the read is not done, then shutdown - if (pairedSocketHandler != null - && pairedSocketHandler.isReadWaiting() - && pairedSocketHandler.isReadTimedOut()) - { - // DEBUG: - debug("run", "read timed out on both sockets"); - - // If there is data in the message buffer and it is complete, then log it - if ((isMessageComplete(messageContext)) - || (messageContext.messageBuffer.length() > 0)) - { - // Log message - logMessage(messageContext); - } - - // Set message complete - connectionActive = false; - messageComplete = true; - } - } - - catch (Exception e2) - { - // DEBUG: - debug( - "run", - "EXCEPTION (2): " - + e2.toString() - + "\n" - + Utils.getExceptionDetails(e2)); - //e2.printStackTrace(); - - // If there is data in the message buffer and it is complete, then log it - if ((isMessageComplete(messageContext)) - || (messageContext.messageBuffer.length() > 0)) - { - // Log message - logMessage(messageContext); - } - - // Set message complete - connectionActive = false; - messageComplete = true; - } - } - } - } - - catch (Exception e) - { - // DEBUG: - debug( - "run", - "EXCEPTION (1): " - + e.getMessage() - + "\n" - + Utils.getExceptionDetails(e)); - //e.printStackTrace(); - } - - catch (Error err) - { - // DEBUG: - debug("run", "ERROR: " + err.getMessage()); - //err.printStackTrace(); - } - - finally - { - shutdown(); - socketConnection.wakeUp(); - } - } - - /** - * Process the message. - */ - private MessageContext processMessage( - int readLen, - String readMsg, - MessageContext inMessageContext) - throws WSIException - { - boolean continueRead = false; - - // Initialize message context - MessageContext messageContext = inMessageContext; - - // Get message buffer and chunked data from message context - StringBuffer messageBuffer = messageContext.messageBuffer; - ChunkedData chunkedData = messageContext.chunkedData; - - // If all we received was the header with 100 continue, then ignore it - if ((readMsg.toUpperCase().indexOf(HTTP_100_CONTINUE) != -1) - && (readLen >= 25)) - { - // DEBUG: - debug("processMessage", "Ignore HTTP 100 Continue."); - - // Find the end of the HTTP 100 message - int index = Utils.getFirstCRLFCRLF(readMsg); - - // If there is only the HTTP 100 message, then just ignore it - if (index == readMsg.length()) - continueRead = true; - - // Otherwise remove the HTTP 100 message and continue - else - readMsg = readMsg.substring(index); - } - - // ADD: What if a bypassed message contains another message after it? - if (!continueRead && bypassMessage(readMsg)) - { - // DEBUG: - debug( - "processMessage", - "Do not log message as defined in the monitor spec, but it will be sent."); - - continueRead = true; - } - - if (!continueRead) - { - int index = 0; - - // If there is chunked data, then get the length - if ((readMsg.toUpperCase().indexOf(CHUNKED) != -1) - || (readMsg.toUpperCase().indexOf(CHUNKED_WITH_QUOTES) != -1)) - { - // DEBUG: - debug("processMessage", "Processing chunked data..."); - - // Get the location of the first CFLF - if ((index = readMsg.indexOf(CRLF + CRLF)) == -1) - { - throw new WSIException("Could not locate end of HTTP header."); - } - - // Include the CRLF+CRLF in the index - index += 4; - - // DEBUG: - debug( - "processMessage", - "Add header before decoding chunked data: [" - + readMsg.substring(0, index) - + "]"); - - // Add HTTP header to buffer - messageBuffer.append(readMsg.substring(0, index)); - - // If there is no more data (i.e. header only), then just indicate that there is more chunked data - if (readMsg.length() == index) - { - chunkedData = new ChunkedData(this, true); - - // DEBUG: - debug( - "processMessage", - "There is chunk data, but none in this part of the message."); - } - - // Determine if the remainder of the data is complete (i.e. ends with [0][CRLF][Optional Footer][CRLF]) - else - { - // Create chunked data object - chunkedData = new ChunkedData(this, readMsg.substring(index)); - - if (!chunkedData.isMoreChunkedData()) - { - chunkedData.decodeAndAddDataToBuffer(messageBuffer); - } - } - } - - else if (chunkedData != null && chunkedData.isMoreChunkedData()) - { - // DEBUG: - debug("processMessage", "Processing MORE chunked data..."); - - // Add data - chunkedData.addData(readMsg); - - // Decode data - if (!chunkedData.isMoreChunkedData()) - { - chunkedData.decodeAndAddDataToBuffer(messageBuffer); - } - } - - // Else just append the data to the buffer - else - { - // DEBUG: - debug( - "processMessage", - "Add data to message entry buffer: [" + readMsg + "]"); - - messageBuffer.append(readMsg); - } - } - - // Set updated message buffer and chunked data in message context - messageContext.messageBuffer = messageBuffer; - messageContext.chunkedData = chunkedData; - - // Return message context - return messageContext; - } - - /** - * Shutdown input socket and close input stream. - * @param inSocket in socket. - * @param inputStream input stream. - */ - protected void stopInput(Socket inSocket, InputStream inputStream) - { - try - { - // If there is a input socket, then shutdown the input - if (inSocket != null) - { - inSocket.shutdownInput(); - } - - // If there is an input stream then close it - if (inputStream != null) - { - inputStream.close(); - } - } - catch (Exception e) - { - // Ignore since we are stopping everything - } - - inputStream = null; - } - - /** - * Shutdown output socket and close output stream. - * @param outSocket out socket. - * @param outputStream output stream. - */ - protected void stopOutput(Socket outSocket, OutputStream outputStream) - { - try - { - // If there is an output stream, then flush it - if (outputStream != null) - { - outputStream.flush(); - } - - // If there is a input socket, then shutdown the input - if (outSocket != null) - { - outSocket.shutdownOutput(); - } - - // If there is an output stream then close it - if (outputStream != null) - { - outputStream.close(); - } - } - - catch (Exception e) - { - // Ignore since we are stopping everything - } - - outputStream = null; - } - - /** - * Shutdown handler. - */ - public void shutdown() - { - // Stop both the input and output - stopInput(this.inSocket, this.inputStream); - stopOutput(this.outSocket, this.outputStream); - } - - /** - * Display debug messages. - */ - void debug(String method, String message) - { - debug("SocketHandler", method, message); - } - - /** - * Display debug messages. - */ - void debug(String className, String method, String message) - { - if (verbose) - print(className, method, message); - } - - /** - * Display messages. - */ - void print(String className, String method, String message) - { - System.out.println( - "[" - + Thread.currentThread().getName() - + "] [" - + className - + "." - + method - + "] [" - + this.connectionType - + "] " - + message); - } - - /** - * Write data. - */ - private void write( - OutputStream outputStream, - byte[] buffer, - int start, - int length) - throws IOException - { - if (outputStream == null) - { - // DEBUG: - debug("write", "Could not write buffer because output stream is null."); - } - else - { - // DEBUG: - debug("write", "buffer: [" + new String(buffer, start, length) + "]"); - - outputStream.write(buffer, start, length); - } - } - - /** - * Check if message is complete. - * - * @param messageContext - */ - private boolean isMessageComplete(MessageContext messageContext) - throws WSIException - { - int index, index2, contentLen; - boolean messageComplete = false; - - boolean moreChunkedData = messageContext.chunkedData.isMoreChunkedData(); - - String message = messageContext.messageBuffer.toString(); - - // Find the first CRLF + CRLF which marks the end of the HTTP header - String httpHeader; - index = Utils.getFirstCRLFCRLF(message); - if (index == -1) - httpHeader = message; - else - httpHeader = message.substring(0, index); - - // If chunked data, then complete only if there is no more data - if (((httpHeader.toUpperCase().indexOf(CHUNKED) != -1) - || (httpHeader.toUpperCase().indexOf(CHUNKED_WITH_QUOTES) != -1)) - && (!moreChunkedData)) - { - debug( - "isMessageComplete", - "HTTP header indicates chunked data and there is no more chunked data"); - messageComplete = true; - } - - // Check for content length - else if ((index = httpHeader.toUpperCase().indexOf(CONTENT_LENGTH)) == -1) - { - debug("isMessageComplete", "HTTP header does not contain content length"); - - // Should not have complete POST header without content length - if (httpHeader.startsWith("POST")) - { - if (httpHeader.endsWith(CRLF + CRLF)) - { - throw new WSIException("Could not locate content-length in HTTP POST header."); - } - - messageComplete = false; - } - - // This could be a GET, so see if the the complete header has been received - else if ( - httpHeader.startsWith("GET") - && (message.length() == httpHeader.length() - && message.endsWith(CRLF + CRLF))) - { - messageComplete = true; - } - - else - { - messageComplete = false; - } - } - - // If there is content length, then see if the entire message has been received - else if ((index = httpHeader.toUpperCase().indexOf(CONTENT_LENGTH)) != -1) - { - // Find end of content length value - index2 = httpHeader.indexOf(CRLF, index); - - debug("isMessageComplete", "CRLF: " + Utils.toHexString(CRLF)); - debug( - "isMessageComplete", - "httpHeader/index: " + Utils.toHexString(httpHeader.substring(index))); - - // Get content length - contentLen = - Integer - .decode( - httpHeader.substring(index + CONTENT_LENGTH.length() + 1, index2)) - .intValue(); - - // DEBUG: - debug("isMessageComplete", "contentLen: " + contentLen); - - // Find the first CRLF + CRLF which marks the end of the HTTP header - index = Utils.getFirstCRLFCRLF(message); - - // DEBUG: - debug( - "isMessageComplete", - "actual received message length: " + (message.length() - (index))); - - // If content length is equal to actual message content length, then message is complete - if (contentLen == message.length() - index) - { - messageComplete = true; - - // DEBUG: - debug( - "isMessageComplete", - "contentLen = actual received message length."); - } - } - - // Message is not complete - else - { - messageComplete = false; - } - - // DEBUG: - debug("isMessageComplete", "messageComplete: " + messageComplete); - - return messageComplete; - } - - /** - * Log message. - * - * @param messageBuffer - */ - private void logMessage(MessageContext messageContext) throws WSIException - { - // Determine sender and receiver host/port - String senderHostAndPort, receiverHostAndPort; - - // Request - if (connectionType.equals(MessageEntry.TYPE_REQUEST)) - { - senderHostAndPort = - inSocket.getInetAddress().getHostAddress() + ":" + inSocket.getPort(); - receiverHostAndPort = targetHost + ":" + outSocket.getPort(); - } - - // Response - else - { - senderHostAndPort = targetHost + ":" + inSocket.getPort(); - receiverHostAndPort = - outSocket.getInetAddress().getHostAddress() + ":" + outSocket.getPort(); - } - - // Create message entry - this.socketConnection.logMessage( - conversationID, - this.connectionType, - messageContext.timestamp, - senderHostAndPort, - receiverHostAndPort, - messageContext.messageBuffer, - messageContext.bom, - messageContext.encoding); - } - - /** - * Check for HTTP messages that should not be logged. - */ - private boolean bypassMessage(String message) - { - boolean bypass = false; - if ((message.startsWith("CONNECT")) - || (message.startsWith("TRACE")) - || (message.startsWith("DELETE")) - || (message.startsWith("OPTIONS")) - || (message.startsWith("HEAD"))) - { - bypass = true; - } - - return bypass; - } - - // I18N: 2003.02.26 modified by K.Nakagome@BeaconIT - /** - * Set Encoding Parameters - * @param messageFragment String of a HTTP message fragment. - * @author K.Nakagome@BeaconIT Japan SIG - */ - private void setEncoding(String messageFragment) - { - if (mimeCharset == null || mimeCharset.length() == 0) - { - mimeCharset = Utils.getHTTPCharset(messageFragment); - } - if (xmlEncoding == null || xmlEncoding.length() == 0) - { - xmlEncoding = Utils.getXMLEncoding(messageFragment); - } - return; - } - - // I18N: 2003.02.26 modified by K.Nakagome@BeaconIT - /** - * Get Encoding Parameter - * @return Character encoding of HTTP message. - * @author K.Nakagome@BeaconIT Japan SIG - */ - private String getEncoding() - { - String encoding = WSIConstants.DEFAULT_XML_ENCODING; - if (mimeCharset != null && mimeCharset.length() > 0) - { - encoding = mimeCharset; - } - if (xmlEncoding != null && xmlEncoding.length() > 0) - { - encoding = xmlEncoding; - } - return encoding; - } - - /** - * Get the Byte Order Mark from the message (if there is one). - */ - private int getBOM(byte[] message) - { - int bom = 0; - - byte FF = (byte) 0xFF; - byte FE = (byte) 0xFE; - byte EF = (byte) 0xEF; - byte BB = (byte) 0xBB; - byte BF = (byte) 0xBF; - - // Search through the byte array for CRLF+CRLF. This will mark the end of the header. - int i = Utils.getFirstCRLFCRLF(message, 0); - if (i != -1) - { - // DEBUG: - debug( - "getBOM", - "message[i]: " - + message[i] - + ", message[i+1]: " - + message[i+1]); - - // Check for UTF-8 BOM - if (((i + 2) < message.length) - && message[i] == EF - && message[i+1] == BB - && message[i+2] == BF) - { - bom = 0xEFBBBF; - } - // Check for UTF-16 big-endian BOM - else if ( - ((i+1) < message.length) - && message[i] == FE - && message[i + 1] == FF) - { - bom = 0xFEFF; - } - // Check for UTF-16 little-endian BOM - else if ( - ((i+1) < message.length) - && message[i] == FF - && message[i+1] == FE) - { - bom = 0xFFFE; - } - // ADD: Do we need to check for other BOMs - } - return bom; - } - - /** - * Determine if the read is still waiting for data. - */ - boolean isReadWaiting() - { - boolean readWaiting = false; - - try - { - // DEBUG: - debug( - "isReadWaiting", - "inSocket.getInputStream().available(): " - + inSocket.getInputStream().available()); - - if (inSocket.getInputStream().available() == 0) - { - readWaiting = true; - } - } - - catch (IOException ioe) - { - } - - return readWaiting; - } - - /** - * Get read timed out flag. - */ - boolean isReadTimedOut() - { - return this.readTimedOut; - } - - /** - * Message context contains information about the message that is being processed. - */ - class MessageContext - { - StringBuffer messageBuffer; - ChunkedData chunkedData; - String timestamp; - int bom; - String encoding; - - /** - * Create new message context. - */ - MessageContext() - { - messageBuffer = new StringBuffer(); - chunkedData = new ChunkedData(); - timestamp = null; - bom = 0; - encoding = WSIConstants.DEFAULT_XML_ENCODING; - } - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/Comment.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/Comment.java deleted file mode 100644 index bde4ad6fe..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/Comment.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.monitor.config; - -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.document.DocumentElement; - -/** - * The interface for monitor config Comment element. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface Comment extends DocumentElement -{ - /** - * Element name. - */ - public static final String ELEM_NAME = WSIConstants.ELEM_COMMENT; - - /** - * QName. - */ - public static final QName QNAME = - new QName(WSIConstants.NS_URI_WSI_MONITOR_CONFIG, ELEM_NAME); - - /** - * Get comment text. - * @return comment text. - * @see #setText - */ - public String getText(); - - /** - * Set comment text. - * @param text the comment text. - * @see #getText - */ - public void setText(String text); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/ManInTheMiddle.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/ManInTheMiddle.java deleted file mode 100644 index 85c0aa2fb..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/ManInTheMiddle.java +++ /dev/null @@ -1,72 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.monitor.config; - -import java.util.Vector; - -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.document.DocumentElement; - -/** - * The interface for the monitor config ManInTheMiddle element. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface ManInTheMiddle extends DocumentElement -{ - /** - * Element name. - */ - public static final String ELEM_NAME = WSIConstants.ELEM_MAN_IN_THE_MIDDLE; - - /** - * QName. - */ - public static final QName QNAME = - new QName(WSIConstants.NS_URI_WSI_MONITOR_CONFIG, ELEM_NAME); - - /** - * Get comment. - * @return comment. - * @see #setComment - */ - public Comment getComment(); - - /** - * Set comment. - * @param comment the Comment object. - * @see #getComment - */ - public void setComment(Comment comment); - - /** - * Get redirects. - * @return the redirirects. - * @see #setRedirectList - */ - public Vector getRedirectList(); - - /** - * Add redirect. - * @param redirect the Redirect object. - */ - public void addRedirect(Redirect redirect); - - /** - * Set redirects. - * @param redirectList a list of the redirects. - * @see #getRedirectList - */ - public void setRedirectList(Vector redirectList); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/MonitorConfig.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/MonitorConfig.java deleted file mode 100644 index 11df1ed52..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/MonitorConfig.java +++ /dev/null @@ -1,165 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.monitor.config; - -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.common.AddStyleSheet; -import org.eclipse.wst.wsi.internal.core.document.WSIDocument; -import org.eclipse.wst.wsi.internal.core.util.MessageList; - -/** - * This is the interface for the monitor configuration file. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface MonitorConfig extends WSIDocument -{ - /** - * Element name. - */ - public static final String ELEM_NAME = WSIConstants.ELEM_CONFIG; - - /** - * QName. - */ - public static final QName QNAME = - new QName(WSIConstants.NS_URI_WSI_MONITOR_CONFIG, ELEM_NAME); - - /** - * Initialize monitor config. - * @param messageList a lMessageList object. - */ - public void init(MessageList messageList); - - /** - * Get comment. - * @return comment. - * @see #setComment - */ - public Comment getComment(); - - /** - * Set comment. - * @param comment a Comment object. - * @see #getComment - */ - public void setComment(Comment comment); - - /** - * Get log file location. - * @return log file location. - * @see #setLogLocation - */ - public String getLogLocation(); - - /** - * Set log file location. - * @param logURI log file location. - * @see #getLogLocation - */ - public void setLogLocation(String logURI); - - /** - * Get replace log. - * @return replace log. - * @see #setReplaceLog - */ - public boolean getReplaceLog(); - - /** - * Set replace log. - * @param replaceLog a replace log. - * @see #getReplaceLog - */ - public void setReplaceLog(boolean replaceLog); - - /** - * Get add style sheet. - * @return add style sheet. - * @see #setAddStyleSheet - */ - public AddStyleSheet getAddStyleSheet(); - - /** - * Set add style sheet. - * @param addStyleSheet add style sheet. - * @see #getAddStyleSheet - */ - public void setAddStyleSheet(AddStyleSheet addStyleSheet); - - /** - * Get log duration. - * @return log duration. - * @see #setLogDuration - */ - public int getLogDuration(); - - /** - * Set log duration. - * @param logDuration log duration. - * @see #getLogDuration - */ - public void setLogDuration(int logDuration); - - /** - * Get timeout. - * @return timeout. - * @see #setTimeout - */ - public int getTimeout(); - - /** - * Set timeout. - * @param timeout timeout. - * @see #getTimeout - */ - public void setTimeout(int timeout); - - /** - * Get man-in-the-middle information. - * @return man-in-the-middle information. - * @see #setManInTheMiddle - */ - public ManInTheMiddle getManInTheMiddle(); - - /** - * Set man-in-the-middle information. - * @param manInTheMiddle man-in-the-middle information. - * @see #getManInTheMiddle - */ - public void setManInTheMiddle(ManInTheMiddle manInTheMiddle); - - /** - * Get verbose option. - * @return verbose option. - * @see #setVerboseOption - */ - public boolean getVerboseOption(); - - /** - * Set verbose option. - * @param verbose verbose option. - * @see #getVerboseOption - */ - public void setVerboseOption(boolean verbose); - - /** - * Parse the command line arguments. - * @param args the command line arguments. - * @throws WSIException if problems occur while parsing the - * command line arguments, - */ - public void parseArgs(String[] args) throws WSIException; -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/MonitorConfigReader.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/MonitorConfigReader.java deleted file mode 100644 index 38fbd0753..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/MonitorConfigReader.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.monitor.config; - -import java.io.Reader; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.document.DocumentReader; -import org.eclipse.wst.wsi.internal.core.util.MessageList; - -/** - * Defines the interface used to read the monitor config documents. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface MonitorConfigReader extends DocumentReader -{ - /** - * Initialize monitor config. - * @param messageList a MessageList object. - */ - public void init(MessageList messageList); - - /** - * Read the monitor config file. - * @param monitorConfigURI the monitor config file location. - * @return a MonitorConfig object - * @throws WSIException if problems occur while reading monitor config file. - */ - public MonitorConfig readMonitorConfig(String monitorConfigURI) - throws WSIException; - - /** - * Read the monitor config file. - * @param reader a Reader object. - * @return a MonitorConfig object - * @throws WSIException if problems occur while reading monitor config file. - */ - public MonitorConfig readMonitorConfig(Reader reader) throws WSIException; -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/Redirect.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/Redirect.java deleted file mode 100644 index 6e3082d6d..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/Redirect.java +++ /dev/null @@ -1,124 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.monitor.config; - -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.document.DocumentElement; - -/** - * The interface for monitor config Redirect element. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface Redirect extends DocumentElement -{ - /** - * Element name. - */ - public static final String ELEM_NAME = WSIConstants.ELEM_REDIRECT; - - /** - * QName. - */ - public static final QName QNAME = - new QName(WSIConstants.NS_URI_WSI_MONITOR_CONFIG, ELEM_NAME); - - /** - * Get comment. - * @return comment. - * @see #setComment - */ - public Comment getComment(); - - /** - * Set comment. - * @param comment a Commentobject. - * @see #getComment - */ - public void setComment(Comment comment); - - /** - * Get listen port. - * @return listen port. - * @see #setListenPort - */ - public int getListenPort(); - - /** - * Set listen port. - * @param listenPort listen port. - * @see #getListenPort - */ - public void setListenPort(int listenPort); - - /** - * Get host. - * @return host. - * @see #setHost - */ - public String getHost(); - - /** - * Set host. - * @param host host. - * @see #getHost - */ - public void setHost(String host); - - /** - * Get send to port. - * @return send to port. - */ - public int getToPort(); - - /** - * Get send to host. - * @return send to host. - */ - public String getToHost(); - - /** - * Get send to protocol. - * @return send to protocol. - */ - public String getToProtocol(); - - /** - * Get maximum connections. - * @return maximum connections. - * @see #setMaxConnections - */ - public int getMaxConnections(); - - /** - * Set maximum connections. - * @param maxConnections maximum connections. - * @see #getMaxConnections - */ - public void setMaxConnections(int maxConnections); - - /** - * Get read timeout seconds. - * @return read timeout seconds. - * @see #setReadTimeoutSeconds - */ - public int getReadTimeoutSeconds(); - - /** - * Set read timeout seconds. - * @param readTimeoutSeconds read timeout seconds. - * @see #getReadTimeoutSeconds - */ - public void setReadTimeoutSeconds(int readTimeoutSeconds); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/impl/CommentImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/impl/CommentImpl.java deleted file mode 100644 index 61c09b5d7..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/impl/CommentImpl.java +++ /dev/null @@ -1,75 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.monitor.config.impl; - -import java.io.PrintWriter; -import java.io.StringWriter; - -import org.eclipse.wst.wsi.internal.core.monitor.config.Comment; - -/** - * The implementation for monitor config Comment element. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class CommentImpl implements Comment -{ - /** - * Comment text. - */ - protected String text = null; - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.Comment#getText() - */ - public String getText() - { - return this.text; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.Comment#setText(String) - */ - public void setText(String text) - { - this.text = text; - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentElement#toXMLString(String) - */ - public String toXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - // Config options - //pw.print(" <" + nsName + ELEM_NAME + " xmlns=\"" + WSIConstants.NS_URI_WSI_MONITOR_CONFIG + "\">"); - pw.print(" <" + nsName + ELEM_NAME + ">"); - pw.print(this.text); - - // End element - pw.println("</" + nsName + ELEM_NAME + ">"); - - return sw.toString(); - } - - public String toString() - { - return text; - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/impl/ManInTheMiddleImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/impl/ManInTheMiddleImpl.java deleted file mode 100644 index 858fa632b..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/impl/ManInTheMiddleImpl.java +++ /dev/null @@ -1,142 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.monitor.config.impl; - -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.Iterator; -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.monitor.config.Comment; -import org.eclipse.wst.wsi.internal.core.monitor.config.ManInTheMiddle; -import org.eclipse.wst.wsi.internal.core.monitor.config.Redirect; - -/** - * The implementation for the monitor config ManInTheMiddle element. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class ManInTheMiddleImpl implements ManInTheMiddle -{ - /** - * Comment. - */ - protected Comment comment; - - /** - * Redirect list. - */ - protected Vector redirectList = new Vector(); - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.ManInTheMiddle#getComment() - */ - public Comment getComment() - { - return this.comment; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.ManInTheMiddle#setComment(Comment) - */ - public void setComment(Comment comment) - { - this.comment = comment; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.ManInTheMiddle#getRedirectList() - */ - public Vector getRedirectList() - { - return redirectList; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.ManInTheMiddle#addRedirect(Redirect) - */ - public void addRedirect(Redirect redirect) - { - redirectList.add(redirect); - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.ManInTheMiddle#setRedirectList(Vector) - */ - public void setRedirectList(Vector redirectList) - { - this.redirectList = redirectList; - } - - /* (non-Javadoc) - * Get string representation of this object. - */ - public String toString() - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - pw.println(" man-in-the-middle comment ... " + this.comment); - - // Redirect list - int count = 1; - Redirect redirect; - Iterator iterator = redirectList.iterator(); - while (iterator.hasNext()) - { - // Get next redirect element - redirect = (Redirect) iterator.next(); - pw.println(" redirect [" + count++ +"]"); - pw.print(redirect.toString()); - } - - return sw.toString(); - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentElement#toXMLString(String) - */ - public String toXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - // Start element - pw.println(" <" + nsName + ELEM_NAME + ">"); - - // Comment - if (this.comment != null) - { - pw.println(this.comment.toXMLString(nsName)); - } - - // Redirect - Redirect redirect; - Iterator iterator = redirectList.iterator(); - while (iterator.hasNext()) - { - // Get next redirect element - redirect = (Redirect) iterator.next(); - pw.print(redirect.toXMLString(nsName)); - } - - // End element - pw.println(" </" + nsName + ELEM_NAME + ">"); - - return sw.toString(); - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/impl/MonitorConfigImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/impl/MonitorConfigImpl.java deleted file mode 100644 index 586966d83..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/impl/MonitorConfigImpl.java +++ /dev/null @@ -1,561 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.monitor.config.impl; - -import java.io.PrintWriter; -import java.io.StringWriter; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.common.AddStyleSheet; -import org.eclipse.wst.wsi.internal.core.common.impl.AddStyleSheetImpl; -import org.eclipse.wst.wsi.internal.core.monitor.Monitor; -import org.eclipse.wst.wsi.internal.core.monitor.config.Comment; -import org.eclipse.wst.wsi.internal.core.monitor.config.ManInTheMiddle; -import org.eclipse.wst.wsi.internal.core.monitor.config.MonitorConfig; -import org.eclipse.wst.wsi.internal.core.monitor.config.MonitorConfigReader; -import org.eclipse.wst.wsi.internal.core.monitor.config.Redirect; -import org.eclipse.wst.wsi.internal.core.util.MessageList; - -/** - * This is the implementation for the monitor configuration file. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class MonitorConfigImpl implements MonitorConfig -{ - /** - * Message list reference. - */ - protected MessageList messageList = null; - - /** - * Monitor configuration file URI. - */ - protected String documentURI = null; - - /** - * Comment. - */ - protected Comment comment = null; - - /** - * Log location. - */ - protected String logURI; - - /** - * Replace log indicator. - */ - protected boolean replaceLog = false; - - /** - * Style sheet declaration. - */ - protected AddStyleSheet addStyleSheet; - - /** - * Log duration. - */ - protected int logDuration = 600; - - /** - * Timeout. - */ - protected int timeout = 3; - - /** - * Man-in-the-middle settings. - */ - protected ManInTheMiddle manInTheMiddle = null; - - /** - * Verbose option. - */ - protected boolean verbose = false; - - /** - * Initialize monitor config. - */ - public void init(MessageList messageList) - { - this.messageList = messageList; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.MonitorConfig#getComment() - */ - public Comment getComment() - { - return this.comment; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.MonitorConfig#setComment(Comment) - */ - public void setComment(Comment comment) - { - this.comment = comment; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.MonitorConfig#getLogLocation() - */ - public String getLogLocation() - { - return this.logURI; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.MonitorConfig#setLogLocation(String) - */ - public void setLogLocation(String logURI) - { - this.logURI = logURI; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.MonitorConfig#getReplaceLog() - */ - public boolean getReplaceLog() - { - return this.replaceLog; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.MonitorConfig#setReplaceLog(boolean) - */ - public void setReplaceLog(boolean replaceLog) - { - this.replaceLog = replaceLog; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.MonitorConfig#getAddStyleSheet() - */ - public AddStyleSheet getAddStyleSheet() - { - return this.addStyleSheet; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.MonitorConfig#setAddStyleSheet(org.wsi.test.common.AddStyleSheet) - */ - public void setAddStyleSheet(AddStyleSheet addStyleSheet) - { - this.addStyleSheet = addStyleSheet; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.MonitorConfig#getLogDuration() - */ - public int getLogDuration() - { - return logDuration; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.MonitorConfig#setLogDuration(int) - */ - public void setLogDuration(int logDuration) - { - this.logDuration = logDuration; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.MonitorConfig#getTimeout() - */ - public int getTimeout() - { - return this.timeout; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.MonitorConfig#setTimeout(int) - */ - public void setTimeout(int timeout) - { - this.timeout = timeout; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.MonitorConfig#getManInTheMiddle() - */ - public ManInTheMiddle getManInTheMiddle() - { - return manInTheMiddle; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.MonitorConfig#setManInTheMiddle(ManInTheMiddle) - */ - public void setManInTheMiddle(ManInTheMiddle manInTheMiddle) - { - this.manInTheMiddle = manInTheMiddle; - } - - /* (non-Javadoc) - * @see org.wsi.test.document.WSIDocument#getLocation() - */ - public String getLocation() - { - return this.documentURI; - } - - /* (non-Javadoc) - * @see org.wsi.test.document.WSIDocument#setLocation(String) - */ - public void setLocation(String documentURI) - { - this.documentURI = documentURI; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.MonitorConfig#getVerboseOption() - */ - public boolean getVerboseOption() - { - return this.verbose; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.MonitorConfig#setVerboseOption(boolean) - */ - public void setVerboseOption(boolean verbose) - { - this.verbose = verbose; - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentElement#toXMLString(String) - */ - public String toXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - // Config options - pw.println(" <" + nsName + ELEM_NAME + ">"); - - // Comment - if (this.comment != null) - { - pw.print(comment.toXMLString(nsName)); - } - - // Log file - pw.print(" <" + nsName + WSIConstants.ELEM_LOG_FILE + " "); - pw.print(WSIConstants.ATTR_REPLACE + "=\"" + this.replaceLog + "\" "); - pw.println(WSIConstants.ATTR_LOCATION + "=\"" + this.logURI + "\">"); - pw.print(getAddStyleSheet().toXMLString(namespaceName)); - pw.println(" </" + nsName + WSIConstants.ELEM_LOG_FILE + ">"); - - // Log duration - pw.print(" <" + nsName + WSIConstants.ELEM_LOG_DURATION + ">"); - pw.print(this.logDuration); - pw.println("</" + nsName + WSIConstants.ELEM_LOG_DURATION + ">"); - - // Timeout - pw.print( - " <" + nsName + WSIConstants.ELEM_CLEANUP_TIMEOUT_SECONDS + ">"); - pw.print(this.timeout); - pw.println("</" + nsName + WSIConstants.ELEM_CLEANUP_TIMEOUT_SECONDS + ">"); - - // Man-in-the-middle - if (this.manInTheMiddle != null) - { - pw.print(manInTheMiddle.toXMLString(nsName)); - } - - // End element - pw.println(" </" + nsName + ELEM_NAME + ">"); - - return sw.toString(); - } - - /** - * Get string representation of this object. - */ - public String toString() - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - pw.println(" comment ..................... " + this.comment); - pw.println(" logURI ...................... " + this.logURI); - pw.println(" replaceLog .................. " + this.replaceLog); - pw.println(" logDuration ................. " + this.logDuration); - pw.println(" timeout ..................... " + this.timeout); - - // addStyleSheet - if (this.addStyleSheet != null) - pw.println( - " addStyleSheet ............... " + this.addStyleSheet.toString()); - - // Man-in-the-middle - if (this.manInTheMiddle != null) - { - pw.print(this.manInTheMiddle.toString()); - } - - return sw.toString(); - } - - /** - * Set config values from another monitor config object. - */ - private void setConfig(MonitorConfig monitorConfig) - { - // ADD: Should this be a clone operation? - this.comment = monitorConfig.getComment(); - this.documentURI = monitorConfig.getLocation(); - this.logURI = monitorConfig.getLogLocation(); - this.replaceLog = monitorConfig.getReplaceLog(); - this.logDuration = monitorConfig.getLogDuration(); - this.timeout = monitorConfig.getTimeout(); - this.manInTheMiddle = monitorConfig.getManInTheMiddle(); - this.addStyleSheet = monitorConfig.getAddStyleSheet(); - this.verbose = monitorConfig.getVerboseOption(); - } - - /** - * Verify config options. - */ - private void verifyConfig() throws WSIException - { - // If no redirect statements, then exit - if ((this.manInTheMiddle == null) - || (this.manInTheMiddle.getRedirectList() == null) - || (this.manInTheMiddle.getRedirectList().size() == 0)) - { - throw new IllegalArgumentException( - getMessage( - "config05", - "Monitor config file did not contain any redirect statements.")); - } - - if (this.logURI == null) - { - throw new IllegalArgumentException( - getMessage( - "config06", - "Monitor config file did not contain the log file URI.")); - } - } - - /** - * Parse the command line arguments. - */ - public void parseArgs(String[] args) throws WSIException - { - // Get new config reader - MonitorConfigReader monitorConfigReader = new MonitorConfigReaderImpl(); - - // Monitor config object which will be merged after all of the input parms are processed - MonitorConfig monitorConfigFromArgs = null; - - // If no input arguments, then throw exception - if (args.length == 0) - { - // ADD: - throw new IllegalArgumentException( - getMessage("usage01", Monitor.USAGE_MESSAGE)); - } - - // Parse the command line arguments to locate the config file option (if it was specified) - for (int argCount = 0; argCount < args.length; argCount++) - { - // -configFile - if ((args[argCount].equalsIgnoreCase("-config")) - || (args[argCount].equals("-c"))) - { - argCount++; - monitorConfigFromArgs = - monitorConfigReader.readMonitorConfig(args[argCount]); - } - } - - // If config file was not specified, then create analyzer config object - if (monitorConfigFromArgs == null) - { - monitorConfigFromArgs = new MonitorConfigImpl(); - monitorConfigFromArgs.init(this.messageList); - } - - // Parse all of the command line arguments - for (int argCount = 0; argCount < args.length; argCount++) - { - // -configFile - if ((args[argCount].equalsIgnoreCase("-config")) - || (args[argCount].equals("-c"))) - { - // Skip this option since it was already processed - argCount++; - } - - // -comment - else if ( - (args[argCount].equalsIgnoreCase("-comment")) - || (args[argCount].equals("-C"))) - { - argCount++; - Comment comment = new CommentImpl(); - comment.setText(args[argCount]); - monitorConfigFromArgs.setComment(comment); - } - - // -logFile - else if ( - (args[argCount].equalsIgnoreCase("-logFile")) - || (args[argCount].equals("-l"))) - { - argCount++; - monitorConfigFromArgs.setLogLocation(args[argCount]); - } - - // -replace - else if ( - (args[argCount].equalsIgnoreCase("-replace")) - || (args[argCount].equals("-r"))) - { - argCount++; - monitorConfigFromArgs.setReplaceLog( - Boolean.valueOf(args[argCount]).booleanValue()); - } - - // -logDuration - else if ( - (args[argCount].equalsIgnoreCase("-logDuration")) - || (args[argCount].equals("-d"))) - { - argCount++; - monitorConfigFromArgs.setLogDuration( - Integer.valueOf(args[argCount]).intValue()); - } - - // -timeout - else if ( - (args[argCount].equalsIgnoreCase("-timeout")) - || (args[argCount].equals("-t"))) - { - argCount++; - monitorConfigFromArgs.setTimeout( - Integer.valueOf(args[argCount]).intValue()); - } - - // -manInTheMiddle - else if ( - (args[argCount].equalsIgnoreCase("-manInTheMiddle")) - || (args[argCount].equals("-m"))) - { - ManInTheMiddle manInTheMiddle = null; - - // Increment arg count - argCount++; - - // Get the man-in-the-middle object - if ((manInTheMiddle = monitorConfigFromArgs.getManInTheMiddle()) - == null) - manInTheMiddle = new ManInTheMiddleImpl(); - - // ADD: Check for correct number of remaining args - - // Create redirect - Redirect redirect = new RedirectImpl(); - - // Get the redirect values - redirect.setListenPort(Integer.valueOf(args[argCount++]).intValue()); - redirect.setHost(args[argCount++]); - redirect.setMaxConnections( - Integer.valueOf(args[argCount++]).intValue()); - redirect.setReadTimeoutSeconds( - Integer.valueOf(args[argCount++]).intValue()); - - // Add redirect - manInTheMiddle.addRedirect(redirect); - - // Set the man-in-the-middle - monitorConfigFromArgs.setManInTheMiddle(manInTheMiddle); - } - - // -verbose - else if ( - (args[argCount].equalsIgnoreCase("-verbose")) - || (args[argCount].equals("-v"))) - { - argCount++; - //monitorConfigFromArgs.setVerboseOption(Boolean.valueOf(args[argCount]).booleanValue()); - monitorConfigFromArgs.setVerboseOption(true); - } - - // -GUI - else if (args[argCount].equalsIgnoreCase("-GUI")) - { - // Ignore -GUI option - } - - else - { - throw new IllegalArgumentException( - getMessage( - "config01", - args[argCount], - "The specified option is not supported.")); - } - } - - // If addStyleSheet was not specified, then create a comment version of it - if (monitorConfigFromArgs.getAddStyleSheet() == null) - { - AddStyleSheet addStyleSheet = new AddStyleSheetImpl(); - addStyleSheet.setHref(WSIConstants.DEFAULT_LOG_XSL); - addStyleSheet.setType(WSIConstants.DEFAULT_XSL_TYPE); - addStyleSheet.setComment(true); - monitorConfigFromArgs.setAddStyleSheet(addStyleSheet); - } - - // Merge config info into this object - setConfig(monitorConfigFromArgs); - - // Verify config options - verifyConfig(); - } - - /** - * Get message from resource bundle. - */ - private String getMessage(String messageID, String defaultMessage) - { - return getMessage(messageID, null, defaultMessage); - } - - /** - * Get message from resource bundle. - */ - private String getMessage( - String messageID, - String messageData, - String defaultMessage) - { - String message = defaultMessage; - if (messageList != null) - message = messageList.getMessage(messageID, messageData, defaultMessage); - else - message += " " + messageData + "."; - - return message; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/impl/MonitorConfigReaderImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/impl/MonitorConfigReaderImpl.java deleted file mode 100644 index 004abca8e..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/impl/MonitorConfigReaderImpl.java +++ /dev/null @@ -1,479 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.monitor.config.impl; - -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.Reader; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSIFileNotFoundException; -import org.eclipse.wst.wsi.internal.core.common.AddStyleSheet; -import org.eclipse.wst.wsi.internal.core.common.impl.AddStyleSheetImpl; -import org.eclipse.wst.wsi.internal.core.monitor.config.Comment; -import org.eclipse.wst.wsi.internal.core.monitor.config.ManInTheMiddle; -import org.eclipse.wst.wsi.internal.core.monitor.config.MonitorConfig; -import org.eclipse.wst.wsi.internal.core.monitor.config.MonitorConfigReader; -import org.eclipse.wst.wsi.internal.core.monitor.config.Redirect; -import org.eclipse.wst.wsi.internal.core.util.MessageList; -import org.eclipse.wst.wsi.internal.core.util.TestUtils; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -/** - * Defines the implementation used to read the monitor config documents. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class MonitorConfigReaderImpl implements MonitorConfigReader -{ - /** - * Message list reference. - */ - protected MessageList messageList = null; - - /** - * Document location. - */ - protected String documentURI; - - /** - * Initialize monitor config. - */ - public void init(MessageList messageList) - { - this.messageList = messageList; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.MonitorConfigReader#readMonitorConfig(String) - */ - public MonitorConfig readMonitorConfig(String monitorConfigURI) - throws WSIException - { - FileReader fileReader = null; - - try - { - fileReader = new FileReader(monitorConfigURI); - } - - catch (FileNotFoundException fnfe) - { - throw new WSIFileNotFoundException( - getMessage("config02", monitorConfigURI, "Could not find file:"), - fnfe); - } - - catch (Exception e) - { - throw new WSIException( - getMessage("config03", monitorConfigURI, "Could not read file:"), - e); - } - - return readMonitorConfig(fileReader); - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.MonitorConfigReader#readMonitorConfig(Reader) - */ - public MonitorConfig readMonitorConfig(Reader reader) throws WSIException - { - MonitorConfig monitorConfig = new MonitorConfigImpl(); - - // Parse XML - Document doc = XMLUtils.parseXML(reader); - - // Parse elements in the config document - parseConfigElement(monitorConfig, doc.getDocumentElement()); - - return monitorConfig; - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentReader#getLocation() - */ - public String getLocation() - { - return this.documentURI; - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentReader#setLocation(String) - */ - public void setLocation(String documentURI) - { - this.documentURI = documentURI; - } - - /** - * Parse config element. - */ - private void parseConfigElement(MonitorConfig monitorConfig, Element element) - throws WSIException - { - // ADD: Verify that this is the config element - - // Get first child element - Element nextElement = XMLUtils.getFirstChild(element); - - boolean isLogDurationDefine = false; - boolean isCleanupTimeoutSecondsDefine = false; - - // Process each child element - while (nextElement != null) - { - // <logFile> - if (isElement(nextElement, WSIConstants.ELEM_LOG_FILE)) - { - // Parse the log element - parseLogFileElement(monitorConfig, nextElement); - } - - // <logDuration> - else if (isElement(nextElement, WSIConstants.ELEM_LOG_DURATION)) - { - monitorConfig.setLogDuration(getIntValue(nextElement)); - if (monitorConfig.getLogDuration() < 0) - throw new IllegalArgumentException( - getMessage( - "config09", - WSIConstants.ELEM_LOG_DURATION, - "Parameter value can't be negative. Element name:")); - isLogDurationDefine = true; - } - - // <cleanupTimeoutSeconds> - else if ( - isElement(nextElement, WSIConstants.ELEM_CLEANUP_TIMEOUT_SECONDS)) - { - monitorConfig.setTimeout(getIntValue(nextElement)); - if (monitorConfig.getTimeout() < 0) - throw new IllegalArgumentException( - getMessage( - "config09", - WSIConstants.ELEM_CLEANUP_TIMEOUT_SECONDS, - "Parameter value can't be negative. Element name:")); - isCleanupTimeoutSecondsDefine = true; - } - - // <manInTheMiddle> - else if (isElement(nextElement, WSIConstants.ELEM_MAN_IN_THE_MIDDLE)) - { - ManInTheMiddle manInTheMiddle = new ManInTheMiddleImpl(); - monitorConfig.setManInTheMiddle(manInTheMiddle); - parseManInTheMiddleElement(manInTheMiddle, nextElement); - } - - // <comment> - else if (isElement(nextElement, WSIConstants.ELEM_COMMENT)) - { - Comment comment = new CommentImpl(); - comment.setText(XMLUtils.getText(nextElement)); - monitorConfig.setComment(comment); - } - - else - { - // ADD: handle invalid elements - } - - // Get next element - nextElement = XMLUtils.getNextSibling(nextElement); - } - - if (!isLogDurationDefine) - { - throw new IllegalArgumentException( - getMessage( - "config10", - WSIConstants.ELEM_LOG_DURATION, - "Element is missing. Element name:")); - } - if (!isCleanupTimeoutSecondsDefine) - { - throw new IllegalArgumentException( - getMessage( - "config10", - WSIConstants.ELEM_CLEANUP_TIMEOUT_SECONDS, - "Element is missing. Element name:")); - } - } - - /** - * Parse logFile element. - */ - private void parseLogFileElement( - MonitorConfig monitorConfig, - Element element) - throws WSIException - { - // Get the location attribute - monitorConfig.setLogLocation( - XMLUtils.getAttributeValue(element, WSIConstants.ATTR_LOCATION)); - - // Get the replace attribute - monitorConfig.setReplaceLog( - XMLUtils.getBooleanValue(element, WSIConstants.ATTR_REPLACE, false)); - - // Get first child element - Element nextElement = XMLUtils.getFirstChild(element); - - // Process each child element - while (nextElement != null) - { - // <addStyleSheet> - if (isElement(nextElement, WSIConstants.ELEM_ADD_STYLE_SHEET)) - { - AddStyleSheet addStyleSheet = new AddStyleSheetImpl(); - - // Parse the element - TestUtils.parseAddStyleSheet( - nextElement, - addStyleSheet, - WSIConstants.DEFAULT_LOG_XSL); - - // Set add style sheet - monitorConfig.setAddStyleSheet(addStyleSheet); - } - - else - { - // ADD: handle invalid elements - } - - // Get next element - nextElement = XMLUtils.getNextSibling(nextElement); - } - } - - /** - * Parse manIntheMiddle element. - */ - private void parseManInTheMiddleElement( - ManInTheMiddle manInTheMiddle, - Element element) - throws WSIException - { - // Get first child element - Element nextElement = XMLUtils.getFirstChild(element); - - // Process each child element - while (nextElement != null) - { - // <redirect> - if (isElement(nextElement, WSIConstants.ELEM_REDIRECT)) - { - Redirect redirect = new RedirectImpl(); - manInTheMiddle.addRedirect(redirect); - parseRedirectElement(redirect, nextElement); - } - - // <comment> - else if (isElement(nextElement, WSIConstants.ELEM_COMMENT)) - { - Comment comment = new CommentImpl(); - comment.setText(XMLUtils.getText(nextElement)); - manInTheMiddle.setComment(comment); - } - - else - { - // ADD: handle invalid elements - } - - // Get next element - nextElement = XMLUtils.getNextSibling(nextElement); - } - } - - /** - * Parse redirect element. - */ - private void parseRedirectElement(Redirect redirect, Element element) - throws WSIException - { - // Get first child element - Element nextElement = XMLUtils.getFirstChild(element); - - boolean isListenPortDefine = false; - boolean isSchemeAndHostPortDefine = false; - boolean isMaxConnectionsDefine = false; - boolean isReadTimeoutSecondsDefine = false; - - // Process each child element - while (nextElement != null) - { - // <listenPort> - if (isElement(nextElement, WSIConstants.ELEM_LISTEN_PORT)) - { - redirect.setListenPort(getIntValue(nextElement)); - isListenPortDefine = true; - } - - // <schemeAndHostPort> - else if (isElement(nextElement, WSIConstants.ELEM_SCHEME_AND_HOSTPORT)) - { - redirect.setHost(XMLUtils.getText(nextElement)); - isSchemeAndHostPortDefine = true; - } - - // <maxConnections> - else if (isElement(nextElement, WSIConstants.ELEM_MAX_CONNECTIONS)) - { - redirect.setMaxConnections(getIntValue(nextElement)); - isMaxConnectionsDefine = true; - } - - // <readTimeoutSeconds> - else if (isElement(nextElement, WSIConstants.ELEM_READ_TIMEOUT_SECONDS)) - { - redirect.setReadTimeoutSeconds(getIntValue(nextElement)); - if (redirect.getReadTimeoutSeconds() < 0) - { - throw new IllegalArgumentException( - getMessage( - "config09", - WSIConstants.ELEM_READ_TIMEOUT_SECONDS, - "Parameter value can't be negative. Element name:")); - } - isReadTimeoutSecondsDefine = true; - } - - // <comment> - else if (isElement(nextElement, WSIConstants.ELEM_COMMENT)) - { - Comment comment = new CommentImpl(); - comment.setText(XMLUtils.getText(nextElement)); - redirect.setComment(comment); - } - - else - { - // ADD: handle invalid elements - } - - // Get next element - nextElement = XMLUtils.getNextSibling(nextElement); - } - - if (!isListenPortDefine) - { - throw new IllegalArgumentException( - getMessage( - "config10", - WSIConstants.ELEM_LISTEN_PORT, - "Element is missing. Element name:")); - } - if (!isSchemeAndHostPortDefine) - { - throw new IllegalArgumentException( - getMessage( - "config10", - WSIConstants.ELEM_SCHEME_AND_HOSTPORT, - "Element is missing. Element name:")); - - } - if (!isMaxConnectionsDefine) - { - throw new IllegalArgumentException( - getMessage( - "config10", - WSIConstants.ELEM_MAX_CONNECTIONS, - "Element is missing. Element name:")); - } - if (!isReadTimeoutSecondsDefine) - { - throw new IllegalArgumentException( - getMessage( - "config10", - WSIConstants.ELEM_READ_TIMEOUT_SECONDS, - "Element is missing. Element name:")); - } - } - - /** - * Determine if this element matches specified local name in the analyzer config namespace. - */ - private boolean isElement(Element element, String localName) - { - return isElement( - element, - WSIConstants.NS_URI_WSI_MONITOR_CONFIG, - localName); - } - - /** - * Determine if this element matches specified local name in the analyzer config namespace. - */ - private boolean isElement( - Element element, - String namespace, - String localName) - { - return XMLUtils.isElement(element, namespace, localName); - } - - /** - * Get element text as an int. - */ - private int getIntValue(Element element) throws WSIException - { - int returnValue; - String intValue = null; - - // Get value as a string - if ((intValue = XMLUtils.getText(element)) == null) - { - throw new WSIException( - getMessage( - "config04", - element.getLocalName() + "Element must contain an integer value:")); - } - - else - { - returnValue = Integer.valueOf(intValue).intValue(); - } - - // Return int - return returnValue; - } - - /** - * Get message from resource bundle. - */ - private String getMessage(String messageID, String defaultMessage) - { - return getMessage(messageID, null, defaultMessage); - } - - /** - * Get message from resource bundle. - */ - private String getMessage( - String messageID, - String messageData, - String defaultMessage) - { - String message = defaultMessage; - if (messageList != null) - message = messageList.getMessage(messageID, messageData, defaultMessage); - else - message += " " + messageData + "."; - - return message; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/impl/RedirectImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/impl/RedirectImpl.java deleted file mode 100644 index a1d169ca2..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/monitor/config/impl/RedirectImpl.java +++ /dev/null @@ -1,299 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.monitor.config.impl; - -import java.io.PrintWriter; -import java.io.StringWriter; -import java.net.MalformedURLException; -import java.net.URL; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.monitor.config.Comment; -import org.eclipse.wst.wsi.internal.core.monitor.config.Redirect; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; - -/** - * The implementation for monitor config Redirect element. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class RedirectImpl implements Redirect -{ - /** - * Comment. - */ - protected Comment comment; - - /** - * Listen port. - */ - protected int listenPort; - - /** - * Host. - */ - protected String host; - - /** - * To protocol. - */ - protected String toProtocol; - - /** - * To port. - */ - protected int toPort; - - /** - * To host. - */ - protected String toHost; - - /** - * Maximum connections. - */ - protected int maxConnections; - - /** - * Read timeout seconds. - */ - protected int readTimeoutSeconds; - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.Redirect#getComment() - */ - public Comment getComment() - { - return this.comment; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.Redirect#setComment(comment) - */ - public void setComment(Comment comment) - { - this.comment = comment; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.Redirect#getListenPort() - */ - public int getListenPort() - { - return this.listenPort; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.Redirect#setListenPort(int) - */ - public void setListenPort(int listenPort) - { - this.listenPort = listenPort; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.Redirect#getHost() - */ - public String getHost() - { - return this.host; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.Redirect#setHost(String) - */ - public void setHost(String host) - { - this.host = host; - - // Parse location to get protocol, host and port - URL url; - try - { - url = new URL(host); - this.toProtocol = url.getProtocol(); - this.toHost = url.getHost(); - this.toPort = url.getPort(); - if (this.toPort == -1) - { - if (this.toProtocol.equalsIgnoreCase("http")) - this.toPort = 80; - else - this.toPort = 80; - } - } - - catch (MalformedURLException mue) - { - throw new IllegalArgumentException( - "The " - + WSIConstants.ELEM_SCHEME_AND_HOSTPORT - + " option contains an invalid value: " - + host); - } - - if ((url.getPath() != null && !url.getPath().equals("")) - || (url.getQuery() != null && !url.getQuery().equals(""))) - throw new IllegalArgumentException( - "The " - + WSIConstants.ELEM_SCHEME_AND_HOSTPORT - + " option must contain only a scheme, host and port: " - + host); - } - - /** - * Get to port. - * @see org.eclipse.wst.wsi.monitor.config.Redirect#getToPort() - */ - public int getToPort() - { - return this.toPort; - } - - /** - * Get to host. - * @see org.eclipse.wst.wsi.monitor.config.Redirect#getToHost() - */ - public String getToHost() - { - return this.toHost; - } - - /** - * Get to protocol. - * @see org.eclipse.wst.wsi.monitor.config.Redirect#getToProtocol() - */ - public String getToProtocol() - { - return this.toProtocol; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.Redirect#getMaxConnections() - */ - public int getMaxConnections() - { - return this.maxConnections; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.Redirect#setMaxConnections(int) - */ - public void setMaxConnections(int maxConnections) - { - this.maxConnections = maxConnections; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.Redirect#getReadTimeoutSeconds() - */ - public int getReadTimeoutSeconds() - { - return this.readTimeoutSeconds; - } - - /* (non-Javadoc) - * @see org.wsi.test.monitor.config.Redirect#setReadTimeoutSeconds(int) - */ - public void setReadTimeoutSeconds(int readTimeoutSeconds) - { - this.readTimeoutSeconds = readTimeoutSeconds; - } - - /** - * Get string representation of this object. - */ - public String toString() - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - pw.println(" comment ................... " + this.comment); - pw.println(" listenPort ................ " + this.listenPort); - pw.println(" host ...................... " + cutHost(this.host)); - pw.println(" maxConnections ............ " + this.maxConnections); - pw.println(" readTimeoutSeconds ........ " + this.readTimeoutSeconds); - - return sw.toString(); - } - - /** - * Formats host name according to the specification (path is ommited). - * @param host - * @return - */ - private String cutHost(String host) - { - try - { - URL url = new URL(host); - String port = url.getPort() > -1 ? String.valueOf(url.getPort()) : "80"; - // REMOVED: This code only works on 1.4 - // String.valueOf(url.getDefaultPort()); - return url.getProtocol() + "://" + url.getHost() + ":" + port; - } - catch (Exception e) - { - return host; - } - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentElement#toXMLString(String) - */ - public String toXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - // Start element - pw.println(" <" + nsName + WSIConstants.ELEM_REDIRECT + ">"); - - // Comment - if (this.comment != null) - { - pw.println(this.comment.toXMLString(nsName)); - } - - // listenPort - pw.print(" <" + nsName + WSIConstants.ELEM_LISTEN_PORT + ">"); - pw.print(getListenPort()); - pw.println("</" + nsName + WSIConstants.ELEM_LISTEN_PORT + ">"); - - // schemeAndHostPort - pw.print( - " <" + nsName + WSIConstants.ELEM_SCHEME_AND_HOSTPORT + ">"); - pw.print(XMLUtils.xmlEscapedString(getHost())); - pw.println("</" + nsName + WSIConstants.ELEM_SCHEME_AND_HOSTPORT + ">"); - - // maxConnections - pw.print(" <" + nsName + WSIConstants.ELEM_MAX_CONNECTIONS + ">"); - pw.print(getMaxConnections()); - pw.println("</" + nsName + WSIConstants.ELEM_MAX_CONNECTIONS + ">"); - - // readTimeoutSeconds - pw.print( - " <" + nsName + WSIConstants.ELEM_READ_TIMEOUT_SECONDS + ">"); - pw.print(getReadTimeoutSeconds()); - pw.println("</" + nsName + WSIConstants.ELEM_READ_TIMEOUT_SECONDS + ">"); - - // End Element - pw.println(" </" + nsName + WSIConstants.ELEM_REDIRECT + ">"); - - return sw.toString(); - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/EntryTypeList.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/EntryTypeList.java deleted file mode 100644 index 6d8d13a57..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/EntryTypeList.java +++ /dev/null @@ -1,82 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile; - -import org.eclipse.wst.wsi.internal.core.document.DocumentElement; - -/** - * This interface is used to maintain a profile EntryTypeList. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface EntryTypeList extends DocumentElement -{ - /** - * Log input. - */ - public static final String LOG_INPUT_NONE = "none"; - public static final String LOG_INPUT_REQUEST = "request"; - public static final String LOG_INPUT_RESPONSE = "response"; - - /** - * WSDL input. - */ - public static final String WSDL_INPUT_NONE = "none"; - - /** - * UDDI input. - */ - public static final String UDDI_INPUT_NONE = "none"; - - /** - * Get log input. - * @return log input. - * @see #setLogInput - */ - public String getLogInput(); - - /** - * Set log input. - * @param logInput log input. - * @see #getLogInput - */ - public void setLogInput(String logInput); - - /** - * Get WSDL input. - * @return WSDL input. - * @see #setWSDLInput - */ - public String getWSDLInput(); - - /** - * Set WSDL input. - * @param wsdlInput WSDL input. - * @see #getWSDLInput - */ - public void setWSDLInput(String wsdlInput); - - /** - * Get UDDI input. - * @return UDDI input. - * @see #setUDDIInput - */ - public String getUDDIInput(); - - /** - * Set UDDI input. - * @param uddiInput UDDI input. - * @see #getUDDIInput - */ - public void setUDDIInput(String uddiInput); - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/Profile.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/Profile.java deleted file mode 100644 index bc326c31b..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/Profile.java +++ /dev/null @@ -1,24 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile; - -import org.eclipse.wst.wsi.internal.core.document.DocumentElement; - -/** - * This interface is used to maintain Profile information. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface Profile extends DocumentElement -{ - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/ProfileArtifact.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/ProfileArtifact.java deleted file mode 100644 index 1934f2a87..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/ProfileArtifact.java +++ /dev/null @@ -1,87 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile; - -import java.util.LinkedList; -import java.util.Vector; - -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.document.DocumentElement; -import org.eclipse.wst.wsi.internal.core.util.ArtifactType; - -/** - * An artifact contains a set of related test assertions. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface ProfileArtifact extends DocumentElement -{ - /** - * Element name. - */ - public static final String ELEM_NAME = WSIConstants.ELEM_ARTIFACT; - - /** - * QName. - */ - public static final QName QNAME = - new QName(WSIConstants.NS_URI_WSI_ASSERTIONS, ELEM_NAME); - - /** - * Get type. - * @return artifact type. - * @see #setType - */ - public ArtifactType getType(); - - /** - * Set type. - * @param type an artifact type. - * @see #getType - */ - public void setType(ArtifactType type); - - /** - * Get specification list. - * @return specification list. - * @see #setSpecificationList - */ - public Vector getSpecificationList(); - - /** - * Set specification list. - * @param specificationList specification list. - * @see #getSpecificationList - */ - public void setSpecificationList(Vector specificationList); - - /** - * Get test assertion list. - * @return test assertion list. - */ - public LinkedList getTestAssertionList(); - - /** - * Get test assertion. - * @param id test assertion id. - * @return test assertion. - */ - public TestAssertion getTestAssertion(String id); - - /** - * Add test assertion. - * @param testAssertion test assertion. - */ - public void addTestAssertion(TestAssertion testAssertion); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/ProfileAssertions.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/ProfileAssertions.java deleted file mode 100644 index 3c6776166..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/ProfileAssertions.java +++ /dev/null @@ -1,123 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile; - -import java.util.TreeMap; -import java.util.Vector; - -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.document.WSIDocument; - -/** - * This interface maintains profile assertions. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface ProfileAssertions extends WSIDocument -{ - /** - * Element name. - */ - public static final String ELEM_NAME = WSIConstants.ELEM_PROFILE_ASSERTIONS; - - /** - * QName. - */ - public static final QName QNAME = - new QName(WSIConstants.NS_URI_WSI_ASSERTIONS, ELEM_NAME); - - /** - * Get list of profiles. - * @return list of profiles. - * @see #setProfileList - */ - public Vector getProfileList(); - - /** - * Set list of profiles. - * @param profileList list of profiles. - * @see #getProfileList - */ - public void setProfileList(Vector profileList); - - /** - * Add profile. - * @param profile profile. - */ - public void addProfile(Profile profile); - - /** - * Get list of artifacts. - * @return list of artifacts. - * @see #setArtifactList - */ - public TreeMap getArtifactList(); - - /** - * Get artifact. - * @param type an artifact type. - * @return a profile artifact based on the given type. - */ - public ProfileArtifact getArtifact(String type); - - /** - * Set list of artifacts. - * @param artifactList a list pf profile artifiacts. - * @see #getArtifactList - */ - public void setArtifactList(TreeMap artifactList); - - /** - * Add artifact. - * @param artifact profile artifact. - */ - public void addArtifact(ProfileArtifact artifact); - - /** - * Get test assertion. - * @param id test assertion id. - * @return test assertion. - */ - public TestAssertion getTestAssertion(String id); - - /** - * Create artifact. - * @return newly created profile artifact. - */ - public ProfileArtifact createArtifact(); - - /** - * Returns the name of the profile test assertion document. - * @return the name of the document. - */ - public String getTADName(); - - /** - * Set the name of the profile test assertion document. - * @param documentName the name of the document. - */ - public void setTADName(String documentName); - - /** - * Returns the version of the profile test assertion document. - * @return the version of the document. - */ - public String getTADVersion(); - - /** - * Set the version of the profile test assertion document. - * @param documentVersion the version of the document. - */ - public void setTADVersion(String documentVersion); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/ProfileAssertionsReader.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/ProfileAssertionsReader.java deleted file mode 100644 index 00b0a3de8..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/ProfileAssertionsReader.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile; - -import java.io.Reader; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.document.DocumentReader; - -/** - * Defines the interface used to read a profile assertions documents. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface ProfileAssertionsReader extends DocumentReader -{ - /** - * Read the profile assertions file. - * @param assertionsURI he profile assertions file location. - * @return the ProfileAssertions object. - * @throws WSIException if problem occur while reading the file. - */ - public ProfileAssertions readProfileAssertions(String assertionsURI) - throws WSIException; - - /** - * Read the profile assertions file. - * @param reader a Reader object. - * @return the ProfileAssertions object. - * @throws WSIException if problem occur while reading the file. - */ - public ProfileAssertions readProfileAssertions(Reader reader) - throws WSIException; -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/TestAssertion.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/TestAssertion.java deleted file mode 100644 index 20ea4b652..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/TestAssertion.java +++ /dev/null @@ -1,177 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile; - -import java.util.Vector; - -/** - * A test assertion is one assertion in a profile definition. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface TestAssertion -{ - public static final String TYPE_INFORMATIONAL = "informational"; - public static final String TYPE_RECOMMENDED = "recommended"; - public static final String TYPE_REQUIRED = "required"; - /** - * Get test assertion id. - * @return test assertion id. - * @see #setId - */ - public String getId(); - - /** - * Set test assertion id. - * @param id test assertion id. - * @see #getId - */ - public void setId(String id); - - /** - * Get test assertion type. - * @return test assertion type. - * @see #setType - */ - public String getType(); - - /** - * Set test assertion type. - * @param type test assertion type. - * @see #getType - */ - public void setType(String type); - - /** - * Get test assertion primary entry type name. - * @return test assertion primary entry type name. - * @see #setEntryTypeName - */ - public String getEntryTypeName(); - - /** - * Set test assertion primary entry type name. - * @param entryTypeName test assertion primary entry type name. - * @see #getEntryTypeName - */ - public void setEntryTypeName(String entryTypeName); - - /** - * Get enabled indicator. - * @return enabled indicator. - * @see #setEnabled - */ - public boolean isEnabled(); - - /** - * Set enabled indicator. - * @param enabled enabled indicator. - * @see #isEnabled - */ - public void setEnabled(boolean enabled); - - /** - * Get context. - * @return context. - * @see #setContext - */ - public String getContext(); - - /** - * Set context. - * @param context context. - * @see #getContext - */ - public void setContext(String context); - - /** - * Get assertion description. - * @return assertion description. - * @see #setAssertionDescription - */ - public String getAssertionDescription(); - - /** - * Set assertion description. - * @param assertionDescription assertion description. - * @see #getAssertionDescription - */ - public void setAssertionDescription(String assertionDescription); - - /** - * Get failure message. - * @return failure message. - * @see #setFailureMessage - */ - public String getFailureMessage(); - - /** - * Set failure message. - * @param failureMessage failure message. - * @see #getFailureMessage - */ - public void setFailureMessage(String failureMessage); - - /** - * Get failure detail description. - * @return failure detail description. - * @see #setFailureDetailDescription - */ - public String getFailureDetailDescription(); - - /** - * Set failure detail description. - * @param failureDetailDescription failure detail description. - * @see #getFailureDetailDescription - */ - public void setFailureDetailDescription(String failureDetailDescription); - - /** - * Get detail description. - * @return detail description. - * @see #setDetailDescription - */ - public String getDetailDescription(); - - /** - * Set detail description. - * @param detailDescription detail description. - * @see #getDetailDescription - */ - public void setDetailDescription(String detailDescription); - - /** - * Get additional entry type list. - * @return additional entry type list. - * @see #setAdditionalEntryTypeList - */ - public EntryTypeList getAdditionalEntryTypeList(); - - /** - * Set additional entry type list. - * @param entryTypeList additional entry type list. - * @see #getAdditionalEntryTypeList - */ - public void setAdditionalEntryTypeList(EntryTypeList entryTypeList); - - /** - * Get list of prereq ids. - * @return list of prereq ids. - */ - public Vector getPrereqIdList(); - - /** - * Add prereq test assertion id. - * @param prereqId prereq test assertion id. - */ - public void addPrereqId(String prereqId); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/impl/EntryTypeListImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/impl/EntryTypeListImpl.java deleted file mode 100644 index 5d81f2d04..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/impl/EntryTypeListImpl.java +++ /dev/null @@ -1,94 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.impl; - -import org.eclipse.wst.wsi.internal.core.profile.EntryTypeList; - -/** - * This implementation is used to maintain a profile EntryTypeList. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class EntryTypeListImpl implements EntryTypeList -{ - /** - * Log input. - */ - protected String logInput = null; - - /** - * WSDL input. - */ - protected String wsdlInput = null; - - /** - * UDDI input. - */ - protected String uddiInput = null; - - /* (non-Javadoc) - * @see org.wsi.test.profile.EntryTypeList#getLogInput() - */ - public String getLogInput() - { - return this.logInput; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.EntryTypeList#setLogInput(String) - */ - public void setLogInput(String logInput) - { - this.logInput = logInput; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.EntryTypeList#getWSDLInput() - */ - public String getWSDLInput() - { - return this.wsdlInput; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.EntryTypeList#setWSDLInput(String) - */ - public void setWSDLInput(String wsdlInput) - { - this.wsdlInput = wsdlInput; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.EntryTypeList#getUDDIInput() - */ - public String getUDDIInput() - { - return this.uddiInput; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.EntryTypeList#setUDDIInput(String) - */ - public void setUDDIInput(String uddiInput) - { - this.uddiInput = uddiInput; - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentElement#toXMLString(String) - */ - public String toXMLString(String namespaceName) - { - return null; - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/impl/ProfileArtifactImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/impl/ProfileArtifactImpl.java deleted file mode 100644 index b4ab3be23..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/impl/ProfileArtifactImpl.java +++ /dev/null @@ -1,123 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.impl; - -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.LinkedList; -import java.util.TreeMap; -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.profile.ProfileArtifact; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.util.ArtifactType; - -/** - * An artifact contains a set of related test assertions. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class ProfileArtifactImpl implements ProfileArtifact -{ - /** - * Artifact type. - */ - protected ArtifactType type; - - /** - * Test assertion map. - */ - protected TreeMap testAssertionMap = new TreeMap(); - - /** - * Test assertion list. - */ - protected LinkedList testAssertionList = new LinkedList(); - - /* (non-Javadoc) - * @see org.wsi.test.profile.ReportArtifact#getType() - */ - public ArtifactType getType() - { - return this.type; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.ReportArtifact#setType(ArtifactType) - */ - public void setType(ArtifactType type) - { - this.type = type; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.ReportArtifact#getSpecificationList() - */ - public Vector getSpecificationList() - { - return null; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.ReportArtifact#setSpecificationList(Vector) - */ - public void setSpecificationList(Vector specificationList) - { - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.ReportArtifact#getTestAssertionList() - */ - public LinkedList getTestAssertionList() - { - return this.testAssertionList; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.ReportArtifact#getTestAssertion(String) - */ - public TestAssertion getTestAssertion(String id) - { - return (TestAssertion) this.testAssertionMap.get(id); - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.ReportArtifact#addTestAssertion(TestAssertion) - */ - public void addTestAssertion(TestAssertion testAssertion) - { - // ADD: Need to merge the list and map - this.testAssertionMap.put(testAssertion.getId(), testAssertion); - this.testAssertionList.add(testAssertion); - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentElement#toXMLString(String) - */ - public String toXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - // ReportArtifact - pw.println(" <" + nsName + ELEM_NAME + ">"); - - pw.println(" </" + nsName + ELEM_NAME + ">"); - - return sw.toString(); - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/impl/ProfileAssertionsImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/impl/ProfileAssertionsImpl.java deleted file mode 100644 index 2c81419eb..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/impl/ProfileAssertionsImpl.java +++ /dev/null @@ -1,193 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.impl; - -import java.util.Iterator; -import java.util.TreeMap; -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.profile.Profile; -import org.eclipse.wst.wsi.internal.core.profile.ProfileArtifact; -import org.eclipse.wst.wsi.internal.core.profile.ProfileAssertions; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; - -/** - * This class ... - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class ProfileAssertionsImpl implements ProfileAssertions -{ - /** - * Location of the profile definition. - */ - protected String documentURI; - - /** - * Name of the profile test assertion document. - */ - protected String documentName; - - /** - * Version of the profile test assertion document. - */ - protected String documentVersion; - - // ADD: A profile definition should also have a description. - - /** - * List of profiles. - */ - Vector profileList = new Vector(); - - /** - * List of artifacts. - */ - TreeMap artifactList = new TreeMap(); - - /* (non-Javadoc) - * @see org.wsi.test.profile.ProfileAssertions#getProfileList() - */ - public Vector getProfileList() - { - return this.profileList; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.ProfileAssertions#setProfileList(Vector) - */ - public void setProfileList(Vector profileList) - { - this.profileList = profileList; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.ProfileAssertions#addProfile(Profile) - */ - public void addProfile(Profile profile) - { - this.profileList.add(profile); - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.ProfileAssertions#getArtifactList() - */ - public TreeMap getArtifactList() - { - return this.artifactList; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.ProfileAssertions#getArtifact(java.lang.String) - */ - public ProfileArtifact getArtifact(String type) - { - return (ProfileArtifact) this.artifactList.get(type); - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.ProfileAssertions#setArtifactList(TreeMap) - */ - public void setArtifactList(TreeMap artifactList) - { - this.artifactList = artifactList; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.ProfileAssertions#addArtifact(ReportArtifact) - */ - public void addArtifact(ProfileArtifact artifact) - { - this.artifactList.put(artifact.getType(), artifact); - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.ProfileAssertions#getTestAssertion(String) - */ - public TestAssertion getTestAssertion(String id) - { - TestAssertion testAssertion = null; - - // Go through the list of artifacts and find the test assertion - Iterator iterator = artifactList.values().iterator(); - while ((iterator.hasNext()) && (testAssertion == null)) - { - testAssertion = ((ProfileArtifact) iterator.next()).getTestAssertion(id); - } - - return testAssertion; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.ProfileAssertions#createArtifact() - */ - public ProfileArtifact createArtifact() - { - return new ProfileArtifactImpl(); - } - - /* (non-Javadoc) - * @see org.wsi.test.document.WSIDocument#getLocation() - */ - public String getLocation() - { - return this.documentURI; - } - - /* (non-Javadoc) - * @see org.wsi.test.document.WSIDocument#setLocation(String) - */ - public void setLocation(String documentURI) - { - this.documentURI = documentURI; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.profile.ProfileAssertions#getTADName() - */ - public String getTADName() - { - return this.documentName; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.profile.ProfileAssertions#setTADName(String) - */ - public void setTADName(String documentName) - { - this.documentName = documentName; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.profile.ProfileAssertions#getTADVersion() - */ - public String getTADVersion() - { - return this.documentVersion; - } - - /** - * @see org.eclipse.wst.wsi.internal.core.profile.ProfileAssertions#setTADVersion(String) - */ - public void setTADVersion(String documentVersion) - { - this.documentVersion = documentVersion; - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentElement#toXMLString(String) - */ - public String toXMLString(String namespaceName) - { - return null; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/impl/ProfileAssertionsReaderImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/impl/ProfileAssertionsReaderImpl.java deleted file mode 100644 index e6f721ade..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/impl/ProfileAssertionsReaderImpl.java +++ /dev/null @@ -1,587 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 2009 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.impl; - -import java.io.IOException; -import java.io.Reader; -import java.net.URL; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.TreeMap; - -import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver; -import org.eclipse.wst.wsi.internal.WSITestToolsEclipseProperties; -import org.eclipse.wst.wsi.internal.WSITestToolsProperties; -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.EntryTypeList; -import org.eclipse.wst.wsi.internal.core.profile.ProfileArtifact; -import org.eclipse.wst.wsi.internal.core.profile.ProfileAssertions; -import org.eclipse.wst.wsi.internal.core.profile.ProfileAssertionsReader; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.util.ArtifactType; -import org.eclipse.wst.wsi.internal.core.util.Utils; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.xml.sax.Attributes; -import org.xml.sax.EntityResolver; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; -import org.xml.sax.XMLReader; -import org.xml.sax.helpers.DefaultHandler; - -/** - * This class ... - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class ProfileAssertionsReaderImpl implements ProfileAssertionsReader -{ - /** - * Profile assertions. - */ - protected ProfileAssertions profileAssertions; - - /** - * ReportArtifact list. - */ - protected TreeMap artifactList = new TreeMap(); - - /** - * Create new reader. - */ - public ProfileAssertionsReaderImpl() - { - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.ProfileAssertionsReader#readProfileAssertions(String) - */ - public ProfileAssertions readProfileAssertions(String assertionsURI) - throws WSIException - { - return readProfileAssertions(new InputSource(assertionsURI)); - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.ProfileAssertionsReader#readProfileAssertions(Reader) - */ - public ProfileAssertions readProfileAssertions(Reader reader) - throws WSIException - { - return readProfileAssertions(new InputSource(reader)); - } - - /** - * Read profile assertions. - */ - private ProfileAssertions readProfileAssertions(InputSource inputSource) - throws WSIException - { - // Create profile assertions - profileAssertions = new ProfileAssertionsImpl(); - - // Profile parts are put into a vector - artifactList = new TreeMap(); - - try - { - // Create xml reader - XMLReader reader = XMLUtils.getXMLReader(); - - // Set content handler to inner class - reader.setContentHandler(new ProfileAssertionsHandler()); - - if(WSITestToolsProperties.getEclipseContext()) - { - EntityResolver resolver = new EntityResolver(){ - - public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException { - URIResolver resolver = WSITestToolsEclipseProperties.getURIResolver(); - String uri = resolver.resolve("", publicId, systemId); - String physicalLocation = resolver.resolvePhysicalLocation("", publicId, uri); - InputSource is = null; - try - { - URL url = new URL(physicalLocation); - is = new InputSource(uri); - is.setByteStream(url.openStream()); - } - catch(Exception e) - { - // Do nothing if opening the stream fails. - } - return is; - } - - }; - reader.setEntityResolver(resolver); - } - // Parse profile definition file - reader.parse(inputSource); - } - - catch (Exception e) - { - throw new WSIException("Could not read and parse profile definition.", e); - } - finally - { - //Check to see if the version of test asssertion document is supported - if (!Utils.isValidProfileTADVersion(profileAssertions)) - { - String tadVersion = profileAssertions.getTADVersion(); - if(tadVersion != null) - { - String tadName = profileAssertions.getTADName(); - throw new WSIException( - "\nVersion " - + tadVersion - + " of the \"" - + tadName - + "\"\n" - + "document is not compatible with this version of" - + "\n" - + "the test tools."); - } - else - { - throw new WSIException("WS-I validation was unable to run. Unable to read the test assertion document."); - } - } - } - - // The assertions from the TAD are reordered for purposes of processing. All - // assertions of an artifact are reordered such that prerequisites occur - // before the assertions they prereq. The assumption is that prerequisites do - // not cross artifact types. - // - Iterator it = artifactList.keySet().iterator(); - // for each artifact type do reordering assertion - while (it.hasNext()) - { - ProfileArtifact art = (ProfileArtifact) artifactList.get(it.next()); - // result list of the reordering assertions - LinkedList res = new LinkedList(); - Iterator it2 = art.getTestAssertionList().iterator(); - // sort the artifact assertions into result list - while (it2.hasNext()) - { - // call for each assertion , - // if the assertion has the prereq, the prereq will added first into res list - sortTestAssertions(art, (TestAssertion) it2.next(), res); - } - // replace the original assertions list to the prereq reordering assertions list - art.getTestAssertionList().clear(); - art.getTestAssertionList().addAll(res); - } - // Put the profile parts into the profile definition - profileAssertions.setArtifactList(artifactList); - - return profileAssertions; - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentReader#getLocation() - */ - public String getLocation() - { - return null; - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentReader#setLocation(String) - */ - public void setLocation(String documentURI) - { - } - - /** - * Recursive walk to order assertions so that assertions are - * processed following the ones that prereq them. - * If assertion has prereq, then add it to the result list first. - * - * @param art profile artifact for call @link ProfileArtifact#getTestAssertion(String) - * @param asrt test assertion - * @param list result list to sort - */ - private void sortTestAssertions(ProfileArtifact art, TestAssertion asrt, List list) - { - // if assertion is null or does not exist, then exit - if((asrt == null) || list.contains(asrt)) - return; - - // if it has not prereq, add the asertion and exit - if(asrt.getPrereqIdList().isEmpty()) - { - list.add(asrt); - return; - } - // get list prereq assertion and reqursive call sortTestAssertions this each - Iterator it = asrt.getPrereqIdList().iterator(); - while(it.hasNext()) { - String id = (String) it.next(); - sortTestAssertions(art, art.getTestAssertion(id), list); - } - list.add(asrt); - } - - /** - * Inner class: ProfileAssertionsHandler - */ - class ProfileAssertionsHandler extends DefaultHandler - { - private ProfileArtifact artifact = profileAssertions.createArtifact(); - private StringBuffer context = null; - private StringBuffer assertionDescription = null; - private StringBuffer failureMessage = null; - private StringBuffer failureDetailDescription = null; - private StringBuffer detailDescription = null; - private StringBuffer testAssertionId = null; - private String currentElement = null; - private TestAssertion testAssertion = null; - private StringBuffer logInput = null; - private StringBuffer wsdlInput = null; - private EntryTypeList entryTypeList = null; - - // Process start element event - public void startElement( - String namespaceURI, - String localName, - String qName, - Attributes atts) - { - if (namespaceURI != null - && (namespaceURI.equals(WSIConstants.NS_URI_WSI_ASSERTIONS_2003) - || namespaceURI.equals(WSIConstants.NS_URI_WSI_ASSERTIONS))) - { - // Save element name - currentElement = localName; - - // <artifact> - if (localName.equals(WSIConstants.ELEM_ARTIFACT)) - { - // Create a new profile artifact object - artifact = profileAssertions.createArtifact(); - - // Set type - artifact.setType( - ArtifactType.getArtifactType( - atts.getValue(WSIConstants.ATTR_TYPE))); - - // ADD: Get specification list - - // Add artifact to list of artifact list - artifactList.put(artifact.getType().getTypeName(), artifact); - } - - // <testAssertion> - else if (localName.equals(WSIConstants.ELEM_TEST_ASSERTION)) - { - // Create test assertion - testAssertion = new TestAssertionImpl(); - - // Get attribute values - String id = atts.getValue("", WSIConstants.ATTR_ID); - testAssertion.setId(id); - testAssertion.setType(atts.getValue("", WSIConstants.ATTR_TYPE)); - testAssertion.setEntryTypeName( - atts.getValue("", WSIConstants.ATTR_ENTRY_TYPE)); - - // if assertion is not required or it has already been checked by core validator then disable it - if (alreadyChecked(id) || !(testAssertion.getType().equals(TestAssertion.TYPE_REQUIRED))) - testAssertion.setEnabled(false); - else - testAssertion.setEnabled(Boolean.valueOf(atts.getValue("", WSIConstants.ATTR_ENABLED)).booleanValue()); - - // Add test assertion to artifact - artifact.addTestAssertion(testAssertion); - } - - // <context> - else if (localName.equals(WSIConstants.ELEM_CONTEXT)) - { - context = new StringBuffer(); - } - - // <assertionDescription> - else if (localName.equals(WSIConstants.ELEM_ASSERTION_DESCRIPTION)) - { - assertionDescription = new StringBuffer(); - } - - // <failureMessage> - else if (localName.equals(WSIConstants.ELEM_FAILURE_MESSAGE)) - { - failureMessage = new StringBuffer(); - } - - // <failureDetailDescription> - else if (localName.equals(WSIConstants.ELEM_FAILURE_DETAIL_DESCRIPTION)) - { - failureDetailDescription = new StringBuffer(); - } - - // <detailDescription> - else if (localName.equals(WSIConstants.ELEM_DETAIL_DESCRIPTION)) - { - detailDescription = new StringBuffer(); - } - - // <testAssertionID> - else if (localName.equals(WSIConstants.ELEM_TEST_ASSERTION_ID)) - { - testAssertionId = new StringBuffer(); - } - - // <additionalEntryTypeList> - else if ( - localName.equals(WSIConstants.ELEM_ADDITIONAL_ENTRY_TYPE_LIST)) - { - // Create entry type list - entryTypeList = new EntryTypeListImpl(); - } - - // <messageInput> - else if (localName.equals(WSIConstants.ELEM_MESSAGE_INPUT)) - { - logInput = new StringBuffer(); - } - - // <wsdlInput> - else if (localName.equals(WSIConstants.ELEM_WSDL_INPUT)) - { - wsdlInput = new StringBuffer(); - } - // <profileAssertions> - else if (localName.equals(WSIConstants.ELEM_PROFILE_ASSERTIONS)) - { - profileAssertions.setTADName( - atts.getValue("", WSIConstants.ATTR_NAME)); - profileAssertions.setTADVersion( - atts.getValue("", WSIConstants.ATTR_VERSION)); - } - - /* REMOVE: - // <uddiInput> - else if (localName.equals(WSIConstants.ELEM_UDDI_INPUT)) { - uddiInput = new StringBuffer(); - } - */ - } - } // END startElement - - public void endElement(String namespaceURI, String localName, String qname) - { - // If this is the profile namespace, then check for and process selected elements - if (namespaceURI != null - && (namespaceURI.equals(WSIConstants.NS_URI_WSI_ASSERTIONS_2003) - || namespaceURI.equals(WSIConstants.NS_URI_WSI_ASSERTIONS))) - { - // <context> - if (localName.equals(WSIConstants.ELEM_CONTEXT)) - { - // Set context in test assertion - testAssertion.setContext(context.toString()); - context = null; - } - - // <assertionDescription> - else if (localName.equals(WSIConstants.ELEM_ASSERTION_DESCRIPTION)) - { - // Set assertion description in test assertion - testAssertion.setAssertionDescription( - assertionDescription.toString()); - assertionDescription = null; - } - - // <failureMessage> - else if (localName.equals(WSIConstants.ELEM_FAILURE_MESSAGE)) - { - // Set failure message in test assertion - testAssertion.setFailureMessage(failureMessage.toString()); - failureMessage = null; - } - - // <failureDetailDescription> - else if (localName.equals(WSIConstants.ELEM_FAILURE_DETAIL_DESCRIPTION)) - { - // Set failure detail description in test assertion - testAssertion.setFailureDetailDescription( - failureDetailDescription.toString()); - failureDetailDescription = null; - } - - // <detailDescription> - else if (localName.equals(WSIConstants.ELEM_DETAIL_DESCRIPTION)) - { - // Set detail description in test assertion - testAssertion.setDetailDescription(detailDescription.toString()); - detailDescription = null; - } - - // <testAssertionID> - else if (localName.equals(WSIConstants.ELEM_TEST_ASSERTION_ID)) - { - // Set test assertion id in prereq list - testAssertion.addPrereqId(testAssertionId.toString()); - testAssertionId = null; - } - - // <addtionalEntryTypeList> - else if ( - localName.equals(WSIConstants.ELEM_ADDITIONAL_ENTRY_TYPE_LIST)) - { - // Set target list - testAssertion.setAdditionalEntryTypeList(entryTypeList); - entryTypeList = null; - } - - // <messageInput> - else if (localName.equals(WSIConstants.ELEM_MESSAGE_INPUT)) - { - // Set test assertion id in prereq list - entryTypeList.setLogInput(logInput.toString()); - logInput = null; - } - - // <wsdlInput> - else if (localName.equals(WSIConstants.ELEM_WSDL_INPUT)) - { - // Set test assertion id in prereq list - entryTypeList.setWSDLInput(wsdlInput.toString()); - wsdlInput = null; - } - - // <profileAssertions> - else if (localName.equals(WSIConstants.ELEM_PROFILE_ASSERTIONS)) - { - // a no-op - } - - /* REMOVE: - // <uddiInput> - else if (localName.equals(WSIConstants.ELEM_UDDI_INPUT)) { - // Set test assertion id in prereq list - entryTypeList.setUDDIInput(uddiInput.toString()); - uddiInput = null; - } - */ - } - } // END endElement - - public void characters(char[] ch, int start, int length) - { - // <context> - if ((context != null) - && (currentElement.equals(WSIConstants.ELEM_CONTEXT))) - { - context.append(ch, start, length); - } - - // <assertionDescription> - else if ( - (assertionDescription != null) - && (currentElement.equals(WSIConstants.ELEM_ASSERTION_DESCRIPTION))) - { - assertionDescription.append(ch, start, length); - } - - // <failureMessage> - else if ( - (failureMessage != null) - && (currentElement.equals(WSIConstants.ELEM_FAILURE_MESSAGE))) - { - failureMessage.append(ch, start, length); - } - - // <failureDetailDescription> - else if ( - (failureDetailDescription != null) && ( - currentElement.equals(WSIConstants.ELEM_FAILURE_DETAIL_DESCRIPTION))) - { - failureDetailDescription.append(ch, start, length); - } - - // <detailDescription> - else if ( - (detailDescription != null) - && (currentElement.equals(WSIConstants.ELEM_DETAIL_DESCRIPTION))) - { - detailDescription.append(ch, start, length); - } - - // <testAssertionID> - else if ( - (testAssertionId != null) - && (currentElement.equals(WSIConstants.ELEM_TEST_ASSERTION_ID))) - { - testAssertionId.append(ch, start, length); - } - - // <messageInput> - else if ( - (logInput != null) - && (currentElement.equals(WSIConstants.ELEM_MESSAGE_INPUT))) - { - logInput.append(ch, start, length); - } - - // <wsdlInput> - else if ( - (wsdlInput != null) - && (currentElement.equals(WSIConstants.ELEM_WSDL_INPUT))) - { - wsdlInput.append(ch, start, length); - } - - /* REMOVE: - // <uddiInput> - else if ((uddiInput != null) && (currentElement.equals(WSIConstants.ELEM_UDDI_INPUT))) { - uddiInput.append(ch, start, length); - } - */ - } - } - - /** - * NOTE that this api assumes that base wsdl validator has already validated - * the wsdl document and corresponding schemas against the wsdl 1.1 specification. - * Note also that there are a number of duplicate checks between the base validator - * and the ws-i validator. Since some of these checks are cpu intensive, we disable - * those assertions here. - * - * Returns true if the assertion has already been checked by the base validator. - * @param testAssertion - * @return true if the assertion has already been checked by the base validator. - */ - protected boolean alreadyChecked(String id) - { - boolean result = false; - if (id != null) - { - result = (id.equals("BP2110") || - id.equals("BP2115") || - id.equals("BP2417") || - id.equals("BP2114") || - id.equals("BP2123") || - id.equals("SSBP2209") || - id.equals("AP2209") || - id.equals("BP2700") || - id.equals("BP2011") - ); - } - return result; -} - - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/impl/TestAssertionImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/impl/TestAssertionImpl.java deleted file mode 100644 index 769757a12..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/impl/TestAssertionImpl.java +++ /dev/null @@ -1,256 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.impl; - -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.profile.EntryTypeList; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; - -/** - * This class ... - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class TestAssertionImpl implements TestAssertion -{ - /** - * Test assertion id. - */ - protected String id = null; - - /** - * Test assertion type. - */ - protected String type = null; - - /** - * Test assertion primary entry type name. - */ - protected String entryTypeName = null; - - /** - * Test assertion enabled indicator. - */ - protected boolean enabled = true; - - /** - * Context. - */ - protected String context = null; - - /** - * Assertion description. - */ - protected String assertionDescription = null; - - /** - * Failure message. - */ - protected String failureMessage = null; - - /** - * Failure detail description. - */ - protected String failureDetailDescription = null; - - /** - * Detail description. - */ - protected String detailDescription = null; - - /** - * Addtional entry type list. - */ - protected EntryTypeList entryTypeList = null; - - /** - * Prereq ID list. - */ - protected Vector prereqIdList = new Vector(); - - /* (non-Javadoc) - * @see org.wsi.test.profile.TestAssertion#getId() - */ - public String getId() - { - return this.id; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.TestAssertion#setId(String) - */ - public void setId(String id) - { - this.id = id; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.TestAssertion#getType() - */ - public String getType() - { - return this.type; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.TestAssertion#setType(String) - */ - public void setType(String type) - { - this.type = type; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.TestAssertion#getEntryTypeName() - */ - public String getEntryTypeName() - { - return this.entryTypeName; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.TestAssertion#setEntryTypeName(String) - */ - public void setEntryTypeName(String entryTypeName) - { - this.entryTypeName = entryTypeName; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.TestAssertion#isEnabled() - */ - public boolean isEnabled() - { - return enabled; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.TestAssertion#setEnabled(boolean) - */ - public void setEnabled(boolean enabled) - { - this.enabled = enabled; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.TestAssertion#getContext() - */ - public String getContext() - { - return context; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.TestAssertion#setContext(String) - */ - public void setContext(String context) - { - this.context = context; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.TestAssertion#getAssertionDescription() - */ - public String getAssertionDescription() - { - return this.assertionDescription; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.TestAssertion#setAssertionDescription(String) - */ - public void setAssertionDescription(String assertionDescription) - { - this.assertionDescription = assertionDescription; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.TestAssertion#getFailureMessage() - */ - public String getFailureMessage() - { - return this.failureMessage; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.TestAssertion#setFailureMessage(String) - */ - public void setFailureMessage(String failureMessage) - { - this.failureMessage = failureMessage; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.TestAssertion#getFailureDetailDescription() - */ - public String getFailureDetailDescription() - { - return this.failureDetailDescription; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.TestAssertion#setFailureDetailDescription(String) - */ - public void setFailureDetailDescription(String failureDetailDescription) - { - this.failureDetailDescription = failureDetailDescription; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.TestAssertion#getDetailDescription() - */ - public String getDetailDescription() - { - return this.detailDescription; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.TestAssertion#setDetailDescription(String) - */ - public void setDetailDescription(String detailDescription) - { - this.detailDescription = detailDescription; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.TestAssertion#getAdditionalEntryTypeList() - */ - public EntryTypeList getAdditionalEntryTypeList() - { - return this.entryTypeList; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.TestAssertion#setAdditionalEntryTypeList(org.wsi.test.profile.EntryTypeList) - */ - public void setAdditionalEntryTypeList(EntryTypeList entryTypeList) - { - this.entryTypeList = entryTypeList; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.TestAssertion#getPrereqIdList() - */ - public Vector getPrereqIdList() - { - return prereqIdList; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.TestAssertion#addPrereqId(String) - */ - public void addPrereqId(String prereqId) - { - this.prereqIdList.add(prereqId); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/BaseValidator.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/BaseValidator.java deleted file mode 100644 index 52e702ada..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/BaseValidator.java +++ /dev/null @@ -1,98 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AnalyzerContext; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AnalyzerConfig; -import org.eclipse.wst.wsi.internal.core.profile.ProfileAssertions; -import org.eclipse.wst.wsi.internal.core.report.ReportArtifact; -import org.eclipse.wst.wsi.internal.core.report.Reporter; -import org.w3c.dom.Document; - -/** - * The base interface for the profile validator. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface BaseValidator -{ - /** - * Set all test assertions for an artifact to missingInput. - * @throws WSIException if there is any problems while processing. - */ - public void setAllMissingInput() throws WSIException; - - /** - * Cleanup after processing all of the test assertions for an artifact. - * @throws WSIException if there is any problems during cleanup. - */ - public void cleanup() throws WSIException; - - /** - * Parse XML document and validate with a schema document. - * @param urlString XML document location. - * @param baseURI a base url to assist in locating the XML document. - * @param schema the related XML schema. - * @return XML document. - * @throws WSIException if there are any problems while parsing or - * validating the XML document. - */ - public Document parseXMLDocumentURL( - String urlString, - String baseURI, - String schema) - throws WSIException; - - /** - * Initiailize validation test procedure. - * @param analyzerContext the analyzerContext. - * @param assertions the assertions - * @param reportArtifact the report artifact. - * @param analyzerConfig the analyzerConfig - * @param reporter the reporter which is used to add errors to the - * conformance report - * @throws WSIException if message validator could not be initialized. - */ - public void init( - AnalyzerContext analyzerContext, - ProfileAssertions assertions, - ReportArtifact reportArtifact, - AnalyzerConfig analyzerConfig, - Reporter reporter) - throws WSIException; - - /** - * Determines if this validator should be run (depending on the analyzer - * config) - * @return boolean true if validator should be run, false if not - */ - public boolean runTests(); - - /** - * Run the validator - * @throws WSIException if an unexpected error occurs during validation - */ - public void validateArtifact() throws WSIException; - - /** - * Get the artifact type that this validator applies to. - * @return the artifact type (a String) - */ - public String getArtifactType(); - - /** - * Get the collection of entry types that this validator applies to. - * @return an array of entry types (Strings) - */ - public String[] getEntryTypes(); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/EntryContext.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/EntryContext.java deleted file mode 100644 index 4dbd893cc..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/EntryContext.java +++ /dev/null @@ -1,224 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AnalyzerContext; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.log.MimePart; -import org.eclipse.wst.wsi.internal.core.report.Entry; -import org.eclipse.wst.wsi.internal.core.util.EntryType; -import org.eclipse.wst.wsi.internal.core.wsdl.WSDLDocument; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; - -/** - * This class contains the target information needed by a test assertion. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - * @author Graham Turrell (gturrell@uk.ibm.com) - */ -public class EntryContext -{ - protected Entry entry = null; - - protected MessageEntry request = null; - protected MessageEntry response = null; - protected MessageEntry messageEntry = null; - - protected Document requestDocument = null; - protected Document responseDocument = null; - protected Document messageEntryDocument = null; - - protected WSDLDocument wsdlDocument = null; - - protected AnalyzerContext analyzerContext = null; - - /** - * Create entry context. - * @param entry a message entry. - * @param request the request. - * @param response the response. - */ - public EntryContext(Entry entry, MessageEntry request, MessageEntry response) - { - this(entry, request, response, null); - } - - /** - * Create entry context. - * @param entry a message entry. - * @param request the request. - * @param response the response. - * @param analyzerContext the analyzerContext. - */ - public EntryContext( - Entry entry, - MessageEntry request, - MessageEntry response, - AnalyzerContext analyzerContext) - { - this.entry = entry; - this.request = request; - this.response = response; - this.analyzerContext = analyzerContext; - - try - { - // Parse all documents - if(request.isMimeContent()) - { - MimePart part = request.getMimeParts().getRootPart(); - if ((part != null) && (part.getContent().length() > 0)) - requestDocument = XMLUtils.parseXML(part.getContent()); - } - else - { - if (request.getMessage().length() > 0) - requestDocument = XMLUtils.parseXML(request.getMessage()); - } - - if (response != null) { - if(response.isMimeContent()) - { - MimePart part = response.getMimeParts().getRootPart(); - if ((part != null) && (part.getContent().length() > 0)) - responseDocument = XMLUtils.parseXML(part.getContent()); - } - else - { - if (response.getMessage().length() > 0) - responseDocument = XMLUtils.parseXML(response.getMessage()); - } - } - } - - catch (WSIException we) - { - } - - // need some exception handling in here and more careful checking - if (entry.getEntryType().equals(EntryType.getEntryType(MessageValidator.TYPE_MESSAGE_REQUEST))) - { - this.messageEntry = request; - this.messageEntryDocument = requestDocument; - } - else - { - this.messageEntry = response; - this.messageEntryDocument = responseDocument; - } - } - - /** - * Create entry context. - * @param entry a message entry. - * @param wsdlDocument a WSDL document. - */ - public EntryContext(Entry entry, WSDLDocument wsdlDocument) - { - this.entry = entry; - this.wsdlDocument = wsdlDocument; - } - - /** - * Create entry context. - * @param entry a message entry. - * @param analyzerContext the analyzerContext. - */ - public EntryContext(Entry entry, AnalyzerContext analyzerContext) - { - this.entry = entry; - this.analyzerContext = analyzerContext; - } - - /** - * Returns the entry. - * @return the entry. - */ - public Entry getEntry() - { - return this.entry; - } - - /** - * Returns the request. - * @return the request. - */ - public MessageEntry getRequest() - { - return request; - } - - /** - * Returns the response. - * @return the response. - */ - public MessageEntry getResponse() - { - return response; - } - - /** - * Returns the log entry which is not null. - * @return the log entry. - */ - public MessageEntry getMessageEntry() - { - return messageEntry; - } - - /** - * Returns the request. - * @return MessageEntry - */ - public Document getRequestDocument() - { - return requestDocument; - } - - /** - * Returns the response. - * @return the response. - */ - public Document getResponseDocument() - { - return responseDocument; - } - - /** - * Returns the log entry which is not null. - * @return the log entry. - */ - public Document getMessageEntryDocument() - { - return messageEntryDocument; - } - - /** - * Returns the WSDL document. - * @return the WSDL document. - */ - public WSDLDocument getWSDLDocument() - { - return wsdlDocument; - } - - /** - * Returns analyzerContext. - * @return analyzerContext - */ - public AnalyzerContext getAnalyzerContext() - { - return this.analyzerContext; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/EnvelopeValidator.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/EnvelopeValidator.java deleted file mode 100644 index c0dcc999f..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/EnvelopeValidator.java +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AnalyzerContext; -import org.eclipse.wst.wsi.internal.core.profile.ProfileArtifact; -import org.eclipse.wst.wsi.internal.core.report.ReportArtifact; -import org.eclipse.wst.wsi.internal.core.report.Reporter; -import org.eclipse.wst.wsi.internal.core.wsdl.WSDLDocument; - -/** - * Interface definition for envelope validation test procedure. - * - * @version 1.0 - */ -public interface EnvelopeValidator extends LogValidator -{ - - /** - * Initiailize validation test procedure. - * @param analyzerContext the analyzerContext. - * @param artifact an profile artifact. - * @param reportArtifact the report artifact. - * @param wsdlDocument the Web service definition - * @param reporter the reporter which is used to add errors to the conformance report - * @throws WSIException if message validator could not be initialized. - * @deprecated -- use init(AnalyzerContext analyzerContext, - * ProfileAssertions assertions, - * ReportArtifact reportArtifact, - * AnalyzerConfig analyzerConfig, - * Reporter reporter) - */ - public void init( - AnalyzerContext analyzerContext, - ProfileArtifact artifact, - ReportArtifact reportArtifact, - WSDLDocument wsdlDocument, - Reporter reporter) - throws WSIException; - - /** Envelope artifact type */ - public static final String TYPE_ENVELOPE = "envelope"; - - /** Request envelope entry type. */ - public static final String TYPE_ENVELOPE_REQUEST = "requestEnvelope"; - - /** Response envelope entry type. */ - public static final String TYPE_ENVELOPE_RESPONSE = "responseEnvelope"; - - /** Any envelope entry type. */ - public static final String TYPE_ENVELOPE_ANY = "anyEnvelope"; -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/LogValidator.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/LogValidator.java deleted file mode 100644 index 454ddb902..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/LogValidator.java +++ /dev/null @@ -1,27 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator; - -import org.eclipse.wst.wsi.internal.core.WSIException; - -/** - * Interface definition for validation test procedures common to envelopes and - * messages. - */ -public interface LogValidator extends BaseValidator { - /** - * Validate the envelope located by the log entry. - * @param entryContext a log entry locating an envelope. - * @throws WSIException if an unexpected error occurred while - * processing the log entry. - */ - public void validate(EntryContext entryContext) throws WSIException; -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/MessageValidator.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/MessageValidator.java deleted file mode 100644 index 5a53f4bea..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/MessageValidator.java +++ /dev/null @@ -1,83 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AnalyzerContext; -import org.eclipse.wst.wsi.internal.core.profile.ProfileArtifact; -import org.eclipse.wst.wsi.internal.core.report.ReportArtifact; -import org.eclipse.wst.wsi.internal.core.report.Reporter; -import org.eclipse.wst.wsi.internal.core.wsdl.WSDLDocument; - -/** - * Interface definition for message validation test procedure. - * - * @version 1.0.1 - * @author Peter Brittenham - * @author Graham Turrell (gturrell@uk.ibm.com) - */ -public interface MessageValidator extends LogValidator -{ - /** - * HTTP 1.0 version indicator. - */ - public static final String HTTP_VERSION_1_0 = "HTTP/1.0"; - - /** - * HTTP 1.1 version indicator. - */ - public static final String HTTP_VERSION_1_1 = "HTTP/1.1"; - - /** - * HTTP POST message indicator. - */ - public static final String HTTP_POST = "POST"; - - /** Message artifact type */ - public static final String TYPE_MESSAGE = "message"; - - /** Request message entry type. */ - public static final String TYPE_MESSAGE_REQUEST = "requestMessage"; - - /** Response message entry type. */ - public static final String TYPE_MESSAGE_RESPONSE = "responseMessage"; - - /** Any message entry type. */ - public static final String TYPE_MESSAGE_ANY = "anyMessage"; - - /** Mime part message entry type. */ - public static final String TYPE_MIME_PART = "part"; - - /** Mime root part message entry type. */ - public static final String TYPE_MIME_ROOT_PART = "root-part"; - - /** - * Initiailize validation test procedure. - * @param analyzerContext the analyzerContext. - * @param artifact an profile artifact. - * @param reportArtifact the report artifact. - * @param wsdlDocument the Web service definition - * @param reporter the reporter which is used to add errors to the conformance report - * @throws WSIException if message validator could not be initialized. - * @deprecated -- use init(AnalyzerContext analyzerContext, - * ProfileAssertions assertions, - * ReportArtifact reportArtifact, - * AnalyzerConfig analyzerConfig, - * Reporter reporter) - */ - public void init( - AnalyzerContext analyzerContext, - ProfileArtifact artifact, - ReportArtifact reportArtifact, - WSDLDocument wsdlDocument, - Reporter reporter) - throws WSIException; -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/ProfileValidatorFactory.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/ProfileValidatorFactory.java deleted file mode 100644 index a16f1d340..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/ProfileValidatorFactory.java +++ /dev/null @@ -1,109 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.util.WSIProperties; - -/** -* This class is used to access an implementation of a ProfileValidatorFactory abstract class. - * - * @version 1.0.1 - * @author Peter Brittenham - */ -public abstract class ProfileValidatorFactory -{ - /** - * Create a new instance of a validator depending on the given artifact name - * @param artifactName - String containing the artifact name from the TAD - * @return an object that implements the BaseValidator interface. - * @throws WSIException if the validator cannot be instantiated - */ - public abstract BaseValidator getValidatorForArtifact(String artifactName) - throws WSIException; - - /** - * Create a new instance of a UDDI validator. - * @return an object that implements the WSDLValidator interface. - * @throws WSIException if UDDI validator cannot be instantiated. - * @deprecated -- use getValidatorForArtifact(String artifactName). - */ - public abstract UDDIValidator newUDDIValidator() throws WSIException; - - /** - * Create a new instance of a WSDL validator. - * @return an object that implements the WSDLValidator interface. - * @throws WSIException if WSDL validator cannot be instantiated. - * @deprecated -- use getValidatorForArtifact(String artifactName). - */ - public abstract WSDLValidator newWSDLValidator() throws WSIException; - - /** - * Create a new instance of a message validator. - * NOTE: Do we need to differentiate between the tranport and SOAP - * message validator? - * - * @return an object that implements the MessageValidator interface. - * @throws WSIException if message validatorcannot be instantiated. - * @deprecated -- use getValidatorForArtifact(String artifactName). - */ - public abstract MessageValidator newMessageValidator() throws WSIException; - - /** - * Create a new instance of an envelope validator. - * @return an object that implements the EnvelopeValidator interface. - * @throws WSIException if message validator cannot be instantiated. - * @deprecated -- use getValidatorForArtifact(String artifactName). - */ - public abstract EnvelopeValidator newEnvelopeValidator() throws WSIException; - - /** - * Instantiate the implementation of the ProfileValidatorFactory class. - * The implementation class for this interface is specified in the following - * Java system property: - * <UL> - * <LI>wsi.profile.validator.factory - * </UL> - * - * @return the ProfileValidatorFactory object. - * @throws WSIException if factory class cannot be instantiated. - */ - public static ProfileValidatorFactory newInstance() throws WSIException - { - ProfileValidatorFactory factory = null; - String factoryClassName = null; - - try - { - // Get factory class name - factoryClassName = - WSIProperties.getProperty( - WSIProperties.PROP_VALIDATOR_FACTORY, - WSIProperties.DEF_VALIDATOR_FACTORY); - - // Create the factory class - Class factoryClass = Class.forName(factoryClassName); - - // Instantiate the factory - factory = (ProfileValidatorFactory) factoryClass.newInstance(); - } - - catch (Exception e) - { - throw new WSIException( - "Could not instantiate factory class: " + factoryClassName + ".", - e); - } - - // Return factory - return factory; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/UDDIValidator.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/UDDIValidator.java deleted file mode 100644 index fc129bf3e..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/UDDIValidator.java +++ /dev/null @@ -1,70 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AnalyzerContext; -import org.eclipse.wst.wsi.internal.core.analyzer.config.UDDIReference; -import org.eclipse.wst.wsi.internal.core.profile.ProfileArtifact; -import org.eclipse.wst.wsi.internal.core.report.ReportArtifact; -import org.eclipse.wst.wsi.internal.core.report.Reporter; - -/** - * The WSDL validator will verify that the WSDL and associated XML schema definitions - * are in conformance with the profile. - * - * @version 1.0.1 - * @author Peter Brittenham - */ -public interface UDDIValidator extends BaseValidator -{ - /** Discovery artifact type */ - public static final String TYPE_DISCOVERY = "discovery"; - - /** Binding template discovery entry type. */ - public static final String TYPE_DISCOVERY_BINDINGTEMPLATE = "bindingTemplate"; - - /** tModel discovery entry type. */ - public static final String TYPE_DISCOVERY_TMODEL = "tModel"; - - /** - * Initiailize validation test procedure. - * @param analyzerContext the analyzerContext. - * @param artifact an profile artifact. - * @param reportArtifact the report artifact. - * @param uddiReference a UDDI reference. - * @param reporter a Reporter object. - * @throws WSIException if UDDI validator could not be initialized. - * @deprecated -- use init(AnalyzerContext analyzerContext, - * ProfileAssertions assertions, - * ReportArtifact reportArtifact, - * AnalyzerConfig analyzerConfig, - * Reporter reporter) - - */ - public void init( - AnalyzerContext analyzerContext, - ProfileArtifact artifact, - ReportArtifact reportArtifact, - UDDIReference uddiReference, - Reporter reporter) - throws WSIException; - - /** - * Validate the UDDI based service description. - * @return If the UDDI entries are valid, then the value returned - * is the URL for the WSDL document. - * @throws WSIException WSIException if an unexpected error occurred - * while processing the UDDIentries. - * @deprecated -- use validateArtifact() - */ - public String validate() throws WSIException; -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/WSDLValidator.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/WSDLValidator.java deleted file mode 100644 index f5d886411..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/WSDLValidator.java +++ /dev/null @@ -1,88 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AnalyzerContext; -import org.eclipse.wst.wsi.internal.core.profile.ProfileArtifact; -import org.eclipse.wst.wsi.internal.core.report.ReportArtifact; -import org.eclipse.wst.wsi.internal.core.report.Reporter; -import org.eclipse.wst.wsi.internal.core.wsdl.WSDLDocument; - -/** - * The WSDL validator will verify that the WSDL and associated XML schema definitions - * are in conformance with the profile. - * - * @version 1.0.1 - * @author Peter Brittenham - */ -public interface WSDLValidator extends BaseValidator -{ - /** Description artifact type */ - public static final String TYPE_DESCRIPTION = "description"; - - /** Definitions description entry type. */ - public static final String TYPE_DESCRIPTION_DEFINITIONS = "definitions"; - - /** Import description entry type. */ - public static final String TYPE_DESCRIPTION_IMPORT = "import"; - - /** Types description entry type. */ - public static final String TYPE_DESCRIPTION_TYPES = "types"; - - /** Message description entry type. */ - public static final String TYPE_DESCRIPTION_MESSAGE = "message"; - - /** Operation description entry type. */ - public static final String TYPE_DESCRIPTION_OPERATION = "operation"; - - /** PortType description entry type. */ - public static final String TYPE_DESCRIPTION_PORTTYPE = "portType"; - - /** Binding description entry type. */ - public static final String TYPE_DESCRIPTION_BINDING = "binding"; - - /** Port description entry type. */ - public static final String TYPE_DESCRIPTION_PORT = "port"; - - /** - * Initiailize validation test procedure. - * @param analyzerContext the analyzerContext. - * @param artifact the profile artifact. - * @param reportArtifact the report artifact. - * @param wsdlURL the WSDL document location. - * @param wsdlDocument the WSDL document. - * @param reporter a Reporter object. - * @throws WSIException if WSDL validator could not be initialized. - * @deprecated -- use init(AnalyzerContext analyzerContext, - * ProfileAssertions assertions, - * ReportArtifact reportArtifact, - * AnalyzerConfig analyzerConfig, - * Reporter reporter) - */ - public void init( - AnalyzerContext analyzerContext, - ProfileArtifact artifact, - ReportArtifact reportArtifact, - String wsdlURL, - WSDLDocument wsdlDocument, - Reporter reporter) - throws WSIException; - - /** - * Validate the WSDL based service description. - * @return the WSDL document. - * @throws WSIException if an unexpected error occurred - * while validating he WSDL based service description. - * @deprecated -- use validateArtifact() - */ - public WSDLDocument validate() throws WSIException; -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/AssertionProcess.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/AssertionProcess.java deleted file mode 100644 index 23a3d2c3a..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/AssertionProcess.java +++ /dev/null @@ -1,66 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.report.FailureDetail; - - -/** - * Process assertion. - */ -public abstract class AssertionProcess -{ - protected String result; - protected String failureDetailMessage; - protected FailureDetail failureDetail; - private final BaseValidatorImpl base_validator; - - /** - * @param BaseValidatorImpl - */ - public AssertionProcess(BaseValidatorImpl impl) - { - this.base_validator = impl; - } - - /** - * Create assertion result. - */ - void reset() - { - result = AssertionResult.RESULT_PASSED; - failureDetailMessage = null; - failureDetail = null; - } - - /** - * Validate assertion. - */ - public abstract AssertionResult validate( - TestAssertion testAssertion, - EntryContext targetContext) - throws WSIException; - - /** - * Verbose output. - */ - public void debug(String message) - { - if ((base_validator != null) && base_validator.verboseOption) - { - System.err.println(message); - } - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/AssertionProcessVisitor.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/AssertionProcessVisitor.java deleted file mode 100644 index 4ccceed0b..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/AssertionProcessVisitor.java +++ /dev/null @@ -1,154 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl; - -import javax.wsdl.Binding; -import javax.wsdl.BindingFault; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOperation; -import javax.wsdl.BindingOutput; -import javax.wsdl.Definition; -import javax.wsdl.Fault; -import javax.wsdl.Import; -import javax.wsdl.Input; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.Output; -import javax.wsdl.Part; -import javax.wsdl.Port; -import javax.wsdl.PortType; -import javax.wsdl.Service; -import javax.wsdl.Types; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.soap.SOAPBinding; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPFault; -import javax.wsdl.extensions.soap.SOAPHeader; -import javax.wsdl.extensions.soap.SOAPHeaderFault; -import javax.wsdl.extensions.soap.SOAPOperation; - -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLVisitor; -import org.w3c.dom.Element; - - -/** - * Process assertion using WSDLVisitor interface. - */ -public abstract class AssertionProcessVisitor - extends AssertionProcess - implements WSDLVisitor -{ - /** - * @param BaseValidatorImpl - */ - public AssertionProcessVisitor(BaseValidatorImpl impl) - { - super(impl); - } - - public void visit(Part obj, Object parent, WSDLTraversalContext ctx) - { - } - public void visit(Service obj, Object parent, WSDLTraversalContext ctx) - { - } - public void visit(Types obj, Object parent, WSDLTraversalContext ctx) - { - } - public void visit(Operation obj, Object parent, WSDLTraversalContext ctx) - { - } - public void visit(Input obj, Object parent, WSDLTraversalContext ctx) - { - } - public void visit(Output obj, Object parent, WSDLTraversalContext ctx) - { - } - public void visit(Fault obj, Object parent, WSDLTraversalContext ctx) - { - } - public void visit(Binding obj, Object parent, WSDLTraversalContext ctx) - { - } - public void visit( - BindingOperation obj, - Object parent, - WSDLTraversalContext ctx) - { - } - public void visit( - BindingInput obj, - Object parent, - WSDLTraversalContext ctx) - { - } - public void visit( - BindingOutput obj, - Object parent, - WSDLTraversalContext ctx) - { - } - public void visit( - BindingFault obj, - Object parent, - WSDLTraversalContext ctx) - { - } - public void visit(Import obj, Object parent, WSDLTraversalContext ctx) - { - } - public void visit(Element obj, Object parent, WSDLTraversalContext ctx) - { - } - public void visit(Message obj, Object parent, WSDLTraversalContext ctx) - { - } - public void visit(Port obj, Object parent, WSDLTraversalContext ctx) - { - } - public void visit(PortType obj, Object parent, WSDLTraversalContext ctx) - { - } - public void visit(Definition obj, Object parent, WSDLTraversalContext ctx) - { - } - public void visit( - ExtensibilityElement obj, - Object parent, - WSDLTraversalContext ctx) - { - } - public void visit(SOAPBinding obj, Object parent, WSDLTraversalContext ctx) - { - } - public void visit(SOAPBody obj, Object parent, WSDLTraversalContext ctx) - { - } - public void visit(SOAPHeader obj, Object parent, WSDLTraversalContext ctx) - { - } - public void visit( - SOAPHeaderFault obj, - Object parent, - WSDLTraversalContext ctx) - { - } - public void visit(SOAPFault obj, Object parent, WSDLTraversalContext ctx) - { - } - public void visit( - SOAPOperation obj, - Object parent, - WSDLTraversalContext ctx) - { - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/BaseMessageValidator.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/BaseMessageValidator.java deleted file mode 100644 index 3f6f79018..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/BaseMessageValidator.java +++ /dev/null @@ -1,1915 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 2010 IBM Corporation, Parasoft 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 - Initial API and implementation - * Parasoft - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Vector; - -import javax.wsdl.Binding; -import javax.wsdl.BindingOperation; -import javax.wsdl.Definition; -import javax.wsdl.Message; -import javax.wsdl.Part; -import javax.wsdl.Port; -import javax.wsdl.Service; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.mime.MIMEMultipartRelated; -import javax.wsdl.extensions.mime.MIMEPart; -import javax.wsdl.extensions.soap.SOAPBinding; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPHeader; -import javax.wsdl.extensions.soap.SOAPOperation; -import javax.xml.namespace.QName; - -import org.apache.xerces.util.URI; -import org.apache.xerces.xs.XSConstants; -import org.apache.xerces.xs.XSModel; -import org.apache.xerces.xs.XSTypeDefinition; -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.analyzer.AnalyzerContext; -import org.eclipse.wst.wsi.internal.core.analyzer.CandidateInfo; -import org.eclipse.wst.wsi.internal.core.analyzer.ServiceReference; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AnalyzerConfig; -import org.eclipse.wst.wsi.internal.core.document.DocumentFactory; -import org.eclipse.wst.wsi.internal.core.log.Log; -import org.eclipse.wst.wsi.internal.core.log.LogReader; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.log.MessageEntryHandler; -import org.eclipse.wst.wsi.internal.core.profile.ProfileArtifact; -import org.eclipse.wst.wsi.internal.core.profile.ProfileAssertions; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.LogValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.MessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl.WSDLValidatorImpl; -import org.eclipse.wst.wsi.internal.core.report.ArtifactReference; -import org.eclipse.wst.wsi.internal.core.report.FailureDetail; -import org.eclipse.wst.wsi.internal.core.report.ReportArtifact; -import org.eclipse.wst.wsi.internal.core.report.Reporter; -import org.eclipse.wst.wsi.internal.core.util.EntryType; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; -import org.eclipse.wst.wsi.internal.core.util.Utils; -import org.eclipse.wst.wsi.internal.core.wsdl.WSDLDocument; -import org.eclipse.wst.wsi.internal.core.wsdl.WSDLUtils; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.xml.sax.SAXException; - -import com.ibm.icu.util.StringTokenizer; -import com.ibm.wsdl.Constants; -import com.ibm.wsdl.util.xml.DOM2Writer; -import com.ibm.wsdl.util.xml.DOMUtils; - -/** - * The WSDL validator will verify that the WSDL and associated XML schema definitions - * are in conformance with the profile. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - * @author Jim Clune - * @author Graham Turrell (gturrell@uk.ibm.com) - * @author Neil Delima (nddelima@ca.ibm.com) - */ -public abstract class BaseMessageValidator - extends BaseValidatorImpl - implements LogValidator -{ - /** - * WSDL document. - */ - private WSDLDocument wsdlDocument; - - /** - * Log entry. - */ - protected MessageEntry logEntry; - protected Log log; - - private boolean testable; - private AnalyzerConfig analyzerConfig; - - public void init(AnalyzerContext analyzerContext, - ProfileAssertions assertions, - ReportArtifact reportArtifact, - AnalyzerConfig analyzerConfig, - Reporter reporter) - throws WSIException { - - super.init(analyzerContext, assertions.getArtifact(getArtifactType()), - reportArtifact, reporter); - - testable = analyzerConfig.getLogLocation() != null; - this.analyzerConfig = analyzerConfig; - this.wsdlDocument = (WSDLDocument) analyzerContext.getWsdlDocument(); - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.MessageValidator#init(org.eclipse.wst.wsi.internal.core.analyzer.AnalyzerContext, org.wsi.test.profile.ProfileArtifact, org.wsi.test.report.ReportArtifact, org.wsi.wsdl.WSDLDocument, org.wsi.test.report.Reporter) - */ - public void init( - AnalyzerContext analyzerContext, - ProfileArtifact profileArtifact, - ReportArtifact reportArtifact, - WSDLDocument wsdlDocument, - Reporter reporter) - throws WSIException - { - // BaseValidatorImpl - super.init(analyzerContext, profileArtifact, reportArtifact, reporter); - - this.analyzerConfig = Utils.getAnalyzerConfig(reporter); - testable = ((analyzerConfig != null) && (analyzerConfig.getLogLocation() != null)); - - // Save input references - this.wsdlDocument = wsdlDocument; - } - - /** - * Returns wsdlDocument - * @return wsdlDocument - */ - public WSDLDocument getWSDLDocument() - { - return wsdlDocument; - } - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.MessageValidator#validate(org.wsi.test.profile.validator.EntryContext) - */ - public void validate(EntryContext entryContext) throws WSIException - { - //Entry entry = null; - - // Save log entry to be referenced by other methods - this.logEntry = entryContext.getMessageEntry(); - - // Get reference to the analyzer config object - AnalyzerConfig analyzerConfig = - reporter.getReport().getReportContext().getAnalyzer().getAnalyzerConfig(); - - /* If Service Description (WSDL/UDDI) NOT supplied in analyzer config OR - * Service Description IS supplied and the current message correlates to it... - */ - if ((!analyzerConfig.isWSDLReferenceSet()) - || messageCorrelatesToService( - entryContext, - analyzerConfig.getCorrelationType())) - { - // now inner classes moved out from the validator - //String classPrefix = this.getClass().getName() + "$"; - String classPrefix = this.getClass().getPackage().getName()+"."; - - // Process assertions for this artifact against the target context - processAssertions(classPrefix, entryContext); - } - } - - /** - * Check whether the message correlates to the service under test. - * Use the request part of the request-response pair, from which the correlation of the response is implied. - * Entities from the Service under test are determined once for all. - * @param entryContext an entry context. - * @param correlationType a correlation type. - * @return true if the message correlates to the service under test. - * @throws WSIException if correlation type is not appropriate. - */ - private boolean messageCorrelatesToService( - EntryContext entryContext, - String correlationType) - throws WSIException - { - - URI[] endpoints = null; - boolean correlation = false; - - /* TEMP: Get it from analyzer config passed in on init method - CandidateInfo candidate = entryContext - .getAnalyzerContext() - .getCandidateInfo(); - */ - CandidateInfo candidate = analyzerContext.getCandidateInfo(); - - // Service reference - ServiceReference serviceReference = analyzerContext.getServiceReference(); - - // Get the definition element - Definition definition = candidate.getWsdlDocument().getDefinitions(); - - Binding binding = null; - if (serviceReference.getWSDLElement().isPort()) - { - // Get service - Service service = - definition.getService( - serviceReference.getWSDLElement().getParentElementQName()); - - // Get port - Port port = service.getPort(serviceReference.getWSDLElement().getName()); - - // Get binding - binding = port.getBinding(); - } - else if (serviceReference.getWSDLElement().isBinding()) - { - // Get binding - binding = - definition.getBinding(serviceReference.getWSDLElement().getQName()); - } - - if (binding == null) - { - return false; - } - - if ((endpoints = hostAndPortCorrelation(entryContext)) != null - && urlPathCorrelation(entryContext, endpoints)) - { - - /* If correlation type is "endpoint", this is all the correlation that can be done. - * (Note - this is incomplete correlation since >1 service could be associated with the endpoint. - * Therefore , if messages for different services on the same endpoint appear in the log file - * and correlation type is "endpoint", all those messages will be analyzed). - */ - if (correlationType - .equals(WSIConstants.ATTRVAL_CORRELATION_TYPE_ENDPOINT)) - { - correlation = true; - } - else - { - // always allow GET requests right through if they've passed Endpoint Correlation - String requestType = getHttpRequestType(entryContext); - if ((requestType != null) && requestType.equalsIgnoreCase("GET")) - { - correlation = true; - } - else - { - // The correlationType is not "endpoint" so continue on to processing for at least - // "namespace" correlation... - - // get the operation signature (input & output) from request & response messages... - // and do a quick DOM parse - Document requestMessage = entryContext.getRequestDocument(); - - // Check if namespace is found in request message only - if (namespaceCorrelation(binding, requestMessage)) - { - // If namespace found and the correlation type is namespace, then process messages - if (correlationType - .equals(WSIConstants.ATTRVAL_CORRELATION_TYPE_NAMESPACE)) - { - correlation = true; - } - - // If operation is found and correlation type is operation, then process messages - else if ( - (operationCorrelation(binding, requestMessage)) - && (correlationType - .equals(WSIConstants.ATTRVAL_CORRELATION_TYPE_OPERATION))) - { - correlation = true; - } - else - { - // this should never happen if config schema was followed correctly - throw new WSIException( - "Bad correlation type found in config: " + correlationType); - } - } - } - } - } - - return correlation; - } - - /** - * Correlation Check 1: Service Description endpoint vs HTTP Header (test 1) - * Check if receiverHostAndPort from request message log matches host & port from WSDL SOAP binding for - * the Service under test. - * If it does not, stop processing this message pair. - * @param entryContext an entry context. - * @return if receiverHostAndPort from request message log matches - * host & port from WSDL SOAP binding for the Service. - * @throws WSIException if problem occurs during correlation check. - */ - private URI[] hostAndPortCorrelation(EntryContext entryContext) - throws WSIException - { - - // get <receiverHostAndPort> from request message - String httpHostAndPort = entryContext.getRequest().getReceiverHostAndPort(); - // Search endpoint list for a match with <receiverHostAndPort> - - /* TEMP: Get it from analyzer config passed in on init method - return entryContext.getAnalyzerContext() - .getCandidateInfo() - .getEndPoints(httpHostAndPort); - */ - return analyzerContext.getCandidateInfo().getEndPoints(httpHostAndPort); - } - - /** - * Correlation Check 2: Service Description endpoint vs HTTP Header (test 2) - * - * Use analyzer config host & port, plus URL path (from request message header HTTP POST) - * to look for the corresponding endpoint in the Service Definition. - * If it does not, stop processing this message pair. - * @param entryContext an entry context. - * @param endpoints an array of endpoints. - * @return true if corresponding endpoints are found in the Service Definition. - * @throws WSIException if problem occurs during correlation check. - */ - private boolean urlPathCorrelation( - EntryContext entryContext, - URI[] endpoints) - throws WSIException - { - - // compares: protocol (must be http for POST), host, port and path. - - // get POST URI path from message using Tokenizer - Vector requestLine = - getHttpRequest(entryContext.getRequest().getHTTPHeaders()); - if (requestLine == null) - { - return false; // an unexpected HTTP request type ! - } - - String requestPath = (String) requestLine.get(1); - // Path immediately follows POST - - // compare path with those in the previous generated URI list - Vector filteredEndpoints = new Vector(); - for (int i = 0; i < endpoints.length; i++) - { - if (endpoints[i].toString().endsWith(requestPath)) - { - filteredEndpoints.add(endpoints[i]); - } - } - - if (filteredEndpoints.size() == 0) - return false; - - // this URI should be unique in the WSDL - there should be at most one match - // but if we have at least one, that's sufficient to accept the message - - return true; - } - - /** - * Correlation Check 3: Service Description namespace. - * - * Determine if the Service Description declares the namespace that appears in the (request?) message soap body. - * Location of relevent namespace : - * Operation type - Message Namespace: (compare with) Service Definition Namespace: - * (from message? endpoint? where?) - * rpc-literal <soap:Body> child namespace. <soapbind:body> namespace. - * doc-literal <soap:Body> child namespace. targetNameSpace of schema that - * defines <soap:body> child. - * If it doesn't match, stop processing this message pair. - * @param binding a binding. - * @param request a request. - * @return true if description declared in the description are the - * same as those that appear in the message soap body. - * @throws WSIException if problem occurs during correlationcheck. - */ - private boolean namespaceCorrelation(Binding binding, Document request) - throws WSIException - { - boolean namespaceFound = false; - String bindingStyle = WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC; - - // Get operation namespace from the request soap message - String soapOpNS = getSoapBodyChild(request).getNamespaceURI(); - - // Get soapbind:binding - SOAPBinding soapBinding = null; - if ((soapBinding = WSDLUtils.getSoapBinding(binding)) != null) - { - bindingStyle = soapBinding.getStyle(); - } - - // Go through each operation in the binding and check for namespace match - Iterator operations = binding.getBindingOperations().iterator(); - while (operations.hasNext() && !(namespaceFound)) - { - BindingOperation bindingOperation = (BindingOperation) operations.next(); - - // If rpc-literal, then look at namespace attribute on soapbind:body - if (WSDLUtils.isRpcLiteral(bindingStyle, bindingOperation)) - { - // Get soapbind:body element - SOAPBody soapBody = WSDLUtils.getInputSoapBody(bindingOperation); - - if ((soapBody.getNamespaceURI() != null) - && (soapBody.getNamespaceURI().equals(soapOpNS))) - { - namespaceFound = true; - } - } - - // If doc-literal, then check namespace - else if (WSDLUtils.isDocLiteral(bindingStyle, bindingOperation)) - { - int partCount; - Iterator partsIterator = null; - - // Get first part name from soapbind:body element parts attribute - String partName = getFirstPartName(bindingOperation); - - // Get the list of parts from the message - Map partsMap = null; - if ((partsMap = - bindingOperation.getOperation().getInput().getMessage().getParts()) - != null) - { - partsIterator = partsMap.values().iterator(); - - // If the part name wasn't specified on the soapbind:body element, then process just the first one - if (partName == null) - partCount = 1; - else - partCount = partsMap.size(); - - for (int i = 0; i < partCount && !namespaceFound; i++) - { - // Get next part - Part part = (Part) partsIterator.next(); - - // If part name matches or there is no part name, then check namespace - if ((partName == null) - || ((partName != null) && (part.getName().equals(partName)))) - { - if ((part.getElementName().getNamespaceURI() != null) - && (part.getElementName().getNamespaceURI().equals(soapOpNS))) - { - namespaceFound = true; - } - } - } - } - } - } - - return namespaceFound; - } - - /** - * Correlation Check 4 : Service Description "operation" - * - * Check if the message content matches any of the candidate operation definitions - * for request and response in the Service Description. - * - * For both request and response, look for the soap body child element name - * in the list of candidate operation names. - * @param binding a binding. - * @param requestMessage a request message. - * @return true if the message content matches any of the candidate - * operation definitions for request and response in the - * Service Description. - * @throws WSIException if problem occurs during correlationcheck. - */ - private boolean operationCorrelation( - Binding binding, - Document requestMessage) - throws WSIException - { - boolean operationFound = false; - - String bindingStyle = WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC; - - // Get soapbind:binding - SOAPBinding soapBinding = null; - if ((soapBinding = WSDLUtils.getSoapBinding(binding)) != null) - { - bindingStyle = soapBinding.getStyle(); - } - - // Get the first child element from the soap body - Element soapBodyChild = getSoapBodyChild(requestMessage); - - // If there is a child element, then check it - if (soapBodyChild != null) - { - // Get operation name from the soap:body - String operationName = soapBodyChild.getLocalName(); - - // Get operation QName - QName operationQName = - new QName(soapBodyChild.getNamespaceURI(), operationName); - - // Go through each operation in the binding and check for namespace match - Iterator operations = binding.getBindingOperations().iterator(); - while (operations.hasNext() && !(operationFound)) - { - BindingOperation bindingOperation = - (BindingOperation) operations.next(); - - // If rpc-literal, then look at namespace attribute on soapbind:body - if (WSDLUtils.isRpcLiteral(bindingStyle, bindingOperation)) - { - // Get soapbind:body element - if (bindingOperation.getName().equals(operationName)) - operationFound = true; - } - - // If doc-literal, then check namespace - else if (WSDLUtils.isDocLiteral(bindingStyle, bindingOperation)) - { - int partCount; - Iterator partsIterator = null; - - // Get first part name from soapbind:body element parts attribute - String partName = getFirstPartName(bindingOperation); - - // Get the list of parts from the message - Map partsMap = null; - if ((partsMap = - bindingOperation.getOperation().getInput().getMessage().getParts()) - != null) - { - partsIterator = partsMap.values().iterator(); - - // If the part name wasn't specified on the soapbind:body element, then process just the first one - if (partName == null) - partCount = 1; - else - partCount = partsMap.size(); - - for (int i = 0; i < partCount && !operationFound; i++) - { - // Get next part - Part part = (Part) partsIterator.next(); - - // If part name matches or there is no part name, then check namespace - if ((partName == null) - || ((partName != null) && (part.getName().equals(partName)))) - { - if ((part.getElementName() != null) - && (part.getElementName().equals(operationQName))) - { - operationFound = true; - } - } - } - } - } - } - } - - // Go through each operation to find a match - return operationFound; - } - - /** - * Create failure detail. - * @param message a message. - * @param entryContext an entry context. - * @return failure detail. - */ - public FailureDetail createFailureDetail( - String message, - EntryContext entryContext) - { - FailureDetail failureDetail = reporter.createFailureDetail(); - failureDetail.setFailureMessage(message); - failureDetail.setElementLocation( - entryContext.getMessageEntry().getElementLocation()); - return failureDetail; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl#isNotApplicable(org.wsi.test.profile.TestAssertion) - */ - protected boolean isNotApplicable(TestAssertion testAssertion) - { - boolean notApplicable = false; - - // If the additional entry is not available, then set notApplicable - if (testAssertion.getAdditionalEntryTypeList().getWSDLInput() != null - && !testAssertion.getAdditionalEntryTypeList().getWSDLInput().equals("none") - && analyzerContext.getServiceReference().getWSDLLocation() == null) - { - notApplicable = true; - } - - return notApplicable; - } - - - /** - * Get POST request. - * @param httpHeader an HTTP - * @return POST request. - */ - public Vector getPostRequest(String httpHeader) - { - //Request-Line = Method SP Request-URI SP HTTP-Version CRLF - Vector requestLine = new Vector(); - String startLine = null; - - StringTokenizer httpMessageTokenizer = - new StringTokenizer(httpHeader, "\n\r\f"); - - if (httpMessageTokenizer.hasMoreTokens()) - { - startLine = httpMessageTokenizer.nextToken(); - } - - if (startLine.startsWith("POST")) - { - StringTokenizer startLineTokenizer = - new StringTokenizer(startLine, "\u0020"); - while (startLineTokenizer.hasMoreTokens()) - { - requestLine.add(startLineTokenizer.nextToken()); - } - } - return requestLine; - } - - /** - * Get HTTP request. - * @param httpHeader an HTTP - * @return HTTP request. - */ - private Vector getHttpRequest(String httpHeader) - { - //Request-Line = Method SP Request-URI SP HTTP-Version CRLF - Vector requestLine = new Vector(); - String startLine = null; - - StringTokenizer httpMessageTokenizer = - new StringTokenizer(httpHeader, "\n\r\f"); - - if (httpMessageTokenizer.hasMoreTokens()) - { - startLine = httpMessageTokenizer.nextToken(); - } - - if (startLine.startsWith("POST") || startLine.startsWith("GET")) - { - StringTokenizer startLineTokenizer = - new StringTokenizer(startLine, "\u0020"); - while (startLineTokenizer.hasMoreTokens()) - { - requestLine.add(startLineTokenizer.nextToken()); - } - } - else - { - requestLine = null; // signify not POST or GET - } - - return requestLine; - } - - /** - * Get HTTP request type. - * @param entryContext an entry context. - * @return HTTP request type. - */ - private String getHttpRequestType(EntryContext entryContext) - { - //Request-Line = Method SP Request-URI SP HTTP-Version CRLF - - String httpHeader = entryContext.getRequest().getHTTPHeaders(); - String httpRequestType = null; - String startLine = null; - - StringTokenizer httpMessageTokenizer = - new StringTokenizer(httpHeader, "\n\r\f"); - - if (httpMessageTokenizer.hasMoreTokens()) - { - startLine = httpMessageTokenizer.nextToken(); - StringTokenizer startLineTokenizer = - new StringTokenizer(startLine, "\u0020"); - if (startLineTokenizer.hasMoreTokens()) - { - httpRequestType = startLineTokenizer.nextToken(); - } - } - return httpRequestType; - } - - /** - * Determine if the message is a response for a one-way operation. - * @param entryContext an entry context. - * @return true if the message is a response for a one-way operation. - */ - public boolean isOneWayResponse(EntryContext entryContext) - { - boolean oneway = false; - - // TEMP: If this is a response message and there is no content, then set one-way to true - // TEMP: Need to find a way to determine if the response is for a one-way message - if (entryContext - .getMessageEntry() - .getType() - .equalsIgnoreCase(MessageEntry.TYPE_RESPONSE) - && entryContext.getMessageEntry().getMessage().length() == 0) - { - oneway = true; - } - - return oneway; - } - - /** - * messageIsDocLitSchemaValid. - * - * Validates the doc-lit messages against the schema found in a candidate wsdl document. - * - * Identify (or be given) a reference in the wsdl to elements (found in <wsdl:types><schema>...) - * that are immediate children elements in the soap body. - * @param entryContext an entry context. - * @return true if the document literal message is compliant to the - * schema found in a candidate WSDL document. - * @throws WSIException if there is a parsing problem during validation. - */ - public boolean messageIsDocLitSchemaValid(EntryContext entryContext) - throws WSIException - { - - // This method should use a validating parser that is capable of acceppting multiple schema references - // programmatically. Then, every schema in candidate wsdl can be passed in to the validator. This avoids the - // need to pinpoint a particular schema element from all candidate wsdl:types, corresponding to the - // wsdl:operation being used. The pinpointing is an incomplete workaround for parsers not capable - // of accepting arrays of scehma references - // [ i.e. the DOM factory.setAttribute(JAXP_SCHEMA SOURCE, Object[] {...}) ] - // get all xs:schema from all candidate wsdl:types - // add each <schema> to an array and pass this array to the validating parser - // when validating the/each soap body child. - - // use the referenced WSDL file and its imported files to find schemas - List schemaWSDLs = new ArrayList(); - List inlineSchemas = new ArrayList(); - List schemaStrings = new ArrayList(); - - Definition[] allDefs = - analyzerContext.getCandidateInfo().getDefinitions(); - for (int thisDef = 0; thisDef < allDefs.length; thisDef++) - { - schemaWSDLs.add(allDefs[thisDef].getDocumentBaseURI()); - } - Iterator fileIterator = schemaWSDLs.iterator(); - while (fileIterator.hasNext()) - { - // parse file if possible - Document wsdlDoc = null; - String wsdlURI = (String) fileIterator.next(); - try - { - wsdlDoc = XMLUtils.parseXMLDocumentURL(wsdlURI, null); - } - catch (Exception e) - { - continue; - } - Element root = wsdlDoc.getDocumentElement(); - // find the schema - NodeList schemaElements = root.getElementsByTagNameNS( - WSITag.ELEM_XSD_SCHEMA.getNamespaceURI(), - WSITag.ELEM_XSD_SCHEMA.getLocalPart()); - - for (int elem = 0; elem < schemaElements.getLength(); elem++) - { - Element schema = (Element) schemaElements.item(elem); - // copying all the NS declarations from wsdl:definitions wsdl:types - copyNSDeclarations(root, schema); - copyNSDeclarations((Element) schema.getParentNode(), schema); - // Replacing all relative schemaLocation URIs with absolute ones - replaceRelativeURIs(schema, wsdlURI); - inlineSchemas.add(schema); - } - } - - // Note that the Xerces parser ONLY accepts an array - // of schemas with unique namespaces. - if (!duplicateNamespacesDetected(inlineSchemas)) - { - // Serialize the schema elements inside the Types, then use this as - // the schema string for the validation - Iterator i = inlineSchemas.iterator(); - while (i.hasNext()) - { - Element schema = (Element)i.next(); - String schemaString = DOM2Writer.nodeToString(schema); - schemaStrings.add(schemaString); - } - - NodeList elementList = entryContext.getMessageEntryDocument() - .getElementsByTagNameNS(WSITag.ELEM_SOAP_BODY.getNamespaceURI(), - WSITag.ELEM_SOAP_BODY.getLocalPart()); - if (elementList == null || elementList.getLength() != 1) - { - // should only be a single soap body ! - return false; // probably an error condition though - } - - NodeList soapBodyChildList = ((Element)elementList.item(0)).getChildNodes(); - for (int child = 0; child < soapBodyChildList.getLength(); child++) - { - Node soapBodyChild = soapBodyChildList.item(child); - if (soapBodyChild.getNodeType() == Node.ELEMENT_NODE) - { - // do all for now - try - { - // Write out element tree to String - String messageContent = DOM2Writer.nodeToString(soapBodyChild); - // parse the child element, validating against the schema - XMLUtils.parseXML(messageContent, schemaStrings); - } - catch (WSIException e) - { - if (e.getTargetException() instanceof SAXException) - { - // validation failed - throw new WSIException(e.getTargetException().getMessage()); - } - throw e; - } - catch (Exception e) - { - throw new WSIException("Validating Parsing problem", e); - // Bad things have happened - } - } - } - } - return true; - } - - /** - * Copy the namespace declarations. - * @param parent a message. - * @param child a stripped message. - */ - private void copyNSDeclarations(Element parent, Element child) - { - NamedNodeMap nodeMap = parent.getAttributes(); - for (int nodeId = 0; nodeId < nodeMap.getLength(); nodeId++) - { - Node node = nodeMap.item(nodeId); - - if ((node.getNodeType() == Node.ATTRIBUTE_NODE) - && (node.getNodeName().startsWith("xmlns:"))) - { - String nodeName = node.getNodeName(); - // If an NS being copied is not the same as the child element has, copy it - if (!child.getNodeName().startsWith( - nodeName.substring(nodeName.indexOf(":") + 1) + ":")) - { - child.setAttribute(nodeName, node.getNodeValue()); - } - } - } - } - - /** - * Replaces all relative URIs for schemaLocation attributes. - * @param schema an xsd:schema element. - * @param wsdlURI an URI of WSDL that contains xsd:schema being processed. - */ - private void replaceRelativeURIs(Element schema, String wsdlURI) - { - // Retrieving all xsd:import elements - NodeList imports = schema.getElementsByTagNameNS( - WSITag.ELEM_XSD_IMPORT.getNamespaceURI(), - WSITag.ELEM_XSD_IMPORT.getLocalPart()); - // Going through the elements - for (int i = 0; i < imports.getLength(); i++) - { - Element imp = (Element) imports.item(i); - // Getting the schemaLocation attribute - Attr schemaLocation = - XMLUtils.getAttribute(imp, WSITag.ATTR_XSD_SCHEMALOCATION); - // If the attribute is present - if (schemaLocation != null) - { - // Trying to create an URI object using attribute's value - URI uri = null; - try - { - uri = new URI(schemaLocation.getValue()); - } - catch (Exception e) {} - // If the value is not an absolute URI (the URI constructor throws the - // MalformedURIException), creating the absolute URI using wsdlURI - if (uri == null) - { - String newURI = wsdlURI.substring(0, wsdlURI.lastIndexOf("/") + 1) - + schemaLocation.getValue(); - try - { - uri = new URI(newURI); - // Setting a new URI as a value for the schemaLocation attribute - schemaLocation.setValue(uri.toString()); - } - catch (Exception e) {} - } - } - } - } - - /** - * Returns binding operation matched for SOAP message. - * @param entryType message entry type. - * @param doc a message. - * @return any binding operation matched, null if it is not found. - */ - public BindingOperation getOperationMatch(EntryType entryType, Document doc) - { - BindingOperation bindingOperation = null; - try - { - // Getting the name of the first SOAP Body child element - QName operation = getOperationFromMessage(doc); - if (operation != null) - { - // Retrieving all the RPC binding operations from wsdl:binding - BindingOperation[] rpcBindingOps = getMatchingBindingOps( - WSIConstants.ATTRVAL_SOAP_BIND_STYLE_RPC, - analyzerContext.getCandidateInfo().getBindings()); - // Retrieving binding operation by the given operation name - bindingOperation = getOperationMatch( - entryType, operation, rpcBindingOps); - // If no one RPC operation matched - if(bindingOperation == null) - { - // Retrieving all the document binding operations from wsdl:binding - BindingOperation[] docBindingOperations = getMatchingBindingOps( - WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC, - analyzerContext.getCandidateInfo().getBindings()); - // Retrieving binding operation by given element name - BindingOperation[] potentialDocLitOps = - getDocLitOperations(entryType, operation, docBindingOperations); - // If there is exactly one operation matched - if (potentialDocLitOps.length == 1) - bindingOperation = potentialDocLitOps[0]; - } - } - } - catch (Exception e) {} - - return bindingOperation; - } - - /** - * Match either Input or Output. - * @param messageEntryType message entry type. - * @param soapMessage soap message. - * @param op binding operations. - * @return matched operation. - */ - public BindingOperation getOperationMatch( - EntryType messageEntryType, - Document soapMessage, - BindingOperation[] op) - { - // Get operation from message - QName operation = getOperationFromMessage(soapMessage); - // list of QNames - - return getOperationMatch(messageEntryType, operation, op); - } - - /** - * Match either Input or Output. - * @param messageEntryType message entry type. - * @param operation SOAP operation name. - * @param op binding operations. - * @return matched operation. - */ - public BindingOperation getOperationMatch( - EntryType messageEntryType, - QName operation, - BindingOperation[] op) - { - QName checkOperation; - - // Look for a candidate operation in the wsdl that matches this signature. - for (int k = 0; k < op.length; k++) - { - String name = null; - List extensibles = null; - BindingOperation bindingOp = op[k]; - - if (messageEntryType.isType(MessageValidator.TYPE_MESSAGE_REQUEST) - && (bindingOp.getOperation().getInput() != null)) - { - name = bindingOp.getOperation().getName(); - extensibles = bindingOp.getBindingInput().getExtensibilityElements(); - } - else if ( - messageEntryType.isType(MessageValidator.TYPE_MESSAGE_RESPONSE) - && (bindingOp.getOperation().getOutput() != null)) - { - name = bindingOp.getOperation().getName() + "Response"; - extensibles = bindingOp.getBindingOutput().getExtensibilityElements(); - } - - // Get soap:body - SOAPBody soapBody = getSoapBody(extensibles); - if (soapBody == null) - checkOperation = new QName(name); - else - checkOperation = new QName(soapBody.getNamespaceURI(), name); - - if (operation != null && operation.equals(checkOperation)) - { - return (bindingOp); - } - } - return null; - } - - /** - * Match either Input or Output. - * @param messageEntryType a message entry type. - * @param soapMessage a soap message. - * @param op binsing operations. - * @return matched operation. - */ - public BindingOperation getOperationPartsMatch( - EntryType messageEntryType, - Document soapMessage, - BindingOperation[] op) - { - Map parts = getPartListFromMessage(soapMessage); // list of QNames - - // Look for a candidate operation in the wsdl that matches this signature. - for (int k = 0; k < op.length; k++) - { - - Message wsdlMessage = null; - List extensibles = null; - BindingOperation bindingOp = op[k]; - - if (messageEntryType.isType(MessageValidator.TYPE_MESSAGE_REQUEST) - && (bindingOp.getOperation().getInput() != null)) - { - wsdlMessage = bindingOp.getOperation().getInput().getMessage(); - extensibles = bindingOp.getBindingInput().getExtensibilityElements(); - } - else if ( - messageEntryType.isType(MessageValidator.TYPE_MESSAGE_RESPONSE) - && (bindingOp.getOperation().getOutput() != null)) - { - wsdlMessage = bindingOp.getOperation().getOutput().getMessage(); - extensibles = bindingOp.getBindingOutput().getExtensibilityElements(); - } - //wsdlFaultParts = op[k].getFaults(); - // ADD: check for case when response message is a fault - - if (sameParts(parts, wsdlMessage, getSoapHeader(extensibles))) - { - return (bindingOp); - } - } - return null; - } - - /** - * BindingOperation getOperationPartsMatch(..). - * - * Find one or more matching binding operations from the WSDL corresponding to the - * given request-response signature. - * - * This overloaded version is intended for possible Correlation only (not assertions), - * since it checks for an operation signature on a request-response pair. - * Assertions now check request & response messages independently. - * @param requestMessage a request message. - * @param responseMessage a response message. - * @param op binding operations. - * @return matched operation. - */ - //private BindingOperation getOperationPartsMatch( - // Document requestMessage, - // Document responseMessage, - // BindingOperation[] op) - //{ - // Map inParts = getPartListFromMessage(requestMessage); // list of QNames - // Map outParts = getPartListFromMessage(responseMessage); - // // list of QNames - // - // // Look for a candidate operation in the wsdl that matches this signature. - // for (int k = 0; k < op.length; k++) - // { - // - // //Map wsdlFaultParts = null; - // Message wsdlInMessage = null; - // Message wsdlOutMessage = null; - // - // BindingOperation bindingOp = op[k]; - // if (bindingOp.getOperation().getInput() != null) - // { - // wsdlInMessage = bindingOp.getOperation().getInput().getMessage(); - // } - // - // if (bindingOp.getOperation().getOutput() != null) - // { - // wsdlOutMessage = bindingOp.getOperation().getOutput().getMessage(); - // } - // //wsdlFaultParts = op[k].getFaults(); - // // ADD: check for case when response message is a fault - // - // if (sameParts(inParts, - // wsdlInMessage, - // getSoapHeader(bindingOp.getBindingInput().getExtensibilityElements()))) - // { - // // match on the request - now check response if its not a fault - // if (responseMessage != null && isFault(responseMessage)) - // { - // return (bindingOp); - // } - // else if ( - // sameParts( - // outParts, - // wsdlOutMessage, - // getSoapHeader( - // bindingOp.getBindingOutput().getExtensibilityElements()))) - // { - // // It does match so treat this as a relevant message pair. - // // Let the message through for validation. - // //ADD: could pass the operations list back to the entryContext for the message. - // return (bindingOp); - // } - // } - // } - // return null; - //} - - /** - * Get the soap:body from a List of extensibility elements. - * @param extElems a list of extensibility elements. - * @return the soap:body from a List of extensibility elements. - */ - private SOAPBody getSoapBody(List extElems) - { - // Find the soap body - if (extElems != null) - { - for (int i = 0; i < extElems.size(); i++) - { - ExtensibilityElement extElem = (ExtensibilityElement) extElems.get(i); - if (extElem.getElementType().equals(WSITag.WSDL_SOAP_BODY)) - { - return (SOAPBody) extElem; - } - // If the element is mime:multipartRelated - else if (extElem.getElementType().equals(WSITag.WSDL_MIME_MULTIPART)) - { - // Getting the mime:part elements of the mime:multipartRelated - List mimeParts = ((MIMEMultipartRelated) extElem).getMIMEParts(); - // Going through all the mime:part elements - for (int j = 0; j < mimeParts.size(); j++) - { - // Collecting all the mime:content elements of this mime:part - SOAPBody soapBody = getSoapBody( - ((MIMEPart) mimeParts.get(j)).getExtensibilityElements()); - if (soapBody != null) - return soapBody; - } - } - } - } - - return null; - } - - /** - * Get the SOAPHeader from a List of extensibility elements. - * @param extensibles a list of extensibility elements. - * @return the SOAPHeader from a List of extensibility elements. - */ - private SOAPHeader getSoapHeader(List extensibles) - { - SOAPHeader soapHeader = null; - - // find the soap header - if (extensibles != null) - { - Iterator i = extensibles.iterator(); - while (i.hasNext() && soapHeader == null) - { - try - { - soapHeader = (SOAPHeader) i.next(); - } - catch (ClassCastException c) - { - } - } - } - return soapHeader; - } - - /** - * Get first part name from soapbind:body element. - */ - private String getFirstPartName(BindingOperation bindingOperation) - { - String partName = null; - List extList = null; - Iterator partsIterator = null; - - // Determine if there is a list of parts by finding the soapbind:body element - if ((extList = - bindingOperation.getBindingInput().getExtensibilityElements()) - != null) - { - List partsList = null; - Iterator extIterator = extList.iterator(); - while (extIterator.hasNext() && (partName == null)) - { - Object extElement = extIterator.next(); - if (extElement instanceof SOAPBody) - { - if ((partsList = ((SOAPBody) extElement).getParts()) != null) - { - partsIterator = partsList.iterator(); - - // Since this is a doc literal binding there should be only one part name - if (partsIterator.hasNext()) - partName = (String) partsIterator.next(); - } - } - } - } - - return partName; - } - - public BindingOperation[] getDocLitOperations( - EntryType messageType, - QName partElementQName, - BindingOperation[] wsdlOperations) - { - - if (messageType.isType(EntryType.getEntryType(MessageValidator.TYPE_MESSAGE_REQUEST))) - { - return getInputDocLitOperations(partElementQName, wsdlOperations); - } - else if (messageType.isType(EntryType.getEntryType(MessageValidator.TYPE_MESSAGE_RESPONSE))) - { - return getOutputDocLitOperations(partElementQName, wsdlOperations); - } - else - { - return null; // should be one or the other - } - } - - private BindingOperation[] getInputDocLitOperations( - QName partElementQName, - BindingOperation[] wsdlOperations) - { - - Vector potentialOps = new Vector(); - - for (int i = 0; i < wsdlOperations.length; i++) - { - if (wsdlOperations[i].getOperation().getInput() != null) - { - Message message = wsdlOperations[i].getOperation().getInput().getMessage(); - // If SOAP Body child element is not present and wsdl:message does not have any wsdl:parts, that is the match - if (partElementQName == null) - { - if (message.getParts().isEmpty()) - potentialOps.add(wsdlOperations[i]); - continue; - } - - Iterator partsIt = message.getParts().values().iterator(); - while (partsIt.hasNext()) - { - Part nextPart = (Part) partsIt.next(); - if (partElementQName.equals(nextPart.getElementName())) - { - // matching part found (doc-lit) - add to list of possible operation matches - potentialOps.add(wsdlOperations[i]); - break; - } - } - } - } - return (BindingOperation[]) potentialOps.toArray(new BindingOperation[0]); - } - - private BindingOperation[] getOutputDocLitOperations( - QName partElementQName, - BindingOperation[] wsdlOperations) - { - - Vector potentialOps = new Vector(); - - for (int i = 0; i < wsdlOperations.length; i++) - { - if (wsdlOperations[i].getOperation().getOutput() != null) - { - Message message = wsdlOperations[i].getOperation().getOutput().getMessage(); - // If SOAP Body child element is not present and wsdl:message does not have any wsdl:parts, that is the match - if (partElementQName == null) - { - if (message.getParts().isEmpty()) - potentialOps.add(wsdlOperations[i]); - continue; - } - - Iterator partsIt = message.getParts().values().iterator(); - while (partsIt.hasNext()) - { - Part nextPart = (Part) partsIt.next(); - if (partElementQName.equals(nextPart.getElementName())) - { - // matching part found (doc-lit) - add to list of possible operation matches - potentialOps.add(wsdlOperations[i]); - break; - } - } - } - } - return (BindingOperation[]) potentialOps.toArray(new BindingOperation[0]); - } - - /** - * Compare soap message element part names with Parts from specified wsdl Operation - */ - //private boolean sameParts(HashSet messageParts, Map wsdlParts) - //{ - // - // // look for the soap-message operation signature - // Iterator i = wsdlParts.values().iterator(); - // // build a set of Part names - // HashSet h = new HashSet(); - // while (i.hasNext()) - // { - // Part p = (Part) i.next(); - // h.add(p.getName()); - // } - // - // // compare with the parts list from the message (unordered) - // return (h.equals(messageParts)); - //} - - /** - * Compare soap message element part names with Parts from specified wsdl Operation - */ - private boolean sameParts( - Map messageParts, - Message wsdlMessage, - SOAPHeader soapHeader) - { - - String soapHeaderPart = null; - if (soapHeader != null) - soapHeaderPart = soapHeader.getPart(); - - // check null conditions - if (messageParts == null && wsdlMessage == null) - { - return true; // simple equality test - } - else if (messageParts == null || wsdlMessage == null) - { - return false; - } - - Vector v = new Vector(); - //List wsdlParts = wsdlMessage.getOrderedParts(null); - Map wsdlParts = null; - if (wsdlMessage.getParts() != null) - { - wsdlParts = wsdlMessage.getParts(); - // look for the soap-message operation signature - Iterator i = wsdlParts.values().iterator(); - // build a set of Part names - while (i.hasNext()) - { - Part p = (Part) i.next(); - // do not include the part for the soap:header (if any) - if (!p.getName().equals(soapHeaderPart)) - { - // check that the part is associated with the soap:body - v.add(new QName(p.getName())); - } - } - // if one of the parts is associated with a soap:header in the binding - // (by <soap:header part="{partname}">), remove this from the set - - } - - // compare with the parts list from the message (ordered) - if (v.isEmpty() && messageParts.isEmpty()) - { - return true; - } - - // PB: Changed to containsAll() since equals() fails when using JRE 1.4 - if (v.containsAll(messageParts.keySet()) - && (v.size() == messageParts.size())) - { - // Check for xsi:type mismatch - Iterator parts = messageParts.keySet().iterator(); - QName partName, xsiType; - while (parts.hasNext()) - { - partName = (QName) parts.next(); - - // Get xsi:type QName - if ((xsiType = (QName) messageParts.get(partName)) != null - && wsdlParts != null) - { - // Get the WSDL part definition - Part part = (Part) wsdlParts.get(partName.getLocalPart()); - - // If xsiType is NOT derived from the type of the corresponding WSDL part - if (!isDerivedType(xsiType, part.getTypeName())) - { - // return false - return false; - } - } - } - - return true; - } - else - return false; - //return (v.equals(messageParts)); - } - - /** - * Checks whether one schema type is derived from another. - * @param extType an assumed derived type. - * @param type an assumed base type. - * @return true if extType is derived from type, false otherwise - */ - public boolean isDerivedType(QName extType, QName type) - { - // If either of types is null, return false - if (extType == null || type == null) - return false; - // If the types are equal, return true - if (extType.equals(type)) - return true; - - // Going through all schemas - Iterator i = wsdlDocument.getSchemas().values().iterator(); - while (i.hasNext()) - { - XSModel xsModel = (XSModel) i.next(); - // Retrieving the derived type definition - XSTypeDefinition xsType = xsModel.getTypeDefinition( - extType.getLocalPart(), extType.getNamespaceURI()); - // If it is found and derived from the base type, return true - if (xsType != null && xsType.derivedFrom(type.getNamespaceURI(), - type.getLocalPart(), XSConstants.DERIVATION_NONE)) - { - return true; - } - } - // extType is not derived from type, return false - return false; - } - - /** - * Get a list of QNames of parts from the soap body of the specified message - */ - public Element getSoapBodyChild(Document doc) - { - - Element opElem = null; - if (doc != null) - { - Element root = doc.getDocumentElement(); - NodeList bodies = - root.getElementsByTagNameNS(WSIConstants.NS_URI_SOAP, "Body"); - // Get the list of soap:body child element names from the request message - if (bodies != null && bodies.getLength() > 0) - { - Element body = (Element) bodies.item(0); - NodeList children = body.getChildNodes(); - for (int i = 0; i < children.getLength() && opElem == null; ++i) - { - Node n = children.item(i); - if (n instanceof Element) - { - opElem = (Element) n; - } - } - } - } - return opElem; - } - - /** Check whether this message is a soap fault - */ - public boolean isFault(Document doc) - { - boolean isFault = false; - - if (doc != null) - { - Element root = doc.getDocumentElement(); - isFault = - (root - .getElementsByTagNameNS(WSIConstants.NS_URI_SOAP, "Fault") - .getLength() - > 0); - } - - return isFault; - } - - /** - * Check whether this message has a soap body with a child element. - */ - public boolean containsSoapBodyWithChild(Document doc) - { - boolean contains = false; - - if (doc != null) - { - contains = ((getSoapBodyChild(doc) == null) ? false : true); - } - - return contains; - } - - /** - * Get SOAPAction value from the HTTP headers. - * @param headers HTTP headers - * @return SOAPAction value - */ - public String getSoapAction(String headers) throws WSIException - { - // get SOAPAction - String action = null; - if (headers != null) - action = (String) HTTPUtils.getHttpHeaderTokens(headers, ":").get("SOAPAction".toUpperCase()); - return action; - } - - /** - * Get a list of QNames of parts from the soap body of the specified message. - * This method assumes RPC style message content - */ - private QName getOperationFromMessage(Document doc) - { - QName operation = null; - if (doc != null) - { - Element root = doc.getDocumentElement(); - NodeList bodies = - root.getElementsByTagNameNS(WSIConstants.NS_URI_SOAP, "Body"); - if (bodies != null && bodies.getLength() > 0) - { - Element body = (Element) bodies.item(0); - NodeList children = body.getChildNodes(); - for (int i = 0; i < children.getLength(); ++i) - { - Node n = children.item(i); - // If element, then this is the operation name - if (n instanceof Element) - { - operation = new QName(n.getNamespaceURI(), n.getLocalName()); - } - } - } - } - - return operation; - } - - /** - * Get a list of QNames of parts from the soap body of the specified message. - * This method assumes RPC style message content - */ - private Map getPartListFromMessage(Document doc) - { - Map parts = new HashMap(); - if (doc != null) - { - Element root = doc.getDocumentElement(); - NodeList bodies = - root.getElementsByTagNameNS(WSIConstants.NS_URI_SOAP, "Body"); - // Get the list of soap:body grand-child element names from the request message - // (immediate child is the message name) - if (bodies != null && bodies.getLength() > 0) - { - Element body = (Element) bodies.item(0); - NodeList children = body.getChildNodes(); - for (int i = 0; i < children.getLength(); ++i) - { - Node n = children.item(i); - if (n instanceof Element) - { - // this is the operation name. Its children are the parts - NodeList grandChildren = n.getChildNodes(); - for (int j = 0; j < grandChildren.getLength(); j++) - { - Node m = grandChildren.item(j); - if (m instanceof Element) - { - // Determine if the part has an xsi:type - Attr attr = - XMLUtils.getAttribute( - (Element) m, - new QName(WSIConstants.NS_URI_XSI, "type")); - - QName xsiType = null; - - // If there is an xsi:type attribute, then get the value as a QName - try - { - if (attr != null) - xsiType = - DOMUtils.getQName(attr.getNodeValue(), (Element) m, wsdlDocument.getDefinitions()); - } - catch (javax.wsdl.WSDLException we) - { - } - - // add to the child element list - parts.put( - new QName(m.getNamespaceURI(), m.getLocalName()), - xsiType); - } - } - } - } - } - } - return parts; - } - - public BindingOperation[] getMatchingBindingOps( - String bindingStyle, - Binding[] bindings) - throws WSIException - { - - HashSet bindingOperationsSet = new HashSet(); - - // whizz through the bindings, checking for a bindingOperation matching the message - for (int i = 0; i < bindings.length; i++) - { - - Binding tryBinding = bindings[i]; - List bindingOps = tryBinding.getBindingOperations(); - - if (bindingOps != null) - { - - // search through binding Operations - Iterator bindingOpIt = tryBinding.getBindingOperations().iterator(); - while (bindingOpIt.hasNext()) - { - - BindingOperation bindingOp = (BindingOperation) bindingOpIt.next(); - // check depends on which binding style is declared in the wsdl - SOAPOperation soapOp = WSDLValidatorImpl.getSoapOperation(bindingOp); - //GT: move this method to utils - - String style; - if ((soapOp == null) || (style = soapOp.getStyle()) == null) - { - // use the style of the parent bindingOp - - SOAPBinding soapBind = WSDLValidatorImpl.getSoapBinding(tryBinding); - //GT: move this method to utils - if ((style = soapBind.getStyle()) == null) - { - style = WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC; - //default - } - } - if (style.equals(bindingStyle)) - { - - bindingOperationsSet.add(bindingOp); - - } - } - } // current binding has no bindingOperations, ignore - } - return (BindingOperation[]) bindingOperationsSet.toArray( - new BindingOperation[0]); - } - - /** - * Checks whether soap:body element is literal. - * @param extElements extensibility elements of wsdl:input or wsdl:output - * of a binding - */ - public boolean isLiteral(List extElems) - { - SOAPBody soapBody = getSOAPBody(extElems); - if (soapBody != null - && soapBody.getUse().equals(WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT)) - return true; - else - return false; - } - - /** - * Orders wsdl:part names keeping in mind the "parts" attribute of WSDL soap:body - * @param messageParts a list of wsdl:partS - * @param extElems extensibility elements in the binding - * @return the ordered list of part names - */ - public List orderPartNames(List messageParts, List extElems) - { - List orderedPartNames = new ArrayList(); - List bodyParts = null; - - SOAPBody soapBody = getSOAPBody(extElems); - if (soapBody != null) - bodyParts = soapBody.getParts(); - - Iterator i = messageParts.iterator(); - while (i.hasNext()) - { - String partName = ((Part) i.next()).getName(); - // If the parts attribute is not specified or contains - // the wsdl:part name, then adding part name to the ordered list - if (bodyParts == null || bodyParts.contains(partName)) - orderedPartNames.add(partName); - } - - return orderedPartNames; - } - - /** - * Retrieves the SOAPBody object from a list of extensibility elments in binding - * @param extElems extensibility elements - * @return the SOAPBody element - */ - public SOAPBody getSOAPBody(List extElems) - { - if (extElems == null) - return null; - for (Iterator i = extElems.iterator(); i.hasNext();) - { - Object obj = i.next(); - if (obj instanceof SOAPBody) - return (SOAPBody) obj; - } - - return null; - } - - public List resolveSameNamespaces(List schemaElements) - { - List namespaces = new ArrayList(); - List result = new ArrayList(); - Iterator i = schemaElements.iterator(); - while (i.hasNext()) - { - Element schema = (Element) i.next(); - String targetNamespace = schema.getAttribute(Constants.ATTR_TARGET_NAMESPACE); - if (!namespaces.contains(targetNamespace)) - { - namespaces.add(targetNamespace); - List schemas = getSchemasWithSameNamespace(schemaElements, targetNamespace); - if (schemas.size() == 1) - { - result.add(schema); - } - else - { - // copying all the NS declarations from wsdl:definitions wsdl:types - //copyNSDeclarations(root, schema); - copyNSDeclarations((Element) schema.getParentNode(), schema); - // Replacing all relative schemaLocation URIs with absolute ones - //replaceRelativeURIs(schema, wsdlURI); - // Serialize the schema elements inside the Types, then use this as - // the schema string for the validation - //String schemaString = - // DOM2Writer.nodeToString(schema); - // schemaStrings.add(schemaString); - } - } - } - return null; - } - - public List getSchemasWithSameNamespace(List schemaElements, String targetNamespace) - { - List result = new ArrayList(); - Iterator i = schemaElements.iterator(); - while (i.hasNext()) - { - Element schema = (Element)i.next(); - String schemaTargetNamespace = schema.getAttribute(Constants.ATTR_TARGET_NAMESPACE); - if (schemaTargetNamespace == null) - schemaTargetNamespace = ""; - - if (schemaTargetNamespace.equals(targetNamespace)) - { - result.add(schema); - } - } - return result; - } - - public boolean duplicateNamespacesDetected(List schemaElements) - { - boolean result = false; - List namespaces = new ArrayList(); - Iterator i = schemaElements.iterator(); - while (i.hasNext()) - { - Element schema = (Element)i.next(); - String targetNamespace = schema.getAttribute(Constants.ATTR_TARGET_NAMESPACE); - if (targetNamespace == null) - targetNamespace = ""; - - if (namespaces.contains(targetNamespace)) - { - result = true; - break; - } - else - { - namespaces.add(targetNamespace); - } - } - return result; - } - - /** - * Returns true if these tests should be run (depending on the analyzer - * config) - */ - public boolean runTests() { return testable; } - - public void validateArtifact() throws WSIException { - // Get the log file reader - LogReader logReader = DocumentFactory.newInstance().newLogReader(); - - // Create log reader callback - LogProcessor envelopeProcessor = new LogProcessor(this); - - // Start reading the log file - logReader.readLog(analyzerConfig.getLogLocation(), envelopeProcessor); - } - - protected class LogProcessor implements MessageEntryHandler { - LogValidator validator = null; - - /** - * Create message processor as a log reader callback function. - */ - LogProcessor(LogValidator validator) { - this.validator = validator; - } - - /** - * Process artifact reference. - */ - public void processArtifactReference(ArtifactReference artifactReference) - throws WSIException { - reporter.addArtifactReference(artifactReference); - } - - /** - * Process a single log entry. - */ - public void processLogEntry(EntryContext entryContext) throws WSIException { - validator.validate(entryContext); - } - } - - public void cleanup() throws WSIException { - super.cleanup(); - wsdlDocument = null; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/BaseValidatorImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/BaseValidatorImpl.java deleted file mode 100644 index 3ab047a1f..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/BaseValidatorImpl.java +++ /dev/null @@ -1,709 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 2010 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl; - -import java.util.HashMap; -import java.util.Hashtable; -import java.util.Iterator; -import java.util.TreeMap; -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AnalyzerContext; -import org.eclipse.wst.wsi.internal.core.profile.ProfileArtifact; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.BaseValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.EnvelopeValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.report.Entry; -import org.eclipse.wst.wsi.internal.core.report.FailureDetail; -import org.eclipse.wst.wsi.internal.core.report.PrereqFailedList; -import org.eclipse.wst.wsi.internal.core.report.ReportArtifact; -import org.eclipse.wst.wsi.internal.core.report.Reporter; -import org.eclipse.wst.wsi.internal.core.report.impl.PrereqFailedListImpl; -import org.eclipse.wst.wsi.internal.core.util.EntryType; -import org.eclipse.wst.wsi.internal.core.xml.XMLDocumentCacheUser; -import org.eclipse.wst.wsi.internal.core.xml.dom.ElementLocation; - -/** - * The WSDL validator will verify that the WSDL and associated XML schema definitions - * are in conformance with the profile. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - * @author Graham Turrell (gturrell@uk.ibm.com) - */ -public abstract class BaseValidatorImpl - extends XMLDocumentCacheUser - implements BaseValidator -{ - - /** - * A hashtable that maps assertion results to their priorities, 0 is lowest - */ - private static final Hashtable resultPriority = new Hashtable(6); - static { - resultPriority.put(AssertionResult.RESULT_PASSED, new Integer(0)); - resultPriority.put(AssertionResult.RESULT_NOT_APPLICABLE, new Integer(1)); - resultPriority.put(AssertionResult.RESULT_MISSING_INPUT, new Integer(2)); - resultPriority.put(AssertionResult.RESULT_WARNING, new Integer(3)); - resultPriority.put(AssertionResult.RESULT_PREREQ_FAILED, new Integer(4)); - resultPriority.put(AssertionResult.RESULT_FAILED, new Integer(5)); - } - - /** - * The highest priority value being passed when processing pre-requisites - */ - private static final int MAX_VALID_PRIORITY = 1; - - /** - * Analyzer context. - */ - public AnalyzerContext analyzerContext; - - /** - * Profile artifact. - */ - protected ProfileArtifact profileArtifact; - - /** - * Reporter. - */ - protected Reporter reporter; - - /** - * Entry. - */ - // protected Entry entry; - - /** - * Report artifact. - */ - protected ReportArtifact reportArtifact; - - /** - * Verbose option. - */ - public boolean verboseOption = false; - - /** - * Test assertion processed count. - */ - protected int assertionCount = 0; - - /** - * Constructor. - */ - public BaseValidatorImpl() - { - } - - /** - * Initiailize validation test procedure. - * @param analyzerContext the analyzerContext. - * @param profileArtifact the profile artifiact. - * @param reportArtifact the report artifact. - * @param reporter a Reporter object. - * @throws WSIException if validator could not be initialized. - */ - public void init( - AnalyzerContext analyzerContext, - ProfileArtifact profileArtifact, - ReportArtifact reportArtifact, - Reporter reporter) - throws WSIException - { - // Save input references - this.analyzerContext = analyzerContext; - this.profileArtifact = profileArtifact; - this.reportArtifact = reportArtifact; - this.reporter = reporter; - - // Get verbose option - verboseOption = - reporter - .getReport() - .getReportContext() - .getAnalyzer() - .getAnalyzerConfig() - .getVerboseOption(); - } - - /** - * Process all of the test assertions for one entry. - * @param classPrefix a class prefix. - * @param entryContext an entry context. - * @throws WSIException if serious problems occur while processing - * all of the test assertions for an entry. - */ - protected void processAssertions( - String classPrefix, - EntryContext entryContext) - throws WSIException - { - long startTime = 0; - - HashMap processList = new HashMap(); - TestAssertion testAssertion = null; - AssertionProcess assertionProcess; - AssertionResult assertionResult; - - TreeMap preReqResults; - PrereqFailedList prereqFailedList; - String preReqId; - - Class[] paramTypes = new Class[1]; - // If this is an instance of MessageValidator or EnvelopeValidator - // then use BaseMessageValidator as a param type of assertions constructor - paramTypes[0] = this instanceof BaseMessageValidator ? - BaseMessageValidator.class : this.getClass(); - - Object[] params = new Object[1]; - params[0] = this; - - // Get entry from context - Entry entry = entryContext.getEntry(); - - // Add entry to artifact - this.reportArtifact.addEntry(entry); - - // Add entry to report - if (this instanceof EnvelopeValidator) - this.reporter.setCurrentEnvelopeEntry(entry); - else this.reporter.setCurrentEntry(entry); - - try - { - // Go through the list of test assertions for the artifact - Iterator iterator = profileArtifact.getTestAssertionList().iterator(); - while (iterator.hasNext()) - { - // Get next test assertion - testAssertion = (TestAssertion) iterator.next(); - - // Reset variables - assertionResult = null; - - // If the test assertion is enabled, then continue - // if ((testAssertion.isEnabled()) && - // testAssertion.getEntryTypeName().equals(targetContext.getEntry().getEntryType().getTypeName())) { - if (testAssertion.isEnabled() - && isPrimaryEntryTypeMatch(testAssertion, entryContext)) - { - try - { - // Add 1 to assertion processed count - assertionCount++; - - // If the assertion process hasn't been created yet, then create it - if ((assertionProcess = - (AssertionProcess) processList.get(testAssertion.getId())) - == null) - { - - // Create a new assertion process - Class assertionClass = - Class.forName(classPrefix + testAssertion.getId()); - - assertionProcess = - (AssertionProcess) assertionClass.getConstructor( - paramTypes).newInstance( - params); - - // Add it to the list - processList.put(testAssertion.getId(), assertionProcess); - } - - // Check whether entry is null - if (entry.getEntryDetail() == null) - { - assertionResult = - createAssertionResult( - testAssertion, - AssertionResult.RESULT_MISSING_INPUT, - (String) null); - } - - // Check to see if the test assertion should be run - //if (isNotApplicable(testAssertion, entryContext)) { - else if (isNotApplicable(testAssertion)) - { - assertionResult = - createAssertionResult( - testAssertion, - AssertionResult.RESULT_NOT_APPLICABLE, - (String) null); - } - else - { - // Processing all the assertion pre-requisites - - preReqResults = null; - prereqFailedList = null; - // Get list of pre-reqs for specified assertion - Iterator i = testAssertion.getPrereqIdList().iterator(); - while (i.hasNext()) - { - if (preReqResults == null) - preReqResults = new TreeMap(); - // Get next id - preReqId = (String) i.next(); - // Get the prereq result - AssertionResult preReqResult = reporter.getAssertionResult(preReqId); - - // Adding a result priority value to preReqResults - preReqResults.put( - resultPriority.get(preReqResult.getResult()), - preReqResult.getResult()); - - // If the prereq failed, then add it to the list - if (((Integer)resultPriority.get(preReqResult.getResult())).intValue() - > MAX_VALID_PRIORITY) - { - // Adding failed prereq ID to the list - if (prereqFailedList == null) - prereqFailedList = new PrereqFailedListImpl(); - prereqFailedList.addTestAssertionID(preReqId); - } - } - - if (prereqFailedList != null) { - // Getting the highest pre-requisites' result - Integer maxRes = (Integer)preReqResults.lastKey(); - String resString = (String)preReqResults.get(maxRes); - if (resString.equals(AssertionResult.RESULT_FAILED) - ||resString.equals(AssertionResult.RESULT_WARNING)) { - resString = AssertionResult.RESULT_PREREQ_FAILED; - } - // Create assertion result based on pre-requisites which are not passed - assertionResult = createAssertionResult(testAssertion, resString, prereqFailedList); - } - - // Pre-requisites are passed, validate current assertion - else { - - // Reset test assertion - assertionProcess.reset(); - - // VERBOSE - if (verboseOption) - { - System.err.println( - " Processing " - + testAssertion.getId() - + " for entry reference ID [" - + entry.getReferenceID() - + "] ..."); - startTime = System.currentTimeMillis(); - } - - // Validate the target - assertionResult = - assertionProcess.validate(testAssertion, entryContext); - - // VERBOSE - if (verboseOption) - { - System.err.println( - " Elapsed time: " - + (System.currentTimeMillis() - startTime) - + "ms"); - } - } - } - - // Add result to the report - reporter.addAssertionResult(assertionResult); - } - - catch (ClassNotFoundException cnfe) - { - // DEBUG: - if (testAssertion != null) - { - reporter - .getReport() - .getReportContext() - .getAnalyzer() - .printMessage( - "WARNING: " - + testAssertion.getId() - + " is not supported currently."); - } - } - } - } - } - - catch (Exception e) - { - System.err.println("EXECEPTION: " + e.getMessage()); - if (verboseOption) - e.printStackTrace(); - - if (e instanceof WSIException) - throw (WSIException) e; - else - throw new WSIException(e.getMessage(), e); - } - - finally - { - // Indicate that we are done with this assertion target - this.reporter.endCurrentEntry(); - } - } - - /** - * Determine if the test assertion should be processed for the current entry. - * @param testAssertion a test assertion. - * @param entryContext the entry context. - * @return true if the test assertion should be processed for the current entry. - */ - protected abstract boolean isPrimaryEntryTypeMatch( - TestAssertion testAssertion, - EntryContext entryContext); - - /** - * Determine if the test assertion should be processed for the current entry. - * @param testAssertion a test assertion. - * @param entry an Entry object - * @return true if the test assertion should be processed for the current entry. - */ - protected boolean isPrimaryEntryTypeMatch( - TestAssertion testAssertion, - Entry entry) - { - boolean match = false; - - // If the test assertion entry type matches the target context entry type, then contine - if (testAssertion - .getEntryTypeName() - .equals(entry.getEntryType().getTypeName())) - { - match = true; - } - - return match; - } - - /** - * Determine if the test assertion is not applicable. - * @param testAssertion a test assertion. - * @return true if the test assertion is not applicable. - */ - protected abstract boolean isNotApplicable(TestAssertion testAssertion); - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.BaseValidator#cleanup() - */ - public void cleanup() throws WSIException - { - // If no assertions were processed, then set all missingInput - if (assertionCount == 0) - setAllMissingInput(); - analyzerContext = null; - profileArtifact = null; - reportArtifact = null; - reporter = null; - } - - /** - * Create assertion result. - * @param testAssertion a test assertion. - * @param result a String object. - * @param failureDetail a FailureDetail object. - * @return newly created test result. - */ - public AssertionResult createAssertionResult( - TestAssertion testAssertion, - String result, - FailureDetail failureDetail) - { - Vector failureDetailList = null; - - // Create failure detail list - if (failureDetail != null) - { - failureDetailList = new Vector(); - failureDetailList.add(failureDetail); - } - - return createAssertionResult(testAssertion, result, failureDetailList); - } - - /** - * Create assertion result. - * @param testAssertion a test assertion. - * @param result a String object. - * @param failureDetailMessage a failure detail message. - * @return newly created test result. - */ - public AssertionResult createAssertionResult( - TestAssertion testAssertion, - String result, - String failureDetailMessage) - { - return createAssertionResult( - testAssertion, - result, - failureDetailMessage, - null); - } - - /** - * Create assertion result. - * @param testAssertion a test assertion. - * @param result a String object. - * @param failureDetailMessage a failure detail message. - * @param elementLocation element location. - * @return newly created test result. - */ - public AssertionResult createAssertionResult( - TestAssertion testAssertion, - String result, - String failureDetailMessage, - ElementLocation elementLocation) - { - // Create failure detail list - Vector failureDetailList = null; - if (failureDetailMessage != null) - { - failureDetailList = new Vector(); - FailureDetail failureDetail = reporter.createFailureDetail(); - failureDetail.setFailureMessage(failureDetailMessage); - failureDetail.setElementLocation(elementLocation); - failureDetailList.add(failureDetail); - } - - return createAssertionResult(testAssertion, result, failureDetailList); - } - - /** - * Create assertion result. - * @param testAssertion a test assertion. - * @param result a String object. - * @param failureDetailList a failure detail list. - * @return newly created test result. - */ - public AssertionResult createAssertionResult( - TestAssertion testAssertion, - String result, - Vector failureDetailList) - { - // Create assertion result - AssertionResult assertionResult = reporter.createAssertionResult(); - - // Set values in assertion result - assertionResult.setAssertion(testAssertion); - assertionResult.setResult(result); - assertionResult.setEntry(reporter.getReport().getCurrentEntry()); - - // Set failure detail list - assertionResult.setFailureDetailList(failureDetailList); - - return assertionResult; - } - - /** - * Create assertion result. - * @param testAssertion a test assertion. - * @param result a String object. - * @param prereqFailedList a list failed pre-requisite assertions. - * @return newly created test result. - */ - public AssertionResult createAssertionResult( - TestAssertion testAssertion, - String result, - PrereqFailedList prereqFailedList) - { - // Create assertion result - AssertionResult assertionResult = reporter.createAssertionResult(); - - // Set values in assertion result - assertionResult.setAssertion(testAssertion); - assertionResult.setResult(result); - assertionResult.setEntry(reporter.getReport().getCurrentEntry()); - assertionResult.setPrereqFailedList(prereqFailedList); - - return assertionResult; - } - - /** - * Add assertion result to report. - * @param assertionId assertion id. - * @param result assertion result. - * @throws WSIException if the assertion result cannot be added to the report. - */ - protected void addAssertionResult(String assertionId, String result) - throws WSIException - { - // Create test assertion result - AssertionResult assertionResult = reporter.createAssertionResult(); - - // Set assertion, result and target - assertionResult.setAssertion(profileArtifact.getTestAssertion(assertionId)); - assertionResult.setResult(result); - assertionResult.setEntry(reporter.getReport().getCurrentEntry()); - - // Add it to the report - reporter.addAssertionResult(assertionResult); - } - - /** - * Add assertion result to report with an error detail message. - * @param assertionId assertion id. - * @param result assertion result. - * @param failureDetailMessage an error detail message. - * @throws WSIException if the assertion result cannot be added to the report. - */ - protected void addAssertionResult( - String assertionId, - String result, - String failureDetailMessage) - throws WSIException - { - // Convert message to vector - Vector failureDetailList = null; - if (failureDetailMessage != null) - { - failureDetailList = new Vector(); - FailureDetail failureDetail = reporter.createFailureDetail(); - failureDetailList.add(failureDetail); - } - - // Add assertion result - addAssertionResult(assertionId, result, failureDetailList); - } - - /** - * Add assertion result to report. - * @param assertionId assertion id. - * @param result assertion result. - * @param failureDetailList a list of error detail messages. - * @throws WSIException if the assertion result cannot be added to the report. - */ - protected void addAssertionResult( - String assertionId, - String result, - Vector failureDetailList) - throws WSIException - { - // Create test assertion result - AssertionResult assertionResult = reporter.createAssertionResult(); - - // Set assertion, result and target - assertionResult.setAssertion(profileArtifact.getTestAssertion(assertionId)); - assertionResult.setResult(result); - assertionResult.setEntry(reporter.getReport().getCurrentEntry()); - assertionResult.setFailureDetailList(failureDetailList); - - // Add it to the report - reporter.addAssertionResult(assertionResult); - } - - /** - * Add missingInput assertion result to report. - * @param testAssertion a test assertion. - * @throws WSIException if there is any problem adding missingInput - * assertion result to report. - */ - protected void addMissingInputResult(TestAssertion testAssertion) - throws WSIException - { - // Create test assertion result - AssertionResult assertionResult = reporter.createAssertionResult(); - - // Set assertion, result and target - assertionResult.setAssertion(testAssertion); - assertionResult.setResult(AssertionResult.RESULT_MISSING_INPUT); - assertionResult.setEntry(reporter.getReport().getCurrentEntry()); - - // Add it to the report - reporter.addAssertionResult(assertionResult); - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.BaseValidator#setAllMissingInput() - */ - public void setAllMissingInput() throws WSIException - { - // If profile artifact is set - if (profileArtifact != null) - { - TestAssertion testAssertion; - - // Create entry - Entry entry = this.reporter.getReport().createEntry(); - entry.setArtifactName(this.reportArtifact.getType().getTypeName()); - - // Add entry to artifact - this.reportArtifact.addEntry(entry); - - // Add entry to report - this.reporter.setCurrentEntry(entry); - - // Go through the list of test assertions for the artifact - Iterator iterator = profileArtifact.getTestAssertionList().iterator(); - while (iterator.hasNext()) - { - // Get next test assertion - testAssertion = (TestAssertion) iterator.next(); - - // Add missingInput result - if (testAssertion.isEnabled()) - addMissingInputResult(testAssertion); - } - - // Indicate that we are done with this assertion target - this.reporter.endCurrentEntry(); - } - } - - /** - * Set all results for an entry type to missingInput. - * @param entryType an EntryType object. - * @throws WSIException if there is any problem while processing. - */ - protected void setMissingInput(EntryType entryType) throws WSIException - { - TestAssertion testAssertion; - - // Create entry - Entry entry = this.reporter.getReport().createEntry(); - entry.setEntryType(entryType); - entry.setReferenceID("[" + entryType.getTypeName() + "]"); - - // Add entry to artifact - this.reportArtifact.addEntry(entry); - - // Add entry to report - this.reporter.setCurrentEntry(entry); - - //try { - // Go through the list of test assertions for the artifact - Iterator iterator = profileArtifact.getTestAssertionList().iterator(); - while (iterator.hasNext()) - { - // Get next test assertion - testAssertion = (TestAssertion) iterator.next(); - if (testAssertion.isEnabled() - && isPrimaryEntryTypeMatch(testAssertion, entry)) - { - addMissingInputResult(testAssertion); - } - } - - // Indicate that we are done with this entry - this.reporter.endCurrentEntry(); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/ProfileValidatorFactoryImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/ProfileValidatorFactoryImpl.java deleted file mode 100644 index 85cc6e6d9..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/ProfileValidatorFactoryImpl.java +++ /dev/null @@ -1,102 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl; - -import java.util.HashMap; -import java.util.Map; - -import org.eclipse.wst.wsi.internal.WSITestToolsPlugin; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.validator.BaseValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.EnvelopeValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.MessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.ProfileValidatorFactory; -import org.eclipse.wst.wsi.internal.core.profile.validator.UDDIValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.WSDLValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.EnvelopeValidatorImpl; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.message.MessageValidatorImpl; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.uddi.UDDIValidatorImpl; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl.WSDLValidatorImpl; - -/** - * This class is an implementation of the WSILDocumentFactory. - * - * @version 1.0.1 - * @author: Peter Brittenham - */ -public class ProfileValidatorFactoryImpl extends ProfileValidatorFactory -{ - private static Map validatorRegistry; - - public static void addToValidatatorRegistry(String artifactName, - BaseValidator validatorClass) { - if (validatorRegistry == null) - validatorRegistry = new HashMap(); - validatorRegistry.put(artifactName, validatorClass); - } - - public BaseValidator getValidatorForArtifact(String artifactName) - throws WSIException { - if (validatorRegistry == null) { - BaseValidator validators[] = WSITestToolsPlugin.getPlugin(). - getBaseValidators(); - for (int i = 0; i < validators.length; i++) - addToValidatatorRegistry(validators[i].getArtifactType(), - validators[i]); - - } - return (BaseValidator) validatorRegistry.get(artifactName); - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.ProfileValidatorFactory#newUDDIValidator() - */ - public UDDIValidator newUDDIValidator() throws WSIException - { - // Create new UDDI validator - UDDIValidator uddiValidator = new UDDIValidatorImpl(); - // Return validator - return uddiValidator; - } - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.ProfileValidatorFactory#newWSDLValidator() - */ - public WSDLValidator newWSDLValidator() throws WSIException - { - // Create new WSDL validator - WSDLValidator wsdlValidator = new WSDLValidatorImpl(); - - // Return validator - return wsdlValidator; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.ProfileValidatorFactory#newMessageValidator() - */ - public MessageValidator newMessageValidator() throws WSIException - { - // Create new message validator - MessageValidator messageValidator = new MessageValidatorImpl(); - // Return validator - return messageValidator; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.ProfileValidatorFactory#newEnvelopeValidator() - */ - public EnvelopeValidator newEnvelopeValidator() throws WSIException - { - // Create new envelope validator - EnvelopeValidator envelopeValidator = new EnvelopeValidatorImpl(); - // Return validator - return envelopeValidator; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/AP1920.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/AP1920.java deleted file mode 100644 index f411c9c74..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/AP1920.java +++ /dev/null @@ -1,119 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import java.util.List; - -import javax.wsdl.BindingOperation; -import javax.wsdl.extensions.mime.MIMEMultipartRelated; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.MessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.EntryType; - -/** - * AP1920 - * - * <context>For an envelope in a response message - * containing a soap:Fault element</context> - * <assertionDescription>In a description, if and only if, the wsdl:output - * element is described using WSDL MIME binding, then the envelope in the - * response message can contain faults with attachments.</assertionDescription> - */ -public class AP1920 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param WSDLValidatorImpl - */ - public AP1920(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - if (!entryContext.getMessageEntry().isMimeContent()) - { - throw new AssertionNotApplicableException(); - } - - // check for a fault element within the message - if((entryContext.getMessageEntryDocument() == null) || - entryContext.getMessageEntryDocument(). - getElementsByTagNameNS(WSITag.ELEM_SOAP_FAULT.getNamespaceURI(), - WSITag.ELEM_SOAP_FAULT.getLocalPart()).getLength() != 1) - throw new AssertionNotApplicableException(); - - BindingOperation bindingOperation = validator.getOperationMatch( - EntryType.getEntryType(MessageValidator.TYPE_MESSAGE_REQUEST), - entryContext.getRequestDocument()); - - // If there is no matched operation, the assertion is not applicable - if (bindingOperation == null) - throw new AssertionNotApplicableException(); - // If the envelope in a response message contains a fault with attachments - // and the corresponding wsdl:output element in the description is not - // described using the WSDL MIME binding, the assertion is failed - if ((entryContext.getMessageEntry().getMimeParts().count() > 1) && - (getMultipartRelatedBindings(bindingOperation) == null)) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - validator.createFailureDetail("The message contains \"" + - entryContext.getMessageEntry().getMimeParts().count() + "\" part(s)", - entryContext); - } - } - catch(AssertionNotApplicableException e) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Returns Multipart related bindings, if does not found, returns null. - * @param op binding operation - * @return Multipart related bindings, if does not found, returns null. - */ - private MIMEMultipartRelated getMultipartRelatedBindings( - BindingOperation op) - { - // Finding operation extensibility elems - // in the binding depending on message type - List extElems = op.getBindingOutput().getExtensibilityElements(); - // check list on first element - if((extElems == null) || (extElems.size() == 0) || - !(extElems.get(0) instanceof MIMEMultipartRelated)) - return null; - return (MIMEMultipartRelated) extElems.get(0); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/AP1928.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/AP1928.java deleted file mode 100644 index 5965fcfa4..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/AP1928.java +++ /dev/null @@ -1,426 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import javax.wsdl.BindingOperation; -import javax.wsdl.Message; -import javax.wsdl.Part; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.UnknownExtensibilityElement; -import javax.wsdl.extensions.mime.MIMEMultipartRelated; -import javax.wsdl.extensions.mime.MIMEPart; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPHeader; -import javax.xml.namespace.QName; - -import org.apache.xerces.xs.XSComplexTypeDefinition; -import org.apache.xerces.xs.XSConstants; -import org.apache.xerces.xs.XSElementDeclaration; -import org.apache.xerces.xs.XSModel; -import org.apache.xerces.xs.XSModelGroup; -import org.apache.xerces.xs.XSObjectList; -import org.apache.xerces.xs.XSParticle; -import org.apache.xerces.xs.XSTerm; -import org.apache.xerces.xs.XSTypeDefinition; -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.log.MimePart; -import org.eclipse.wst.wsi.internal.core.log.MimeParts; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.MIMEConstants; -import org.eclipse.wst.wsi.internal.core.util.MIMEUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -/** - * AP1928 - * - * <context>For a candidate envelope containing a URI reference - * that is typed using the ref:swaRef schema type</context> - * <assertionDescription>In an envelope, a URI reference that is typed using - * the ref:swaRef schema type resolves to a MIME part in the same message - * as the envelope.</assertionDescription> - */ -public class AP1928 extends AssertionProcess implements WSITag -{ - private final BaseMessageValidator validator; - - /** - * @param WSDLValidatorImpl - */ - public AP1928(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - if (!entryContext.getMessageEntry().isMimeContent()) - { - throw new AssertionNotApplicableException(); - } - // get the rrot part of a multipart/related message - Document root = entryContext.getMessageEntryDocument(); - MimeParts mimeParts = entryContext.getMessageEntry().getMimeParts(); - - // get an operation matched for the message - BindingOperation bindingOperation = validator.getOperationMatch( - entryContext.getEntry().getEntryType(), root); - - // if no one operation matches, the assertion is not applicable - if (bindingOperation == null) - throw new AssertionNotApplicableException(); - - // get the corresponding extensibility elements and message - List extElems; - Message message; - if (MessageEntry.TYPE_REQUEST - .equals(entryContext.getEntry().getEntryType())) - { - extElems = bindingOperation.getBindingInput() == null ? null - : bindingOperation.getBindingInput().getExtensibilityElements(); - message = bindingOperation.getOperation().getInput() == null ? null - : bindingOperation.getOperation().getInput().getMessage(); - } - else - { - extElems = bindingOperation.getBindingOutput() == null ? null - : bindingOperation.getBindingOutput().getExtensibilityElements(); - message = bindingOperation.getOperation().getOutput() == null ? null - : bindingOperation.getOperation().getOutput().getMessage(); - } - - // If there are no extensibility elements in the WSDL binding operation, - // the assertion is not applicable - if (extElems == null || extElems.size() < 1) - throw new AssertionNotApplicableException(); - - // Collecting the names of schema elements that are defined - // with the ref:swaRef schema type - List swaRefs = getSwaRefs((ExtensibilityElement)extElems.get(0), message); - // If such schema elements are not found, the assertion is not applicable - if (swaRefs.isEmpty()) - throw new AssertionNotApplicableException(); - - // Going through all the schema element names - for (int i = 0; i < swaRefs.size(); i++) - { - QName elemName = (QName) swaRefs.get(i); - // Looking for such elements in the root MIME part - NodeList elems = root.getDocumentElement().getElementsByTagNameNS( - elemName.getNamespaceURI(), elemName.getLocalPart()); - // Going through all the ref:swaRef references - for (int j = 0; j < elems.getLength(); j++) - { - Node elem = elems.item(j); - // Getting a value of this reference - String ref = elem.getFirstChild() == null ? null - : elem.getFirstChild().getNodeValue(); - // If the value is invalid, the assertion failed - if (ref == null) - throw new AssertionFailException("The element " + elem.getNodeName() - + " of the ref:swaRef schema type is specified, but its vaule" - + " is invalid."); - // If the URI does not start with the "cid:" content-id prefix - // The assertion failed - if (!ref.startsWith("cid:")) - { - throw new AssertionFailException("The URI " + ref - + " of the ref:swaRef schema type must use the cid: prefix."); - } - boolean refFound = false; - Iterator iMimeParts = mimeParts.getParts().iterator(); - // Going through all the MIME parts of the SOAP message - while (iMimeParts.hasNext()) - { - MimePart mimePart = (MimePart)iMimeParts.next(); - // Getting part's Content-ID header - String cid = MIMEUtils.getMimeHeaderAttribute( - mimePart.getHeaders(), MIMEConstants.HEADER_CONTENT_ID); - if (cid != null) - { - // If the header value equals the reference URI, - // the corresponding MIME part is found - if (cid.equals('<' + ref.substring(4) + '>')) - { - refFound = true; - break; - } - } - } - // If the corresponding MIME part is not found - // the assertion failed - if (!refFound) - throw new AssertionFailException("The SOAP message does not contain" - + " a MIME part with the <" + ref.substring(4) + "> Content-ID."); - } - } - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Collects names of schema elements that are defined with the ref:swaRef - * schema type. - * @param extElem a list of extensibility elements - * @param message the corresponding message element. - * @return a list of such names found. - */ - private List getSwaRefs(ExtensibilityElement extElem, Message message) - { - List swaRefs = new ArrayList(); - if (extElem.getElementType().equals(WSDL_MIME_MULTIPART)) - { - // Getting the root mime:part - List mimeParts = ((MIMEMultipartRelated) extElem).getMIMEParts(); - if (mimeParts.size() > 0) - { - // Getting extensibility elements of the first mime:part - List elems = ((MIMEPart) mimeParts.get(0)).getExtensibilityElements(); - List boundParts = new ArrayList(); - // Going through all the MIME part's extensibility elements - for (int k = 0; k < elems.size(); k ++) - { - ExtensibilityElement elem = (ExtensibilityElement) elems.get(k); - // If that is a soap:body - if (elem.getElementType().equals(WSDL_SOAP_BODY) && message != null) - { - // Getting parts specified by the parts attribute - List bodyParts = ((SOAPBody) elem).getParts(); - // Collecting all the message parts bound by this soapbind:body - Iterator i = message.getParts().values().iterator(); - while (i.hasNext()) - { - Part part = (Part) i.next(); - if (bodyParts == null || bodyParts.contains(part.getName())) - { - boundParts.add(part); - } - } - } - // else if that is a soap:header - else if (elem.getElementType().equals(WSDL_SOAP_HEADER)) - { - QName msgName; - String partName; - if (elem instanceof SOAPHeader) - { - SOAPHeader header = (SOAPHeader) elem; - // If the part is bound by this element - msgName = header.getMessage(); - partName = header.getPart(); - } - // WSDL4J 1.4 does not recognize soap:header elements that - // are enclosed in mime:multipartRelated, so using a workaround - else - { - Element header = - ((UnknownExtensibilityElement) elem).getElement(); - // Getting the element's message attribute - String msgVal = header.getAttribute("message"); - // finding the colon delimiter - int colonPos = msgVal.indexOf(":"); - String ns = null; - // Getting a local part - String lp = colonPos > -1 ? msgVal.substring(colonPos + 1) : msgVal; - // If the delimiter is found - if (colonPos > -1) - { - // Retrieving a namespace URI - ns = validator.getWSDLDocument() - .getDefinitions().getNamespace(msgVal.substring(0, colonPos)); - } - msgName = new QName(ns, lp); - partName = header.getAttribute("part"); - } - // Getting a message referenced by this soapbind:header element - Message msg = - validator.getWSDLDocument().getDefinitions().getMessage(msgName); - if (msg != null) - { - // Adding the part to the list of bound parts - Part part = msg.getPart(partName); - if (part != null) - boundParts.add(part); - } - } - } - - // All the bound parts from soapbind:body and soapbind:header - // are collected, finding swaRef references. - for (int i = 0; i < boundParts.size(); i++) - { - Part part = (Part) boundParts.get(i); - QName ref; - short type; - // Getting either part's element reference or type reference - if ((ref = part.getTypeName()) != null) - { - type = XSConstants.TYPE_DEFINITION; - } - else if ((ref = part.getElementName()) != null) - { - type = XSConstants.ELEMENT_DECLARATION; - } - // The part conatins neither element nor type attribute, - // proceeding with the next part - else - { - continue; - } - // Getting a list of schemas defined - Map schemas = validator.getWSDLDocument().getSchemas(); - // Going through the schemas - Iterator it = schemas.values().iterator(); - while (it.hasNext()) - { - XSModel xsModel = (XSModel) it.next(); - XSTypeDefinition xsType = null; - // Getting the corresponding part type - if (type == XSConstants.ELEMENT_DECLARATION) - { - // Getting schema element - XSElementDeclaration elem = xsModel.getElementDeclaration( - ref.getLocalPart(), ref.getNamespaceURI()); - if (elem != null) - { - // Getting element's type - xsType = elem.getTypeDefinition(); - // If it is ref:swaRef - if (WSIConstants.NS_URI_SWA_REF.equals(xsType.getName()) - && WSIConstants.SCHEMA_TYPE_SWA_REF.equals( - xsType.getNamespace())) - { - // Adding the name of the element to the list - swaRefs.add( - new QName(elem.getNamespace(), elem.getName())); - } - } - } - else - { - xsType = xsModel.getTypeDefinition( - ref.getLocalPart(), ref.getNamespaceURI()); - } - // Collecting all the element names,adding element names to the list - swaRefs.addAll(collectSwaRefs(xsType)); - } - } - } - } - return swaRefs; - } - - /** - * Collects names of schema elements that are defined with the ref:swaRef - * schema type. - * @param xsType a schema type. - * @return a list of names found. - */ - private List collectSwaRefs(XSTypeDefinition xsType) - { - List swaRefs = new ArrayList(); - if (xsType != null) - { - // If this is a complex type - if (xsType.getTypeCategory() == XSTypeDefinition.COMPLEX_TYPE) - { - XSComplexTypeDefinition xsComplexType = - (XSComplexTypeDefinition) xsType; - // If it contains mixed context - if (xsComplexType.getParticle() != null) - { - // collecting element names - swaRefs.addAll(collectSwaRefs(xsComplexType.getParticle().getTerm())); - } - } - } - return swaRefs; - } - - /** - * Collects names of schema elements that are defined with the ref:swaRef - * schema type. - * @param term a schema term. - * @return a list of names found. - */ - private List collectSwaRefs(XSTerm term) - { - List swaRefs = new ArrayList(); - // If a term is an element declaration - if (term.getType() == XSConstants.ELEMENT_DECLARATION) - { - XSElementDeclaration elem = (XSElementDeclaration) term; - XSTypeDefinition xsType = elem.getTypeDefinition(); - // If element's type is ref:swaRef - if (WSIConstants.NS_URI_SWA_REF.equals(xsType.getNamespace()) - && WSIConstants.SCHEMA_TYPE_SWA_REF.equals(xsType.getName())) - { - // Add element's name to the list - swaRefs.add( - new QName(elem.getNamespace(), elem.getName())); - } - else - { - // else collecting element names from element's type - swaRefs.addAll(collectSwaRefs(xsType)); - } - } - // else if a term is a model group - else if(term.getType() == XSConstants.MODEL_GROUP) - { - // Getting a list of Particle schema components - XSObjectList list = ((XSModelGroup) term).getParticles(); - for (int i = 0; i < list.getLength(); i++) - { - // Collecting element names - swaRefs.addAll(collectSwaRefs(((XSParticle) list.item(i)).getTerm())); - } - } - return swaRefs; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1005.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1005.java deleted file mode 100644 index 7aa465d13..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1005.java +++ /dev/null @@ -1,167 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.BindingOperation; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; -import org.eclipse.wst.wsi.internal.core.util.OperationSignature; -import org.eclipse.wst.wsi.internal.core.util.TypesRegistry; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; - - -/** - * BP1005. - */ -public class BP1005 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1005(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - if (this.validator.isOneWayResponse(entryContext)) - throw new AssertionNotApplicableException(); - - // Parse message - Document doc = entryContext.getMessageEntryDocument(); - - // If this is a fault mesage, then it is not applicable - if (this.validator.isFault(doc)) - { - throw new AssertionNotApplicableException(); - } - - // Check if there is a soap body element - if (!this.validator.containsSoapBodyWithChild(doc)) - { - throw new AssertionNotApplicableException(); - } - - // Parse request message - Document docRequest = entryContext.getRequestDocument(); - - // get SOAPAction - String headers = entryContext.getRequest().getHTTPHeaders(); - String action = null; - if (headers != null) - action = (String) HTTPUtils.getHttpHeaderTokens(headers, ":").get("SOAPAction".toUpperCase()); - - Binding binding = validator.analyzerContext.getCandidateInfo().getBindings()[0]; - TypesRegistry registry = - new TypesRegistry( - this.validator.getWSDLDocument().getDefinitions(), - validator); - OperationSignature.OperationMatch match = - OperationSignature.matchOperation( - docRequest, - action, - binding, - registry); - if (match == null) - throw new AssertionNotApplicableException(); - - BindingOperation bindingOperation = match.getOperation(); - - // Is rpc style? - if (!WSIConstants - .ATTRVAL_SOAP_BIND_STYLE_RPC - .equals(match.getOperationStyle())) - throw new AssertionNotApplicableException(); - - List extElements = null; - - if (bindingOperation.getBindingOutput() != null) - extElements = - bindingOperation.getBindingOutput().getExtensibilityElements(); - - // Is message RPC-literal? - if (!validator.isLiteral(extElements)) - throw new AssertionNotApplicableException(); - - //Get message - - // Gets body - NodeList soapBodyList = - doc.getElementsByTagNameNS( - WSIConstants.NS_URI_SOAP, - XMLUtils.SOAP_ELEM_BODY); - if (soapBodyList.getLength() == 0 || soapBodyList.getLength() > 1) - { - // There is not a body or more than one bodies in the envlope. - throw new AssertionFailException(); - } - Element soapBodyElem = (Element) soapBodyList.item(0); - - // Find wrapper element in the body - Element wrapperElement = XMLUtils.getFirstChild(soapBodyElem); - if (wrapperElement == null) - { - throw new AssertionFailException(); - } - - if (wrapperElement - .getLocalName() - .equals(bindingOperation.getName() + "Response")) - { - result = AssertionResult.RESULT_PASSED; - } - else - { - result = AssertionResult.RESULT_FAILED; - } - - } - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - } - catch (AssertionNotApplicableException e) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (Exception e) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1007.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1007.java deleted file mode 100644 index 469486968..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1007.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.w3c.dom.Document; - - -/** - * BP1007 - * - * <context>For a candidate message, in the message log file</context> - * <assertionDescription>DTDs relating to soap:header or soap:body documents, are not present in the message: no DOCTYPE element is present.</assertionDescription> - */ -public class BP1007 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1007(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // Parse log message - Document doc = entryContext.getMessageEntryDocument(); - if (doc == null) - { - // message is empty or invalid, the assertion is not applicable - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - // else if the message contains a Document Type Declaration, the assertion failed - else if (doc.getDoctype() != null) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - testAssertion.getFailureDetailDescription(), entryContext); - } - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1008.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1008.java deleted file mode 100644 index 21202362e..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1008.java +++ /dev/null @@ -1,277 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.BindingOperation; -import javax.wsdl.Message; -import javax.wsdl.Part; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionPassException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.OperationSignature; -import org.eclipse.wst.wsi.internal.core.util.TypesRegistry; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; - - -/** - * BP1008. - * Message has part accessor elements for parameters and return value, in no namespaces, - * but the children of these are namespace qualified with the same targetNamespace with which - * their types are defined. - */ -public class BP1008 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1008(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - - if (this.validator.isOneWayResponse(entryContext)) - throw new AssertionFailException( - AssertionResult.RESULT_NOT_APPLICABLE); - - // Parse message - Document doc = entryContext.getMessageEntryDocument(); - - // If there is no message, then throw fail exception - if (doc == null) - throw new AssertionFailException(); - - if (this.validator.isFault(doc)) - { - throw new AssertionFailException( - AssertionResult.RESULT_NOT_APPLICABLE); - } - - // Check if there is a soap body element - if (!this.validator.containsSoapBodyWithChild(doc)) - { - throw new AssertionNotApplicableException(); - } - - // Parse request message - Document docRequest = entryContext.getRequestDocument(); - - // get SOAPAction - String action = - validator.getSoapAction(entryContext.getRequest().getHTTPHeaders()); - - Binding binding = validator.analyzerContext.getCandidateInfo().getBindings()[0]; - //Definition definition = entryContext.getAnalyzerContext().getCandidateInfo().getDefinitions()[0]; - TypesRegistry registry = - new TypesRegistry( - this.validator.getWSDLDocument().getDefinitions(), - validator); - OperationSignature.OperationMatch match = - OperationSignature.matchOperation( - docRequest, - action, - binding, - registry); - if (match == null) - throw new AssertionNotApplicableException(); - - BindingOperation bindingOperation = match.getOperation(); - - // Is rpc style? - if (!WSIConstants - .ATTRVAL_SOAP_BIND_STYLE_RPC - .equals(match.getOperationStyle())) - throw new AssertionFailException( - AssertionResult.RESULT_NOT_APPLICABLE); - - // Gets body - NodeList soapBodyList = - doc.getElementsByTagNameNS( - WSIConstants.NS_URI_SOAP, - XMLUtils.SOAP_ELEM_BODY); - if (soapBodyList.getLength() == 0 || soapBodyList.getLength() > 1) - { - // There is not a body or more than one bodies in the envlope. - throw new AssertionFailException(); - } - Element soapBodyElem = (Element) soapBodyList.item(0); - - result = null; - - // Find operation in the body - Element soapOperation = XMLUtils.getFirstChild(soapBodyElem); - if (soapOperation == null) - { - throw new AssertionFailException(); - } - - // Find operation message and ext. elements in the binding - Message operationMessage = null; - List extElements = null; - if (MessageEntry - .TYPE_REQUEST - .equals(entryContext.getMessageEntry().getType())) - { - operationMessage = - bindingOperation.getOperation().getInput().getMessage(); - if (bindingOperation.getBindingInput() != null) - extElements = - bindingOperation.getBindingInput().getExtensibilityElements(); - } - else - { - if (MessageEntry - .TYPE_RESPONSE - .equals(entryContext.getMessageEntry().getType())) - { - operationMessage = - bindingOperation.getOperation().getOutput().getMessage(); - if (bindingOperation.getBindingOutput() != null) - extElements = - bindingOperation.getBindingOutput().getExtensibilityElements(); - } - } - - // Is message RPC-literal? - if (!validator.isLiteral(extElements)) - throw new AssertionFailException( - AssertionResult.RESULT_NOT_APPLICABLE); - - // gets first child of message - Element soapMessagePart = XMLUtils.getFirstChild(soapOperation); - if (soapMessagePart == null) - { - throw new AssertionPassException(); - } - - while (soapMessagePart != null) - { - // check whether part accessor or return are in no namespace - - if (soapMessagePart.getNamespaceURI() != null - || "".equals(soapMessagePart.getNamespaceURI())) - { - throw new AssertionFailException(); - } - - // check whether children are namespace qualified - // with the same targetNamespace with which their types are defined - String typesTargetNS = - getTypeNS(operationMessage, soapMessagePart.getLocalName()); - - if (typesTargetNS == null) - throw new AssertionFailException(); - - if (!checkChildrenNamespace(soapMessagePart, typesTargetNS)) - { - throw new AssertionFailException(); - } - - soapMessagePart = XMLUtils.getNextSibling(soapMessagePart); - } - - result = AssertionResult.RESULT_PASSED; - - } - catch (AssertionFailException e) - { - if (e.getMessage() != null && e.getMessage().length() > 0) - result = e.getMessage(); - else - result = AssertionResult.RESULT_FAILED; - } - catch (AssertionPassException e) - { - result = AssertionResult.RESULT_PASSED; - } - catch (Exception e) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - if (result == AssertionResult.RESULT_FAILED) - { - failureDetail = this.validator.createFailureDetail(null, entryContext); - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } - - /** - * Gets part type NS. - * @param message - * @param partName - * @return String - */ - private String getTypeNS(Message message, String partName) - { - Part part = message.getPart(partName); - if (part == null) - return null; - else - return part.getTypeName().getNamespaceURI(); - } - - /** - * Checks children elements' namespace. - * @param node - * @param typesTargetNS - * @return boolean - */ - - private boolean checkChildrenNamespace(Element node, String typesTargetNS) - { - NodeList parts = node.getElementsByTagName("*"); - for (int i = 0; i < parts.getLength(); i++) - { - Element part = (Element) parts.item(i); - if (!typesTargetNS.equals(part.getNamespaceURI())) - { - return false; - } - if (!checkChildrenNamespace(part, typesTargetNS)) - { - return false; - } - } - return true; - } - -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1009.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1009.java deleted file mode 100644 index 32e401b07..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1009.java +++ /dev/null @@ -1,313 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import java.util.Iterator; -import java.util.List; -import java.util.Vector; - -import javax.wsdl.Binding; -import javax.wsdl.BindingOperation; -import javax.wsdl.Definition; -import javax.wsdl.Message; -import javax.wsdl.OperationType; -import javax.wsdl.Part; -import javax.wsdl.extensions.soap.SOAPHeader; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionPassException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; -import org.eclipse.wst.wsi.internal.core.util.OperationSignature; -import org.eclipse.wst.wsi.internal.core.util.TypesRegistry; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; - - -/** - * BP1009. - * Message includes all soapbind:headers specified in the wsdl:input - * (if request) or wsdl:output (if response) of the operation referred - * to by its wsdl:binding, and may also include headers that were not specified. - */ -public class BP1009 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1009(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /** - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(TestAssertion, EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - if (this.validator.isOneWayResponse(entryContext)) - { - throw new AssertionNotApplicableException(); - } - - // Parse message - Document doc = entryContext.getMessageEntryDocument(); - - // Parse request message - Document docRequest = entryContext.getRequestDocument(); - - if (doc == null || docRequest == null) - throw new AssertionNotApplicableException(); - - // Check if there is a soap body element - if (!this.validator.containsSoapBodyWithChild(doc)) - { - throw new AssertionNotApplicableException(); - } - - if (this.validator.isFault(doc)) - { - throw new AssertionFailException( - AssertionResult.RESULT_NOT_APPLICABLE); - } - - // get SOAPAction - String headers = entryContext.getRequest().getHTTPHeaders(); - String action = null; - if (headers != null) - action = (String) HTTPUtils.getHttpHeaderTokens(headers, ":").get("SOAPAction".toUpperCase()); - - Binding binding = validator.analyzerContext.getCandidateInfo().getBindings()[0]; - TypesRegistry registry = - new TypesRegistry( - this.validator.getWSDLDocument().getDefinitions(), - validator); - OperationSignature.OperationMatch match = - OperationSignature.matchOperation( - docRequest, - action, - binding, - registry); - - if (match == null) - { - throw new AssertionNotApplicableException(); - } - - BindingOperation bindingOperation = match.getOperation(); - - // If this is a one-way operation and we are processing a response, then set result to notApplicable - if (bindingOperation - .getOperation() - .getStyle() - .equals(OperationType.ONE_WAY) - && (entryContext - .getMessageEntry() - .getType() - .equals(MessageEntry.TYPE_RESPONSE))) - { - throw new AssertionNotApplicableException(); - } - - // find body - NodeList soapBodyList = - doc.getElementsByTagNameNS( - WSIConstants.NS_URI_SOAP, - XMLUtils.SOAP_ELEM_BODY); - if (soapBodyList.getLength() == 0 || soapBodyList.getLength() > 1) - { - // There is not a body or more than one bodies in the envlope. - throw new AssertionPassException(); - } - // find headers - NodeList soapHeaders = - doc.getElementsByTagNameNS( - WSITag.ELEM_SOAP_HEADER.getNamespaceURI(), - WSITag.ELEM_SOAP_HEADER.getLocalPart()); - - //find all operation - //Element soapOperation = XMLUtils.getFirstChild(soapBodyElem); - - // gets soapbind:headers - List bindingHeaders = null; - if (entryContext - .getMessageEntry() - .getType() - .equals(MessageEntry.TYPE_REQUEST)) - { - if (bindingOperation.getBindingInput() != null) - bindingHeaders = - bindingOperation.getBindingInput().getExtensibilityElements(); - else - throw new AssertionFailException(); - - } - else - { - if (entryContext - .getMessageEntry() - .getType() - .equals(MessageEntry.TYPE_RESPONSE)) - { - if (bindingOperation.getBindingOutput() != null) - bindingHeaders = - bindingOperation.getBindingOutput().getExtensibilityElements(); - else - throw new AssertionFailException(); - } - } - if (bindingHeaders == null || bindingHeaders.size() == 0) - { - throw new AssertionPassException(); - } - - Iterator iterator = bindingHeaders.iterator(); - while (iterator.hasNext()) - { - Object bindingHeader = iterator.next(); - if (bindingHeader instanceof SOAPHeader) - { - // find soapbind:header in SOAP message - if (!isBindingHeaderInSOAPMessage(entryContext, - soapHeaders, - (SOAPHeader) bindingHeader)) - { - throw new AssertionFailException(); - } - } - } - - result = AssertionResult.RESULT_PASSED; - - } - catch (AssertionFailException e) - { - if (e.getMessage() != null && e.getMessage().length() > 0) - result = e.getMessage(); - else - result = AssertionResult.RESULT_FAILED; - } - catch (AssertionPassException e) - { - result = AssertionResult.RESULT_PASSED; - } - catch (Exception e) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - if (result == AssertionResult.RESULT_FAILED) - { - failureDetail = this.validator.createFailureDetail(null, entryContext); - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } - - /** - * Checks whether specified SOAPHeader is in the SOAPMessage. - * @param soapHeaderList - * @param SOAPHeader - * @return boolean - */ - private boolean isBindingHeaderInSOAPMessage( - EntryContext entryContext, - NodeList soapHeaders, - SOAPHeader bindingHeader) - { - - Message msg = getMessageByQName(entryContext, bindingHeader.getMessage()); - if (msg == null) - return false; - - Part part = msg.getPart(bindingHeader.getPart()); - if (part == null) - return false; - - QName partElementName = part.getElementName(); - QName partTypeName = part.getTypeName(); - - if (partTypeName == null && partElementName == null) - return false; - - if (soapHeaders == null || soapHeaders.getLength() == 0) - { - return false; - } - Vector headersList = - XMLUtils.getChildElements((Element) soapHeaders.item(0)); - - for (int indexHeader = 0; - indexHeader < headersList.size(); - indexHeader++) - { - Element soapHeaderPart = (Element) headersList.get(indexHeader); - if (soapHeaderPart != null) - { - QName soapHeaderPartQName = - new QName( - soapHeaderPart.getNamespaceURI(), - soapHeaderPart.getLocalName()); - if ((partTypeName != null - && partTypeName.equals(soapHeaderPartQName)) - || (partElementName != null - && partElementName.equals(soapHeaderPartQName))) - { - return true; - } - } - } - - return false; - } - - /** - * Gets message by QName. - * @param entryContext - * @param messageName - * @return Message - */ - private Message getMessageByQName( - EntryContext entryContext, - QName messageName) - { - Definition[] defs = validator.analyzerContext.getCandidateInfo().getDefinitions(); - for (int i = 0; i < defs.length; i++) - { - Message msg = defs[i].getMessage(messageName); - if (msg != null) - return msg; - } - return null; - } - -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1011.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1011.java deleted file mode 100644 index 3a37ab6c9..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1011.java +++ /dev/null @@ -1,203 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import javax.wsdl.Binding; -import javax.wsdl.BindingOperation; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionPassException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - - -/** - * BP1011. - */ -public class BP1011 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1011(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - // TODO need to handle soap with attachments - if (entryContext.getMessageEntry().isMimeContent()) - throw new AssertionNotApplicableException(); - - Binding[] bindings = validator.analyzerContext.getCandidateInfo().getBindings(); - - // get soap message child name - // Get the DOM contents of the message soap:body (if non-empty) - Document messageDoc = null; - - QName messagePartElementQName = null; - - if (!entryContext.getMessageEntry().getMessage().equals("")) - { - messageDoc = entryContext.getMessageEntryDocument(); - //messageDoc = XMLUtils.parseXML(entryContext.getMessageEntry().getMessage(), - // WSIProperties.DEF_SOAP_SCHEMA); - // get soap operation name from the soap:body - - // NOTE: getSoapBodyChild() may return null, if the soap:body did not contain any child elements - Element soapMessageElement = validator.getSoapBodyChild(messageDoc); - - // for doc-lit... find the wsdl:part from one of the specified operations that has - // the soap element used in the message. - // we are looking for a part with an element attrib val matching the soap message element - if (soapMessageElement != null) - { - messagePartElementQName = - new QName( - soapMessageElement.getNamespaceURI(), - soapMessageElement.getLocalName()); - } - } - - if ((messageDoc == null) || this.validator.isFault(messageDoc)) - { - // empty messages and fault messages do not qualify for this TA - throw new AssertionNotApplicableException(); - } - - // look for match(s) in doc operations - // if found, we're done, else - // look for match(s) in rpc operations - - /* Doc-lit - * get list of operations (from candidates) for which the first soap:body child QName is the - * <part element="..."> value of that operation's <wsdl:input> or <wsdl:output> element (depending - * on whether message is a request or a response). - */ - - BindingOperation[] docBindingOperations = - validator.getMatchingBindingOps( - WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC, - bindings); - // list of operations that match the <wsdl:input> or <wsdl:output> (depending on entryType) - // for part element="..." - // (ISSUE: what about part type="..."?) - BindingOperation[] potentialDocLitOps = - validator.getDocLitOperations( - entryContext.getEntry().getEntryType(), - messagePartElementQName, - docBindingOperations); - if (potentialDocLitOps.length != 0) - { - // found at least one doc lit match - - // *** Now we know it's document-literal, schema-validate the SOAP payload accordingly - try - { - this.validator.messageIsDocLitSchemaValid(entryContext); - } - catch (Exception e) - { - throw new AssertionFailException(e.getMessage()); - } - throw new AssertionPassException(); - } - - /* soap message is not doc-lit so try : - * Rpc-lit - */ - BindingOperation[] rpcBindingOperations = - this.validator.getMatchingBindingOps( - WSIConstants.ATTRVAL_SOAP_BIND_STYLE_RPC, - bindings); - - // Determine if there is an operation match - BindingOperation rcpOpMatch = - this.validator.getOperationMatch( - entryContext.getEntry().getEntryType(), - messageDoc, - rpcBindingOperations); - if (rcpOpMatch != null) - { - // Determine if the parts match - rcpOpMatch = - this.validator.getOperationPartsMatch( - entryContext.getEntry().getEntryType(), - messageDoc, - rpcBindingOperations); - } - - if (rcpOpMatch == null) - { - //not matched with rpc either. Prepare assertion failure. - StringBuffer rpcOperationList = new StringBuffer(); - for (int i = 0; i < rpcBindingOperations.length; i++) - { - rpcOperationList.append(rpcBindingOperations[i].toString() + "\n"); - } - - StringBuffer docOperationList = new StringBuffer(); - for (int i = 0; i < docBindingOperations.length; i++) - { - docOperationList.append(docBindingOperations[i].toString() + "\n"); - } - - throw new AssertionFailException( - "--MESSAGE:\n" - + entryContext.getMessageEntry().getMessage() - + "\n--CANDIDATE RPC STYLE OPERATIONS (" - + (rpcBindingOperations.length != 0 - ? (rpcBindingOperations.length + "):\n" + rpcOperationList) - : "NONE)") - + "\n--CANDIDATE DOCUMENT STYLE OPERATIONS (" - + (docBindingOperations.length != 0 - ? (docBindingOperations.length + "):\n" + docOperationList) - : "NONE)")); - - } - } - catch (AssertionPassException e) - { - } - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(e.getMessage(), entryContext); - } - catch (AssertionNotApplicableException e) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - // Return assertion result - - return validator.createAssertionResult(testAssertion, result, failureDetail); - - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1012.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1012.java deleted file mode 100644 index 115d4efe4..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1012.java +++ /dev/null @@ -1,102 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; - - -/** - * BP1012. - */ -public class BP1012 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1012(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - // look for <soap:Envelope> elements: - // (Note: since this is a Soap message we expect exactly one soap envelope, but we do not assume it). - Document requestDoc = entryContext.getRequestDocument(); - - // message is empty or invalid, the assertion is not applicable - if (requestDoc == null) - throw new AssertionNotApplicableException(); - - Element envElem = requestDoc.getDocumentElement(); - //NodeList soapEnvList = requestDoc.getElementsByTagNameNS(WSIConstants.NS_URI_SOAP, "Envelope"); - - // If the document element tag name is not Envelope - // or the namespace is http://schemas.xmlsoap.org/soap/envelope/ - if (!envElem.getLocalName().equals(XMLUtils.SOAP_ELEM_ENVELOPE) - || envElem.getNamespaceURI().equals(WSIConstants.NS_URI_SOAP)) - // Request contains proper soap Envelope element - throw new AssertionNotApplicableException(); - - // we expect a Soap Fault as a response - Document responseDoc = - XMLUtils.parseXML(entryContext.getResponse().getMessage()); - NodeList soapFaultList = - responseDoc.getElementsByTagNameNS( - WSIConstants.NS_URI_SOAP, - "Fault"); - // ADD extra check here that the <soap:Fault> is a child of <soap:Envelope> ?? - if ((soapFaultList == null) || (soapFaultList.getLength() == 0)) - { - // No Soap fault found. - // Assertion failed (ADD highlight the child here ?) - throw new AssertionFailException( - "--- REQUEST:\n" - + entryContext.getRequest().getMessage() - + "\n--- RESPONSE:\n" - + entryContext.getResponse().getMessage()); - } - - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(e.getMessage(), entryContext); - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1013.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1013.java deleted file mode 100644 index eb6f8eb54..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1013.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; - - - -/** - * BP1013. - */ -public class BP1013 extends BP1011 -{ - /** - * @param BaseMessageValidator - */ - public BP1013(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1031.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1031.java deleted file mode 100644 index cfbdafbc0..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1031.java +++ /dev/null @@ -1,108 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionPassException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.w3c.dom.Document; -import org.w3c.dom.NodeList; -import org.w3c.dom.Text; - - -/** - * BP1031. - * - * @author: Graham Turrell, IBM UK - */ -public class BP1031 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1031(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - failureDetail = null; - try - { - Document doc; - // Check if this is one way response - // or message is mepty or invalid - if (this.validator.isOneWayResponse(entryContext) - || (doc = entryContext.getMessageEntryDocument()) == null) - { - throw new AssertionNotApplicableException(); - } - - if (!this.validator.isFault(doc)) - { - throw new AssertionNotApplicableException(); - } - - NodeList faultCodes = doc.getElementsByTagName("faultcode"); - for (int i = 0; i < faultCodes.getLength(); i++) - { - NodeList faultCodeNodes = (faultCodes.item(i)).getChildNodes(); - for (int j = 0; j < faultCodeNodes.getLength(); j++) - { - if (faultCodeNodes.item(j) instanceof Text) - { - Text faultCodeText = (Text) faultCodeNodes.item(j); - if (faultCodeText.getData().indexOf('.') > 0) - { - throw new AssertionFailException(); - // dotted notation used. - } - } - } - } - - throw new AssertionPassException(); - // no dotted notation used in a faultcode element - } - catch (AssertionPassException e) - { - result = AssertionResult.RESULT_PASSED; - } - catch (AssertionNotApplicableException e) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_WARNING; - failureDetail = - this.validator.createFailureDetail( - entryContext.getMessageEntry().getMessage(), - entryContext); - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1032.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1032.java deleted file mode 100644 index 47413072a..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1032.java +++ /dev/null @@ -1,152 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; - - -/** - * BP1032 - * - * <context>For a candidate envelope</context> - * <assertionDescription>The soap:Envelope, soap:Header, and soap:Body elements do not have any attributes in the namespace "http://schemas.xmlsoap.org/soap/envelope/"</assertionDescription> - */ -public class BP1032 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1032(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - try - { - // Getting a message document - Document doc = entryContext.getMessageEntryDocument(); - - // If the message is empty or invalid, the assertion is not applicable - if (doc == null) - throw new AssertionNotApplicableException(); - - // Getting a root element - Element element = doc.getDocumentElement(); - - // Assuming that root element should be soap:Envelope - // If not, the assertion is not applicable - if (!element.getLocalName().equals(XMLUtils.SOAP_ELEM_ENVELOPE)) - throw new AssertionNotApplicableException(); - - // looking for any attribute of soap:Envelope in the namespace - // "http://schemas.xmlsoap.org/soap/envelope/" - // If at least one attribute is found, the assertion failed - Attr attr = getAttribute(element.getAttributes()); - if (attr != null) - throw new AssertionFailException("soap:Envelope attribute name is " - + attr.getName()); - - // Getting the first child of soap:Envelope - element = XMLUtils.getFirstChild(element); - - // If the child is soap:Header - if (element != null - && element.getLocalName().equals(XMLUtils.SOAP_ELEM_HEADER)) - { - // looking for any attribute of soap:Header in the namespace - // "http://schemas.xmlsoap.org/soap/envelope/" - // If at least one attribute is found, the assertion failed - attr = getAttribute(element.getAttributes()); - if (attr != null) - throw new AssertionFailException("soap:Header attribute name is " - + attr.getName()); - - // Moving to the next soap:Envelope child - element = XMLUtils.getNextSibling(element); - } - - // If the child is soap:Body - if (element != null - && element.getLocalName().equals(XMLUtils.SOAP_ELEM_BODY)) - { - // looking for any attribute of soap:Body in the namespace - // "http://schemas.xmlsoap.org/soap/envelope/" - // If at least one attribute is found, the assertion failed - attr = getAttribute(element.getAttributes()); - if (attr != null) - throw new AssertionFailException("soap:Body attribute name is " - + attr.getName()); - } - - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Looks for an attribute that is in the namespace - * http://schemas.xmlsoap.org/soap/envelope/ - * @param attrs a collection of attributes - * @return an attribute in the specified namespace or null - */ - private Attr getAttribute(NamedNodeMap attrs) - { - Attr ret = null; - if (attrs != null) - { - for(int i = 0; i < attrs.getLength(); i++) - { - Attr attr = (Attr) attrs.item(i); - if (attr.getNamespaceURI() != null - && attr.getNamespaceURI().equals(WSIConstants.NS_URI_SOAP)) - { - ret = attr; - break; - } - } - } - - return ret; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1033.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1033.java deleted file mode 100644 index 12ec8a11b..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1033.java +++ /dev/null @@ -1,126 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -/** - * BP1033 - * - * <context>For a candidate envelope</context> - * <assertionDescription>The SOAP envelope does not contain the namespace declaration xmlns:xml="http://www.w3.org/XML/1998/namespace".</assertionDescription> - */ -public class BP1033 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1033(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - // Getting a message document - Document doc = entryContext.getMessageEntryDocument(); - // If the message is empty or invalid, the assertion is not applicable - if (doc == null) - { - throw new AssertionNotApplicableException(); - } - - // Getting the root element - Element elem = doc.getDocumentElement(); - // If it is not the soap:Envelope, the assertion is not applicable - if (!elem.getNamespaceURI().equals(WSIConstants.NS_URI_SOAP) - || !elem.getLocalName().equals(XMLUtils.SOAP_ELEM_ENVELOPE)) - { - throw new AssertionNotApplicableException(); - } - - // If the envelope contains the xmlns:xml namespace declaration, - // the assertion failed - String incorrectElementName = getIncorrectElementName(elem); - if (incorrectElementName != null) - { - throw new AssertionFailException("The name of an element containing " - + "such namespace declaration is \"" + incorrectElementName + "\"."); - } - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_WARNING; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Looks for any element that contains the attribute xmlns:xml="http://www.w3.org/XML/1998/namespace". - * @param elem the root element. - * @return the name of an element found or null. - */ - private String getIncorrectElementName(Element elem) - { - // Getting a value of the attribute xmlns:xml - String attrValue = elem.getAttributeNS( - WSIConstants.NS_URI_XMLNS, "xml"); - // If it equals to "http://www.w3.org/XML/1998/namespace", - // return an element name; - if (WSIConstants.NS_URI_XML.equals(attrValue)) - { - return elem.getNodeName(); - } - // Going through element's children - Element child = XMLUtils.getFirstChild(elem); - while (child != null) - { - // If any of them has xmlns:xml attribute, return a value - String name = getIncorrectElementName(child); - if (name != null) - { - return name; - } - // Getting the next element's child - child = XMLUtils.getNextSibling(child); - } - // No xmlns:xml attributes found, return null - return null; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1100.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1100.java deleted file mode 100644 index 12bad72bf..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1100.java +++ /dev/null @@ -1,103 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.Utils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; - - -/** - * BP1100. - * A message that does not contain a SOAP fault SHOULD use a "200 OK" - * HTTP status code. - */ -public class BP1100 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1100(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /** - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(TestAssertion, EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - if (this.validator.isOneWayResponse(entryContext)) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - // look for <soap:Fault> element: - Document doc = entryContext.getMessageEntryDocument(); - if (doc == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - Element root = doc.getDocumentElement(); - NodeList faultList = - root.getElementsByTagNameNS(WSIConstants.NS_URI_SOAP, "Fault"); - - // If response does not contain a soap:Fault, then check it - if ((faultList == null) || (faultList.getLength() == 0)) - { - // Response does not contain a soap:Fault - // check HTTP status code - String httpStatus = - Utils.getHTTPStatusCode( - entryContext.getMessageEntry().getHTTPHeaders()); - if (!"200".equals(httpStatus)) - { - result = AssertionResult.RESULT_WARNING; - //failureDetailMessage = entryContext.getMessageEntry().getMessage(); - failureDetail = - this.validator.createFailureDetail( - "\nResponse message:\nHeaders:\n" - + entryContext.getMessageEntry().getHTTPHeaders() - + "\nMessage:\n" - + entryContext.getMessageEntry().getMessage(), - entryContext); - } - } - - // If it is a soap:Fault, then the result must be notApplicable - else - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - } - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1107.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1107.java deleted file mode 100644 index 11c86917d..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1107.java +++ /dev/null @@ -1,277 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import java.io.StringWriter; -import java.util.HashMap; -import java.util.Map; -import java.util.Vector; - -import javax.wsdl.Fault; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.Part; -import javax.wsdl.extensions.soap.SOAPFault; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.NullUtil; -import org.eclipse.wst.wsi.internal.core.util.OperationSignature; -import org.eclipse.wst.wsi.internal.core.util.TypesRegistry; -import org.eclipse.wst.wsi.internal.core.util.WSDLUtil; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - - -/** - * BP1107. - * The contained soapbind:fault is defined in the wsdl:binding. - */ -public class BP1107 extends AssertionProcessVisitor -{ - - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1107(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - private OperationSignature responseSig = null; - private Vector faults = null; - - /** - * @see org.eclipse.wst.wsi.wsdl.traversal.WSDLVisitor#visit(SOAPFault, Object, WSDLTraversalContext) - */ - public void visit(SOAPFault fault, Object parent, WSDLTraversalContext ctx) - { - String faultName = fault.getName(); - - if (faultName == null) - faultName = ctx.getBindingFault().getName(); - - Operation op = ctx.getBindingOperation().getOperation(); - if (op == null /* || faultName == null*/ - ) // may be it's possible to have legal fault with null name - return; - - // we suppose that SOAPFault.getName() corresponds to the abstract operation's fault name - Fault f = op.getFault(faultName); - if (f == null) - return; - - Message m = f.getMessage(); - // message should have only one part - if (m == null || m.getParts() == null || m.getParts().size() != 1) - return; - - //Part faultPart = WSDLUtil.getPart(m, faultName); - Part faultPart = (Part) m.getParts().values().iterator().next(); - - TypesRegistry tReg = (TypesRegistry) ctx.getParameter("TypesRegistry"); - QName elemQName = faultPart.getElementName(); - QName typeQName = faultPart.getTypeName(); - if (typeQName == null) - typeQName = tReg.getType(faultPart.getElementName()); - if (typeQName == null) - throw new IllegalArgumentException("Part type can not be null."); - - // for all faults; if it presents in the definition remove it from list - for (int i = 0; i < faults.size();) - { - Element elem = (Element) faults.get(i); - - // TODO: I don't understand why this is here. Only the element setting should be checked. - //boolean matchByType = - // elem.getLocalName().equals(typeQName.getLocalPart()) && NullUtil.equals(elem.getNamespaceURI(), typeQName.getNamespaceURI()); - - boolean matchByElement = - elemQName != null - && elem.getLocalName().equals(elemQName.getLocalPart()) - && NullUtil.equals( - elem.getNamespaceURI(), - elemQName.getNamespaceURI()); - - //if (matchByType || matchByElement) - if (matchByElement) - faults.remove(i); - else - i++; - } - } - - /** - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(TestAssertion, EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - if (this.validator.isOneWayResponse(entryContext)) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - // Parse request and response message - Document docRequest = entryContext.getRequestDocument(); - Document docResponse = entryContext.getMessageEntryDocument(); - - if ((docRequest == null) || (docResponse == null)) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else if (!this.validator.isFault(docResponse)) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - // create request signature - OperationSignature.OperationMatch match = - OperationSignature.matchOperation( - docRequest, - this.validator.getSoapAction(entryContext.getRequest().getHTTPHeaders()), - validator.analyzerContext.getCandidateInfo().getBindings()[0], - new TypesRegistry( - validator.analyzerContext - .getCandidateInfo() - .getWsdlDocument() - .getDefinitions(), - validator)); - - result = AssertionResult.RESULT_NOT_APPLICABLE; - - if (match != null) - { - // MOVED: Parse response message - //doc = entryContext.getMessageEntryDocument(); - - responseSig = new OperationSignature(docResponse); - if (WSIConstants - .ATTRVAL_SOAP_BIND_STYLE_RPC - .equals(match.getOperationStyle())) - responseSig.createRPCSignature(); - - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(this); - traversal.setVisitor(this); - traversal.visitSOAPFault(true); - traversal.ignoreBindingInput(); - traversal.ignoreBindingOutput(); - - if (responseSig == null || !responseSig.isFault()) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else if (responseSig != null && responseSig.isFault()) - { - // extract all faults and try find them in the definition - // extracts only faults with namespace - Element body = - XMLUtils.findChildElement( - docResponse.getDocumentElement(), - WSITag.ELEM_SOAP_BODY); - Element fault = - XMLUtils.findChildElement(body, WSITag.ELEM_SOAP_FAULT); - Element detail = XMLUtils.getElement("detail", fault); - if (detail == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - result = AssertionResult.RESULT_PASSED; - - faults = XMLUtils.getChildElements(detail); - - // REMOVE: Why do the faults have to be namespaced qualified? - //XMLUtils.removeAllElementsWithoutNS(faults); - - // if faults exist try to validate it - if (faults.size() > 0) - { - Map m = new HashMap(); - WSDLUtil.expandDefinition( - validator.analyzerContext - .getCandidateInfo() - .getWsdlDocument() - .getDefinitions()); - m.put( - "definition", - validator.analyzerContext - .getCandidateInfo() - .getWsdlDocument() - .getDefinitions()); - TypesRegistry tReg = - new TypesRegistry( - validator.analyzerContext - .getCandidateInfo() - .getWsdlDocument() - .getDefinitions(), - validator); - m.put("TypesRegistry", tReg); - traversal.traverse(match.getOperation(), m); - if (faults.size() > 0) - { - result = AssertionResult.RESULT_WARNING; - StringWriter sw = new StringWriter(); - for (int i = 0; i < faults.size(); i++) - { - try - { - XMLUtils.serializeElement((Element) faults.get(i), sw); - } - catch (Exception e) - { - } - } - try - { - sw.close(); - } - catch (Exception e) - { - } - failureDetail = - this.validator.createFailureDetail( - "\nFaults:\n" + sw.toString(), - entryContext); - } - else - result = AssertionResult.RESULT_PASSED; - } - } - } - } - } - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1201.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1201.java deleted file mode 100644 index 7af6934b4..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1201.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - - -/** - * BP1201. - * The namespace of the soap:Envelope in the message has value: http://schemas.xmlsoap.org/soap/envelope/. - */ -public class BP1201 extends AssertionProcess implements WSITag -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1201(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - Document doc; - // Check if this is one way response or message is mepty or invalid - if (this.validator.isOneWayResponse(entryContext) || - (doc = entryContext.getMessageEntryDocument()) == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - Element root = doc.getDocumentElement(); - String ns = root.getNamespaceURI(); - String local = root.getLocalName(); - if (!ELEM_SOAP_ENVELOPE.getNamespaceURI().equals(ns)) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - "Root element has namespace: " + ns, entryContext); - } - - else if (!ELEM_SOAP_ENVELOPE.getLocalPart().equals(local)) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - "Root element has local name: " + local, entryContext); - } - } - - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1202.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1202.java deleted file mode 100644 index a5abee105..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1202.java +++ /dev/null @@ -1,104 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - - -/** - * BP1202. - * Each child element (if any) of the soap:Body element is namespace qualified (not the grandchildren). - */ -public class BP1202 extends AssertionProcess implements WSITag -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1202(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // Parse log message - Document doc = entryContext.getMessageEntryDocument(); - - if (validator.isOneWayResponse(entryContext)) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - // Check if there is a soap body element - else if (!validator.containsSoapBodyWithChild(doc)) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - // Get the root element - Element root = doc.getDocumentElement(); - - // Get a node list which should contain the soap:Body element - NodeList rootNodeList = root.getElementsByTagNameNS( - ELEM_SOAP_BODY.getNamespaceURI(), ELEM_SOAP_BODY.getLocalPart()); - - // If there is at least one soap:Body element, - // then make sure that each child is namespace qualified - if (rootNodeList.getLength() > 0) - { - // Get the soap:Body element - Element body = (Element) rootNodeList.item(0); - - // Get the list of soap:Body child elements - NodeList children = body.getChildNodes(); - - // Make sure that each child element is namespace qualified - for (int i = 0; - i < children.getLength() && result == AssertionResult.RESULT_PASSED; - ++i) - { - Node n = children.item(i); - if (n instanceof Element) - { - String ns = n.getNamespaceURI(); - if (ns == null || ns.length() == 0) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - entryContext.getMessageEntry().getMessage(), entryContext); - } - } - } - } - } - - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1203.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1203.java deleted file mode 100644 index 8470acb61..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1203.java +++ /dev/null @@ -1,147 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.NodeList; - - -/** - * BP1203. - * The namespace of the detail element of a qualified attribute in the soap:Fault is a - * foreign namespace, different from "http://schemas.xmlsoap.org/soap/envelope/". - */ -public class BP1203 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1203(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - boolean qualifiedAttributes = false; - - Document doc; - // Check if this is one way response or message is mepty or invalid - if (this.validator.isOneWayResponse(entryContext) - || (doc = entryContext.getMessageEntryDocument()) == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - // ADD: Need to determine if this check is required, since it should already be done - // Applicable to response messages only - if (entryContext - .getMessageEntry() - .getType() - .equalsIgnoreCase(MessageEntry.TYPE_RESPONSE)) - { - // look for <soap:Fault> element: - NodeList faultList = - doc.getElementsByTagNameNS( - WSIConstants.NS_URI_SOAP, - XMLUtils.SOAP_ELEM_FAULT); - if ((faultList == null) || (faultList.getLength() == 0)) - { - // Response does not contain a soap:Fault - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - // we have a soap:Fault. - else - { - try - { - // look at each soap:Fault in turn - for (int i = 0; i < faultList.getLength(); i++) - { - Element soapFault = (Element) faultList.item(i); - // find the detail element(s) if any - NodeList detailList = - soapFault.getElementsByTagName(XMLUtils.SOAP_ELEM_FAULT_DETAIL); - if (detailList != null) - { - // for each detail element... - for (int j = 0; j < detailList.getLength(); j++) - { - NamedNodeMap detailAttribs = - detailList.item(j).getAttributes(); - // check for any qualified attributes - if (detailAttribs != null) - { - for (int k = 0; k < detailAttribs.getLength(); k++) - { - Attr nextAttr = (Attr) (detailAttribs.item(k)); - // for each qualified attribute, check that - // qname != http://schemas.xmlsoap.org/soap/envelope - if (nextAttr.getNamespaceURI() != null) - { - qualifiedAttributes = true; - if (nextAttr - .getNamespaceURI() - .equals(WSIConstants.NS_URI_SOAP)) - { - // found unexpected qname - throw new AssertionFailException( - entryContext.getMessageEntry().getMessage()); - } - } - } - } - } - } - } - - if (!qualifiedAttributes) - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(e.getMessage(), entryContext); - } - } - } - else - { - // target message is not a Response - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1204.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1204.java deleted file mode 100644 index 73c09fbbb..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1204.java +++ /dev/null @@ -1,302 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 2009 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import java.util.Collection; -import java.util.Iterator; -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.BindingOperation; -import javax.wsdl.Message; -import javax.wsdl.Part; -import javax.wsdl.Types; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.schema.Schema; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionPassException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; -import org.eclipse.wst.wsi.internal.core.util.OperationSignature; -import org.eclipse.wst.wsi.internal.core.util.TypesRegistry; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; - - -/** - * BP1204. - * The serialized array form in the message does not contain the - * soapenc:arrayType attribute. - * - */ -public class BP1204 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1204(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /** - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(TestAssertion, EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - - if (this.validator.isOneWayResponse(entryContext)) - throw new AssertionNotApplicableException(); - - // Parse message - Document doc = - XMLUtils.parseXML(entryContext.getMessageEntry().getMessage()); - - if (this.validator.isFault(doc)) - { - throw new AssertionPassException(); - } - - // Parse request message - Document docRequest = - XMLUtils.parseXML(entryContext.getRequest().getMessage()); - - // get SOAPAction - String headers = entryContext.getRequest().getHTTPHeaders(); - String action = null; - if (headers != null) - action = (String) HTTPUtils.getHttpHeaderTokens(headers, ":").get("SOAPAction".toUpperCase()); - - Binding binding = validator.analyzerContext.getCandidateInfo().getBindings()[0]; - TypesRegistry registry = - new TypesRegistry( - this.validator.getWSDLDocument().getDefinitions(), - validator); - OperationSignature.OperationMatch match = - OperationSignature.matchOperation( - docRequest, - action, - binding, - registry); - - if (match == null) - throw new AssertionPassException(); - - BindingOperation bindingOperation = match.getOperation(); - - Message operationMessage = null; - if (MessageEntry - .TYPE_REQUEST - .equals(entryContext.getMessageEntry().getType()) - && (bindingOperation.getOperation().getInput() != null)) - { - operationMessage = - bindingOperation.getOperation().getInput().getMessage(); - } - else - { - if (MessageEntry - .TYPE_RESPONSE - .equals(entryContext.getMessageEntry().getType()) - && (bindingOperation.getOperation().getOutput() != null)) - { - operationMessage = - bindingOperation.getOperation().getOutput().getMessage(); - } - } - - if (operationMessage == null) - throw new AssertionPassException(); - - boolean isContainArray = false; - - Collection parts = operationMessage.getParts().values(); - for (Iterator iter = parts.iterator(); iter.hasNext();) - { - Part part = (Part) iter.next(); - - QName type = null; - - if (part.getTypeName() == null) - { - type = registry.getType(part.getElementName()); - } - else - { - type = part.getTypeName(); - } - - isContainArray = - registry.isExtendsArray(type) - || registry.isUsesWSDLArrayType(type) - || isArrayType(type); - if (isContainArray) - break; - } - - if (isContainArray) - { - // Gets body - NodeList soapBodyList = - doc.getElementsByTagNameNS( - WSIConstants.NS_URI_SOAP, - XMLUtils.SOAP_ELEM_BODY); - if (soapBodyList.getLength() == 0 || soapBodyList.getLength() > 1) - { - throw new AssertionFailException(); - } - - Element soapBodyElem = (Element) soapBodyList.item(0); - - NodeList soapBodyCildrenList = - soapBodyElem.getElementsByTagNameNS("*", "*"); - for (int indexChild = 0; - indexChild < soapBodyCildrenList.getLength(); - indexChild++) - { - Element elem = (Element) soapBodyCildrenList.item(indexChild); - if (elem - .hasAttributeNS( - WSIConstants.NS_URI_SOAP_ENCODING, - WSIConstants.ATTR_ARRAY_TYPE)) - { - throw new AssertionFailException(); - } - } - - throw new AssertionPassException(); - } - else - { - throw new AssertionPassException(); - } - - } - catch (AssertionNotApplicableException e) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - this.validator.createFailureDetail( - entryContext.getMessageEntry().getMessage(), - entryContext); - } - catch (AssertionPassException e) - { - result = AssertionResult.RESULT_PASSED; - } - catch (Exception e) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } - - /** - * Checks whether type uses an array or not. - * @param type - * @return boolean - */ - private boolean isArrayType(QName type) - { - boolean arrayType = false; - - Element typeElement = getTypeElement(type); - if (typeElement != null) - { - NodeList list = - typeElement.getElementsByTagNameNS( - WSIConstants.NS_URI_XSD, - "sequence"); - if (list.getLength() > 0) - arrayType = true; - } - - return arrayType; - } - - /** - * Gets XML element defining the type. - * @param type - * @return Element - */ - private Element getTypeElement(QName type) - { - Types[] allTypes = validator.analyzerContext.getCandidateInfo().getTypes(); - for (int i = 0; allTypes != null && i < allTypes.length; i++) - { - Element typesElement = null; - if (allTypes[i] != null) - { - typesElement = allTypes[i].getDocumentationElement(); - if (typesElement == null) - { - List extList = allTypes[i].getExtensibilityElements(); - for (Iterator iter = extList.iterator(); iter.hasNext();) - { - ExtensibilityElement extElem = (ExtensibilityElement) iter.next(); - - if (extElem - .getElementType() - .equals(new QName(WSIConstants.NS_URI_XSD, "schema"))) - { - typesElement = - ((Schema) extElem).getElement(); - break; - } - } - } - if (typesElement != null) - { - NodeList complexTypesList = - typesElement.getElementsByTagNameNS( - WSIConstants.NS_URI_XSD, - "complexType"); - for (int j = 0; j < complexTypesList.getLength(); j++) - { - Element typeElem = (Element) complexTypesList.item(j); - if (type.getLocalPart().equals(typeElem.getAttribute("name"))) - { - return typeElem; - } - } - - } - } - } - return null; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1208.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1208.java deleted file mode 100644 index a26af9236..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1208.java +++ /dev/null @@ -1,88 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLTraversal; -import org.w3c.dom.Document; -import org.w3c.dom.ProcessingInstruction; - - -/** - * BP1208 NOT FULLY TESTED. - */ -public class BP1208 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1208(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // Parse log message - Document doc = entryContext.getMessageEntryDocument(); - if (doc == null) { - //message is empty or invalid, the assertion is not applicable - result = AssertionResult.RESULT_NOT_APPLICABLE; - - } else { - - // Traverse document looking for processing instructions. - // ISSUE: this inner class needs ... revisiting/replacing - // EG. Do we want to list all processing instructions, - // or is the first sufficient? - XMLTraversal traversal = new XMLTraversal() - { - public void visit(ProcessingInstruction pi) - { - try - { - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = - "Target: " + pi.getTarget() + ", Data: " + pi.getData(); - } - catch (Exception e) - { - // ADD: How should this exception be handled? - } - - super.visit(pi); - } - }; - - traversal.visit(doc); - - if (result == AssertionResult.RESULT_FAILED - && failureDetailMessage != null) - { - failureDetail = this.validator.createFailureDetail(failureDetailMessage, entryContext); - } - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1211.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1211.java deleted file mode 100644 index 69133b820..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1211.java +++ /dev/null @@ -1,147 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import javax.wsdl.Binding; -import javax.wsdl.BindingOperation; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; -import org.eclipse.wst.wsi.internal.core.util.OperationSignature; -import org.eclipse.wst.wsi.internal.core.util.TypesRegistry; -import org.eclipse.wst.wsi.internal.core.wsdl.WSDLUtils; -import org.eclipse.wst.wsi.internal.core.xml.XMLTags; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - - -/** - * BP1211. - * - * Context: - * For a candidate message in the message log file, that is referred by a binding style RPC-literal - * - * Description: - * Part accessor elements in the message do not have an xsi:nil attribute with a value of "1" or "true". - */ -public class BP1211 extends AssertionProcess implements XMLTags -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1211(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /** - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(TestAssertion, EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - if (validator.isOneWayResponse(entryContext)) - throw new AssertionNotApplicableException(); - - // Parse message - Document doc = entryContext.getMessageEntryDocument(); - Document docRequest = entryContext.getRequestDocument(); - - Element soapOperation = null; - // If there is a Fault entry or no body entries, - // the assertion is not applicable - if (validator.isFault(doc) - || (soapOperation = validator.getSoapBodyChild(doc)) == null) - throw new AssertionNotApplicableException(); - - // Get SOAPAction - String headers = entryContext.getRequest().getHTTPHeaders(); - String action = null; - if (headers != null) - action = (String) HTTPUtils.getHttpHeaderTokens(headers, ":").get("SOAPAction".toUpperCase()); - - // Get the binding that is being processed - Binding binding = validator.analyzerContext.getCandidateInfo().getBindings()[0]; - - //Create the types registry - TypesRegistry registry = - new TypesRegistry( - this.validator.getWSDLDocument().getDefinitions(), - validator); - - // Find an operation match - OperationSignature.OperationMatch match = - OperationSignature.matchOperation( - docRequest, - action, - binding, - registry); - if (match == null) - throw new AssertionNotApplicableException(); - - // Get the binding operation based on the match - BindingOperation bindingOperation = match.getOperation(); - - // If this is not rpc-literal, then return notApplicable result - if (!WSDLUtils - .isRpcLiteral(match.getOperationStyle(), bindingOperation)) - throw new AssertionNotApplicableException(); - - // Going through all the accessors - Element accessor = XMLUtils.getFirstChild(soapOperation); - while (accessor != null) - { - Attr attr = XMLUtils.getAttribute(accessor, ATTR_XSI_NIL); - // If there is xsi:nil attribute and its value is "1" or "true" - // the assertion failed - if (attr != null - && (attr.getValue().equals("1") || attr.getValue().equals("true"))) - { - throw new AssertionFailException("The accessor name is " - + accessor.getNodeName()); - } - // Getting the next accessor - accessor = XMLUtils.getNextSibling(accessor); - } - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - catch (Exception e) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1212.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1212.java deleted file mode 100644 index 8c1f77280..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1212.java +++ /dev/null @@ -1,165 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import java.util.Iterator; -import java.util.List; - -import javax.wsdl.BindingOperation; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -/** - * BP1212 - * - * <context>For a candidate non-fault envelope containing a soap:body with at least one element</context> - * <assertionDescription>The envelope contains exactly one part accessor element for each of the wsdl:part elements bound to the envelope's corresponding soapbind:body element.</assertionDescription> - */ -public class BP1212 extends AssertionProcess { - - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1212(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - if (validator.isOneWayResponse(entryContext)) - throw new AssertionNotApplicableException(); - - // Getting a message document - Document doc = entryContext.getMessageEntryDocument(); - - Element soapOperation = null; - // If there is a Fault entry or no body entries, - // the assertion is not applicable - if (validator.isFault(doc) - || (soapOperation = validator.getSoapBodyChild(doc)) == null) - throw new AssertionNotApplicableException(); - - // Creating a qualified name of potential SOAP operation - QName operationQName = new QName( - soapOperation.getNamespaceURI(), soapOperation.getLocalName()); - - // Retrieving all the RPC binding operations from wsdl:binding - BindingOperation[] rpcBindingOperations = - validator.getMatchingBindingOps( - WSIConstants.ATTRVAL_SOAP_BIND_STYLE_RPC, - validator.analyzerContext.getCandidateInfo().getBindings()); - - // Retrieving binding operation by given operation name - BindingOperation bindingOperation = validator.getOperationMatch( - entryContext.getEntry().getEntryType(), - operationQName, - rpcBindingOperations); - - // If there is no matched operation, the assertion is not applicable - if (bindingOperation == null) - throw new AssertionNotApplicableException(); - - // Finding operation message parts and extensibility elems - // in the binding depending on message type - List operationMessageParts = null; - List extElems = null; - if (entryContext.getMessageEntry().getType().equals( - MessageEntry.TYPE_REQUEST)) - { - operationMessageParts = bindingOperation.getOperation() - .getInput().getMessage().getOrderedParts(null); - if (bindingOperation.getBindingInput() != null) - extElems = - bindingOperation.getBindingInput().getExtensibilityElements(); - } - else - { - operationMessageParts = bindingOperation.getOperation() - .getOutput().getMessage().getOrderedParts(null); - if (bindingOperation.getBindingOutput() != null) - extElems = - bindingOperation.getBindingOutput().getExtensibilityElements(); - } - - // Getting all the accessors of the operation element - List accessors = XMLUtils.getChildElements(soapOperation); - // Getting the ordered list of wsdl:part names - List orderedPartNames = - validator.orderPartNames(operationMessageParts, extElems); - // Going through all the wsdl:part names - Iterator i = orderedPartNames.iterator(); - while (i.hasNext()) - { - String partName = (String) i.next(); - // If there is not exactly one accessor for the part specified, - // the assertion failed - if (getPartsCount(accessors, partName) != 1) - throw new AssertionFailException( - "The name of wsdl:part is " + partName); - } - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Counts the amount of accessors of a specific name - * @param accessors a list of accessors - * @param name the name of accessor elements to be counted - * @return - */ - private int getPartsCount(List accessors, String name) - { - int count = 0; - - for (int i = 0; i < accessors.size(); i++) - { - Element accessor = (Element) accessors.get(i); - if (accessor.getLocalName().equals(name)) - count++; - } - - return count; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1213.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1213.java deleted file mode 100644 index 555d8463c..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1213.java +++ /dev/null @@ -1,141 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import java.util.List; - -import javax.wsdl.BindingOperation; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -/** - * BP1213 - * - * <context>For a candidate non-fault envelope containing a soap:Body element, and is referred by a doc-literal binding</context> - * <assertionDescription>The envelope has no element content in the soap:Body element if the value of the parts attribute of the soapbind:body is an empty string in the corresponding doc-literal description.</assertionDescription> - */ -public class BP1213 extends AssertionProcess { - - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1213(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - if (validator.isOneWayResponse(entryContext)) - throw new AssertionNotApplicableException(); - - // Getting a message document - Document doc = entryContext.getMessageEntryDocument(); - - Element messageElement = null; - // If the message is empty or invalid or there is a Fault entry - // or there is no body entries, the assertion is not applicable - if (doc == null - || validator.isFault(doc) - || (messageElement = validator.getSoapBodyChild(doc)) == null) - throw new AssertionNotApplicableException(); - - // Getting a qualified name of message element - QName messagePartElementQName = new QName( - messageElement.getNamespaceURI(), messageElement.getLocalName()); - - // Retrieving all the document binding operations from wsdl:binding - BindingOperation[] docBindingOperations = - validator.getMatchingBindingOps( - WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC, - validator.analyzerContext.getCandidateInfo().getBindings()); - - // Retrieving binding operation by given element name - BindingOperation[] potentialDocLitOps = - validator.getDocLitOperations( - entryContext.getEntry().getEntryType(), - messagePartElementQName, - docBindingOperations); - - // If there is not exactly one operation matched, - // the assertion is not applicable - if (potentialDocLitOps.length != 1) - throw new AssertionNotApplicableException(); - - // Finding operation extensibility elems - // in the binding depending on message type - List extElems = null; - if (entryContext.getMessageEntry().getType().equals( - MessageEntry.TYPE_REQUEST) - && potentialDocLitOps[0].getBindingInput() != null) - { - extElems = potentialDocLitOps[0] - .getBindingInput().getExtensibilityElements(); - } - else if (entryContext.getMessageEntry().getType().equals( - MessageEntry.TYPE_RESPONSE) - && potentialDocLitOps[0].getBindingOutput() != null) - { - extElems = potentialDocLitOps[0] - .getBindingOutput().getExtensibilityElements(); - } - - // Getting the parts attribute from soapbind:body - List parts = null; - SOAPBody soapBody = validator.getSOAPBody(extElems); - if (soapBody != null) - parts = soapBody.getParts(); - - // if the parts attribute is an empty string and there is - // at least one accessor, the assertion failed - if (parts != null && parts.isEmpty() - && !XMLUtils.getChildElements(messageElement).isEmpty()) - throw new AssertionFailException("wsdl:operation name is " - + potentialDocLitOps[0].getName()); - - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1214.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1214.java deleted file mode 100644 index ada1346ee..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1214.java +++ /dev/null @@ -1,142 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import java.util.List; - -import javax.wsdl.BindingOperation; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -/** - * BP1214 - * - * <context>For a candidate non-fault envelope containing a soap:Body element, and is referred by a rpc-literal binding</context> - * <assertionDescription>The envelope does not contain any part accessor elements if the value of the parts attribute of the soapbind:body is an empty string in the corresponding rpc-literal description.</assertionDescription> - */ -public class BP1214 extends AssertionProcess { - - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1214(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - if (validator.isOneWayResponse(entryContext)) - throw new AssertionNotApplicableException(); - - // Getting a message document - Document doc = entryContext.getMessageEntryDocument(); - - Element soapOperation = null; - // If there is a Fault entry or no body entries, - // the assertion is not applicable - if (validator.isFault(doc) - || (soapOperation = validator.getSoapBodyChild(doc)) == null) - throw new AssertionNotApplicableException(); - - // Creating a qualified name of potential SOAP operation - QName operationQName = new QName( - soapOperation.getNamespaceURI(), soapOperation.getLocalName()); - - // Retrieving all the RPC binding operations from wsdl:binding - BindingOperation[] rpcBindingOperations = - validator.getMatchingBindingOps( - WSIConstants.ATTRVAL_SOAP_BIND_STYLE_RPC, - validator.analyzerContext.getCandidateInfo().getBindings()); - - // Retrieving binding operation by given operation name - BindingOperation bindingOperation = validator.getOperationMatch( - entryContext.getEntry().getEntryType(), - operationQName, - rpcBindingOperations); - - // If there is no matched operation, the assertion is not applicable - if (bindingOperation == null) - throw new AssertionNotApplicableException(); - - // Finding operation extensibility elems - // in the binding depending on message type - List extElems = null; - if (entryContext.getMessageEntry().getType().equals( - MessageEntry.TYPE_REQUEST) - && bindingOperation.getBindingInput() != null) - { - extElems = - bindingOperation.getBindingInput().getExtensibilityElements(); - } - else if (entryContext.getMessageEntry().getType().equals( - MessageEntry.TYPE_RESPONSE) - && bindingOperation.getBindingOutput() != null) - { - extElems = - bindingOperation.getBindingOutput().getExtensibilityElements(); - } - - // If the message is not literal, the assertion is not applicable - if (!validator.isLiteral(extElems)) - throw new AssertionNotApplicableException(); - - // Getting the parts attribute from soapbind:body - List parts = null; - SOAPBody soapBody = validator.getSOAPBody(extElems); - if (soapBody != null) - parts = soapBody.getParts(); - - // if the parts attribute is an empty string and there is - // at least one accessor, the assertion failed - if (parts != null && parts.isEmpty() - && !XMLUtils.getChildElements(soapOperation).isEmpty()) - throw new AssertionFailException("wsdl:operation name is " - + bindingOperation.getName()); - - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1301.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1301.java deleted file mode 100644 index 92a20c735..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1301.java +++ /dev/null @@ -1,198 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - - -/** - * BP1301. - */ -public class BP1301 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1301(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - //Get the requets message and check the value of mustUnderstand. - String message = entryContext.getMessageEntry().getMessage(); - Object[] mustUnderstandAttributes = getMustUnderstandAttributes(message); - - if (mustUnderstandAttributes == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - for (int index = 0; index < mustUnderstandAttributes.length; index++) - { - if ((mustUnderstandAttributes[index] != null) - && (mustUnderstandAttributes[index].equals("1") - || mustUnderstandAttributes[index].equals("0"))) - { - result = AssertionResult.RESULT_PASSED; - } - else - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - this.validator.createFailureDetail( - "The SOAP mustUnderstand attribute was present " - + " and its value was " - + mustUnderstandAttributes[index], - entryContext); - } //End if - } //End for - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } - - //Retreives the value of the mustUnderstand attribute from ALL SOAP header - //If the Header is missing or if it does not contain any targets or if - //the header does not contain a mustUnderstand attribute then set the - //assertionResult to RESULT_NOT_APPLICABLE. - private Object[] getMustUnderstandAttributes(String message) - throws WSIException - { - if (message == null || message.trim().equals("")) { - return null; - } - - Document doc = XMLUtils.parseXML(message); - NodeList headers = - doc.getElementsByTagNameNS(WSIConstants.NS_URI_SOAP, "Header"); - - //If a header not present set result to notApplicable - //else process each headerEntry - if (headers.getLength() <= 0) - { - return null; - } - else - { - Vector mustUnderstandAttributes = new Vector(); - Element header = (Element) headers.item(0); - if (header == null) - return null; - - NodeList headerEntries = header.getChildNodes(); - //For each header entry check retreive the mustUnderstand attribute - //if any, else set the test result to notApplicable - - //This is used to indicate if a header contained any child Elements - boolean headerTargets = false; - - for (int index = 0; index < headerEntries.getLength(); ++index) - { - Node headerEntry = headerEntries.item(index); - if (headerEntry.getNodeType() == Node.ELEMENT_NODE) - { - headerTargets = true; - Attr mustUnderstand = - ((Element) headerEntry).getAttributeNodeNS( - WSIConstants.NS_URI_SOAP, - "mustUnderstand"); - //Retreive the value of the mustUnderstand attribute of the request. - if (mustUnderstand != null) - { - String mustUnderstandValue = mustUnderstand.getNodeValue(); - mustUnderstandAttributes.add(mustUnderstandValue); - } - else - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - //The SOAP Header does not contain a mustUnderstand attribute." - } // mustUnderstand != null - } - } //End for - - if (!headerTargets) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - //The SOAP Header does not contain any header entries. - } - - return mustUnderstandAttributes.toArray(); - } //End If headers.getLength() < 0 - } - - /** - * Returns true if this object is must understand fault code. - * @param faultCodeElem understand fault code. - * @return true if this object is must understand fault code. - */ - public boolean isMustUnderstandFaultCode(Element faultCodeElem) - { - //A faultcode may or maynot have a prefix, if it does its namespace should be - //htt://schemas.xmlsoap.org/soap/envelope which is the same as the faultcode element. - //If a prefix is present and it corresponds to a different namespace or is null - //then this returns false. The local part of the faultcode is then check to see - //if it is one of the permitted values. - if (faultCodeElem == null) - return false; - - String faultCode = faultCodeElem.getFirstChild().getNodeValue().trim(); - if (faultCode == null) - return false; - - String faultCodeElemPrefix = faultCodeElem.getPrefix(); - String faultCodePrefix = faultCode.substring(0, faultCode.indexOf(':')); - String faultCodeName = - faultCode.substring(faultCode.indexOf(':') + 1, faultCode.length()); - - if ((faultCodeElemPrefix != null || faultCodePrefix != null)) - { - if (faultCodePrefix.equals(faultCodeElemPrefix) - && (faultCodeName.equals("MustUnderstand") - || faultCodeName.startsWith("MustUnderstand."))) - return true; - else - return false; - } - else - { - if (faultCode.equals("MustUnderstand") - || faultCodeName.startsWith("MustUnderstand.")) - return true; - else - return false; - } - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1302.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1302.java deleted file mode 100644 index 63acd565a..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1302.java +++ /dev/null @@ -1,181 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - - -/** - * BP1302. - * The soap:faultcode value in the soap:Fault element of the response - * message is not custom, and is one of: VersionMismatch, MustUnderstand, Client, Server. - */ -public class BP1302 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1302(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - //SOAP fault code values should not be custom: only standard code qualifiers - //are used: VersionMismatch, MustUnderstand, Client, Server - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - //String requestMessage = null; - String responseMessage = null; - - if (this.validator.isOneWayResponse(entryContext)) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - //Get the response message check the faultcode. - MessageEntry logEntryResponse = entryContext.getResponse(); - if (logEntryResponse != null) - { - responseMessage = logEntryResponse.getMessage(); - - Document targetDoc = XMLUtils.parseXML(responseMessage); - NodeList faultCodes = targetDoc.getElementsByTagName("faultcode"); - // targetDoc.getElementsByTagNameNS(WSIConstants.NS_URI_SOAP, "faultcode"); - - if (faultCodes.getLength() <= 0) - result = AssertionResult.RESULT_NOT_APPLICABLE; - //No faultcode - - for (int i = 0; i < faultCodes.getLength(); i++) - { - Node faultCodeElem = faultCodes.item(i); - //If the faultcode was MustUnderstand, check the value of - //the mustUnderstand attribute in the request. - if (faultCodeElem == null) - result = AssertionResult.RESULT_NOT_APPLICABLE; - else if (faultCodeElem.getNodeType() == Node.ELEMENT_NODE) - { - if (isValidFaultCode((Element) faultCodeElem)) - { - result = AssertionResult.RESULT_PASSED; - } - else - { - result = AssertionResult.RESULT_WARNING; - failureDetail = - this.validator.createFailureDetail(responseMessage, entryContext); - //failureDetail = - // "The faultcode value was : " - // + faultCodeElem.getFirstChild().getNodeValue().trim(); - } //End if (faultCode.equals...) - } - else - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - } //End for - } //End if logEntryResponse!= null - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } - - /** - * Check faultCode. - * @param faultCodeElem a faultcode. - * @return true if faultcode is valid. - */ - public boolean isValidFaultCode(Element faultCodeElem) - { - //A faultcode may or maynot have a prefix, if it does its namespace should be - //http://schemas.xmlsoap.org/soap/envelope which is the same as the faultcode element. - //If a prefix is present and it corresponds to a different namespace or is null - //then this returns false. The local part of the faultcode is then check to see - //if it is one of the permitted values. - if (faultCodeElem == null) - return true; - - String faultCode = faultCodeElem.getFirstChild().getNodeValue().trim(); - if (faultCode == null) - return false; - - // FIX: This is not correct, since this element can not be namespace qualified - String faultCodeElemPrefix = faultCodeElem.getParentNode().getPrefix(); - - // If this is not a QName then return false - int index; - String faultCodePrefix = null; - String faultCodeName = faultCode; - if ((index = faultCode.indexOf(':')) != -1) - { - faultCodePrefix = faultCode.substring(0, index); - faultCodeName = faultCode.substring(index + 1, faultCode.length()); - } - - if ((faultCodeElemPrefix != null && faultCodePrefix != null)) - { - if (faultCodePrefix.equals(faultCodeElemPrefix)) - { - if ((faultCodeName.equals("MustUnderstand") - || faultCodeName.equals("VersionMismatch") - || faultCodeName.equals("Client") - || faultCodeName.equals("Server"))) - /* REMOVE: - || faultCodeName.startsWith("MustUnderstand.") - || faultCodeName.startsWith("VersionMismatch.") - || faultCodeName.startsWith("Client.") - || faultCodeName.startsWith("Server."))) - */ - return true; - else - return false; - } - else - { - return true; - } - } - else - { - if (faultCodeName.equals("MustUnderstand") - || faultCodeName.equals("VersionMismatch") - || faultCodeName.equals("Client") - || faultCodeName.equals("Server") - || faultCodeName.startsWith("MustUnderstand.") - || faultCodeName.startsWith("VersionMismatch.") - || faultCodeName.startsWith("Client.") - || faultCodeName.startsWith("Server.")) - return true; - else - return false; - } - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1305.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1305.java deleted file mode 100644 index ee9b2aa9c..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1305.java +++ /dev/null @@ -1,132 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import java.net.HttpURLConnection; -import com.ibm.icu.util.StringTokenizer; -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.NodeList; - - -/** - * BP1305. - * It is in an HTTP 500 message with "Server" Error code. - */ -public class BP1305 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1305(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - Document doc; - // Check if this is one way response - // or message is mepty or invalid - if (this.validator.isOneWayResponse(entryContext) - || (doc = entryContext.getMessageEntryDocument()) == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - // look for <soap:Fault> element: - NodeList faultList = - doc.getElementsByTagNameNS( - WSIConstants.NS_URI_SOAP, - XMLUtils.SOAP_ELEM_FAULT); - if ((faultList == null) || (faultList.getLength() == 0)) - { - // Response does not contain a soap:fault - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - // we have a soap:Fault. Check that it is contained in a HTTP 500 message - // GT : base HTTP Header parsing on BP1001 - this should be factored to a - // general-purpose HTTP message parsing method or methods (request & response) - String httpHeader = entryContext.getMessageEntry().getHTTPHeaders(); - //Response-Line = HTTP-Version ResponseCode ResponseMsg SP CRLF - Vector responseLine = new Vector(); - String startLine = null; - //String httpVersion = null; - //String responseCode = null; - String statusCode = null; - StringTokenizer httpMessageTokenizer = - new StringTokenizer(httpHeader, "\n\r\f"); - - if (httpMessageTokenizer.hasMoreTokens()) - startLine = httpMessageTokenizer.nextToken(); - - if (startLine.startsWith("HTTP")) - { - StringTokenizer startLineTokenizer = - new StringTokenizer(startLine, "\u0020"); - - while (startLineTokenizer.hasMoreTokens()) - { - responseLine.add(startLineTokenizer.nextToken()); - } - - //httpVersion = (String) responseLine.get(0); - - // PB: Check for 500 status code which should be the second token in the string - statusCode = (String) responseLine.get(1); - - //responseCode = (String) responseLine.get(1); - //statusCode = (String) responseLine.get(2); - } - try - { - // PB: Just check for 500 status code - if (!statusCode - .equals(String.valueOf(HttpURLConnection.HTTP_INTERNAL_ERROR))) - { - //if (!responseCode.equalsIgnoreCase("OK") || - // (!statusCode.equalsIgnoreCase("ServerError"))) { - // Assertion failed - throw new AssertionFailException(httpHeader); - } - } - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(e.getMessage(), entryContext); - } - } - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1306.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1306.java deleted file mode 100644 index 13e40ed3d..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1306.java +++ /dev/null @@ -1,114 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - - -/** - * BP1306. - * The soap:Fault element does not have children other than soap:faultcode, soap:faultstring, soap:faultactor or soap:detail. - */ -public class BP1306 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1306(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - Document doc; - // Check if this is one way response - // or message is mepty or invalid - if (this.validator.isOneWayResponse(entryContext) - || (doc = entryContext.getMessageEntryDocument()) == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - // look for <soap:Fault> element: - NodeList faultList = - doc.getElementsByTagNameNS( - WSIConstants.NS_URI_SOAP, - XMLUtils.SOAP_ELEM_FAULT); - if ((faultList == null) || (faultList.getLength() == 0)) - { - // Response does not contain a soap:fault - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - // check that no soap:fault contains only faultcode, faultstring, faultactor, detail. - // If it does, further check that it is unqualified. - // For each <soap:Fault> - try - { - for (int n = 0; n < faultList.getLength(); n++) - { - for (Node child = faultList.item(n).getFirstChild(); - child != null; - child = child.getNextSibling()) - { - if ((child.getNodeType() == Node.ELEMENT_NODE) - && !(child - .getLocalName() - .equalsIgnoreCase(XMLUtils.SOAP_ELEM_FAULT_CODE) - || child.getLocalName().equalsIgnoreCase( - XMLUtils.SOAP_ELEM_FAULT_STRING) - || child.getLocalName().equalsIgnoreCase( - XMLUtils.SOAP_ELEM_FAULT_ACTOR) - || child.getLocalName().equalsIgnoreCase( - XMLUtils.SOAP_ELEM_FAULT_DETAIL))) - { - // PB: This is checked in 1316 now - //|| (child.getNamespaceURI() != null)) { - // Assertion failed - throw new AssertionFailException( - entryContext.getMessageEntry().getMessage()); - } - } - } - } - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(e.getMessage(), entryContext); - } - } - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1307.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1307.java deleted file mode 100644 index f66dd616c..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1307.java +++ /dev/null @@ -1,98 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; - - -/** - * BP1307. - * The elements of the message that are namespaced - * "http://schemas.xmlsoap.org/soap/envelope/" do not have a soap:encodingStyle attribute. - */ -public class BP1307 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1307(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - Document doc; - // Check if this is one way response - // or message is mepty or invalid - if (this.validator.isOneWayResponse(entryContext) - || (doc = entryContext.getMessageEntryDocument()) == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - // look for <soap:xxx> elements: - NodeList soapList = - doc.getElementsByTagNameNS(WSIConstants.NS_URI_SOAP, "*"); - if ((soapList == null) || (soapList.getLength() == 0)) - { - // Response does not contain any soap envelope elements - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - // check that no <soap:xxx> elements contains a soap:encodingStyle attribute - // For each <soap:xxx> - try - { - for (int n = 0; n < soapList.getLength(); n++) - { - Element nextElem = (Element) soapList.item(n); - if (nextElem - .getAttributeNodeNS(WSIConstants.NS_URI_SOAP, "encodingStyle") - != null) - { - // Assertion failed - throw new AssertionFailException( - entryContext.getMessageEntry().getMessage()); - } - } - } - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(e.getMessage(), entryContext); - } - } - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1308.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1308.java deleted file mode 100644 index ecc0a6fce..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1308.java +++ /dev/null @@ -1,97 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; - - -/** - * BP1308. - * The children elements of soap:Body do not have a soap:encodingStyle attribute. - */ -public class BP1308 extends AssertionProcess implements WSITag -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1308(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - // Getting a message document - Document doc = entryContext.getMessageEntryDocument(); - // If the message is empty or invalid, the assertion is not applicable - if (doc == null) - throw new AssertionNotApplicableException(); - - // look for soap:Body elements: - NodeList soapBodyList = doc.getElementsByTagNameNS( - ELEM_SOAP_BODY.getNamespaceURI(), ELEM_SOAP_BODY.getLocalPart()); - - // The message does not contain any soap:Body, the assertion is not applicable - if ((soapBodyList == null) || (soapBodyList.getLength() == 0)) - throw new AssertionNotApplicableException(); - - // check that no soap:Body child elements contain a soap:encodingStyle attribute - // Getting the first soap:Body child element - Element child = - XMLUtils.getFirstChild((Element) soapBodyList.item(0)); - while (child != null) - { - if (child.getAttributeNodeNS( - ELEM_SOAP_BODY.getNamespaceURI(), "encodingStyle") != null) - { - throw new AssertionFailException("The child element name is \"" + - child.getNodeName() + "\"."); - } - // Getting the next soap:Body child element - child = XMLUtils.getNextSibling(child); - } - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1309.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1309.java deleted file mode 100644 index fb3b6a4ba..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1309.java +++ /dev/null @@ -1,124 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - - -/** - * BP1309. - * The soap:Envelope does not have direct children after the soap:Body element - */ -public class BP1309 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1309(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - Document doc; - // Check if this is one way response - // or message is mepty or invalid - if (this.validator.isOneWayResponse(entryContext) - || (doc = entryContext.getMessageEntryDocument()) == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - // look for <soap:Envelope> elements: - // (Note: since this is a Soap message we expect exactly one soap envelope, but we do not assume it). - NodeList soapEnvList = - doc.getElementsByTagNameNS( - WSIConstants.NS_URI_SOAP, - XMLUtils.SOAP_ELEM_ENVELOPE); - if ((soapEnvList == null) || (soapEnvList.getLength() == 0)) - { - // Response does not contain any soap Envelope element(s) - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - // check that if a <soap:Body> exists in a <soap:Envelope>, that its the last in the envelope - try - { - // For each <soap:Envelope> - for (int n = 0; n < soapEnvList.getLength(); n++) - { - // Get the list of all elements in the Envelope - Element soapEnv = (Element) soapEnvList.item(n); - NodeList envChildList = soapEnv.getChildNodes(); - Vector envChildElemList = new Vector(); - for (int v = 0; v < envChildList.getLength(); v++) - { - Node nextNode = envChildList.item(v); - if (nextNode.getNodeType() == Node.ELEMENT_NODE) - { - envChildElemList.addElement((Element) nextNode); - } - } - // Search the list for <soap:Body> - for (int m = 0; m < envChildElemList.size(); m++) - { - Element envChildElem = (Element) envChildElemList.elementAt(m); - if (envChildElem - .getNamespaceURI() - .equals(WSIConstants.NS_URI_SOAP) - && envChildElem.getLocalName().equals(XMLUtils.SOAP_ELEM_BODY)) - { - // found a <soap:Body> so check its the last in the list of child elements of the Envelope - if (envChildElem != envChildElemList.lastElement()) - { - throw new AssertionFailException( - entryContext.getMessageEntry().getMessage()); - } - } - } - } - } - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(e.getMessage(), entryContext); - } - } - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1316.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1316.java deleted file mode 100644 index f84182f1b..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1316.java +++ /dev/null @@ -1,113 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - - -/** - * BP1316. - * The soap:Fault element children (soap:faultcode, soap:faultstring, soap:faultactor or soap:detail) are unqualified. - */ -public class BP1316 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1316(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - Document doc; - // Check if this is one way response - // or message is mepty or invalid - if (this.validator.isOneWayResponse(entryContext) - || (doc = entryContext.getMessageEntryDocument()) == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - // look for <soap:Fault> element: - NodeList faultList = - doc.getElementsByTagNameNS( - WSIConstants.NS_URI_SOAP, - XMLUtils.SOAP_ELEM_FAULT); - if ((faultList == null) || (faultList.getLength() == 0)) - { - // Response does not contain a soap:fault - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - // check that no soap:fault contains only faultcode, faultstring, faultactor, detail. - // If it does, further check that it is unqualified. - // For each <soap:Fault> - try - { - for (int n = 0; n < faultList.getLength(); n++) - { - for (Node child = faultList.item(n).getFirstChild(); - child != null; - child = child.getNextSibling()) - { - if ((child.getNodeType() == Node.ELEMENT_NODE) - && (child - .getLocalName() - .equalsIgnoreCase(XMLUtils.SOAP_ELEM_FAULT_CODE) - || child.getLocalName().equalsIgnoreCase( - XMLUtils.SOAP_ELEM_FAULT_STRING) - || child.getLocalName().equalsIgnoreCase( - XMLUtils.SOAP_ELEM_FAULT_ACTOR) - || child.getLocalName().equalsIgnoreCase( - XMLUtils.SOAP_ELEM_FAULT_DETAIL)) - && (child.getNamespaceURI() != null)) - { - // Assertion failed - throw new AssertionFailException( - entryContext.getMessageEntry().getMessage()); - } - } - } - } - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(e.getMessage(), entryContext); - } - } - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1318.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1318.java deleted file mode 100644 index a180801bd..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1318.java +++ /dev/null @@ -1,183 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import javax.wsdl.Binding; -import javax.wsdl.BindingOperation; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; -import org.eclipse.wst.wsi.internal.core.util.OperationSignature; -import org.eclipse.wst.wsi.internal.core.util.TypesRegistry; -import org.eclipse.wst.wsi.internal.core.wsdl.WSDLUtils; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - - -/** - * BP1318 - * - * The grandchildren elements of soap:Body do not have a soap:encodingStyle attribute. - */ -public class BP1318 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1318(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - if (this.validator.isOneWayResponse(entryContext)) - throw new AssertionNotApplicableException(); - - // Parse message - Document responseDoc = entryContext.getMessageEntryDocument(); - Document requestDoc = entryContext.getRequestDocument(); - - // messages are empty or invalid, DOM objects are null - if (responseDoc == null || requestDoc == null) { - throw new AssertionNotApplicableException(); - } - - //if (isFault(responseDoc)) - // throw new AssertionNotApplicableException(); - - // Get SOAPAction - String headers = entryContext.getRequest().getHTTPHeaders(); - String action = null; - if (headers != null) - action = (String) HTTPUtils.getHttpHeaderTokens(headers, ":").get("SOAPAction".toUpperCase()); - - // Get the binding that is being processed - Binding binding = validator.analyzerContext.getCandidateInfo().getBindings()[0]; - - //Create the types registry - TypesRegistry registry = - new TypesRegistry( - this.validator.getWSDLDocument().getDefinitions(), - validator); - - // Find an operation match - OperationSignature.OperationMatch match = - OperationSignature.matchOperation( - requestDoc, - action, - binding, - registry); - if (match == null) - throw new AssertionNotApplicableException(); - - // Get the binding operation based on the match - BindingOperation bindingOperation = match.getOperation(); - - // If this is not rpc-literal, then return notApplicable result - if (!WSDLUtils - .isRpcLiteral(match.getOperationStyle(), bindingOperation)) - { - throw new AssertionNotApplicableException(); - } - // look for <soap:Body> elements: - NodeList soapBodyList = - responseDoc.getElementsByTagNameNS( - WSIConstants.NS_URI_SOAP, - XMLUtils.SOAP_ELEM_BODY); - if ((soapBodyList == null) || (soapBodyList.getLength() == 0)) - // Response does not contain any soap Body elements - throw new AssertionNotApplicableException(); - - // check that no <soap:Body> child or grandchild elements contains a soap:encodingStyle attribute - // For each <soap:Body> - boolean grandChildFound = false; - for (int n = 0; n < soapBodyList.getLength(); n++) - { - Element nextBodyElem = (Element) soapBodyList.item(n); - // REMOVE: This will get all nodes (child, grandchildren, etc.) - //NodeList childList = nextBodyElem.getElementsByTagName("*"); - NodeList childList = nextBodyElem.getChildNodes(); - if (childList != null) - { - // check all child elements - for (int m = 0; m < childList.getLength(); m++) - { - if (childList.item(m).getNodeType() == Node.ELEMENT_NODE) - { - Element nextChildElem = (Element) childList.item(m); - // check children of this child - // REMOVE: This will get all nodes (child, grandchildren, etc.) - NodeList grandChildList = nextChildElem.getChildNodes(); - if (grandChildList != null) - { - for (int p = 0; p < grandChildList.getLength(); p++) - { - if (grandChildList.item(p).getNodeType() - == Node.ELEMENT_NODE) - { - grandChildFound = true; - Element nextGrandChildElem = - (Element) grandChildList.item(p); - if (nextGrandChildElem - .getAttributeNodeNS( - WSIConstants.NS_URI_SOAP, - "encodingStyle") - != null) - { - // Assertion failed (ADD highlight the child here ?) - throw new AssertionFailException( - entryContext.getMessageEntry().getMessage()); - } - } - } - } - } - } - } - } - if (!grandChildFound) - { - throw new AssertionNotApplicableException(); - } - } - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(e.getMessage(), entryContext); - } - catch (AssertionNotApplicableException e) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1600.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1600.java deleted file mode 100644 index 2014c1acf..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1600.java +++ /dev/null @@ -1,269 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import java.util.Collection; -import java.util.HashSet; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; - - -/** - * BP1600 - * - * <context>For a candidate envelope</context> - * <assertionDescription>The envelope conforms to the structure specified in SOAP 1.1 Section 4.</assertionDescription> - */ -public class BP1600 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1600(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - // Getting a message document - Document doc = entryContext.getMessageEntryDocument(); - - // If the message is empty or invalid, the assertion failed - if (doc == null) - { - if (this.validator.isOneWayResponse(entryContext)) - throw new AssertionNotApplicableException(); - else - throw new AssertionFailException("The log message is empty or invalid."); - } - // SOAP 1.1 specifications, Section 4. - // http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383494 - - // The namespace identifier for the elements and attributes defined - // in this section is "http://schemas.xmlsoap.org/soap/envelope/". - - // o The Envelope is the top element of the XML document representing the message. - - // Rule 1. Envelope - // o The element name is "Envelope". - // o The element MUST be present in a SOAP message - // o The element MAY contain namespace declarations as well as additional attributes. - // If present, such additional attributes MUST be namespace-qualified. Similarly, - // the element MAY contain additional sub elements. If present these elements - // MUST be namespace-qualified and MUST follow the SOAP Body element. - - // Getting the top element - Element element = doc.getDocumentElement(); - - // Assuming that the top element should be soap:Envelope - // If not, the assertion failed - if (!element.getLocalName().equals(XMLUtils.SOAP_ELEM_ENVELOPE) - || !isSOAPNamespace(element.getNamespaceURI())) - throw new AssertionFailException("The top element is not soap:Envelope"); - - // Collecting all the namespace declarations - Collection envelopeNamespaces = collectNamespaces(element.getAttributes()); - envelopeNamespaces.add(WSIConstants.NS_URI_XMLNS); - - // Getting an attribute that is not in any of the namespaces - Attr notValidAttr = getNotValidAttr( - element.getAttributes(), - envelopeNamespaces); - - // If found one, the assertion failed - if (notValidAttr != null) - throw new AssertionFailException("The attribute " - + notValidAttr.getNodeName() + " is not namespace-qualified"); - - - // Rule 2. Header - // o The element name is "Header". - // o The element MAY be present in a SOAP message. If present, the element - // MUST be the first immediate child element of a SOAP Envelope element. - // o The element MAY contain a set of header entries each being an immediate - // child element of the SOAP Header element. All immediate child elements - // of the SOAP Header element MUST be namespace-qualified. - - // Getting the first sub element of the envelope - element = XMLUtils.getFirstChild(element); - Collection headerNamespaces = collectNamespaces(element.getAttributes()); - - // If the child is soap:Header - if (element != null - && element.getLocalName().equals(XMLUtils.SOAP_ELEM_HEADER) - && isSOAPNamespace(element.getNamespaceURI())) - { - - // Going through all the Header entries - Element headerEntry = XMLUtils.getFirstChild(element); - while (headerEntry != null) - { - // Collecting all the namespaces for the current entry - Collection headerEntryNamespaces = collectNamespaces( - headerEntry.getAttributes()); - - // If the entry is not in the namespaces, the assertion failed - if (!envelopeNamespaces.contains(headerEntry.getNamespaceURI()) - && !headerNamespaces.contains(headerEntry.getNamespaceURI()) - && !headerEntryNamespaces.contains(headerEntry.getNamespaceURI())) - throw new AssertionFailException("The header entry " - + headerEntry.getNodeName() + " is not namespace-qualified"); - - // Getting the next Header entry - headerEntry = XMLUtils.getNextSibling(headerEntry); - } - - // Getting the next sub element of the envelope - element = XMLUtils.getNextSibling(element); - } - - - // Rule 3. Body - // o The element name is "Body". - // o The element MUST be present in a SOAP message and MUST be an immediate - // child element of a SOAP Envelope element. It MUST directly follow the - // SOAP Header element if present. Otherwise it MUST be the first immediate - // child element of the SOAP Envelope element. - // o The element MAY contain a set of body entries each being an immediate - // child element of the SOAP Body element. Immediate child elements of the - // SOAP Body element MAY be namespace-qualified. SOAP defines the SOAP Fault - // element, which is used to indicate error messages. - - // if the SOAP Body element is not presented, the assertion failed - if (element == null - || !element.getLocalName().equals(XMLUtils.SOAP_ELEM_BODY) - || !isSOAPNamespace(element.getNamespaceURI())) - throw new AssertionFailException("The soap:Body element is not presented " - + "or follows an additional sub element of soap:Envelope"); - - // Processing all other sub elements of the envelope - element = XMLUtils.getNextSibling(element); - while (element != null) - { - // Checking for the SOAP Header element - if (element.getLocalName().equals(XMLUtils.SOAP_ELEM_HEADER) - && isSOAPNamespace(element.getNamespaceURI())) - throw new AssertionFailException( - "The soap:Header element cannot follow the soap:Body element"); - - // Collecting all the namespaces for the current element - Collection elementNamespaces = collectNamespaces( - element.getAttributes()); - - // If the element is not in the namespaces, the assertion failed - if (!envelopeNamespaces.contains(element.getNamespaceURI()) - && !elementNamespaces.contains(element.getNamespaceURI())) - throw new AssertionFailException("The sub envelope element " - + element.getNodeName() + " is not namespace-qualified"); - - // Getting the next sub element of the envelope - element = XMLUtils.getNextSibling(element); - } - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Collects all the namespace declarations from attributes collection - * @param attrs an attributes collection - * @return a collection of namespaces - */ - private Collection collectNamespaces(NamedNodeMap attrs) - { - Collection ns = new HashSet(); - if (attrs != null) - { - for(int i = 0; i < attrs.getLength(); i++) - { - Attr attr = (Attr) attrs.item(i); - if (attr.getNamespaceURI() != null - && attr.getNamespaceURI().equals(WSIConstants.NS_URI_XMLNS)) - ns.add(attr.getValue()); - } - } - - return ns; - } - - /** - * Retrieves an attribute that is not in namespaces - * @param attrs an attributes collection - * @param ns a namespaces collection - * @return an attribtue that is not in any of the namespaces specified - */ - private Attr getNotValidAttr(NamedNodeMap attrs, Collection ns) - { - Attr ret = null; - if (attrs != null) - { - for(int i = 0; i < attrs.getLength(); i++) - { - Attr attr = (Attr) attrs.item(i); - if (attr.getNamespaceURI() == null - || !ns.contains(attr.getNamespaceURI())) - { - ret = attr; - break; - } - } - } - return ret; - } - - /** - * Qualifies whether a namespace is the SOAP namespace - * "http://schemas.xmlsoap.org/soap/envelope/" - * @param ns a namespace to be qualified - * @return true if the namespace is qualified, false otherwise - */ - private boolean isSOAPNamespace(String ns) - { - if (ns == null) - return false; - - return ns.equals(WSIConstants.NS_URI_SOAP); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1601.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1601.java deleted file mode 100644 index 78e7c4545..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1601.java +++ /dev/null @@ -1,73 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.xml.sax.SAXException; - - -/** - * BP1601. - */ -public class BP1601 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1601(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // One-way responses will not contain a SOAP message - if (this.validator.isOneWayResponse(entryContext)) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - try - { - // Try to parse the SOAP message - //Document doc = XMLUtils.parseXML(entryContext.getMessageEntry().getMessage()); - XMLUtils.parseXML(entryContext.getMessageEntry().getMessage()); - } - catch (WSIException e) - { - if (e.getTargetException() instanceof SAXException) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - this.validator.createFailureDetail( - e.getTargetException().getMessage(), - entryContext); - } - } - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1701.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1701.java deleted file mode 100644 index cca1c8958..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1701.java +++ /dev/null @@ -1,110 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.TestUtils; -import org.eclipse.wst.wsi.internal.core.util.Utils; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; -import org.xml.sax.SAXException; - -import com.ibm.wsdl.util.xml.DOM2Writer; - - -/** - * BP1701. - */ -public class BP1701 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1701(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - if (this.validator.isOneWayResponse(entryContext)) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - try - { - // TEMP: Use local copy of schema for now - // Document doc = XMLUtils.parseXML(entryContext.getLogEntry().getMessage(), WSIConstants.NS_URI_SOAP); - // Document doc = XMLUtils.parseXML(entryContext.getLogEntry().getMessage(), "schemas/soapEnvelope.xsd"); - - // Get a non-validated but (well-formed) DOM tree of the message content - Document doc = - XMLUtils.parseXML(entryContext.getMessageEntry().getMessage()); - - // Remove any xsi:types attributes from the message (SOAP Header, Body and Envelope itself) - - NodeList elementList = doc.getElementsByTagName("*"); - if (elementList != null) - { - for (int i = 0; i < elementList.getLength(); i++) - { - Element element = (Element) elementList.item(i); - element.removeAttributeNS(WSIConstants.NS_URI_XSI, "type"); - } - } - - // Write out the (potentially) modified tree to String - String filteredMessage = DOM2Writer.nodeToString(doc); - - // Parse the result with validation "on" - XMLUtils.parseXML( - filteredMessage, - TestUtils.getSOAPSchemaLocation()); - } - catch (WSIException e) - { - if (e.getTargetException() instanceof SAXException) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - this.validator.createFailureDetail( - Utils.getExceptionDetails(e.getTargetException()), - entryContext); - } - } - catch (Exception e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - this.validator.createFailureDetail(Utils.getExceptionDetails(e), entryContext); - } - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1755.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1755.java deleted file mode 100644 index 7b83ee2dc..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1755.java +++ /dev/null @@ -1,167 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import java.util.Iterator; -import java.util.List; - -import javax.wsdl.BindingOperation; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -/** - * BP1755 - * - * <context>For a candidate non-fault envelope containing a soap:body with at least one element, and that is referred by a binding style RPC-literal</context> - * <assertionDescription>Each part accessor element in the envelope has a local name of the same value as the name attribute of the corresponding wsdl:part element.</assertionDescription> - */ -public class BP1755 extends AssertionProcess { - - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1755(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - if (validator.isOneWayResponse(entryContext)) - throw new AssertionNotApplicableException(); - - // Getting a message document - Document doc = entryContext.getMessageEntryDocument(); - - Element soapOperation = null; - // If there is a Fault entry or no body entries, - // the assertion is not applicable - if (validator.isFault(doc) - || (soapOperation = validator.getSoapBodyChild(doc)) == null) - throw new AssertionNotApplicableException(); - - // Creating a qualified name of potential SOAP operation - QName operationQName = new QName( - soapOperation.getNamespaceURI(), soapOperation.getLocalName()); - - // Retrieving all the RPC binding operations from wsdl:binding - BindingOperation[] rpcBindingOperations = - validator.getMatchingBindingOps( - WSIConstants.ATTRVAL_SOAP_BIND_STYLE_RPC, - validator.analyzerContext.getCandidateInfo().getBindings()); - - // Retrieving binding operation by given operation name - BindingOperation bindingOperation = validator.getOperationMatch( - entryContext.getEntry().getEntryType(), - operationQName, - rpcBindingOperations); - - // If there is no matched operation, the assertion is not applicable - if (bindingOperation == null) - throw new AssertionNotApplicableException(); - - // Finding operation message parts and extensibility elems - // in the binding depending on message type - List operationMessageParts = null; - List extElems = null; - if (entryContext.getMessageEntry().getType().equals( - MessageEntry.TYPE_REQUEST)) - { - operationMessageParts = bindingOperation.getOperation() - .getInput().getMessage().getOrderedParts(null); - if (bindingOperation.getBindingInput() != null) - extElems = - bindingOperation.getBindingInput().getExtensibilityElements(); - } - else - { - operationMessageParts = bindingOperation.getOperation() - .getOutput().getMessage().getOrderedParts(null); - if (bindingOperation.getBindingOutput() != null) - extElems = - bindingOperation.getBindingOutput().getExtensibilityElements(); - } - - // If the message is not literal, the assertion is not applicable - if (!validator.isLiteral(extElems)) - throw new AssertionNotApplicableException(); - - - /* Basic Profile Version 1.1 (http://www.ws-i.org/Profiles/Basic/2003-12/BasicProfile-1.1.htm) - * says that the order of the elements in the soap:body of an ENVELOPE MUST be - * the same as that of the wsdl:parts in the wsdl:message that describes it. - * However, we should keep in mind there is the "parts" attribute of soapbind:body - * that indicates which parts appear within the SOAP Body. - */ - - // Getting the ordered list of wsdl:part names - List orderedPartNames = - validator.orderPartNames(operationMessageParts, extElems); - Iterator i = orderedPartNames.iterator(); - // Getting the first accessor - Element accessor = XMLUtils.getFirstChild(soapOperation); - while (accessor != null) - { - // If there is no the corresponding wsdl:part element - // for an accessor, the assertion failed - if (!i.hasNext()) - throw new AssertionFailException( - "The part accessor element '" + accessor.getLocalName() - + "' does not have the corresponding wsdl:part element."); - - // If local name of accessor does not equal to the name of the - // corresponding wsdl:part element, the assertion failed - String partName = (String) i.next(); - if (!accessor.getLocalName().equals(partName)) - throw new AssertionFailException( - "The accessor local name is " + accessor.getLocalName() - + ", the corresponding part element name is " + partName); - - // Getting the next accessor - accessor = XMLUtils.getNextSibling(accessor); - } - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP4100.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP4100.java deleted file mode 100644 index fe09c0002..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP4100.java +++ /dev/null @@ -1,226 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import java.util.Iterator; -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOperation; -import javax.wsdl.BindingOutput; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.soap.SOAPHeader; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionPassException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - - - -/** - * BP4100 - * <context>For a candidate envelope containing a header block that is either mandatory or is not described in the wsdl:binding.</context> - * <assertionDescription>An envelope contains a header block that is either mandatory or is not described in the wsdl:binding.</assertionDescription> - */ -public class BP4100 extends AssertionProcess { - - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP4100(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - // Parsing the message - Document doc = entryContext.getMessageEntryDocument(); - - // If the message is empty or invalid, the assertion is not applicable - if (doc == null) - { - throw new AssertionNotApplicableException(); - } - - // Getting header elements from envelope - Element root = doc.getDocumentElement(); - NodeList headerList = root.getElementsByTagNameNS( - WSIConstants.NS_URI_SOAP, XMLUtils.SOAP_ELEM_HEADER); - - // If there is no header, the assertion is not applicable - if (headerList == null || headerList.getLength() == 0) - { - throw new AssertionNotApplicableException(); - } - - // Getting the header element - Node header = headerList.item(0); - - // Getting the immediate child elements of the header - NodeList elems = header.getChildNodes(); - - // If there are no child elements of the header - // the assertion is not applicable - if (elems == null || elems.getLength() == 0) - { - throw new AssertionNotApplicableException(); - } - - // Walking through child elements - for (int i = 0; i < elems.getLength(); i++) - { - - if (elems.item(i).hasAttributes()) - { - // Getting the mustUnderstand attribute - Node muNode = elems.item(i).getAttributes().getNamedItem( - root.getPrefix() + ":" + XMLUtils.SOAP_ATTR_MUST_UNDERSTAND); - // If a header block is mandatory, then the assertion passed - if (muNode != null && muNode.getNodeValue().equals("1")) - { - throw new AssertionPassException(); - } - } - - // Getting header block name - String blockName = elems.item(i).getLocalName(); - // If the name is not presented (occurs when element is empty string) - // then continue with the next element - if (blockName == null) - { - continue; - } - - boolean blockNameExists = false; - - // Getting WSDL bindings - Binding[] bindings = validator.getWSDLDocument().getBindings(); - for (int j = 0; j < bindings.length; j++) - { - // Getting wsdl:operations - List operations = bindings[j].getBindingOperations(); - Iterator k = operations.iterator(); - while (k.hasNext() && !blockNameExists) - { - BindingOperation operation = (BindingOperation) k.next(); - - // If this is a request message, - // then getting wsdl:input for an operation - if (entryContext.getMessageEntry().getType().equals( - MessageEntry.TYPE_REQUEST)) - { - BindingInput opInput = operation.getBindingInput(); - if (opInput != null) - { - // If wsdl:input is presented then checking - // whether the block name is described there or not - blockNameExists = blockNameExists( - opInput.getExtensibilityElements(), blockName); - } - } - // If this is a response message, - // then getting wsdl:output for an operation - else - { - BindingOutput opOutput = operation.getBindingOutput(); - if (opOutput != null) - { - // If wsdl:output is presented then checking - // whether the block name is described there or not - blockNameExists = blockNameExists( - opOutput.getExtensibilityElements(), blockName); - } - } - } - } - - // If a header block is not described in the appropriate wsdl:binding - // then the assertion passed - if (!blockNameExists) - { - throw new AssertionPassException(); - } - } - - // No one header block is either mandatory or is not described in the - // appropriate wsdl:binding, the assertion is not applicable - result = AssertionResult.RESULT_NOT_APPLICABLE; - - } - catch (AssertionPassException ape) - { - failureDetail = validator.createFailureDetail( - testAssertion.getDetailDescription(), entryContext); - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Checks the existense of blockName in wsdlsoap:header, if it is found in - * a list of ExtensibilityElement objects - * - * @param elems A list of ExtensibilityElement objects - * @param blockName The name that will be checked for existence - * @return true if blockName is described in the wsdlsoap:header extensibility element - */ - private boolean blockNameExists(List elems, String blockName) - { - if (elems == null) - { - return false; - } - - Iterator i = elems.iterator(); - while (i.hasNext()) - { - ExtensibilityElement elem = (ExtensibilityElement) i.next(); - String elemName = elem.getElementType().getLocalPart(); - if (elemName.equals("header")) - { - SOAPHeader soapHeader = (SOAPHeader) elem; - if (soapHeader.getPart().equals(blockName)) - { - return true; - } - } - } - - return false; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP4101.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP4101.java deleted file mode 100644 index afd93f3f4..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP4101.java +++ /dev/null @@ -1,132 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionPassException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -/** - * BP4101 - * <context>For a candidate envelope containing a soap:actor attribute with a value other than the special uri "http://schemas.xmlsoap.org/soap/actor/next".</context> - * <assertionDescription>A header element in the envelope contains a soap:actor attribute with a value other than the special uri "http://schemas.xmlsoap.org/soap/actor/next".</assertionDescription> - */ -public class BP4101 extends AssertionProcess { - - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP4101(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try { - - // Parsing the message - Document doc = entryContext.getMessageEntryDocument(); - - // If the message is empty or invalid, the assertion is not applicable - if (doc == null) - { - throw new AssertionNotApplicableException(); - } - - // Getting header elements from envelope - Element root = doc.getDocumentElement(); - NodeList headerList = root.getElementsByTagNameNS( - WSIConstants.NS_URI_SOAP, XMLUtils.SOAP_ELEM_HEADER); - - // If there is no header, the assertion is not applicable - if (headerList == null || headerList.getLength() == 0) - { - throw new AssertionNotApplicableException(); - } - - // Getting the header element - Node header = headerList.item(0); - - // Getting the immediate child elements of the header - NodeList elems = header.getChildNodes(); - - // If there is no child elements of the header - // the assertion is not applicable - if (elems == null || elems.getLength() == 0) - { - throw new AssertionNotApplicableException(); - } - - // Walking through child elements - for (int i = 0; i < elems.getLength(); i++) - { - // Getting node attributes - NamedNodeMap attrs = elems.item(i).getAttributes(); - - // If the node does not have attributes then continue - if (attrs == null) - { - continue; - } - - // Getting actor attribute - Node actor = attrs.getNamedItem(root.getPrefix() - + ":" + XMLUtils.SOAP_ATTR_ACTOR); - - // If the actor attribute is presented and does not equal - // to "http://schemas.xmlsoap.org/soap/actor/next", - // then the assertion passed - if (actor != null - && !actor.getNodeValue().equals(WSIConstants.NS_URI_SOAP_NEXT_ACTOR)) - { - throw new AssertionPassException(); - } - } - - // No one actor attribute has a value other than - // "http://schemas.xmlsoap.org/soap/actor/next", - // the assertion is not applicable - result = AssertionResult.RESULT_NOT_APPLICABLE; - - } - catch (AssertionPassException ape) - { - failureDetail = validator.createFailureDetail( - testAssertion.getDetailDescription(), entryContext); - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP4102.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP4102.java deleted file mode 100644 index 1be179229..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP4102.java +++ /dev/null @@ -1,114 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionPassException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -/** - * BP4102 - * <context>For a candidate envelope containing a fault with a non-empty detail element.</context> - * <assertionDescription>A Fault element in an envelope contains a non-empty detail element.</assertionDescription> - */ -public class BP4102 extends AssertionProcess { - - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP4102(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try { - - // Parsing the message - Document doc = entryContext.getMessageEntryDocument(); - - // If the message is empty or invalid, the assertion is not applicable - if (doc == null) - { - throw new AssertionNotApplicableException(); - } - - // Getting Fault elements from envelope - Element root = doc.getDocumentElement(); - NodeList faultList = root.getElementsByTagNameNS( - WSIConstants.NS_URI_SOAP, XMLUtils.SOAP_ELEM_FAULT); - - // If there is no Fault element, the assertion is not applicable - if (faultList == null || faultList.getLength() == 0) - { - throw new AssertionNotApplicableException(); - } - - // Fault element must not appear more than once - // within a Body element, so getting the first one - Element fault = (Element) faultList.item(0); - - // Getting Fualt's detail elements - NodeList details = fault.getElementsByTagName( - XMLUtils.SOAP_ELEM_FAULT_DETAIL); - // If there is a non-empty detail element, then the assertion passed - if (details != null - && details.getLength() > 0) - { - NodeList list = details.item(0).getChildNodes(); - // search first element node - for (int i = 0; i < list.getLength(); i++) - { - if((list.item(i).getNodeType() == Node.ELEMENT_NODE) - && (list.item(i).getLocalName() != null) ) - { - throw new AssertionPassException(); - } - } - } - - // There is no detail element in Fault, - // the assertion is not applicable - result = AssertionResult.RESULT_NOT_APPLICABLE; - - } - catch (AssertionPassException ape) - { - failureDetail = validator.createFailureDetail( - testAssertion.getDetailDescription(), entryContext); - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP4109.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP4109.java deleted file mode 100644 index 92f8d1d37..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP4109.java +++ /dev/null @@ -1,107 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionPassException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.NodeList; - -/** - * BP4109 - * - * <context>For a candidate envelope containing a soap:Body element with attributes</context> - * <assertionDescription>An envelope contains a a soap:Body element with attributes.</assertionDescription> - */ -public class BP4109 extends AssertionProcess { - - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP4109(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try { - - // Parsing the message - Document doc = entryContext.getMessageEntryDocument(); - - // If the message is empty or invalid, the assertion is not applicable - if (doc == null) - { - throw new AssertionNotApplicableException(); - } - - // Getting the soap:Body elements from envelope - NodeList bodyList = doc.getDocumentElement().getElementsByTagNameNS( - WSIConstants.NS_URI_SOAP, XMLUtils.SOAP_ELEM_BODY); - - // If there is no Body element, the assertion is not applicable - if (bodyList == null || bodyList.getLength() == 0) - { - throw new AssertionNotApplicableException(); - } - - // Getting the first soap:Body element - Element body = (Element) bodyList.item(0); - - // If the Body element has attributes (excluding namespace declarations), - // the assertion passed - NamedNodeMap attrs = body.getAttributes(); - if (attrs != null) - { - for (int i = 0; i < attrs.getLength(); i++) - { - String attrName = ((Attr) attrs.item(i)).getName(); - if (!attrName.equals("xmlns") && !attrName.startsWith("xmlns:")) - { - throw new AssertionPassException(); - } - } - } - - throw new AssertionNotApplicableException(); - } - catch (AssertionPassException ape) - { - failureDetail = validator.createFailureDetail( - testAssertion.getDetailDescription(), entryContext); - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/EnvelopeValidatorImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/EnvelopeValidatorImpl.java deleted file mode 100644 index 757bd0989..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/EnvelopeValidatorImpl.java +++ /dev/null @@ -1,76 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2003 IBM Corporation, Parasoft 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 - Initial API and implementation - * Parasoft - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.EnvelopeValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.MessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; - -/** - * @version 1.0 - */ -public class EnvelopeValidatorImpl - extends BaseMessageValidator - implements EnvelopeValidator -{ - /** - * Get the artifact type that this validator applies to. - * @return the artifact type (a String) - */ - public String getArtifactType() { - return TYPE_ENVELOPE; - } - - /** - * Get the collection of entry types that this validator applies to. - * @return an array of entry types (Strings) - */ - public String[] getEntryTypes() { - return new String[] { - TYPE_ENVELOPE_REQUEST, - TYPE_ENVELOPE_RESPONSE, - TYPE_ENVELOPE_ANY - }; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl#isPrimaryEntryTypeMatch(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - protected boolean isPrimaryEntryTypeMatch( - TestAssertion testAssertion, - EntryContext entryContext) - { - boolean match = false; - - // Verify that the entry and test assertion have the same primary context - if ((testAssertion.getEntryTypeName().equals(TYPE_ENVELOPE_ANY)) - || (testAssertion.getEntryTypeName().equals(TYPE_ENVELOPE_REQUEST) - && (entryContext - .getEntry() - .getEntryType() - .getTypeName() - .equals(MessageValidator.TYPE_MESSAGE_REQUEST))) - || (testAssertion.getEntryTypeName().equals(TYPE_ENVELOPE_RESPONSE) - && (entryContext - .getEntry() - .getEntryType() - .getTypeName() - .equals(MessageValidator.TYPE_MESSAGE_RESPONSE)))) - { - match = true; - } - - return match; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/SSBP1601.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/SSBP1601.java deleted file mode 100644 index 919d35aca..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/SSBP1601.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; - -/** - * SSBP1601 - */ -public class SSBP1601 extends BP1601 -{ - - /** - * @param BaseMessageValidator - */ - public SSBP1601(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/SSBP9704.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/SSBP9704.java deleted file mode 100644 index ac5526f31..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/SSBP9704.java +++ /dev/null @@ -1,126 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -/** - * SSBP9704 - * - * <context>For a candidate envelope</context> - * <assertionDescription>The ENVELOPE does not contain the namespace declaration xmlns:xml="http://www.w3.org/XML/1998/namespace".</assertionDescription> - */ -public class SSBP9704 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public SSBP9704(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - // Getting a message document - Document doc = entryContext.getMessageEntryDocument(); - // If the message is empty or invalid, the assertion is not applicable - if (doc == null) - { - throw new AssertionNotApplicableException(); - } - - // Getting the root element - Element elem = doc.getDocumentElement(); - // If it is not the soap:Envelope, the assertion is not applicable - if (!elem.getNamespaceURI().equals(WSIConstants.NS_URI_SOAP) - || !elem.getLocalName().equals(XMLUtils.SOAP_ELEM_ENVELOPE)) - { - throw new AssertionNotApplicableException(); - } - - // If the envelope contains the xmlns:xml namespace declaration, - // the assertion failed - String incorrectElementName = getIncorrectElementName(elem); - if (incorrectElementName != null) - { - throw new AssertionFailException("The name of an element containing " - + "such namespace declaration is \"" + incorrectElementName + "\"."); - } - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_WARNING; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Looks for any element that contains the attribute xmlns:xml="http://www.w3.org/XML/1998/namespace". - * @param elem the root element. - * @return the name of an element found or null. - */ - private String getIncorrectElementName(Element elem) - { - // Getting a value of the attribute xmlns:xml - String attrValue = elem.getAttributeNS( - WSIConstants.NS_URI_XMLNS, "xml"); - // If it equals to "http://www.w3.org/XML/1998/namespace", - // return an element name; - if (WSIConstants.NS_URI_XML.equals(attrValue)) - { - return elem.getNodeName(); - } - // Going through element's children - Element child = XMLUtils.getFirstChild(elem); - while (child != null) - { - // If any of them has xmlns:xml attribute, return a value - String name = getIncorrectElementName(child); - if (name != null) - { - return name; - } - // Getting the next element's child - child = XMLUtils.getNextSibling(child); - } - // No xmlns:xml attributes found, return null - return null; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1003.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1003.java deleted file mode 100644 index 53ff37299..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1003.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - -/** - * AP1003 - * - * <context>For a candidate non-multipart/related message in the log file, which has a non-empty entity-body</context> - * <assertionDescription> - * The logged SOAP envelope is a UTF-8 transcript of an envelope originally encoded as UTF-8 or UTF-16. - * The HTTP Content-Type header's charset value is either UTF-8 or UTF-16. Looking at the messageContent - * element of the logged message, either - * (1) it has a BOM attribute which maps the charset value in the Content-Type header, or - * (2) it has it has an XML declaration which matches the charset value in the Content-Type header, or - * (3) there is no BOM attribute and no XML declaration, and the charset value is UTF-8. - * </assertionDescription> - * - * @author lauzond - */ -public class AP1003 extends SSBP1003 { - - /** - * @param impl - */ - public AP1003(BaseMessageValidator impl) - { - super(impl); - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // If there is a SOAP Message with Attachments, the assertion is not applicable - if (entryContext.getMessageEntry().isMimeContent()) - { - return validator.createAssertionResult(testAssertion, AssertionResult.RESULT_NOT_APPLICABLE, failureDetail); - } - else - { - return super.validate(testAssertion, entryContext); - } - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1902.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1902.java deleted file mode 100644 index bd900e6f9..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1902.java +++ /dev/null @@ -1,124 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import java.util.List; - -import javax.wsdl.BindingOperation; -import javax.wsdl.extensions.ExtensibilityElement; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - -/** - * AP1902 - * - * <context>For a candidate message</context> - * <assertionDescription>In a description, if the wsdl:input or wsdl:output - * element in the wsdl:binding specifies WSDL MIME binding, then the message - * can contain SOAP attachments.</assertionDescription> - */ -public class AP1902 extends AssertionProcess implements WSITag -{ - private final BaseMessageValidator validator; - - /** - * @param WSDLValidatorImpl - */ - public AP1902(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - // Getting an operation matched for a message - BindingOperation bindingOperation = validator.getOperationMatch( - entryContext.getEntry().getEntryType(), - entryContext.getMessageEntryDocument()); - // If no one operation matches, the assertion is not applicable - if (bindingOperation == null) - throw new AssertionNotApplicableException(); - // Getting the corresponding extensibility elements - List extElems; - String type; - if (MessageEntry.TYPE_REQUEST - .equals(entryContext.getEntry().getEntryType())) - { - type = "input"; - extElems = bindingOperation.getBindingInput() == null ? null - : bindingOperation.getBindingInput().getExtensibilityElements(); - } - else - { - type = "output"; - extElems = bindingOperation.getBindingOutput() == null ? null - : bindingOperation.getBindingOutput().getExtensibilityElements(); - } - // If the MIME binding is not used, but the message has - // at least one non-root MIME part, the assertion failed - if (!usesMimeBinding(extElems) - && entryContext.getMessageEntry().getMimeParts().count() > 1) - { - throw new AssertionFailException("The wsdl:" + type + " of the \"" - + bindingOperation.getName() + "\" binding operation."); - } - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Checks whether the first extensibility element is mime:multipartRelated. - * @param extElems a list of extensibility elements. - * @return true if the element is mime:multipartRelated, false otherwise - */ - private boolean usesMimeBinding(List extElems) { - // If the first extensibility element is mime:multipartRelated, - // return true - if (extElems != null && extElems.size() > 0 - && ((ExtensibilityElement)extElems.get(0)) - .getElementType().equals(WSDL_MIME_MULTIPART)) - { - return true; - } - // otherwise return false - return false; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1915.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1915.java deleted file mode 100644 index e85297608..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1915.java +++ /dev/null @@ -1,136 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.log.MimePart; -import org.eclipse.wst.wsi.internal.core.log.MimeParts; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.MIMEConstants; -import org.eclipse.wst.wsi.internal.core.util.MIMEUtils; -import org.eclipse.wst.wsi.internal.core.util.Utils; - -/** - * AP1915 - * - * <context>For a candidate root-part of a multipart/related message</context> - * <assertionDescription>The entity body of the root-part of a - * multipart/related message is serialized using either UTF-8 or UTF-16 - * character encoding.</assertionDescription> - */ -public class AP1915 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param WSDLValidatorImpl - */ - public AP1915(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // get MIME parts - if (!entryContext.getMessageEntry().isMimeContent()) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - MimeParts mimeParts = entryContext.getMessageEntry().getMimeParts(); - MimePart part = mimeParts.getRootPart(); - if (part == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - String xmlEncoding = null; - String charset = MIMEUtils.getMimeHeaderSubAttribute( - part.getHeaders(), - MIMEConstants.HEADER_CONTENT_TYPE, - "charset"); - try - { - // The HTTP Content-Type header's charset value is either UTF-8 or UTF-16. - if((charset != null) && (charset.equalsIgnoreCase("utf-8") || - charset.equalsIgnoreCase("utf-16"))) - { - // Looking at the messageContent element of the logged message, either - // (1) it has a BOM attribute which maps the charset value in the Content-Type header, or - int bom = 0; - if ((bom = entryContext.getMessageEntry().getBOM()) != 0) - { - if ((bom == WSIConstants.BOM_UTF8 - && !charset.equalsIgnoreCase("utf-8")) - || ((bom == WSIConstants.BOM_UTF16 - && !charset.equalsIgnoreCase("utf-16"))) - || ((bom == WSIConstants.BOM_UTF16_BIG_ENDIAN - && !charset.equalsIgnoreCase("utf-16")))) - { - throw new AssertionFailException("The BOM (" + bom + - ") and charset value (" + charset + ")do not match."); - } - } - // (2) it has an XML declaration which matches the charset value in the Content-Type header, or - else if (((xmlEncoding = - Utils.getXMLEncoding(part.getContent())) != null) && - !xmlEncoding.equals("")) - { - if(!xmlEncoding.equalsIgnoreCase(charset)) - { - throw new AssertionFailException("The XML declaration encoding (" + - xmlEncoding + ") and charset value (" + charset + - ") do not match."); - } - - } - // (3) there is no BOM attribute and no XML declaration, and the charset value is UTF-8. - else if(!charset.equalsIgnoreCase("utf-8")) - { - throw new AssertionFailException("The no BOM attribute and no XML "+ - "declaration, and the charset value is (" + charset + ")"); - } - } - // header do not found or incorrect charset value - else - { - throw new AssertionFailException("Either the Content-Type header is not "+ - "present in the Root Part or a charset value is invalid."); - } - } - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail(e.getMessage(), entryContext); - } - } - } - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1917.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1917.java deleted file mode 100644 index 012d0d6f7..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1917.java +++ /dev/null @@ -1,153 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import java.util.List; - -import javax.wsdl.BindingOperation; -import javax.wsdl.extensions.mime.MIMEMultipartRelated; -import javax.wsdl.extensions.soap.SOAPBody; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPConstants; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; - -/** - * AP1917 - * - * <context>For a candidate message containing zero attachment parts</context> - * <assertionDescription>A message containing zero attachment parts is sent - * using a content-type of either "text/xml" as though a SOAP HTTP binding were - * used or "multipart/related" when the WSDL description for the message - * specifies the mime:multipartRelated element on the corresponding wsdl:input - * or wsdl:output element in its wsdl:binding.</assertionDescription> - */ -public class AP1917 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param WSDLValidatorImpl - */ - public AP1917(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - // not applicable if there are attachments - if (entryContext.getMessageEntry().isMimeContent()) - { - if (entryContext.getMessageEntry().getMimeParts().count() > 1) - throw new AssertionNotApplicableException(); - } - - BindingOperation bindingOperation = validator.getOperationMatch( - entryContext.getEntry().getEntryType(), - entryContext.getMessageEntryDocument()); - - // If there is no matched operation, the assertion is not applicable - if (bindingOperation == null) - throw new AssertionNotApplicableException(); - - // Finding operation extensibility elems - // in the binding depending on message type - List extElems = null; - if (entryContext.getMessageEntry().getType().equals( - MessageEntry.TYPE_REQUEST) - && bindingOperation.getBindingInput() != null) - { - extElems = bindingOperation - .getBindingInput().getExtensibilityElements(); - } - else if (entryContext.getMessageEntry().getType().equals( - MessageEntry.TYPE_RESPONSE) - && bindingOperation.getBindingOutput() != null) - { - extElems = bindingOperation - .getBindingOutput().getExtensibilityElements(); - } - - // check list - if((extElems == null) || (extElems.size() == 0)) - { - throw new AssertionNotApplicableException(); - } - - // determine type - boolean isMultiPart = false; - - // if MIMEMultipartRelated then only root-part allowed - if(extElems.get(0) instanceof MIMEMultipartRelated) - { - if(((MIMEMultipartRelated) extElems.get(0)).getMIMEParts().size() != 1) { - throw new AssertionNotApplicableException(); - } - isMultiPart = true; - } - // else if not soapbind:body root element - else if(!(extElems.get(0) instanceof SOAPBody)) - { - throw new AssertionNotApplicableException(); - } - - // get HTTP content type - String contentType = HTTPUtils.getHttpHeaderAttribute( - entryContext.getMessageEntry().getHTTPHeaders(), - HTTPConstants.HEADER_CONTENT_TYPE); - - //allow "text/xml" or - //("multipart/related" and "mime:multipartRelated" WSDL bindings) - if((contentType == null) || - (!contentType.equalsIgnoreCase(WSIConstants.CONTENT_TYPE_MULTIPART) && - !contentType.equalsIgnoreCase(WSIConstants.CONTENT_TYPE_TEXT_XML)) || - ((contentType.equalsIgnoreCase(WSIConstants.CONTENT_TYPE_MULTIPART) && - !isMultiPart))) - { - throw new AssertionFailException("The content-type header field " + - "value \"" + contentType + "\" is incorrect"); - } - } - catch (AssertionNotApplicableException e) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - validator.createFailureDetail(e.getMessage(), entryContext); - } - - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1925.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1925.java deleted file mode 100644 index b01a2b855..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1925.java +++ /dev/null @@ -1,133 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import java.util.List; - -import javax.wsdl.BindingOperation; -import javax.wsdl.extensions.mime.MIMEMultipartRelated; -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPConstants; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; - -/** - * AP1925 - * - * <context>For a candidate message</context> - * <assertionDescription>If the WSDL description lists at least one non-root - * MIME part, then the corresponding message has a Content-Type HTTP header - * field-value with a media-type of "multipart/related.</assertionDescription> - */ -public class AP1925 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param WSDLValidatorImpl - */ - public AP1925(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - BindingOperation bindingOperation = validator.getOperationMatch( - entryContext.getEntry().getEntryType(), - entryContext.getMessageEntryDocument()); - - // If there is no matched operation, the assertion is not applicable - if (bindingOperation == null) - throw new AssertionNotApplicableException(); - - // Finding operation extensibility elems - // in the binding depending on message type - List extElems = null; - if (entryContext.getMessageEntry().getType().equals( - MessageEntry.TYPE_REQUEST) - && bindingOperation.getBindingInput() != null) - { - extElems = bindingOperation - .getBindingInput().getExtensibilityElements(); - } - else if (entryContext.getMessageEntry().getType().equals( - MessageEntry.TYPE_RESPONSE) - && bindingOperation.getBindingOutput() != null) - { - extElems = bindingOperation - .getBindingOutput().getExtensibilityElements(); - } - // check list on first element - if((extElems == null) || (extElems.size() == 0) || - !(extElems.get(0) instanceof MIMEMultipartRelated)) - throw new AssertionNotApplicableException(); - - // get list mime parts from definition - MIMEMultipartRelated mime = (MIMEMultipartRelated) extElems.get(0); - List parts = mime.getMIMEParts(); - // if parts count is more than one, than assertion is notApplicable - if(parts.size() <= 1) - throw new AssertionNotApplicableException(); - String contentType = HTTPUtils.getHttpHeaderAttribute( - entryContext.getMessageEntry().getHTTPHeaders(), - HTTPConstants.HEADER_CONTENT_TYPE); - if((contentType == null) || - !contentType.equalsIgnoreCase(WSIConstants.CONTENT_TYPE_MULTIPART)) - { - throw new AssertionFailException("Incorrect Content-Type value \"" + - contentType + "\" in HTTP header"); - } - } - catch (AssertionNotApplicableException e) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - validator.createFailureDetail(e.getMessage(), entryContext); - } - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Returns the part value from MIMEContent element - * @param part MIMEPart element - * @return the part value from MIMEContent element - */ - //private String getMIMEContentPart(MIMEPart part) { - // List list = part.getExtensibilityElements(); - // if(list.size() == 0) - // return null; - // return ((MIMEContent) list.get(0)).getPart(); - //} -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1926.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1926.java deleted file mode 100644 index a3f24ecd9..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1926.java +++ /dev/null @@ -1,210 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import java.util.Collection; -import java.util.Iterator; -import java.util.List; - -import javax.wsdl.BindingOperation; -import javax.wsdl.extensions.mime.MIMEContent; -import javax.wsdl.extensions.mime.MIMEMultipartRelated; -import javax.wsdl.extensions.mime.MIMEPart; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.log.MimePart; -import org.eclipse.wst.wsi.internal.core.log.MimeParts; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.MIMEConstants; -import org.eclipse.wst.wsi.internal.core.util.MIMEUtils; - -/** - * AP1926 - * - * <context>For a candidate message</context> - * <assertionDescription>A message includes all of the MIME parts described by - * its WSDL MIME binding.</assertionDescription> - */ -public class AP1926 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param WSDLValidatorImpl - */ - public AP1926(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - if(!entryContext.getMessageEntry().isMimeContent()) - { - throw new AssertionNotApplicableException(); - } - - // get message mime parts - MimeParts mimeParts = entryContext.getMessageEntry().getMimeParts(); - - BindingOperation bindingOperation = validator.getOperationMatch( - entryContext.getEntry().getEntryType(), - entryContext.getMessageEntryDocument()); - - // If there is no matched operation, the assertion is not applicable - if (bindingOperation == null) - throw new AssertionNotApplicableException(); - - // Finding operation extensibility elems - // in the binding depending on message type - List extElems = null; - if (entryContext.getMessageEntry().getType().equals( - MessageEntry.TYPE_REQUEST) - && bindingOperation.getBindingInput() != null) - { - extElems = bindingOperation - .getBindingInput().getExtensibilityElements(); - } - else if (entryContext.getMessageEntry().getType().equals( - MessageEntry.TYPE_RESPONSE) - && bindingOperation.getBindingOutput() != null) - { - extElems = bindingOperation - .getBindingOutput().getExtensibilityElements(); - } - // check list for the first element - if((extElems == null) || (extElems.size() == 0) || - !(extElems.get(0) instanceof MIMEMultipartRelated)) - throw new AssertionNotApplicableException(); - - // get list mime parts from definition - MIMEMultipartRelated mime = (MIMEMultipartRelated) extElems.get(0); - List parts = mime.getMIMEParts(); - - if(mimeParts.getRootPart() == null || mimeParts.count()==0) - throw new AssertionNotApplicableException(); - // skip root part - for (int i = 1; i < parts.size(); i++) - { - String partName = getMIMEContentPart((MIMEPart) parts.get(i)); - // find the corresponding MIME part - if (findMIMEPart(mimeParts.getParts(), partName) == null) - { - throw new AssertionFailException("The corresponding binding " + - "operation \"" + bindingOperation.getName() + - "\" does not contain part \"" + partName + "\""); - } - } - } - catch (AssertionNotApplicableException e) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - validator.createFailureDetail(e.getMessage(), entryContext); - } - - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * find corresponding MIME part - * @param parts array of soap MIME parts - * @param partName part name to find - * @return corresponding MIME part "Content-ID" value, - * if the part doesnt found, retuns null - * @throws WSIException - */ - private String findMIMEPart(Collection parts, String partName) - throws WSIException - { - if(partName == null) - return null; - Iterator iparts = parts.iterator(); - while (iparts.hasNext()) - { - MimePart part = (MimePart)iparts.next(); - String m_partName = MIMEUtils.getMimeHeaderAttribute( - part.getHeaders(), MIMEConstants.HEADER_CONTENT_ID); - - // check value format <partname=UID@host> - if ((m_partName != null) && (m_partName.startsWith("<")) && - (m_partName.indexOf("=") != -1) && - (encodePartName(m_partName.substring(1, m_partName.indexOf("="))).equals(partName))) - { - return m_partName; - } - } - return null; - } - - /** - * Returns the part value from MIMEContent element - * @param part MIMEPart element - * @return the part value from MIMEContent element - */ - private String getMIMEContentPart(MIMEPart part) { - List list = part.getExtensibilityElements(); - if(list.size() == 0) - return null; - return ((MIMEContent) list.get(0)).getPart(); - } - - /** - * Encode string from %HH to UTF - * @param str string - * @return encoded string from %HH format - */ - private String encodePartName(String str) { - StringBuffer res = new StringBuffer(""); - for (int i = 0; i < str.length(); i++) - { - if((str.charAt(i) == '%') && (str.length() > i+2)) - { - try - { - int value = Integer.parseInt( - String.valueOf(str.charAt(i+1)) + - String.valueOf(str.charAt(i+2)), 16); - res.append((char) value); - i +=2; - } - catch(NumberFormatException e){} - } - else - { - res.append(str.charAt(i)); - } - } - return res.toString(); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1931.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1931.java deleted file mode 100644 index 01cdfc9b9..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1931.java +++ /dev/null @@ -1,91 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -/** - * AP1931 - * - * <context>For a candidate root-part of a multipart/related message</context> - * <assertionDescription>The entity body of the root-part of multipart/related - * message is a soap:Envelope.</assertionDescription> - */ -public class AP1931 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param WSDLValidatorImpl - */ - public AP1931(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // check for the root part - if(entryContext.getMessageEntry().isMimeContent() && - (entryContext.getMessageEntry().getMimeParts().getRootPart() != null)) - { - try - { - // parse root part message - Document doc = XMLUtils.parseXML( - entryContext.getMessageEntry().getMimeParts().getRootPart().getContent()); - - // get entity body - Element el = doc.getDocumentElement(); - - // if the element is not soap:Envelope, then fail - if(!el.getLocalName().equals(WSITag.ELEM_SOAP_ENVELOPE.getLocalPart()) || - !el.getNamespaceURI().equals(WSITag.ELEM_SOAP_ENVELOPE.getNamespaceURI())) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - "the entity body of the root part is {" + - el.getNamespaceURI() + "}" + el.getLocalName(), entryContext); - } - } - catch (Exception e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - "the entity body of the root part does not contain " + - "\"soap:Envelope\" element", entryContext); - } - } - else - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1932.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1932.java deleted file mode 100644 index d9c0fc722..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1932.java +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPConstants; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; - -/** - * AP1932 - * - * <context>For a candidate message containing a Content-Type HTTP header - * field-value with a media type of "multipart/related"</context> - * <assertionDescription>In a message, the Content-Type HTTP header field-value - * has a type parameter with a value of "text/xml" when it has a media type of - * "multipart/related".</assertionDescription> - */ -public class AP1932 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param WSDLValidatorImpl - */ - public AP1932(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // check for multipart/related content type - String content_type = HTTPUtils.getHttpHeaderAttribute( - entryContext.getMessageEntry().getHTTPHeaders(), - HTTPConstants.HEADER_CONTENT_TYPE); - - if((content_type == null) || - (!content_type.equalsIgnoreCase(WSIConstants.CONTENT_TYPE_MULTIPART))) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - String subType = HTTPUtils.getHttpHeaderSubAttribute( - entryContext.getMessageEntry().getHTTPHeaders(), - HTTPConstants.HEADER_CONTENT_TYPE, "type"); - if((subType == null) - || !subType.equalsIgnoreCase(WSIConstants.CONTENT_TYPE_TEXT_XML)) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - "The \"type\" parameter value is \"" + subType + "\"", entryContext); - } - } - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1933.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1933.java deleted file mode 100644 index a4491fbb7..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1933.java +++ /dev/null @@ -1,257 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; - -import javax.wsdl.BindingOperation; -import javax.wsdl.extensions.mime.MIMEContent; -import javax.wsdl.extensions.mime.MIMEMultipartRelated; -import javax.wsdl.extensions.mime.MIMEPart; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.log.MimePart; -import org.eclipse.wst.wsi.internal.core.log.MimeParts; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.MIMEConstants; -import org.eclipse.wst.wsi.internal.core.util.MIMEUtils; - -/** - * AP1933 - * - * <context>For a candidate message</context> - * <assertionDescription>If a description binds a wsdl:message part to a - * mime:content element, then the corresponding MIME part in a message has a - * content-id header with a globally unique value of the form - * <partname=ID@hostname>, where 'partname' is the value of the name attribute of - * the wsdl:part element referenced by the mime:content.</assertionDescription> - */ -public class AP1933 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param WSDLValidatorImpl - */ - public AP1933(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - try - { - if(!entryContext.getMessageEntry().isMimeContent()) - { - throw new AssertionNotApplicableException(); - } - - // get message mime parts - MimeParts mimeParts = entryContext.getMessageEntry().getMimeParts(); - - BindingOperation bindingOperation = validator.getOperationMatch( - entryContext.getEntry().getEntryType(), - entryContext.getMessageEntryDocument()); - - // If there is no matched operation, the assertion is not applicable - if (bindingOperation == null) - throw new AssertionNotApplicableException(); - - // Finding operation extensibility elems - // in the binding depending on message type - List extElems = null; - if (entryContext.getMessageEntry().getType().equals( - MessageEntry.TYPE_REQUEST) - && bindingOperation.getBindingInput() != null) - { - extElems = bindingOperation - .getBindingInput().getExtensibilityElements(); - } - else if (entryContext.getMessageEntry().getType().equals( - MessageEntry.TYPE_RESPONSE) - && bindingOperation.getBindingOutput() != null) - { - extElems = bindingOperation - .getBindingOutput().getExtensibilityElements(); - } - // check list for the first element - if((extElems == null) || (extElems.size() == 0) || - !(extElems.get(0) instanceof MIMEMultipartRelated)) - throw new AssertionNotApplicableException(); - - // get list mime parts from definition - MIMEMultipartRelated mime = (MIMEMultipartRelated) extElems.get(0); - List parts = mime.getMIMEParts(); - - // skip root part - for (int i = 1; i < parts.size(); i++) - { - String partName = getMIMEContentPart((MIMEPart) parts.get(i)); - // find the corresponding MIME part - if (findMIMEPart(mimeParts.getParts(), partName) == null) - { - throw new AssertionFailException("The corresponding binding " + - "operation \"" + bindingOperation.getName() + - "\" does not contain part \"" + partName + "\""); - } - } - } - catch (AssertionNotApplicableException e) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - validator.createFailureDetail(e.getMessage(), entryContext); - } - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * find corresponding MIME part - * @param parts array of soap MIME parts - * @param partName part name to find - * @return corresponding MIME part "Content-ID" value, - * if the part doesnt found, retuns null - * @throws WSIException - */ - private String findMIMEPart(Collection parts, String partName) - throws WSIException, AssertionFailException - { - if(partName == null) - return null; - - Iterator iparts = parts.iterator(); - int i = 0; - while (iparts.hasNext()) - { - i = i + 1; - MimePart part = (MimePart)iparts.next(); - String m_partName = MIMEUtils.getMimeHeaderAttribute( - part.getHeaders(), MIMEConstants.HEADER_CONTENT_ID); - - // check value format <partname=UID@hostname> - if ((m_partName != null) && m_partName.startsWith("<") && m_partName.endsWith(">")) - { - int idx, atIdx; - String enPartName = null; - String uid = null; - String host = null; - - // get part name from content-id - if ((idx = m_partName.indexOf("=")) != -1) - { - enPartName = encodePartName(m_partName.substring(1, idx)); - } - // get uid and hostname from content-id - if (((atIdx = m_partName.indexOf("@")) != -1) && (atIdx > idx)) - { - uid = m_partName.substring(idx+1, atIdx); - host = m_partName.substring(atIdx+1, m_partName.length()-1); - } - // if part names match, validate format - if((enPartName != null) && enPartName.equals(partName)) - { - if((uid == null) || (uid.length() == 0)) - throw new AssertionFailException( - "The \"Content-ID\" attribute of the part \""+(i+1)+ - "\"contains value \""+ m_partName+ - "\" which has a incorrect UID format"); - if(host == null) - throw new AssertionFailException( - "The \"Content-ID\" attribute of the part \""+(i+1)+ - "\"contains value \""+ m_partName+ - "\" which has a incorrect host format"); - // check for malformed URL - try - { - new URL("HTTP", host, ""); - } - catch (MalformedURLException e) - { - throw new AssertionFailException( - "The \"Content-ID\" attribute of the part \""+(i+1)+ - "\"contains value \""+ m_partName+ - "\" which has a incorrect host format"); - } - return m_partName; - } - } - } - return null; - } - - /** - * Returns the part value from MIMEContent element - * @param part MIMEPart element - * @return the part value from MIMEContent element - */ - private String getMIMEContentPart(MIMEPart part) - { - List list = part.getExtensibilityElements(); - if(list.size() == 0) - return null; - return ((MIMEContent) list.get(0)).getPart(); - } - - /** - * Encode string from %HH to UTF - * @param str string - * @return encoded string from %HH format - */ - private String encodePartName(String str) { - StringBuffer res = new StringBuffer(""); - for (int i = 0; i < str.length(); i++) - { - if((str.charAt(i) == '%') && (str.length() > i+2)) - { - try - { - int value = Integer.parseInt( - String.valueOf(str.charAt(i+1)) + - String.valueOf(str.charAt(i+2)), 16); - res.append((char) value); - i +=2; - } - catch(NumberFormatException e){} - } - else - { - res.append(str.charAt(i)); - } - } - return res.toString(); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1934.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1934.java deleted file mode 100644 index 1c060516d..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1934.java +++ /dev/null @@ -1,103 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import java.util.Iterator; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.log.MimePart; -import org.eclipse.wst.wsi.internal.core.log.MimeParts; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.MIMEConstants; -import org.eclipse.wst.wsi.internal.core.util.MIMEUtils; - -/** - * AP1934 - * - * <context>For a candidate part of a multipart/related message</context> - * <assertionDescription>The Content-Transfer-Encoding field of a part in a - * multipart/related message has a value of "7bit", "8bit", "binary", - * "quoted-printable" or "base64".</assertionDescription> - */ -public class AP1934 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param WSDLValidatorImpl - */ - public AP1934(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // check for multipart/related content type - if(!entryContext.getMessageEntry().isMimeContent()) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - // get MIME parts - MimeParts parts = entryContext.getMessageEntry().getMimeParts(); - if(parts.count() == 0) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - Iterator iparts = parts.getParts().iterator(); - // check each part for the Content-Transfer-Encoding field - int i = 0; - while (iparts.hasNext()) - { - MimePart part = (MimePart)iparts.next(); - String type_value = MIMEUtils.getMimeHeaderAttribute( - part.getHeaders(), - MIMEConstants.HEADER_CONTENT_TRANSFER_ENCODING); - if (type_value != null) - { - if((type_value == null) || !(type_value.equalsIgnoreCase("7bit") || - type_value.equalsIgnoreCase("8bit") || - type_value.equalsIgnoreCase("base64") || - type_value.equalsIgnoreCase("quoted-printable") || - type_value.equalsIgnoreCase("binary"))) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - "(" + (i+1) + - "), part header field \"Content-Transfer-Encoding\" has incorrect value \""+ - type_value+"\"", entryContext); - } - } - i++; - } - } - } - - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1935.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1935.java deleted file mode 100644 index 88251f51f..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1935.java +++ /dev/null @@ -1,348 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import java.util.ArrayList; -import java.util.Iterator; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.log.MimePart; -import org.eclipse.wst.wsi.internal.core.log.MimeParts; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPConstants; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; -import org.eclipse.wst.wsi.internal.core.util.Utils; - -/** - * AP1935 - * - * <context>For a candidate part of a multipart/related message</context> - * <assertionDescription>The encoding of the body of a part in a - * multipart/related message conforms to the encoding indicated by the - * Content-Transfer-Encoding field-value, - * as specified by RFC2045.</assertionDescription> - */ -public class AP1935 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param WSDLValidatorImpl - */ - public AP1935(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - if(!entryContext.getMessageEntry().isMimeContent()) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - // get MIME parts - MimeParts parts = entryContext.getMessageEntry().getMimeParts(); - if(parts.count() == 0) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - // check each part for the encoding match - Iterator iparts = parts.getParts().iterator(); - int i = 0; - MimePart root = parts.getRootPart(); - while (iparts.hasNext()) - { - i = 1; - try - { - MimePart part = (MimePart)iparts.next(); - - // get encoding from header - String encoding = HTTPUtils.getHttpHeaderAttribute(part.getHeaders(), - HTTPConstants.HEADER_CONTENT_TRANSFER_ENCODING); - - if ((part == root) || - ((encoding != null) && encoding.equalsIgnoreCase("base64"))) - checkPart(part, encoding, false); - else - checkPart(part, encoding, true); - } catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - "part "+(i+1)+" Error: " + e.getMessage(), entryContext); - } - } - } - } - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - /** - * Check message entry to encoding conformity - * @param entry message entry - * @throws AssertionFailException if message does not encoding conformity - * @throws WSIException - */ - private void checkPart(MimePart part, String encoding, boolean encoded) - throws AssertionFailException, WSIException - { - String content = null; - if (encoded) - content = new String(Utils.decodeBase64(part.getContent())); - else - content = part.getContent(); - - if(encoding == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - // check 7bit - } else if(encoding.equalsIgnoreCase("7bit")) { - checkOn7bit(content); - // check 8bit - } else if(encoding.equalsIgnoreCase("8bit")) { - checkOn8bit(content); - // check quoted-printable - } else if(encoding.equalsIgnoreCase("quoted-printable")) { - checkOnQuotedPrintable(content); - // check base64 - } else if(encoding.equalsIgnoreCase("base64")) { - checkOnBase64(content); - } - // we dont check binary encoding, since message can contains any chars - } - - /** - * Validate a 7bit encoded message (RFC2045) - * @param message message to check - * @throws AssertionFailException if message does not conform - */ - private void checkOn7bit(String message) - throws AssertionFailException - { - String[] strs = split(message); - for (int i = 0; i < strs.length; i++) - { - String str = strs[i]; - - // check string length - if(str.length() > 998) - { - throw new AssertionFailException("The length (" + str.length() + - ") of the line (" + (i+1) + ") greater than 998"); - } - // No octets with decimal values greater than 127 - // are allowed and neither are NULs (octets with decimal value 0). CR - //(decimal value 13) and LF (decimal value 10) octets only occur as - // part of CRLF line separation sequences. - char[] chars = str.toCharArray(); - for (int j = 0; j < chars.length; j++) - { - if((chars[j] > 127) || (chars[j] == 0) || - (chars[j] == 10) || (chars[j] == 13)) - { - throw new AssertionFailException("The char (" + chars[j] + - ")[code=" + (byte) chars[j] + " position=" + j + - "] does not allows in 7bit encoding content"); - } - } - } - } - - /** - * Validate an 8bit encoded message (RFC2045) - * @param message message to check - * @throws AssertionFailException if message does not conform - */ - private void checkOn8bit(String message) - throws AssertionFailException - { - String[] strs = split(message); - for (int i = 0; i < strs.length; i++) - { - String str = strs[i]; - - // check string length - if(str.length() > 998) - { - throw new AssertionFailException("The length (" + str.length() + - ") of the line (" + (i+1) + ") greater than 998"); - } - // octets with decimal values greater than 127 - // may be used. As with "7bit data" CR and LF octets only occur as part - // of CRLF line separation sequences and no NULs are allowed. - char[] chars = str.toCharArray(); - for (int j = 0; j < chars.length; j++) - { - if((chars[j] == 0) || (chars[j] == 10) || (chars[j] == 13)) - { - throw new AssertionFailException("The char (" + chars[j] + - ")[code=" + (byte) chars[j] + " position=" + j + - "] does not allows in 8bit encoding content"); - } - } - } - } - - /** - * Validate a quoted-printable encoded message (RFC2045) - * @param message message to check - * @throws AssertionFailException if message does not conform - */ - private void checkOnQuotedPrintable(String message) - throws AssertionFailException - { - String[] strs = split(message); - for (int i = 0; i < strs.length; i++) - { - // check length - // RFC2045 - // (5) (Soft Line Breaks) The Quoted-Printable encoding - //REQUIRES that encoded lines be no more than 76 - //characters long. If longer lines are to be encoded - //with the Quoted-Printable encoding, "soft" line breaks - //must be used. An equal sign as the last character on a - //encoded line indicates such a non-significant ("soft") - //line break in the encoded text. - if(((strs[i].indexOf("\t") != -1) || (strs[i].indexOf(" ") != -1)) && - (strs[i].length() > 76)) - { - throw new AssertionFailException("The length (" + strs[i].length() + - ") of the line (" + (i+1) + - ") greater than 76, \"soft\" line breaks must be used"); - } - - char[] chars = strs[i].toCharArray(); - for (int j = 0; j < chars.length; j++) - { - //(1) (General 8bit representation) Any octet, except a CR or - //LF that is part of a CRLF line break of the canonical - //(standard) form of the data being encoded, may be - //represented by an "=" followed by a two digit - //hexadecimal representation of the octet's value. The - //digits of the hexadecimal alphabet, for this purpose, - //are "0123456789ABCDEF". Uppercase letters must be - //used; lowercase letters are not allowed. Thus, for - //example, the decimal value 12 (US-ASCII form feed) can - //be represented by "=0C", and the decimal value 61 (US- - //ASCII EQUAL SIGN) can be represented by "=3D". This - //rule must be followed except when the following rules - //allow an alternative encoding. - // (2) (Literal representation) Octets with decimal values of - //33 through 60 inclusive, and 62 through 126, inclusive, - //MAY be represented as the US-ASCII characters which - //correspond to those octets (EXCLAMATION POINT through - //LESS THAN, and GREATER THAN through TILDE, - //respectively). - if((chars[j] == 61) && (chars.length > j+2)) - { - if(!isHex(chars[j+1]) || !isHex(chars[j+2])) - { - throw new AssertionFailException("the quoted char (" + - chars[j] + chars[j+1] + chars[j+2] + ") is incorrect"); - } else { - j += 2; - } - } - // check for space and tab - else if((chars[j] != 9) && (chars[j] != 32)) - { - // check invalid symbol - if((chars[j] == 0) || (chars[j] == 10) || (chars[j] == 13) || - (chars[j] < 33) || (chars[j] > 126) || (chars[j] == 61)) - { - throw new AssertionFailException("The char (" + chars[j] + - ")[code=" + (byte) chars[j] + " position=" + j + - "] must be quoted"); - } - } - } - } - } - - /** - * Validate a base64 encoded message (RFC3548) - * @param message message to check - * @throws AssertionFailException if message does not conform - */ - private void checkOnBase64(String message) - throws AssertionFailException - { - String[] strs = split(message); - for (int i = 0; i < strs.length; i++) - { - String str = strs[i]; - - // check string length - if(str.length() > 76) - { - throw new AssertionFailException("The length (" + str.length() + - ") of the line (" + (i+1) + ") greater than 998"); - } - // check for "ABCDEFGHIJKLMNOPQRSTUVWXYZabcefghijklmnopqrstuvwxyz0123456789/+" - char[] chars = str.toCharArray(); - for (int j = 0; j < chars.length; j++) - { - char c = chars[i]; - if((c < 47) || (c > 122) || ((c > 57) && (c < 65)) || - ((c > 90) && (c < 97))) - { - throw new AssertionFailException("The char (" + chars[j] + - ")[code=" + (byte) chars[j] + " position=" + j + - "] does not allows in base64 encoding content"); - } - } - } - } - - /** - * split string to array of strings and use as delimeter CRLF - * @param str original string - * @return array of strings - */ - private String[] split(String str) - { - ArrayList list = new ArrayList(); - for(int idx = str.indexOf("\r\n"); idx != -1; idx = str.indexOf("\r\n")) - { - list.add(str.substring(0, idx)); - str = str.substring(idx+2); - } - list.add(str); - return (String[]) list.toArray(new String[list.size()]); - } - - /** - * Returns true if byte is "0123456789ABCDEF" range, false othewise - * @param c char - * @return true if byte is "0123456789ABCDEF" range, false othewise - */ - private boolean isHex(char c) { - return (((c >= 48) && (c <= 57)) || ((c >= 65) && (c <= 70))); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1936.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1936.java deleted file mode 100644 index db8ae713f..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1936.java +++ /dev/null @@ -1,72 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - -/** - * AP1936 - * <context>For a candidate multipart/related message</context> - * <assertionDescription>In a message, all MIME encapsulation boundary strings - * are preceded with the ascii characters CR (13) and LF (10) - * in that sequence.</assertionDescription> - */ -public class AP1936 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public AP1936(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // if boundary equals null, then result is not applicable - if (!entryContext.getMessageEntry().isMimeContent()) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - // otherwise it is true -- checked in monitor - // MimeParts mimeParts = entryContext.getMessageEntry().getMimeParts(); - // Iterator i = mimeParts.getParts().iterator(); - // boolean invalidBoundaryStringFound = false; - //while (i.hasNext() && !invalidBoundaryStringFound) - //{ - // MimePart part = (MimePart)i.next(); - // String[] boundaries = part.getBoundaryStrings(); - // for (int j = 0; j<boundaries.length; j++) - // { - // if (!boundaries[j].startsWith("
\n")) - // { - // invalidBoundaryStringFound = true; - // result = AssertionResult.RESULT_FAILED; - // failureDetail = validator.createFailureDetail(boundaries[j], entryContext); - // break; - // } - // } - //} - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1942.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1942.java deleted file mode 100644 index 5fb7973ea..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1942.java +++ /dev/null @@ -1,264 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import java.util.Iterator; -import java.util.List; - -import javax.wsdl.BindingOperation; -import javax.wsdl.Message; -import javax.wsdl.Part; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.mime.MIMEContent; -import javax.wsdl.extensions.mime.MIMEMultipartRelated; -import javax.wsdl.extensions.mime.MIMEPart; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.log.MimePart; -import org.eclipse.wst.wsi.internal.core.log.MimeParts; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.MIMEConstants; -import org.eclipse.wst.wsi.internal.core.util.MIMEUtils; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; - -/** - * AP1942 - * - * <context>For a candidate part of a multipart/related message that is bound - * to a mime:content that refers to global element declaration (via the element - * attribute of the wsdl:part element)</context> - * <assertionDescription>The bound message part is serialized within the MIME - * part as a serialization of an XML infoset whose root element is described by - * the referenced element.</assertionDescription> - */ -public class AP1942 extends AssertionProcess implements WSITag -{ - private final BaseMessageValidator validator; - - /** - * @param WSDLValidatorImpl - */ - public AP1942(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - if (!entryContext.getMessageEntry().isMimeContent()) - { - throw new AssertionNotApplicableException(); - } - else - { - MimeParts mimeParts = entryContext.getMessageEntry().getMimeParts(); - - // If the message does not contain non-root MIME parts - // the assertion is not applicable - if (mimeParts.count()< 2) - throw new AssertionNotApplicableException(); - - // Getting an operation matched for a message - BindingOperation bindingOperation = validator.getOperationMatch( - entryContext.getEntry().getEntryType(), - entryContext.getMessageEntryDocument()); - // If no one operation matches, the assertion is not applicable - if (bindingOperation == null) - throw new AssertionNotApplicableException(); - // Getting the corresponding extensibility elements and message - List extElems; - Message message; - if (MessageEntry.TYPE_REQUEST - .equals(entryContext.getEntry().getEntryType())) - { - extElems = bindingOperation.getBindingInput() == null ? null - : bindingOperation.getBindingInput().getExtensibilityElements(); - message = bindingOperation.getOperation().getInput() == null ? null - : bindingOperation.getOperation().getInput().getMessage(); - } - else - { - extElems = bindingOperation.getBindingOutput() == null ? null - : bindingOperation.getBindingOutput().getExtensibilityElements(); - message = bindingOperation.getOperation().getOutput() == null ? null - : bindingOperation.getOperation().getOutput().getMessage(); - } - // A variable that indicates a binding contains at least one - // mime:content element that refers to global element declaration - boolean mimeContentFound = false; - // Going through the message MIME parts - Iterator iMimeParts = mimeParts.getParts().iterator(); - int i = 0; - while (iMimeParts.hasNext()) - { - i = i + 1; - // Getting a MIME part - MimePart mimePart = (MimePart)iMimeParts.next(); - // Getting a part name form the Content-ID header - String partName = MIMEUtils.getMimeHeaderAttribute( - mimePart.getHeaders(), MIMEConstants.HEADER_CONTENT_ID); - try - { - int idx = partName.indexOf("="); - if((idx != -1) && partName.startsWith("<")) - partName = encodePartName(partName.substring(1, idx)); - } - catch (Exception e) - { - // Could not extract a part name from the header, - // proceed with the next MIME part - continue; - } - - // If the part is bound by a mime:content element - if (boundToMimeContent(extElems, partName) && message != null) - { - // Getting the corresponding part - Part part = (Part) message.getParts().get(partName); - QName refName; - // If the part refers to global element declaration - if (part != null && (refName = part.getElementName()) != null) - { - mimeContentFound = true; - // Trying to parse part content - Document doc = null; - try - { - doc = XMLUtils.parseXML(mimePart.getContent()); - } - catch (Exception e) {} - // If the message is not an XML infoset, the assertion failed - if (doc == null) - { - throw new AssertionFailException("The bound message part of the " - + "MIME part number " + (i + 1) + " is invalid XML infoset."); - } - // Creating a QName object of the root element - QName rootName = new QName( - doc.getDocumentElement().getNamespaceURI(), - doc.getDocumentElement().getLocalName()); - // If the names of the root element and the referenced element - // are not equal, the assertion failed - if (!refName.equals(rootName)) - { - throw new AssertionFailException("The root element name is " - + rootName + ", the name of the referenced element is " - + refName + "."); - } - } - } - } - // If no mime:contentS found, the assertion is not applicable - if (!mimeContentFound) - throw new AssertionNotApplicableException(); - } - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - - /** - * Validates whether a part is bound by a mime:content element. - * @param extElems a list of extensibility elements. - * @param part a part name. - * @return true if a part is bound by mime:content, false otherwise. - */ - private boolean boundToMimeContent(List extElems, String part) - { - if (extElems != null && extElems.size() > 0) - { - ExtensibilityElement extElem = (ExtensibilityElement) extElems.get(0); - // Expected the first ext elem is mime:multipartRelated - if (extElem.getElementType().equals(WSDL_MIME_MULTIPART)) - { - // Getting the mime:part elements of the mime:multipartRelated - List mimeParts = ((MIMEMultipartRelated) extElem).getMIMEParts(); - for (int i = 0; i < mimeParts.size(); i++) - { - // Getting the mime:part element needed - List elems = ((MIMEPart) mimeParts.get(i)).getExtensibilityElements(); - if (elems.size() > 0) - { - // Getting the first element - ExtensibilityElement elem = (ExtensibilityElement) elems.get(0); - // If the element is mime:content and it binds a part - if (elem.getElementType().equals(WSDL_MIME_CONTENT) - && part.equals(((MIMEContent)elem).getPart())) - { - return true; - } - } - } - } - } - return false; - } - - /** - * Encode string from %HH to UTF - * @param str string - * @return encoded string from %HH format - */ - private String encodePartName(String str) { - StringBuffer res = new StringBuffer(""); - for (int i = 0; i < str.length(); i++) - { - if((str.charAt(i) == '%') && (str.length() > i+2)) - { - try - { - int value = Integer.parseInt( - String.valueOf(str.charAt(i+1)) + - String.valueOf(str.charAt(i+2)), 16); - res.append((char) value); - i +=2; - } - catch(NumberFormatException e){} - } - else - { - res.append(str.charAt(i)); - } - } - return res.toString(); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1945.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1945.java deleted file mode 100644 index 1dbf310cb..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1945.java +++ /dev/null @@ -1,73 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPConstants; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; - -/** - * AP1945 - * <context>For a candidate message</context> - * <assertionDescription>The Content-Type HTTP header field-value in a message - * is either "multipart/related" or "text/xml".</assertionDescription> - */ -public class AP1945 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public AP1945(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - String headerName = HTTPConstants.HEADER_CONTENT_TYPE; - - // Getting a header - String headerValue = HTTPUtils.getHttpHeaderAttribute( - entryContext.getMessageEntry().getHTTPHeaders(), - headerName); - // If headerValue is null, the assertion is not applicable - if (headerValue == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - // If the header is "multipart/related" or "text/xml", - // then the assertion passed - else if (headerValue.equalsIgnoreCase(WSIConstants.CONTENT_TYPE_MULTIPART) - || headerValue.equalsIgnoreCase(WSIConstants.CONTENT_TYPE_TEXT_XML)) - { - } - // else the assertion failed - else { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - headerValue, entryContext); - } - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1946.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1946.java deleted file mode 100644 index aaf0f1cb2..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1946.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - -/** - * AP1946 - * - * <context>For a candidate multipart/related message - * containing non-root parts</context> - * <assertionDescription>The candidate multipart/related message - * containing non-root parts.</assertionDescription> - */ -public class AP1946 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param WSDLValidatorImpl - */ - public AP1946(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // If there are more than one MIME parts, the assertion passed - if (entryContext.getMessageEntry().getMimeParts().count() > 1) - { - failureDetail = validator.createFailureDetail( - testAssertion.getDetailDescription(), entryContext); - } - // The assertion is not applicable - else - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP5100.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP5100.java deleted file mode 100644 index 850e66029..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP5100.java +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - -/** - * AP5100 - * - * <context>For a candidate non-multipart/related message in the log file, with an HTTP entity-body.</context> - * <assertionDescription>The SOAP envelope is the exclusive payload of the HTTP entity-body.</assertionDescription> - * - * @author lauzond - */ -public class AP5100 extends SSBP5100 -{ - /** - * Constructor. - * @param impl - */ - public AP5100(BaseMessageValidator impl) - { - super(impl); - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // If there is a SOAP Message with Attachments, the assertion is not applicable - if (entryContext.getMessageEntry().isMimeContent()) - { - return validator.createAssertionResult(testAssertion, AssertionResult.RESULT_NOT_APPLICABLE, failureDetail); - } - else - { - return super.validate(testAssertion, entryContext); - } - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP5101.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP5101.java deleted file mode 100644 index 5ba2cb9e0..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP5101.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ - package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - -/** - * AP5101 - * <context>For a non-multipart/related candidate message in the log file.</context> - * <assertionDescription>A message must have a "Content-Type" HTTP header field. The "Content-Type" HTTP header field must have a field-value whose media type is "text/xml".</assertionDescription> - * - * @author lauzond - */ -public class AP5101 extends SSBP5101 { - - /** - * @param impl - */ - public AP5101(BaseMessageValidator impl) - { - super(impl); - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // If there is a SOAP Message with Attachments, the assertion is not applicable - if (entryContext.getMessageEntry().isMimeContent()) - { - return validator.createAssertionResult(testAssertion, AssertionResult.RESULT_NOT_APPLICABLE, failureDetail); - } - else - { - return super.validate(testAssertion, entryContext); - } - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1001.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1001.java deleted file mode 100644 index 0abcbcc13..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1001.java +++ /dev/null @@ -1,101 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ - package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.MessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - - -/** - * BP1001. - * If it is a request, the arg #2 of POST is <HTTP/1.1>. If absent, first line of the - * body is: HTTP-Version = HTTP/1.1. If it is a response, it starts with <HTTP/1.1>. - */ -public class BP1001 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1001(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - String httpHeader = entryContext.getMessageEntry().getHTTPHeaders(); - - // If this is a request message, then check POST header - if (entryContext - .getMessageEntry() - .getType() - .equalsIgnoreCase(MessageEntry.TYPE_REQUEST)) - { - Vector requestLine; - if (((requestLine = this.validator.getPostRequest(httpHeader)) == null) - || (requestLine.size() == 0)) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - String method = (String) requestLine.get(0); - //String requestURI = (String) requestLine.get(1); - String httpVersion = (String) requestLine.get(2); - - //For each request message that is an HTTP POST - if (method.equals(MessageValidator.HTTP_POST) && httpVersion != null) - { - if (httpVersion.equals(MessageValidator.HTTP_VERSION_1_1)) - { - result = AssertionResult.RESULT_PASSED; - } - else - { - result = AssertionResult.RESULT_WARNING; - failureDetail = this.validator.createFailureDetail(httpHeader, entryContext); - } - } - } - } - - // Otherwise it must be a response - else - { - if (httpHeader.startsWith(MessageValidator.HTTP_VERSION_1_1)) - { - result = AssertionResult.RESULT_PASSED; - } - else - { - result = AssertionResult.RESULT_WARNING; - failureDetail = this.validator.createFailureDetail(httpHeader, entryContext); - } - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1002.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1002.java deleted file mode 100644 index 259a46a0e..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1002.java +++ /dev/null @@ -1,137 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import com.ibm.icu.util.StringTokenizer; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.MessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - - -/** - * BP1002. - * If it is a request, the arg #2 of POST is <HTTP/1.1> or <HTTP/1.0>. If absent, first line - * of the body is: HTTP-Version = HTTP/1.1. (or HTTP/1.0). If it is a response, it starts with - * <HTTP/1.1> or <HTTP/1.0> or higher; - */ -public class BP1002 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1002(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - String httpHeader = entryContext.getMessageEntry().getHTTPHeaders(); - - // If this is a request message, then check POST for 1.1 or 1.0 - if (entryContext - .getMessageEntry() - .getType() - .equalsIgnoreCase(MessageEntry.TYPE_REQUEST)) - { - // Get each entry in the post header - StringTokenizer postMessage = new StringTokenizer(httpHeader, " \r\n"); - - // If there is no third token, then fail - if (postMessage.countTokens() < 3) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(httpHeader, entryContext); - } - else - { - // Get the 3rd token (there must be a better way to do this?) - String httpVersion = ""; - String messageType = ""; - for (int i = 0; i < 3; i++) - { - // Message type - if (i == 0) - messageType = postMessage.nextToken(); - else if (i == 2) - httpVersion = postMessage.nextToken(); - else - postMessage.nextToken(); - } - - if (!messageType.equals("POST")) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - // If the third token is not HTTP/1.1 ot HTTP/1.0, then fail - else if ( - (!httpVersion.equalsIgnoreCase(MessageValidator.HTTP_VERSION_1_1)) - && (!httpVersion.equalsIgnoreCase(MessageValidator.HTTP_VERSION_1_0))) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(httpHeader, entryContext); - } - } - } - - // Else it is a response message - else - { - // Response-Line (1st) = HTTP-Version SP Response-code SP Response-text CRLF - StringTokenizer httpMessageTokenizer = - new StringTokenizer(httpHeader, "\n\r\f"); - - String startLine = null; - try - { - if (httpMessageTokenizer.hasMoreTokens()) - { - startLine = httpMessageTokenizer.nextToken(); - } - else - { - // HTTP version info expected but not found - // (state the fact in the exception message?) - throw new AssertionFailException(httpHeader); - } - - // check that protocol version indicates HTTP/1.0 or HTTP/1.1 - if (!startLine.startsWith(MessageValidator.HTTP_VERSION_1_1) - && !startLine.startsWith(MessageValidator.HTTP_VERSION_1_0)) - { - throw new AssertionFailException(httpHeader); - } - } - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(e.getMessage(), entryContext); - } - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1004.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1004.java deleted file mode 100644 index cf7f1f199..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1004.java +++ /dev/null @@ -1,73 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import com.ibm.icu.util.StringTokenizer; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.MessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - - -/** - * BP1004. - * The request message is a POST message, without any use of framework extension. - */ -public class BP1004 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1004(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - String httpHeader = entryContext.getMessageEntry().getHTTPHeaders(); - StringTokenizer httpMessageTokenizer = - new StringTokenizer(httpHeader, "\n\r\f"); - - // Check if this is a POST message - if (!httpHeader.startsWith(MessageValidator.HTTP_POST)) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(httpHeader, entryContext); - } - - String line = null; - while (httpMessageTokenizer.hasMoreTokens() - && (result.equals(AssertionResult.RESULT_PASSED))) - { - line = httpMessageTokenizer.nextToken(); - if ((line != null) - && (line.startsWith("M-POST") || line.startsWith("Ext:"))) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(httpHeader, entryContext); - } - } //End While - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1006.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1006.java deleted file mode 100644 index b067ce09b..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1006.java +++ /dev/null @@ -1,69 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import java.util.Map; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; - - -/** - * BP1006. - */ -public class BP1006 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1006(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // Parse the HTTP header - String rawHTTPHeader = entryContext.getMessageEntry().getHTTPHeaders(); - Map httpHeader = HTTPUtils.getHttpHeaderTokens(rawHTTPHeader, ":"); - - // Get the soap action header - String soapAction = (String) httpHeader.get("SOAPAction".toUpperCase()); - - // If there is no soap action header, then NA - if (soapAction == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else if (!(soapAction.startsWith("\"")) || !(soapAction.endsWith("\""))) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - this.validator.createFailureDetail( - "HTTP Header: \"" + rawHTTPHeader + "\".", - entryContext); - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1010.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1010.java deleted file mode 100644 index faac735e3..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1010.java +++ /dev/null @@ -1,126 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import javax.wsdl.Binding; -import javax.wsdl.BindingOperation; -import javax.wsdl.Operation; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; -import org.eclipse.wst.wsi.internal.core.util.OperationSignature; -import org.eclipse.wst.wsi.internal.core.util.TypesRegistry; -import org.w3c.dom.Document; - - -/** - * BP1010. - * It MUST NOT contain a SOAP Envelope: the HTTP entity-body must be empty. - */ -public class BP1010 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1010(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /** - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(TestAssertion, EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - try - { - // Parse request message - Document docRequest = entryContext.getRequestDocument(); - - // get SOAPAction - String headers = entryContext.getRequest().getHTTPHeaders(); - String action = null; - if (headers != null) - action = (String) HTTPUtils.getHttpHeaderTokens(headers, ":").get("SOAPAction".toUpperCase()); - - Binding binding = validator.analyzerContext.getCandidateInfo().getBindings()[0]; - TypesRegistry registry = - new TypesRegistry( - this.validator.getWSDLDocument().getDefinitions(), - validator); - OperationSignature.OperationMatch match = - OperationSignature.matchOperation( - docRequest, - action, - binding, - registry); - - if (match == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - - BindingOperation bindingOperation = match.getOperation(); - //find operation in port type - Operation operation = bindingOperation.getOperation(); - if (operation == null) - { - result = AssertionResult.RESULT_FAILED; - } - else - { - if (operation.getOutput() == null) - { - String message = entryContext.getMessageEntry().getMessage(); - if (message.length() == 0) - { - result = AssertionResult.RESULT_PASSED; - } - else - { - result = AssertionResult.RESULT_FAILED; - } - } - else - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - } - } - - if (result == AssertionResult.RESULT_FAILED) - { - failureDetail = this.validator.createFailureDetail(null, entryContext); - } - } - catch (Exception e) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1101.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1101.java deleted file mode 100644 index baecac158..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1101.java +++ /dev/null @@ -1,86 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.Utils; - - -/** - * BP1101. - * A response message that does not contain a SOAP message SHOULD be sent - * using either a "200 OK" or "202 Accepted" HTTP status code. - */ -public class BP1101 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1101(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /** - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(TestAssertion, EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - // response does not contains SOAP message - if (entryContext.getMessageEntry().getMessage() == null - || "".equals(entryContext.getMessageEntry().getMessage())) - { - // check HTTP status code - String httpStatus = - Utils.getHTTPStatusCode( - entryContext.getMessageEntry().getHTTPHeaders()); - if ("200".equals(httpStatus)); - else if ("202".equals(httpStatus)); - - // If 4xx, then result is notApplicable - else if (httpStatus.startsWith("4")) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - result = AssertionResult.RESULT_WARNING; - failureDetail = - this.validator.createFailureDetail( - "\nResponse message:\nHeaders:\n" - + entryContext.getMessageEntry().getHTTPHeaders() - + "Message:\n" - + entryContext.getMessageEntry().getMessage(), - entryContext); - } - } - else - { - // response contains SOAP message - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1103.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1103.java deleted file mode 100644 index 900938f1f..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1103.java +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.Utils; - - -/** - * BP1103. - * The request message should not contain a POST method. - */ -public class BP1103 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1103(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /** - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(TestAssertion, EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - MessageEntry request = entryContext.getRequest(); - String requestHeaders = request.getHTTPHeaders(); - - // Get HTTP status code - String httpStatus = - Utils.getHTTPStatusCode( - entryContext.getMessageEntry().getHTTPHeaders()); - - if (requestHeaders.startsWith("POST ")) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else if (!"405".equals(httpStatus)) - { - result = AssertionResult.RESULT_WARNING; - failureDetail = - this.validator.createFailureDetail( - "\nRequest message:\nHeaders:\n" - + entryContext.getRequest().getHTTPHeaders() - + "\nMessage:\n" - + entryContext.getRequest().getMessage() - + "\n\nResponse message:\nHeaders:\n" - + entryContext.getResponse().getHTTPHeaders() - + "\nMessage:\n" - + entryContext.getResponse().getMessage(), - entryContext); - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1104.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1104.java deleted file mode 100644 index 4fcdbd756..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1104.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPConstants; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; -import org.eclipse.wst.wsi.internal.core.util.Utils; - - -/** - * BP1104. - * The request message should not contain a content-type of "text/xml". - */ -public class BP1104 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1104(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /** - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(TestAssertion, EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // check request for the "text/xml" content type - MessageEntry request = entryContext.getRequest(); - String headers = request.getHTTPHeaders(); - String contentType = (String) HTTPUtils.getHttpHeaderTokens(headers, ":") - .get(HTTPConstants.HEADER_CONTENT_TYPE.toUpperCase()); - - // Get HTTP status code - String httpStatus = - Utils.getHTTPStatusCode( - entryContext.getMessageEntry().getHTTPHeaders()); - - // If the request message has a content type of text/xml, - // then the assertion is not applicable - if (contentType != null - && contentType.indexOf(WSIConstants.CONTENT_TYPE_TEXT_XML) != -1) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - // check HTTP status code - if (!"415".equals(httpStatus)) - { - result = AssertionResult.RESULT_WARNING; - failureDetail = - this.validator.createFailureDetail( - "\nRequest message:\nHeaders:\n" - + entryContext.getRequest().getHTTPHeaders() - + "\nMessage:\n" - + entryContext.getRequest().getMessage() - + "\n\nResponse message:\nHeaders:\n" - + entryContext.getResponse().getHTTPHeaders() - + "\nMessage:\n" - + entryContext.getResponse().getMessage(), - entryContext); - } - } - - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1116.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1116.java deleted file mode 100644 index 250f84f2b..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1116.java +++ /dev/null @@ -1,150 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import javax.wsdl.extensions.soap.SOAPOperation; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; -import org.eclipse.wst.wsi.internal.core.util.OperationSignature; -import org.eclipse.wst.wsi.internal.core.util.TypesRegistry; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; -import org.w3c.dom.Document; - - -/** - * BP1116. - * SOAPAction header should contain a quoted string that has same - * value as the value of the soapbind:operation/@soapAction attribute, - * and an empty string ("") if there is no such attribute. - */ -public class BP1116 extends AssertionProcessVisitor -{ - - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP1116(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - private String action = null; - private String headers = null; - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPOperation, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - SOAPOperation soapOper, - Object parent, - WSDLTraversalContext ctx) - { - String soapAction = soapOper.getSoapActionURI(); - if (soapAction == null) - { - if (!"".equals(action)) - { - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = - "\nHTTP headers:\n" + headers + "\nsoapAction:\n" + soapAction; - } - } - else - { - if (!soapAction.equals(action)) - { - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = - "\nHTTP headers:\n" + headers + "\nsoapAction:\n" + soapAction; - } - } - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - // Parse request message - Document doc = entryContext.getMessageEntryDocument(); - - // get SOAPAction - headers = entryContext.getRequest().getHTTPHeaders(); - if (headers != null) - action = (String) HTTPUtils.getHttpHeaderTokens(headers, ":").get("SOAPAction".toUpperCase()); - - if (action == null) - throw new AssertionNotApplicableException(); - - if (action.length() > 1 - && action.charAt(0) == '"' - && action.charAt(action.length() - 1) == '"') - { - action = action.substring(1, action.length() - 1); - } - - OperationSignature.OperationMatch match = - OperationSignature.matchOperation( - doc, - null, - validator.analyzerContext.getCandidateInfo().getBindings()[0], - new TypesRegistry( - validator.analyzerContext - .getCandidateInfo() - .getWsdlDocument() - .getDefinitions(), - validator), - false); - - if (match != null) - { - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(this); - traversal.setVisitor(this); - traversal.visitSOAPOperation(true); - traversal.traverse(match.getOperation()); - } - else - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - } - catch (Exception e) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - if (result == AssertionResult.RESULT_FAILED - && failureDetailMessage != null) - { - failureDetail = this.validator.createFailureDetail(failureDetailMessage, entryContext); - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP4103.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP4103.java deleted file mode 100644 index e63a5cf14..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP4103.java +++ /dev/null @@ -1,126 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPConstants; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; - -/** - * BP4103 - * - * <context>For a candidate message in the message log file</context> - * <assertionDescription>The message contains an HTTP Authentication header field</assertionDescription> - */ -public class BP4103 extends AssertionProcess { - - private static final String HTTP_AUTH_SCHEME_BASIC = "Basic"; - private static final String HTTP_AUTH_SCHEME_DIGEST = "Digest"; - - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP4103(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // Getting message headers - String headers = entryContext.getMessageEntry().getHTTPHeaders(); - // If this is a request message - if (entryContext.getMessageEntry().getType().equals(MessageEntry.TYPE_REQUEST)) - { - // If the request headers contain authentication scheme "Basic" or "Digest" - // or there are no HTTP Authentication headers, the assertion is not applicable - if (!containsInvalidAuth(headers, HTTPConstants.HEADER_AUTHORIZATION) - && !containsInvalidAuth(headers, HTTPConstants.HEADER_PROXY_AUTHORIZATION)) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - } - // else this is a response - else - { - // If the response headers contain authentication scheme "Basic" or "Digest" - // or there are no HTTP Authentication headers, the assertion is not applicable - if (!containsInvalidAuth(headers, HTTPConstants.HEADER_WWW_AUTHENTICATE) - && !containsInvalidAuth(headers, HTTPConstants.HEADER_PROXY_AUTHENTICATE)) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - } - - // Assertion result has not been changed, HTTP Authentication headers - // does not contain authentication scheme "Basic" or "Digest", - // the assertion passed - if (result.equals(AssertionResult.RESULT_PASSED)) - { - failureDetail = validator.createFailureDetail( - testAssertion.getDetailDescription(), entryContext); - } - - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Checks whether HTTP headers contain HTTP Authentication headers that uses - * authentication scheme other than "Basic" or "Digest". - * @param headers HTTP headers. - * @param header a header name being retrieved. - * @return true if the HTTP Authentication header that uses authentication - * scheme other than "Basic" or "Digest" is found, false otherwise. - */ - private boolean containsInvalidAuth(String headers, String header) - { - // Getting a header value - String headerValue = null; - try - { - headerValue = (String) HTTPUtils.getHttpHeaderTokens(headers,":") - .get(header.toUpperCase()); - } - catch (Exception e) {} - - // If the header is presented - if (headerValue != null) - { - // Retrieving authentication scheme - int idxSP = headerValue.indexOf(" "); - if (idxSP > -1) - { - headerValue = headerValue.substring(0, idxSP); - } - // If a scheme is neither "Basic" nor "Digest", return true - if (!headerValue.equalsIgnoreCase(HTTP_AUTH_SCHEME_BASIC) - && !headerValue.equalsIgnoreCase(HTTP_AUTH_SCHEME_DIGEST)) - { - return true; - } - } - return false; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP4104.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP4104.java deleted file mode 100644 index 36d0cf961..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP4104.java +++ /dev/null @@ -1,87 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPConstants; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; - -/** - * BP4104 - * <context>For a candidate message in the message log file containing an HTTP Header field that is not from the following list of specified header fields: (http://www.mnot.net/drafts/draft-nottingham-http-header-reg-00.txt)</context> - * <assertionDescription>The message contains an HTTP Header field that is not from the following list of specified header fields: (http://www.mnot.net/drafts/draft-nottingham-http-header-reg-00.txt)</assertionDescription> - */ -public class BP4104 extends AssertionProcess { - - private final BaseMessageValidator validator; - - private List knownHeaderNames; - - /** - * @param BaseMessageValidator - */ - public BP4104(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - knownHeaderNames = null; - } - - private List getAllKnownHeaderNames() { - if (knownHeaderNames == null) { - knownHeaderNames = HTTPConstants.getAllKnownHeaderNames(); - } - return knownHeaderNames; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - // getting HTTP Headers - Map hmap = HTTPUtils.getHttpHeaderTokens( - entryContext.getMessageEntry().getHTTPHeaders(), ":"); - - Iterator i = hmap.keySet().iterator() ; - while (i.hasNext()) { - String headerName = (String) i.next(); - // If header name is not known, then the assertion passed - if (!getAllKnownHeaderNames().contains(headerName.toUpperCase())) - { - failureDetail = validator.createFailureDetail( - testAssertion.getDetailDescription(), entryContext); - - break; - } - } - - // If there is no HTTP header that is not from a list, - // then the assertion is not applicable - if (failureDetail == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP4105.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP4105.java deleted file mode 100644 index 0903d3767..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP4105.java +++ /dev/null @@ -1,95 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import com.ibm.icu.util.StringTokenizer; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPConstants; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; - - -/** - * BP4105 - * <context>For a candidate message in the message log file containing a Content-encoding HTTP header field with a value other than "gzip", "compress" or "deflate"</context> - * <assertionDescription>The contained Content-encoding HTTP header field has a value other than "gzip", "compress" or "deflate".</assertionDescription> - */ -public class BP4105 extends AssertionProcess { - - // All the registered content-coding value tokens (RFC2616) except "identity" - private static final String GZIP_VALUE = "gzip"; - private static final String COMPRESS_VALUE = "compress"; - private static final String DEFLATE_VALUE = "deflate"; - - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP4105(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - // Getting the Content-Encoding HTTP header value - String contentEncoding = (String) HTTPUtils.getHttpHeaderTokens( - entryContext.getMessageEntry().getHTTPHeaders(), - ":").get(HTTPConstants.HEADER_CONTENT_ENCODING.toUpperCase()); - - if (contentEncoding != null) - { - // Lowering value's case because RFC2616 says - // that all content-coding values are case-insensitive - contentEncoding = contentEncoding.toLowerCase(); - - // Multiple encodings can be applied to an entity, - // so breaking the value into tokens - StringTokenizer st = new StringTokenizer(contentEncoding, ","); - while (st.hasMoreTokens()) - { - String token = st.nextToken().trim(); - // If a token does not equal to any registered one - // then the assertion passed - if ( !token.equals(GZIP_VALUE) - && !token.equals(COMPRESS_VALUE) - && !token.equals(DEFLATE_VALUE)) { - - failureDetail = validator.createFailureDetail( - testAssertion.getDetailDescription(), entryContext); - - break; - } - } - } - - // If there is no unregistered value of Content-Encoding, - // then the assertion is not applicable - if (failureDetail == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP4106.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP4106.java deleted file mode 100644 index a278633b0..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP4106.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPConstants; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; - - -/** - * BP4106 - * <context>For a candidate response message in the message log file that contains a transfer-encoding HTTP header field.</context> - * <assertionDescription>The contained transfer-encoding HTTP header field has a value of "chunked"</assertionDescription> - */ -public class BP4106 extends AssertionProcess { - - private static final String CHUNKED_VALUE = "chunked"; - - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP4106(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - // Getting a Transfer-Encoding HTTP header value - String transferEncoding = (String) HTTPUtils.getHttpHeaderTokens( - entryContext.getMessageEntry().getHTTPHeaders(), - ":").get(HTTPConstants.HEADER_TRANSFER_ENCODING.toUpperCase()); - - if (transferEncoding != null) - { - // Lowering value's case because RFC2616 says - // that all transfer-coding values are case-insensitive - transferEncoding = transferEncoding.toLowerCase(); - - // If the value is other than "chunked", then the assertion passed - if (!transferEncoding.equals(CHUNKED_VALUE)) { - failureDetail = validator.createFailureDetail( - testAssertion.getDetailDescription(), entryContext); - } - } - - // If there is no Tranfer-Encoding or its value is "chunked", - // then the assertion is not applicable - if (failureDetail == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP4107.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP4107.java deleted file mode 100644 index e699a3320..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP4107.java +++ /dev/null @@ -1,66 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPConstants; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; - - -/** - * BP4107 - * <context>For a request message containing an Upgrade field in the HTTP Headers.</context> - * <assertionDescription>The request message contains an Upgrade field in the HTTP Headers.</assertionDescription> - */ -public class BP4107 extends AssertionProcess { - - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public BP4107(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // Getting the Upgrade HTTP header value - String upgrage = (String) HTTPUtils.getHttpHeaderTokens( - entryContext.getMessageEntry().getHTTPHeaders(), - ":").get(HTTPConstants.HEADER_UPGRADE.toUpperCase()); - - // If the header is presented, then the assertion passed - if (upgrage != null) - { - failureDetail = validator.createFailureDetail( - testAssertion.getDetailDescription(), entryContext); - } - // else the assertion is not applicable - else - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/MessageValidatorImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/MessageValidatorImpl.java deleted file mode 100644 index 15af0e6b0..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/MessageValidatorImpl.java +++ /dev/null @@ -1,78 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2003 IBM Corporation, Parasoft 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 - Initial API and implementation - * Parasoft - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.MessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; - -/** - * @version 1.0 - */ -public class MessageValidatorImpl - extends BaseMessageValidator - implements MessageValidator -{ - /** - * Get the artifact type that this validator applies to. - * @return the artifact type (a String) - */ - public String getArtifactType() { - return TYPE_MESSAGE; - } - - /** - * Get the collection of entry types that this validator applies to. - * @return an array of entry types (Strings) - */ - public String[] getEntryTypes() { - return new String[] { - TYPE_MESSAGE_REQUEST, - TYPE_MESSAGE_RESPONSE, - TYPE_MESSAGE_ANY, - TYPE_MIME_PART, - TYPE_MIME_ROOT_PART - }; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl#isPrimaryEntryTypeMatch(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - protected boolean isPrimaryEntryTypeMatch( - TestAssertion testAssertion, - EntryContext entryContext) - { - boolean match = false; - - // Verify that the entry and test assertion have the same primary context - if ((testAssertion.getEntryTypeName().equals(TYPE_MESSAGE_ANY)) - || (testAssertion.getEntryTypeName().equals(TYPE_MESSAGE_REQUEST) - && (entryContext - .getEntry() - .getEntryType() - .getTypeName() - .equals(TYPE_MESSAGE_REQUEST))) - || (testAssertion.getEntryTypeName().equals(TYPE_MESSAGE_RESPONSE) - && (entryContext - .getEntry() - .getEntryType() - .getTypeName() - .equals(TYPE_MESSAGE_RESPONSE))) - || testAssertion.getEntryTypeName().equals(TYPE_MIME_ROOT_PART) - || testAssertion.getEntryTypeName().equals(TYPE_MIME_PART)) - { - match = true; - } - - return match; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/SSBP1003.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/SSBP1003.java deleted file mode 100644 index 461eae6c4..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/SSBP1003.java +++ /dev/null @@ -1,228 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import java.util.Map; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionPassException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; - - -/** - * SSBP1003. - * - * <context>For a candidate non-multipart/related message in the log file, which has a non-empty entity-body</context> - * <assertionDescription> - * The logged SOAP envelope is a UTF-8 transcript of an envelope originally encoded as UTF-8 or UTF-16. - * The HTTP Content-Type header's charset value is either UTF-8 or UTF-16. Looking at the messageContent - * element of the logged message, either - * (1) it has a BOM attribute which maps the charset value in the Content-Type header, or - * (2) it has it has an XML declaration which matches the charset value in the Content-Type header, or - * (3) there is no BOM attribute and no XML declaration, and the charset value is UTF-8. - * </assertionDescription> - * - * @author lauzond - */ -public class SSBP1003 extends AssertionProcess -{ - protected final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public SSBP1003(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - // If there is a response message for one-way operation, the assertion is not applicable - if (validator.isOneWayResponse(entryContext)) - { - throw new AssertionNotApplicableException(); - } - - String httpHeader = entryContext.getMessageEntry().getHTTPHeaders(); - - Map httpHeaderMap = HTTPUtils.getHttpHeaderTokens(httpHeader, ":"); - String contentType = (String) httpHeaderMap.get("Content-Type".toUpperCase()); - - if (contentType == null) - { - throw new AssertionFailException( - "The Content-Type header is not present."); - } - - contentType = contentType.trim(); - String charset = contentType.substring( - contentType.indexOf(";") + 1, contentType.length()); - charset = charset.trim(); - if (!charset.startsWith("charset")) - { - throw new AssertionFailException( - "Missing or bad \"charset\" attribute in the Content-Type header: " - + charset); - } - - String charsetValue = charset.substring( - charset.indexOf("=") + 1, charset.length()); - if (charsetValue.startsWith("\"")) - { - charsetValue = charsetValue.substring(1, charsetValue.length() - 1); - } - - if (!charsetValue.equalsIgnoreCase("utf-8") - && !charsetValue.equalsIgnoreCase("utf-16")) - { - throw new AssertionFailException("The value of the \"charset\" " - + "attribute of the Content-Type header is " + contentType); - } - // Parse log message - //gets first string - int idx = entryContext.getMessageEntry().getMessage().indexOf("<?xml"); - if (idx == -1) - { - throw new AssertionPassException(); - } - - int idx2 = entryContext.getMessageEntry().getMessage().indexOf("?>"); - if (idx2 == -1) - { - throw new AssertionPassException(); - } - - String xmlDeclaration = entryContext.getMessageEntry().getMessage() - .substring(idx, idx2 + "?>".length()); - - idx = xmlDeclaration.indexOf("encoding"); - if (idx == -1) - { - if (charsetValue.equalsIgnoreCase("utf-8")) - { - throw new AssertionPassException(); - } - else - { - throw new AssertionFailException("There is no XML declaration and the" - + " charset value in the Content-Type header is not UTF-8." - + "\nCharset value in the Content-Type header: " + charsetValue); - } - } - - int idxQ = xmlDeclaration.indexOf('\'', idx); - int idxQQ = xmlDeclaration.indexOf('\"', idx); - int idxQuote = -1; - char qouteCh = '\0'; - if (idxQ == -1) - { - idxQuote = idxQQ; - qouteCh = '\"'; - } - else - { - if (idxQQ == -1) - { - idxQuote = idxQ; - qouteCh = '\''; - } - else - { - if (idxQQ < idxQ) - { - idxQuote = idxQQ; - qouteCh = '\"'; - } - else - { - idxQuote = idxQ; - qouteCh = '\''; - } - } - } - - if (idxQuote == -1 || qouteCh == '\0') - { - throw new AssertionPassException(); - } - - int idxLQoute = xmlDeclaration.indexOf(qouteCh, idxQuote + 1); - - if (idxLQoute == -1) - { - throw new AssertionPassException(); - } - - String xmlEncoding = - xmlDeclaration.substring(idxQuote + 1, idxLQoute); - if (charsetValue.equalsIgnoreCase(xmlEncoding)) - { - // If there is a BOM, then check that it is the same as the xmlEncoding - int bom = 0; - if ((bom = entryContext.getMessageEntry().getBOM()) != 0) - { - if ((bom == WSIConstants.BOM_UTF8 - && !xmlEncoding.equalsIgnoreCase("utf-8")) - || ((bom == WSIConstants.BOM_UTF16 - && !xmlEncoding.equalsIgnoreCase("utf-16"))) - || ((bom == WSIConstants.BOM_UTF16_BIG_ENDIAN - && !xmlEncoding.equalsIgnoreCase("utf-16")))) - { - throw new AssertionFailException( - "The BOM and XML declaration do not match."); - } - } - - throw new AssertionPassException(); - } - else - { - throw new AssertionFailException("There is an XML declaration, but its " - + "encoding value does not match the charset value.\n" - + "Charset value in the Content-Type header: " + charsetValue - + "\nEncoding in the XML declaration: " + xmlEncoding); - } - } - catch (AssertionPassException e) - { - result = AssertionResult.RESULT_PASSED; - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/SSBP5100.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/SSBP5100.java deleted file mode 100644 index f62152a45..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/SSBP5100.java +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; - - -/** - * SSBP5100 - * <context>For a candidate message in the log file, with an HTTP entity-body.</context> - * <assertionDescription>The SOAP envelope is the exclusive payload of the HTTP entity-body.</assertionDescription> - */ -public class SSBP5100 extends AssertionProcess { - - protected final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public SSBP5100(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - try - { - // Getting a message document - Document doc = entryContext.getMessageEntryDocument(); - - // If the message is empty or invalid, the assertion is not applicable - if (doc == null) - { - if (this.validator.isOneWayResponse(entryContext)) - throw new AssertionNotApplicableException(); - else - throw new AssertionFailException(); - } - if (!doc.getDocumentElement().getLocalName().equals(XMLUtils.SOAP_ELEM_ENVELOPE)) - throw new AssertionFailException(); - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - testAssertion.getFailureMessage(), - entryContext); - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/SSBP5101.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/SSBP5101.java deleted file mode 100644 index 82ae52074..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/SSBP5101.java +++ /dev/null @@ -1,67 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPConstants; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; - -/** - * SSBP5101 - * <context>For a candidate message in the log file.</context> - * <assertionDescription>A message must have a "Content-Type" HTTP header field. The "Content-Type" HTTP header field must have a field-value whose media type is "text/xml".</assertionDescription> - * - * @author lauzond - */ -public class SSBP5101 extends AssertionProcess { - - protected final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public SSBP5101(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - // getting Content-Type HTTP header - String contentType = (String) HTTPUtils.getHttpHeaderTokens( - entryContext.getMessageEntry().getHTTPHeaders(), - ":").get(HTTPConstants.HEADER_CONTENT_TYPE.toUpperCase()); - - // if Content-Type header is not presented - // or does not equal to text/xml, then the assertion is failed - if (contentType == null - || !contentType.startsWith(WSIConstants.CONTENT_TYPE_TEXT_XML)) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - testAssertion.getFailureMessage(), - entryContext); - } - return this.validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1001.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1001.java deleted file mode 100644 index 53066b547..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1001.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; - -/** - * WSI1001 - */ -public class WSI1001 extends BP1001 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1001(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1002.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1002.java deleted file mode 100644 index cb4308bf4..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1002.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; - -/** - * WSI1002 - */ -public class WSI1002 extends BP1002 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1002(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1003.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1003.java deleted file mode 100644 index 7d041049f..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1003.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; - -/** - * WSI1003 - */ -public class WSI1003 extends SSBP1003 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1003(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1004.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1004.java deleted file mode 100644 index adfad8642..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1004.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; - -/** - * WSI1004 - */ -public class WSI1004 extends BP1004 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1004(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1005.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1005.java deleted file mode 100644 index f31c00676..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1005.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1005; - -/** - * WSI1005 - */ -public class WSI1005 extends BP1005 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1005(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1006.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1006.java deleted file mode 100644 index 72d6f8824..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1006.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; - -/** - * WSI1006 - */ -public class WSI1006 extends BP1006 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1006(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1007.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1007.java deleted file mode 100644 index 9385aaaa8..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1007.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1007; - -/** - * WSI1007 - */ -public class WSI1007 extends BP1007 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1007(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1008.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1008.java deleted file mode 100644 index 92cd0eeab..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1008.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1008; - -/** - * WSI1008 - */ -public class WSI1008 extends BP1008 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1008(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1009.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1009.java deleted file mode 100644 index 5b68ebe20..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1009.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1009; - -/** - * WSI1009 - */ -public class WSI1009 extends BP1009 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1009(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1010.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1010.java deleted file mode 100644 index 022d98692..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1010.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; - -/** - * WSI1010 - */ -public class WSI1010 extends BP1010 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1010(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1011.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1011.java deleted file mode 100644 index cadcdcb4a..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1011.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1011; - -/** - * WSI1011 - */ -public class WSI1011 extends BP1011 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1011(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1012.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1012.java deleted file mode 100644 index 57f571be1..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1012.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1012; - -/** - * WSI1012 - */ -public class WSI1012 extends BP1012 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1012(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1013.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1013.java deleted file mode 100644 index 587e597bf..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1013.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1013; - -/** - * WSI1013 - */ -public class WSI1013 extends BP1013 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1013(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1031.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1031.java deleted file mode 100644 index dcd391783..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1031.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1031; - -/** - * WSI1031 - */ -public class WSI1031 extends BP1031 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1031(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1100.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1100.java deleted file mode 100644 index 4c20a04cd..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1100.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1100; - -/** - * WSI1100 - */ -public class WSI1100 extends BP1100 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1100(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1101.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1101.java deleted file mode 100644 index cbb113c82..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1101.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; - -/** - * WSI1101 - */ -public class WSI1101 extends BP1101 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1101(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1102.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1102.java deleted file mode 100644 index f13832dca..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1102.java +++ /dev/null @@ -1,150 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import java.io.StringReader; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPConstants; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; -import org.eclipse.wst.wsi.internal.core.util.HttpHeadersValidator; -import org.eclipse.wst.wsi.internal.core.util.Utils; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; - - -/** - * BPWSI4. - * The request message should be invalid (HTTP request malformed, - * XML not well formed, ...). - */ -public class WSI1102 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public WSI1102(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - String httpHeader = entryContext.getMessageEntry().getHTTPHeaders(); - - String requestMessage = null; - //String responseMessage = null; - String contentType = null; - result = null; - // - - try - { - // check HTTP status code - String httpStatus = - Utils.getHTTPStatusCode( - entryContext.getMessageEntry().getHTTPHeaders()); - if ("400".equals(httpStatus)) - { - - requestMessage = entryContext.getRequest().getMessage(); - - String requestHTTPHeaders = - entryContext.getRequest().getHTTPHeaders(); - - //check request HTTP Headers - - //HttpHeadersValidator validator = new HttpHeadersValidator(); - - if (!HttpHeadersValidator - .validateHttpRequestHeaders(requestHTTPHeaders)) - { - result = AssertionResult.RESULT_PASSED; - } - - //check request xml message - - contentType = (String) HTTPUtils.getHttpHeaderTokens(httpHeader, ":") - .get(HTTPConstants.HEADER_CONTENT_TYPE.toUpperCase()); - if (contentType.indexOf(WSIConstants.CONTENT_TYPE_TEXT_XML) != -1) - { - try - { - if (requestMessage != null) - { - DocumentBuilderFactory factory = - DocumentBuilderFactory.newInstance(); - DocumentBuilder builder = factory.newDocumentBuilder(); - //Document doc = builder.parse(new InputSource(new StringReader(requestMessage))); - builder.parse( - new InputSource(new StringReader(requestMessage))); - } - - } - catch (SAXException e) - { - result = AssertionResult.RESULT_PASSED; - } - catch (Exception e) - { - new WSIException(e.getMessage(), e); - } - } - - if (result == null) - { - result = AssertionResult.RESULT_WARNING; - failureDetail = - this.validator.createFailureDetail( - "\nRequest message:\nHeaders:\n" - + entryContext.getRequest().getHTTPHeaders() - + "Message:\n" - + entryContext.getRequest().getMessage() - + "\n\nResponse message:\nHeaders:\n" - + entryContext.getResponse().getHTTPHeaders() - + "Message:\n" - + entryContext.getResponse().getMessage(), - entryContext); - } - } - else - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - } - catch (WSIException wsie) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1103.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1103.java deleted file mode 100644 index 624652944..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1103.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; - -/** - * WSI1103 - */ -public class WSI1103 extends BP1103 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1103(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1104.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1104.java deleted file mode 100644 index 422e46dda..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1104.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; - -/** - * WSI1104. - * The request message should not contain a content-type of "text/xml". - */ -public class WSI1104 extends BP1104 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1104(BaseMessageValidator impl) - { - super(impl); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1105.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1105.java deleted file mode 100644 index 4d1a3bc26..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1105.java +++ /dev/null @@ -1,110 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; -import org.eclipse.wst.wsi.internal.core.util.SetCookie2Validator; - - -/** - * BPWSI4. - * The Cookies should conform to RFC2965. - */ -public class WSI1105 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public WSI1105(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /** - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(TestAssertion, EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - SetCookie2Validator cookieVal = new SetCookie2Validator(); - String headers = entryContext.getMessageEntry().getHTTPHeaders(); - if (entryContext - .getMessageEntry() - .getType() - .equalsIgnoreCase(MessageEntry.TYPE_RESPONSE)) - { - // if response trom server - String setCookie2 = - (String) HTTPUtils.getHttpHeaderTokens(headers, ":").get("Set-Cookie2".toUpperCase()); - if (setCookie2 == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - if (cookieVal.isSetCookie2(setCookie2.trim())) - result = AssertionResult.RESULT_PASSED; - else - { - result = AssertionResult.RESULT_WARNING; - failureDetail = - this.validator.createFailureDetail( - "\nMessage:\nHeaders:\n" - + entryContext.getMessageEntry().getHTTPHeaders() - + "\nSOAP message:\n" - + entryContext.getMessageEntry().getMessage(), - entryContext); - } - } - } - else - { - // if request to the server - String cookie = - (String) HTTPUtils.getHttpHeaderTokens(headers, ":").get("Cookie"); - if (cookie == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - if (cookieVal.isCookie(cookie.trim())) - result = AssertionResult.RESULT_PASSED; - else - { - result = AssertionResult.RESULT_WARNING; - failureDetail = - this.validator.createFailureDetail( - "\nMessage:\nHeaders:\n" - + entryContext.getMessageEntry().getHTTPHeaders() - + "\nSOAP message:\n" - + entryContext.getMessageEntry().getMessage(), - entryContext); - } - } - } - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1107.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1107.java deleted file mode 100644 index f1913e586..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1107.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1107; - -/** - * WSI1107 - */ -public class WSI1107 extends BP1107 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1107(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1108.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1108.java deleted file mode 100644 index a5236e6d7..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1108.java +++ /dev/null @@ -1,415 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Vector; - -import javax.wsdl.BindingOperation; -import javax.wsdl.Definition; -import javax.wsdl.Message; -import javax.wsdl.Part; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPFault; -import javax.wsdl.extensions.soap.SOAPHeader; -import javax.wsdl.extensions.soap.SOAPHeaderFault; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.NullUtil; -import org.eclipse.wst.wsi.internal.core.util.OperationSignature; -import org.eclipse.wst.wsi.internal.core.util.TypesRegistry; -import org.eclipse.wst.wsi.internal.core.util.WSDLUtil; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - - -/** - * BPWSI4. - * Each soapbind extension element with a wsdl:required - * attribute of false must appear in a message. - */ -public class WSI1108 extends AssertionProcessVisitor implements WSITag -{ - - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public WSI1108(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - private OperationSignature.OperationMatch match = null; - private EntryContext entryContext = null; - private OperationSignature responseSig = null; - private Vector headerRarts = null; - private boolean visitFault = false; - private boolean existSOAPHeader = true; - private boolean isRequest = false; - private boolean existSOAPHeaderFault = true; - - /** - * @see org.eclipse.wst.wsi.wsdl.traversal.WSDLVisitor#visit(SOAPBody, Object, WSDLTraversalContext) - */ - public void visit(SOAPBody body, Object parent, WSDLTraversalContext ctx) - { - - // if "wsdl:required" is true then return - if (body.getRequired() != null - && body.getRequired().booleanValue() == true) - return; - - // assert parent instanceof BindingOutput - BindingOperation bop = ctx.getBindingOperation(); - if (bop.getOperation() == null - || bop.getOperation().getOutput() == null - || bop.getOperation().getOutput().getMessage() == null) - return; - Message msg = bop.getOperation().getOutput().getMessage(); - List parts = - WSDLUtil.getParts( - bop.getOperation(), - msg, - body, - match.getOperationStyle()); - - QName additionalName = null; - // if operation is rpc, add to parts qname qith function name - if (WSIConstants - .ATTRVAL_SOAP_BIND_STYLE_RPC - .equals(match.getOperationStyle())) - { - // found out target namespace - String namespace = body.getNamespaceURI(); - if (namespace == null || namespace.length() == 0) - // !! ATTENTION - // namespace should be retrieved from service target nameapce - namespace = ctx.getBinding().getQName().getNamespaceURI(); - - // insert operation name as first signature part - additionalName = - new QName( - namespace, - bop - .getOperation() - .getOutput() - .getMessage() - .getQName() - .getLocalPart()); - } - - // create the signature of this operation - OperationSignature op = - new OperationSignature( - parts, - null, - new TypesRegistry( - validator.analyzerContext - .getCandidateInfo() - .getWsdlDocument() - .getDefinitions(), - validator), - false); - if (additionalName != null) - op.getSignature().add(0, additionalName); - - if (op.getSignature().equals(responseSig.getSignature())) - { - // ctx.cancelBindingOperationProcessing(); - } - else - { - // create the signature of this operation - op = - new OperationSignature( - parts, - null, - new TypesRegistry( - validator.analyzerContext - .getCandidateInfo() - .getWsdlDocument() - .getDefinitions(), - validator), - true); - - if (additionalName != null) - op.getSignature().add(0, additionalName); - if (op.getSignature().equals(responseSig.getSignature())) - { - // ctx.cancelBindingOperationProcessing(); - } - else - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - this.validator.createFailureDetail( - "\nMessage:\n" + entryContext.getMessageEntry().getMessage(), - entryContext); - ctx.cancelBindingOperationProcessing(); - } - } - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPHeader, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - SOAPHeader header, - Object parent, - WSDLTraversalContext ctx) - { - - if (existSOAPHeaderFault == false) - { - existSOAPHeader = false; - ctx.cancelBindingOperationProcessing(); - return; - } - // if "wsdl:required" is true then return - if (header.getRequired() != null - && header.getRequired().booleanValue() == true) - return; - // find headr part - Definition d = (Definition) ctx.getParameter("definition"); - TypesRegistry tReg = (TypesRegistry) ctx.getParameter("TypesRegistry"); - Part mesPart = - WSDLUtil.getPart(d.getMessage(header.getMessage()), header.getPart()); - - // test this part and parts from header - QName partQName = mesPart.getTypeName(); - if (partQName == null) - partQName = tReg.getType(mesPart.getElementName()); - if (partQName == null) - throw new IllegalArgumentException( - "Part type can not be null." + mesPart.getElementName().toString()); - String local = partQName.getLocalPart(); - String ns = partQName.getNamespaceURI(); - - existSOAPHeader = false; - for (int i = 0; i < headerRarts.size(); i++) - { - Element elem = (Element) headerRarts.get(i); - if (elem.getLocalName().equals(local) - && NullUtil.equals(ns, elem.getNamespaceURI())) - { - existSOAPHeader = true; - break; - } - } - if (existSOAPHeader == true) - ctx.cancelSOAPHeaderProcessing(); - if (isRequest == true) - ctx.cancelBindingOperationProcessing(); - if (existSOAPHeader == false && isRequest == false) - existSOAPHeaderFault = false; - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPHeaderFault, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - SOAPHeaderFault headerFault, - Object parent, - WSDLTraversalContext ctx) - { - // find headr part - Definition d = (Definition) ctx.getParameter("definition"); - TypesRegistry tReg = (TypesRegistry) ctx.getParameter("TypesRegistry"); - Part mesPart = - WSDLUtil.getPart( - d.getMessage(headerFault.getMessage()), - headerFault.getPart()); - - // test this part and parts from headerfault - QName partQName = mesPart.getTypeName(); - if (partQName == null) - partQName = tReg.getType(mesPart.getElementName()); - if (partQName == null) - throw new IllegalArgumentException( - "Part type can not be null." + mesPart.getElementName().toString()); - String local = partQName.getLocalPart(); - String ns = partQName.getNamespaceURI(); - - for (int i = 0; i < headerRarts.size(); i++) - { - Element elem = (Element) headerRarts.get(i); - if (elem.getLocalName().equals(local) - && NullUtil.equals(ns, elem.getNamespaceURI())) - { - existSOAPHeaderFault = true; - break; - } - } - if (existSOAPHeaderFault == true) - ctx.cancelSOAPHeaderProcessing(); - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPFault, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(SOAPFault fault, Object parent, WSDLTraversalContext ctx) - { - // set in true if any SOAPFault exist - visitFault = true; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - if (this.validator.isOneWayResponse(entryContext)) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - this.entryContext = entryContext; - // Parse request message - Document doc = entryContext.getRequestDocument(); - // create request signature - match = - OperationSignature.matchOperation( - doc, - null, - validator.analyzerContext.getCandidateInfo().getBindings()[0], - new TypesRegistry( - validator.analyzerContext - .getCandidateInfo() - .getWsdlDocument() - .getDefinitions(), - validator), - false); - - // if such operation exist - if (match != null) - { - isRequest = - MessageEntry.TYPE_REQUEST.equals( - entryContext.getMessageEntry().getType()); - // Parse message - doc = entryContext.getMessageEntryDocument(); - - if (!isRequest) - { - responseSig = new OperationSignature(doc); - if (WSIConstants - .ATTRVAL_SOAP_BIND_STYLE_RPC - .equals(match.getOperationStyle())) - responseSig.createRPCSignature(); - } - // extract all headers from message - Element headerElem = - XMLUtils.findChildElement( - doc.getDocumentElement(), - WSITag.ELEM_SOAP_HEADER); - headerRarts = new Vector(); - if (headerElem != null) - headerRarts = XMLUtils.getChildElements(headerElem); - - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(this); - traversal.setVisitor(this); - traversal.visitSOAPBody(true); - traversal.visitSOAPHeader(true); - traversal.visitSOAPHeaderFault(true); - traversal.visitSOAPFault(true); - - traversal.ignoreReferences(); - traversal.ignoreBindingInput2SOAPBody(); - - if (isRequest) - traversal.ignoreBindingOutput(); - else - traversal.ignoreBindingInput2SOAPHeader(); - - if (responseSig != null && responseSig.isFault()) - traversal.ignoreBindingOutput(); - else - traversal.ignoreBindingFault(); - - existSOAPHeaderFault = true; - Map m = new HashMap(); - WSDLUtil.expandDefinition( - validator.analyzerContext - .getCandidateInfo() - .getWsdlDocument() - .getDefinitions()); - m.put( - "definition", - validator.analyzerContext - .getCandidateInfo() - .getWsdlDocument() - .getDefinitions()); - TypesRegistry tReg = - new TypesRegistry( - validator.analyzerContext - .getCandidateInfo() - .getWsdlDocument() - .getDefinitions(), - validator); - m.put("TypesRegistry", tReg); - traversal.traverse(match.getOperation(), m); - - if (isRequest == false) - if (existSOAPHeaderFault == true) - existSOAPHeader = true; - - if (responseSig != null - && responseSig.isFault() - && visitFault == false) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - this.validator.createFailureDetail( - "\nMessage:\n" + entryContext.getMessageEntry().getMessage(), - entryContext); - } - if (existSOAPHeader == false) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - this.validator.createFailureDetail( - "\nMessage:\n" + entryContext.getMessageEntry().getMessage(), - entryContext); - } - } - else - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1109.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1109.java deleted file mode 100644 index 8bf44cf63..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1109.java +++ /dev/null @@ -1,103 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; - - -/** - * WSI1109. - * Any conformance claims MUST be children of the soap:Header element. - */ -public class WSI1109 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public WSI1109(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /** - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(TestAssertion, EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - if ((entryContext.getMessageEntry() != null) - && (!this.validator.isOneWayResponse(entryContext))) - { - try - { - // Parse message - Document doc = entryContext.getMessageEntryDocument(); - Element root = doc.getDocumentElement(); - // find "Header" element - NodeList headerList = - root.getElementsByTagNameNS(WSIConstants.NS_URI_SOAP, "Header"); - Element headerElem = null; - if (headerList != null && headerList.getLength() != 0) - headerElem = (Element) headerList.item(0); - - // find "Claim" element - NodeList claimList = - root.getElementsByTagNameNS(WSIConstants.NS_URI_CLAIM, "Claim"); - if (claimList == null || claimList.getLength() == 0) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - for (int i = 0; i < claimList.getLength(); i++) - { - if (headerElem == null - || claimList.item(i).getParentNode() != headerElem) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - this.validator.createFailureDetail( - "\nSOAP message:\n" - + entryContext.getMessageEntry().getMessage(), - entryContext); - break; - } - } - } - } - catch (Exception e) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - } - else - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1110.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1110.java deleted file mode 100644 index 8b3b9e247..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1110.java +++ /dev/null @@ -1,104 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - - -/** - * WSI1110. - * Any conformance claims MUST adhere to the WS-I conformance - * claim schema defined in the Basic Profile. - */ -public class WSI1110 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public WSI1110(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /** - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(TestAssertion, EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - Document doc; - if (entryContext.getMessageEntry() != null - && !this.validator.isOneWayResponse(entryContext) - && (doc = entryContext.getMessageEntryDocument()) != null) - { - Element root = doc.getDocumentElement(); - // find "Claim" element - NodeList claimList = - root.getElementsByTagNameNS(WSIConstants.NS_URI_CLAIM, "Claim"); - if (claimList == null || claimList.getLength() == 0) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - for (int i = 0; i < claimList.getLength(); i++) - { - Element elem = (Element) claimList.item(i); - // check "conformsTo" attribute - Node node = elem.getAttributeNode("conformsTo"); - if (node == null) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - this.validator.createFailureDetail( - "\nSOAP message:\n" - + entryContext.getMessageEntry().getMessage(), - entryContext); - break; - } - /* This is checked in WSI1111 - // check "mustUnderstand" attribute - node = elem.getAttributeNodeNS(WSIConstants.NS_URI_SOAP, "mustUnderstand"); - if (node != null) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = createFailureDetail("\nSOAP message:\n" + entryContext.getMessageEntry().getMessage(), entryContext); - break; - } - */ - } - } - } - else - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1111.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1111.java deleted file mode 100644 index b84e3fb79..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1111.java +++ /dev/null @@ -1,111 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - - -/** - * WSI1111. - * Any conformance claims MUST NOT use soap:mustUnderstand='1'. - */ -public class WSI1111 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public WSI1111(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /** - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(TestAssertion, EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - Document doc; - if (entryContext.getMessageEntry() != null - && !this.validator.isOneWayResponse(entryContext) - && (doc = entryContext.getMessageEntryDocument()) != null) - { - Element root = doc.getDocumentElement(); - // find "Claim" element - NodeList claimList = - root.getElementsByTagNameNS(WSIConstants.NS_URI_CLAIM, "Claim"); - if (claimList != null && claimList.getLength() != 0) - { - // if contains "Claim" element find all "Header" elements - NodeList headerList = - root.getElementsByTagNameNS(WSIConstants.NS_URI_SOAP, "Header"); - if (headerList != null && headerList.getLength() != 0) - { - for (int iHeader = 0; iHeader < headerList.getLength(); iHeader++) - { - // find all "Header" child elements - Node child = headerList.item(iHeader).getFirstChild(); - while (child != null) - { - if (child.getNodeType() == Node.ELEMENT_NODE) - { - // if contains "mustUnderstand" -> fail - String attrVal = - ((Element) child).getAttributeNS( - WSIConstants.NS_URI_SOAP, - "mustUnderstand"); - if (attrVal != null && !"".equals(attrVal)) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - this.validator.createFailureDetail( - "\nSOAP message:\n" - + entryContext.getMessageEntry().getMessage(), - entryContext); - iHeader = headerList.getLength(); - break; - } - } - child = child.getNextSibling(); - } - } - } - } - else - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - } - else - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1116.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1116.java deleted file mode 100644 index f289dd6c9..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1116.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; - -/** - * WSI1116 - */ -public class WSI1116 extends BP1116 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1116(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1121.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1121.java deleted file mode 100644 index 3b3ebae6b..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1121.java +++ /dev/null @@ -1,162 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import javax.wsdl.Binding; -import javax.wsdl.BindingOperation; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionPassException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - - -/** - * BPWSI4. - */ -public class WSI1121 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public WSI1121(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - try - { - // GT: -- start: base on wsi1011 - should refactor this - - Binding[] bindings = validator.analyzerContext.getCandidateInfo().getBindings(); - - // get soap message child name - // Get the DOM contents of the message soap:body (if non-empty) - Document messageDoc = null; - - QName messagePartElementQName = null; - if (!entryContext.getMessageEntry().getMessage().equals("")) - { - messageDoc = - XMLUtils.parseXML(entryContext.getMessageEntry().getMessage()); - // get soap operation name from the soap:body - - // NOTE: getSoapBodyChild() may return null, if the soap:body did not contain any child elements - Element soapMessageElement = this.validator.getSoapBodyChild(messageDoc); - - // for doc-lit... find the wsdl:part from one of the specified operations that has - // the soap element used in the message. - // we are looking for a part with an element attrib val matching the soap message element - if (soapMessageElement != null) - { - messagePartElementQName = - new QName( - soapMessageElement.getNamespaceURI(), - soapMessageElement.getLocalName()); - } - } - - if ((messageDoc == null) || this.validator.isFault(messageDoc)) - { - // empty messages and messages containing soap:Faults do not qualify for this TA - throw new AssertionNotApplicableException(); - } - - BindingOperation[] docBindingOperations = - this.validator.getMatchingBindingOps( - WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC, - bindings); - // list of operations that match the <wsdl:input> or <wsdl:output> (depending on entryType) - // for part element="..." - // (ISSUE: what about part type="..."?) - BindingOperation[] potentialDocLitOps = - this.validator.getDocLitOperations( - entryContext.getEntry().getEntryType(), - messagePartElementQName, - docBindingOperations); - // GT: --- end: base on wsi1011 - - // - if (potentialDocLitOps.length == 0) - { - // not doc-lit so quit - throw new AssertionNotApplicableException(); - } - - // We know there is a doc-lit match, so now try to validate the soap message against the - // referenced schema - - // GT - how to reference the schema document?? need to use the <wsdl:part>, or do it purely - // from the soap message elements? - // ie body, envelope or wsdl?? - - // <experiment> - - boolean isSchemaValid; - - try { - isSchemaValid = this.validator.messageIsDocLitSchemaValid(entryContext); - } catch (Exception e) { - throw new AssertionFailException(); - } - // </experiment> - - - //isSchemaValid = true; // for now, getting this far does it - - if (isSchemaValid) - { - throw new AssertionPassException(); - } - else - { - throw new AssertionFailException(); - } - - } - catch (AssertionPassException e) - { - result = AssertionResult.RESULT_PASSED; - } - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(e.getMessage(), entryContext); - } - catch (AssertionNotApplicableException e) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1201.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1201.java deleted file mode 100644 index 0c6f087ce..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1201.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1201; - -/** - * WSI1201 - */ -public class WSI1201 extends BP1201 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1201(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1202.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1202.java deleted file mode 100644 index 7a31cd6cc..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1202.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1202; - -/** - * WSI1202 - */ -public class WSI1202 extends BP1202 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1202(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1203.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1203.java deleted file mode 100644 index 363bcbf52..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1203.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1203; - -/** - * WSI1203 - */ -public class WSI1203 extends BP1203 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1203(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1204.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1204.java deleted file mode 100644 index 16dda543b..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1204.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1204; - -/** - * WSI1204 - */ -public class WSI1204 extends BP1204 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1204(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1208.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1208.java deleted file mode 100644 index 7b9496314..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1208.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1208; - -/** - * WSI1208 - */ -public class WSI1208 extends BP1208 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1208(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1211.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1211.java deleted file mode 100644 index 63f57c5fd..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1211.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1211; - -/** - * WSI1211 - */ -public class WSI1211 extends BP1211 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1211(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1301.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1301.java deleted file mode 100644 index 9f0eb82b0..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1301.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1301; - -/** - * WSI1301 - */ -public class WSI1301 extends BP1301 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1301(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1302.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1302.java deleted file mode 100644 index 6e976fe35..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1302.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1302; - -/** - * WSI1302 - */ -public class WSI1302 extends BP1302 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1302(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1305.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1305.java deleted file mode 100644 index bb2e13acb..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1305.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1305; - -/** - * WSI1305 - */ -public class WSI1305 extends BP1305 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1305(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1306.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1306.java deleted file mode 100644 index b610628b7..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1306.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1306; - -/** - * WSI1306 - */ -public class WSI1306 extends BP1306 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1306(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1307.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1307.java deleted file mode 100644 index 8c705a85a..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1307.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1307; - -/** - * WSI1307 - */ -public class WSI1307 extends BP1307 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1307(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1308.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1308.java deleted file mode 100644 index e2271cf89..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1308.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1308; - -/** - * WSI1308 - */ -public class WSI1308 extends BP1308 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1308(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1309.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1309.java deleted file mode 100644 index ee6435731..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1309.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1309; - -/** - * WSI1309 - */ -public class WSI1309 extends BP1309 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1309(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1311.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1311.java deleted file mode 100644 index ea98faa07..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1311.java +++ /dev/null @@ -1,204 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import java.util.Iterator; -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.BindingOperation; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.extensions.soap.SOAPBinding; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionPassException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.HTTPUtils; -import org.eclipse.wst.wsi.internal.core.util.OperationSignature; -import org.eclipse.wst.wsi.internal.core.util.TypesRegistry; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; - - -/** - * BPWSI4. - * The response (SOAP envelope) should be carried by an HTTP - * response, over same HTTP connection as the Request. - */ -public class WSI1311 extends AssertionProcess -{ - private final BaseMessageValidator validator; - - /** - * @param BaseMessageValidator - */ - public WSI1311(BaseMessageValidator impl) - { - super(impl); - this.validator = impl; - } - - /** - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(TestAssertion, EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - result = AssertionResult.RESULT_PASSED; - boolean isOneWayResponse = this.validator.isOneWayResponse(entryContext); - - Document docResponse = null; - if (!isOneWayResponse) - docResponse = entryContext.getResponseDocument(); - - //if fault - if (!isOneWayResponse && this.validator.isFault(docResponse)) - { - result = AssertionResult.RESULT_PASSED; - } - else - { // not fault - // 1. get an operation from request - // Parse request message - Document docRequest = entryContext.getRequestDocument(); - - // get SOAPAction - String headers = entryContext.getRequest().getHTTPHeaders(); - String action = null; - if (headers != null) - action = (String) HTTPUtils.getHttpHeaderTokens(headers, ":").get("SOAPAction".toUpperCase()); - Binding binding = validator.analyzerContext.getCandidateInfo().getBindings()[0]; - TypesRegistry registry = - new TypesRegistry( - this.validator.getWSDLDocument().getDefinitions(), - validator); - OperationSignature.OperationMatch match = - OperationSignature.matchOperation( - docRequest, - action, - binding, - registry); - - if (match == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - try - { - - BindingOperation bindingOperation = match.getOperation(); - Operation operation = null; - - // Check whether the transport attribute has the value - // "http://schemas.xmlsoap.org/soap/http". - List extElem = binding.getExtensibilityElements(); - for (Iterator index = extElem.iterator(); index.hasNext();) - { - Object o = (Object) index.next(); - if (o instanceof SOAPBinding) - { - SOAPBinding soapBinding = (SOAPBinding) o; - if (!WSIConstants - .NS_URI_SOAP_HTTP - .equals(soapBinding.getTransportURI())) - { - throw new AssertionFailException(); - } - - } - } - - //find operation in port type - operation = bindingOperation.getOperation(); - if (operation == null) - { - throw new AssertionFailException(); - } - - if (isOneWayResponse) - { - if (operation.getOutput() == null) - throw new AssertionPassException(); - else - throw new AssertionFailException(); - } - - // check whether the response message from the log - // contains the output message - NodeList soapBodyList = - docResponse.getElementsByTagNameNS( - WSIConstants.NS_URI_SOAP, - XMLUtils.SOAP_ELEM_BODY); - if ((soapBodyList == null) || (soapBodyList.getLength() == 0)) - { - // Response does not contain any soap Body elements - throw new AssertionFailException(); - } - for (int i = 0; i < soapBodyList.getLength(); i++) - { - Element nextBodyElem = (Element) soapBodyList.item(i); - Element soapMessageElement = XMLUtils.getFirstChild(nextBodyElem); - while (soapMessageElement != null) - { - // check whether the operation output has message from SOAP response - Message message = operation.getOutput().getMessage(); - QName soapMessageQName = - new QName( - soapMessageElement.getNamespaceURI(), - soapMessageElement.getLocalName()); - - if (message != null - && soapMessageQName.equals(message.getQName())) - { - throw new AssertionPassException(); - } - - soapMessageElement = - XMLUtils.getNextSibling(soapMessageElement); - } - } - - } - catch (AssertionPassException e) - { - result = AssertionResult.RESULT_PASSED; - } - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - } - - } - } - - if (result == AssertionResult.RESULT_FAILED) - { - failureDetail = this.validator.createFailureDetail(null, entryContext); - } - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1316.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1316.java deleted file mode 100644 index 3fd3168c8..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1316.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1316; - -/** - * WSI1316 - */ -public class WSI1316 extends BP1316 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1316(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1318.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1318.java deleted file mode 100644 index ea3cd9935..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1318.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1318; - -/** - * WSI1318 - */ -public class WSI1318 extends BP1318 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1318(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1601.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1601.java deleted file mode 100644 index f5920f7a6..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1601.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1601; - -/** - * WSI1601 - */ -public class WSI1601 extends BP1601 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1601(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1701.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1701.java deleted file mode 100644 index 8a7befb96..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1701.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP1701; - -/** - * WSI1701 - */ -public class WSI1701 extends BP1701 -{ - - /** - * @param BaseMessageValidator - */ - public WSI1701(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4100.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4100.java deleted file mode 100644 index 81c1a1071..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4100.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP4100; - -/** - * WSI4100 - */ -public class WSI4100 extends BP4100 -{ - - /** - * @param BaseMessageValidator - */ - public WSI4100(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4101.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4101.java deleted file mode 100644 index 950165aa2..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4101.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP4101; - -/** - * WSI4101 - */ -public class WSI4101 extends BP4101 -{ - - /** - * @param BaseMessageValidator - */ - public WSI4101(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4102.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4102.java deleted file mode 100644 index d25ffafbc..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4102.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope.BP4102; - -/** - * WSI4102 - */ -public class WSI4102 extends BP4102 -{ - - /** - * @param BaseMessageValidator - */ - public WSI4102(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4103.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4103.java deleted file mode 100644 index 6a61d048c..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4103.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; - -/** - * WSI4103 - */ -public class WSI4103 extends BP4103 -{ - - /** - * @param BaseMessageValidator - */ - public WSI4103(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4104.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4104.java deleted file mode 100644 index a6176d2b0..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4104.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; - -/** - * WSI4104 - */ -public class WSI4104 extends BP4104 -{ - - /** - * @param BaseMessageValidator - */ - public WSI4104(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4105.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4105.java deleted file mode 100644 index c6ff8d0ea..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4105.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; - -/** - * WSI4105 - */ -public class WSI4105 extends BP4105 -{ - - /** - * @param BaseMessageValidator - */ - public WSI4105(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4106.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4106.java deleted file mode 100644 index 97a44aef8..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4106.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; - -/** - * WSI4106 - */ -public class WSI4106 extends BP4106 -{ - - /** - * @param BaseMessageValidator - */ - public WSI4106(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4107.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4107.java deleted file mode 100644 index 4ad524265..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4107.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.message; - -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator; - -/** - * WSI4107 - */ -public class WSI4107 extends BP4107 -{ - - /** - * @param BaseMessageValidator - */ - public WSI4107(BaseMessageValidator impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/BP3001.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/BP3001.java deleted file mode 100644 index eff03e852..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/BP3001.java +++ /dev/null @@ -1,155 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.uddi; - -import java.util.Map; - -import javax.wsdl.Binding; -import javax.wsdl.Definition; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.UDDIUtils; -import org.eclipse.wst.wsi.internal.core.wsdl.WSDLDocument; -import org.uddi4j.datatype.OverviewDoc; -import org.uddi4j.datatype.tmodel.TModel; - - -/** - * BP3001 - The tModel element uses WSDL as the description language: - * the uddi:overviewDoc/uddi:overviewURL element contains a reference - * to a WSDL definition, which uses a namespace - * of http://schemas.xmlsoap.org/wsdl/. - * The uddi:overviewURL may use the fragment notation to resolve - * to a wsdl:binding. - */ -public class BP3001 extends AssertionProcess -{ - private final UDDIValidatorImpl validator; - - /** - * @param UDDIValidatorImpl - */ - public BP3001(UDDIValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /** - * Sets the result variable to AssertionResult.RESULT_FAILED value and - * places a tModel key in the fault detail message. - * @param tModelKey - */ - private void setFaultMessage(String tModelKey) - { - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = "The tModel key is: [" + tModelKey + "]."; - } - - /** - * Validates the test assertion. - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_PASSED; - - Binding binding = null; - - // Get the tModel from the entryContext - TModel tModel = (TModel) entryContext.getEntry().getEntryDetail(); - - // If the tModel does not exist, then fail - if (tModel == null) - { - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = "Could not locate a tModel."; - return validator.createAssertionResult( - testAssertion, - result, - failureDetailMessage); - } - - String key = tModel.getTModelKey(); - - OverviewDoc doc = tModel.getOverviewDoc(); - if (doc != null) - { - String urlText = doc.getOverviewURLString(); - - // Try to resolve the URL & check the WSDL - try - { - WSDLDocument wsdlDocument = new WSDLDocument(urlText); - Definition definition = wsdlDocument.getDefinitions(); - Map namespaces = definition.getNamespaces(); - if (!namespaces.containsValue(WSIConstants.NS_URI_WSDL)) - { - urlText = null; - } - - // Get binding - binding = UDDIUtils.getBinding(urlText, wsdlDocument); - - // See if the binding is in the WSDL document - if (binding == null - || definition.getBinding(binding.getQName()) == null) - { - urlText = null; - } - } - - catch (Exception e) - { - urlText = null; - } - - if (urlText != null) - { - String fragmentID = null; - int index = urlText.indexOf("#"); - if (index > -1) - { - fragmentID = urlText.substring(index + 1); - } - - if ((fragmentID != null) - && (fragmentID.length() != 0) - && (fragmentID.toUpperCase().indexOf("xpointer(".toUpperCase()) == -1 - || fragmentID.lastIndexOf(")") != fragmentID.length() - 1)) - { - setFaultMessage(key); - } - } - - else - { - setFaultMessage(key); - } - } - - else - { - setFaultMessage(key); - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetailMessage); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/BP3002.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/BP3002.java deleted file mode 100644 index 572cde4cd..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/BP3002.java +++ /dev/null @@ -1,81 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.uddi; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.uddi4j.datatype.binding.BindingTemplate; - - -/** - * BP3002 - The uddi:bindingTemplate element contains a uddi:accessPoint element, - * with a non-empty value. - */ -public class BP3002 extends AssertionProcess -{ - private final UDDIValidatorImpl validator; - - /** - * @param UDDIValidatorImpl - */ - public BP3002(UDDIValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /** - * Validates the test assertion. - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - String serviceLocation = null; - - result = AssertionResult.RESULT_PASSED; - - // Get the bindingTemplate from the entryContext - BindingTemplate bindingTemplate = - (BindingTemplate) entryContext.getEntry().getEntryDetail(); - - // If the bindingTemplate does not contain an accessPoint, then fail - if ((bindingTemplate.getAccessPoint() == null) - || ((serviceLocation = bindingTemplate.getAccessPoint().getText()) - == null)) - { - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = - "The bindingTempate key is: [" - + bindingTemplate.getBindingKey() - + "]."; - } - - // Else save the service location in the assertion result - else - { - // Save service location in analyzer context - entryContext - .getAnalyzerContext() - .getServiceReference() - .setServiceLocation( - serviceLocation); - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetailMessage); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/BP3003.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/BP3003.java deleted file mode 100644 index 58e7d4832..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/BP3003.java +++ /dev/null @@ -1,78 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.uddi; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.UDDIUtils; -import org.uddi4j.datatype.tmodel.TModel; - - -/** - * BP3003 - The uddi:tModel is categorized using the uddi:types taxonomy, - * as "wsdlSpec": the uddi:keyedReference element has an attribute keyValue - * equal to "wsdlSpec", and keyName equal to "uddi-org:types" or "types". - */ -public class BP3003 extends AssertionProcess -{ - private final UDDIValidatorImpl validator; - - /** - * @param UDDIValidatorImpl - */ - public BP3003(UDDIValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /** - * Validates the test assertion. - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_PASSED; - - // Get the tModel from the entryContext - TModel tModel = (TModel) entryContext.getEntry().getEntryDetail(); - - // If the tModel does not exist, then fail - if (tModel == null) - { - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = - "Could not locate a tModel with a categorization of 'wsdlSpec'."; - } - - // If there is a tModel and it is not categorized as "wsdlSpec", then fail - else if (!(UDDIUtils.isWsdlSpec(tModel))) - { - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = - "The tModel key is: [" - + tModel.getTModelKey() - + "]\n" - + "The categoryBag is: [" - + this.validator.categoryBagToString(tModel.getCategoryBag()) - + "]"; - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetailMessage); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/UDDIValidatorImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/UDDIValidatorImpl.java deleted file mode 100644 index f4bc9ea42..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/UDDIValidatorImpl.java +++ /dev/null @@ -1,542 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.uddi; - -import java.io.IOException; -import java.io.InputStream; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.UnknownHostException; -import java.util.Iterator; -import java.util.Vector; - -import javax.wsdl.Binding; -import javax.wsdl.WSDLException; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AnalyzerContext; -import org.eclipse.wst.wsi.internal.core.analyzer.ServiceReference; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AnalyzerConfig; -import org.eclipse.wst.wsi.internal.core.analyzer.config.UDDIReference; -import org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLElement; -import org.eclipse.wst.wsi.internal.core.analyzer.config.impl.WSDLElementImpl; -import org.eclipse.wst.wsi.internal.core.profile.ProfileArtifact; -import org.eclipse.wst.wsi.internal.core.profile.ProfileAssertions; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.UDDIValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.WSDLValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseValidatorImpl; -import org.eclipse.wst.wsi.internal.core.report.Entry; -import org.eclipse.wst.wsi.internal.core.report.ReportArtifact; -import org.eclipse.wst.wsi.internal.core.report.Reporter; -import org.eclipse.wst.wsi.internal.core.util.EntryType; -import org.eclipse.wst.wsi.internal.core.util.UDDIUtils; -import org.eclipse.wst.wsi.internal.core.util.Utils; -import org.eclipse.wst.wsi.internal.core.wsdl.WSDLDocument; -import org.uddi4j.client.UDDIProxy; -import org.uddi4j.datatype.binding.BindingTemplate; -import org.uddi4j.datatype.tmodel.TModel; -import org.uddi4j.response.BindingDetail; -import org.uddi4j.response.TModelDetail; -import org.uddi4j.util.CategoryBag; -import org.uddi4j.util.KeyedReference; - -import com.ibm.wsdl.util.StringUtils; - -/** - * The UDDI validator will verify that a web service description was published correctly in a UDDI registry. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class UDDIValidatorImpl - extends BaseValidatorImpl - implements UDDIValidator -{ - /** - * UDDI reference. - */ - protected UDDIReference uddiReference; - /** - * UDDI proxy. - */ - protected UDDIProxy uddiProxy; - private boolean testable; - - /** - * Get the artifact type that this validator applies to. - * @return the artifact type (a String) - */ - public String getArtifactType() { - return TYPE_DISCOVERY; - } - - /** - * Get the collection of entry types that this validator applies to. - * @return an array of entry types (Strings) - */ - public String[] getEntryTypes() { - return new String[] { - TYPE_DISCOVERY_BINDINGTEMPLATE, - TYPE_DISCOVERY_TMODEL}; - } - - public void init( - AnalyzerContext analyzerContext, - ProfileAssertions assertions, - ReportArtifact reportArtifact, - AnalyzerConfig analyzerConfig, - Reporter reporter) - throws WSIException { - super.init(analyzerContext, - assertions.getArtifact(TYPE_DISCOVERY), reportArtifact, reporter); - this.uddiReference = analyzerConfig.getUDDIReference(); - testable = analyzerConfig.isUDDIReferenceSet(); - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.UDDIValidator#init(org.eclipse.wst.wsi.internal.core.analyzer.AnalyzerContext, org.wsi.test.profile.ProfileArtifact, org.wsi.test.report.ReportArtifact, org.wsi.test.analyzer.config.UDDIReference, org.wsi.test.report.Reporter) - */ - public void init( - AnalyzerContext analyzerContext, - ProfileArtifact profileArtifact, - ReportArtifact reportArtifact, - UDDIReference uddiReference, - Reporter reporter) - throws WSIException - { - // BaseValidatorImpl - super.init(analyzerContext, profileArtifact, reportArtifact, reporter); - - AnalyzerConfig analyzerConfig = Utils.getAnalyzerConfig(reporter); - testable = ((analyzerConfig != null) && (analyzerConfig.isUDDIReferenceSet())); - - // Save input references - this.uddiReference = uddiReference; - } - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.UDDIValidator#validate() - */ - public void validateArtifact() throws WSIException - { - Entry entry = null; - - BindingTemplate bindingTemplate = null; - TModel tModel = null; - - // it depricated after refactoring - // now the inner classes moved out from validator - //String classPrefix = this.getClass().getName() + "$"; - String classPrefix = this.getClass().getPackage().getName()+"."; - - try - { - // Set up a reference to the UDDI registry - uddiProxy = new UDDIProxy(); - - //new Socket(new InetAddress(uddiReference.getInquiryURL())); - uddiProxy.setInquiryURL(uddiReference.getInquiryURL()); - boolean wasEx = false; - InputStream stream; - try - { - URL url = StringUtils.getURL(null, uddiReference.getInquiryURL()); - stream = url.openStream(); - stream.close(); - } - - catch (UnknownHostException ex) - { - wasEx = true; - } - - catch (IOException ex) - { - } - - if (!wasEx) - { - - // If the UDDI reference is to a bindingTemplate then get it - if (uddiReference.getKeyType().equals(UDDIReference.BINDING_KEY)) - { - // Get binding detail which will contain the bindingTemplate - BindingDetail bindingDetail = - uddiProxy.get_bindingDetail(uddiReference.getKey()); - - // Get bindingTemplate - bindingTemplate = - (BindingTemplate) bindingDetail - .getBindingTemplateVector() - .elementAt( - 0); - - if (verboseOption) - { - System.err.println( - " BindingTemplate - " - + UDDIUtils.bindingTemplateToString(bindingTemplate)); - } - - // Get the wsdlSpec tModel - tModel = UDDIUtils.findTModel(uddiProxy, bindingTemplate, - verboseOption); - } - - // Else it has to be a tModel - else - { - TModelDetail tModelDetail = - uddiProxy.get_tModelDetail(uddiReference.getKey()); - tModel = (TModel) tModelDetail.getTModelVector().elementAt(0); - } - - if (verboseOption) - { - System.err.println( - " TModel specified or found in bindingTemplate - " - + UDDIUtils.tModelToString(tModel)); - } - } - - if (bindingTemplate == null) - { - setMissingInput( - EntryType.getEntryType(TYPE_DISCOVERY_BINDINGTEMPLATE)); - } - - // If there is a bindingTemplate, then process test assertions for it - else - { - // Create entry - entry = this.reporter.getReport().createEntry(); - entry.setEntryType( - EntryType.getEntryType(TYPE_DISCOVERY_BINDINGTEMPLATE)); - entry.setReferenceID(bindingTemplate.getBindingKey()); - entry.setEntryDetail(bindingTemplate); - - // Process test assertions - processAssertions( - classPrefix, - new EntryContext(entry, this.analyzerContext)); - } - - // NOTE: From this point forward, if a bindingTemplate does NOT have a wsdlSpec tModel, - // the tModel will be NULL. - - // Create entry - entry = this.reporter.getReport().createEntry(); - entry.setEntryType( - EntryType.getEntryType(TYPE_DISCOVERY_TMODEL)); - entry.setReferenceID( - (tModel == null ? "[tModel]" : tModel.getTModelKey())); - entry.setEntryDetail(tModel); - - // Process test assertions - processAssertions( - classPrefix, - new EntryContext(entry, this.analyzerContext)); - } - - catch (Exception e) - { - // Throw WSIException - if (e instanceof WSIException) - throw (WSIException) e; - else - throw new WSIException( - "An exception occurred while processing the discovery test assertions.", - e); - } - - // Cleanup - cleanup(); - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.UDDIValidator#validate() - */ - /** @deprecated -- use validateArtifact(). */ - public String validate() throws WSIException - { - validateArtifact(); - // Get WSDL location - return this.analyzerContext.getServiceReference().getWSDLLocation(); - } - - /** - * Set WSDL binding in the service reference portion of the analyzer context. - */ - protected void setWSDLBinding(Binding binding) - { - String bindingName = - binding == null ? null : binding.getQName().getLocalPart(); - String namespace = - binding == null ? null : binding.getQName().getNamespaceURI(); - - // Set the WSDL document location in analyzerContext - ServiceReference serviceReference = - this.analyzerContext.getServiceReference(); - - // If the wsdlElement does not exist, then set it - WSDLElement wsdlElement; - if ((wsdlElement = serviceReference.getWSDLElement()) == null) - { - // Get the WSDL binding from the overviewURL and set in analyzerContext - wsdlElement = new WSDLElementImpl(); - wsdlElement.setName(bindingName); - wsdlElement.setNamespace(namespace); - wsdlElement.setType(WSDLValidator.TYPE_DESCRIPTION_BINDING); - } - - // Set the wsdlElement in the service reference - serviceReference.setWSDLElement(wsdlElement); - - // Set the service reference back into the analyzerContext - analyzerContext.setServiceReference(serviceReference); - } - - /** - * Set the WSDL location in the service reference portion of the analyzer context. - */ - protected void setWSDLLocation(String wsdlURL) - { - // Set the WSDL document location in analyzerContext - ServiceReference serviceReference = - this.analyzerContext.getServiceReference(); - serviceReference.setWSDLLocation(wsdlURL); - - // Set the service reference back into the analyzerContext - analyzerContext.setServiceReference(serviceReference); - } - - /** - * Determine if this is a wsdlSpec tModel. - * @deprecated -- use UDDIUtils.isWsdlSpec(String wsdlLocation). - */ - protected boolean isWsdlSpec(TModel tModel) - { - boolean tModelFound = false; - CategoryBag categoryBag = null; - Iterator categoryBagIterator = null; - - // Determine if the catetgoryBag contains wsdlSpec - if ((categoryBag = tModel.getCategoryBag()) != null) - { - // Get the list of keyed references - categoryBagIterator = categoryBag.getKeyedReferenceVector().iterator(); - - KeyedReference keyedReference = null; - - // Go through the list of keyed references - while (categoryBagIterator.hasNext() && !(tModelFound)) - { - // Get next keyed reference - keyedReference = (KeyedReference) categoryBagIterator.next(); - - // If this is a types taxonomy tModel and the value is wsdlSpec, then this is the tModel we want - // REMOVE: It is not necessary to check the key name - //if (keyedReference.getTModelKey().equalsIgnoreCase(TModel.TYPES_TMODEL_KEY) && - // "wsdlSpec".equals(keyedReference.getKeyValue()) && - // ("types".equals(keyedReference.getKeyName()) || - // "uddi-org:types".equals(keyedReference.getKeyName()))) { - // tModelFound = true; - //} - if (keyedReference - .getTModelKey() - .equalsIgnoreCase(TModel.TYPES_TMODEL_KEY) - && "wsdlSpec".equals(keyedReference.getKeyValue())) - { - tModelFound = true; - } - } - } - - return tModelFound; - } - - /** - * Get an OverviewURL from tModel. - * @deprecated -- use UDDIUtils.getOverviewURL(String wsdlLocation). - */ - protected String getOverviewURL(TModel tModel) - { - if (tModel != null - && tModel.getOverviewDoc() != null - && tModel.getOverviewDoc().getOverviewURL() != null) - { - return tModel.getOverviewDoc().getOverviewURL().getText(); - } - return null; - } - - /** - * Get WSDL document. - * @deprecated -- use UDDIUtils.getWSDLLocation(String wsdlLocation). - */ - protected String getWSDLLocation(String wsdlLocation) - { - int index; - - // Check if the overviewURL contains a fragment identifier - if ((index = wsdlLocation.indexOf("#")) > -1) - { - wsdlLocation = wsdlLocation.substring(0, index); - } - return wsdlLocation; - } - - /** - * Get WSDL document. - */ - protected WSDLDocument getWSDLDocument(String wsdlLocation) - throws MalformedURLException, WSDLException - { - return new WSDLDocument(UDDIUtils.getWSDLLocation(wsdlLocation)); - } - - /** - * Get WSDL binding from the overviewURL in the tModel. - */ - protected Binding getBinding(String overviewURL, WSDLDocument wsdlDocument) - { - int index; - int nameIndex; - - Binding[] bindings = wsdlDocument.getBindings(); - if (bindings == null || bindings.length == 0) - return null; - - if (overviewURL != null) - { - // Check if the overviewURL contains a fragment identifier - if ((index = overviewURL.indexOf("#")) > -1) - { - // TEMP: Need to use a real XPath evaluator like Xalan - String nameAttribute = "@name="; - - // Locate name reference - if ((nameIndex = - overviewURL.substring(index + 1).indexOf(nameAttribute)) - > -1) - { - // Get the next character which should be a quote - int firstQuoteIndex = index + 1 + nameIndex + nameAttribute.length(); - String quote = - overviewURL.substring(firstQuoteIndex, firstQuoteIndex + 1); - - // Get the part of the URL which should contain the binding name - String urlPart = overviewURL.substring(firstQuoteIndex + 1); - - // Find the next quote - int nextQuoteIndex; - if ((nextQuoteIndex = urlPart.indexOf(quote)) > -1) - { - String bindingName = urlPart.substring(0, nextQuoteIndex); - //look for binding with the specified name - for (int i = 0; i < bindings.length; i++) - { - if (bindingName.equals(bindings[i].getQName().getLocalPart())) - return bindings[i]; - } - } - } - } - } - - return bindings[0]; - } - - /** - * Get string representation of categoryBag. - * @param categoryBag a CategoryBag object. - * @return string representation of categoryBag. - */ - protected String categoryBagToString(CategoryBag categoryBag) - { - String toString = ""; - - if (categoryBag != null) - { - Vector keyedReferenceList = null; - if (((keyedReferenceList = categoryBag.getKeyedReferenceVector()) - == null) - || (keyedReferenceList.size() == 0)) - { - toString += "No KeyedReferences"; - } - - else - { - int count = 1; - KeyedReference keyedReference; - Iterator iterator = keyedReferenceList.iterator(); - while (iterator.hasNext()) - { - keyedReference = (KeyedReference) iterator.next(); - toString += "\n [" - + count++ - + "] tModelKey: " - + keyedReference.getTModelKey() - + ", keyName: " - + keyedReference.getKeyName() - + ", keyValue: " - + keyedReference.getKeyValue(); - } - } - } - else - { - toString = "null"; - } - - return toString; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl#isPrimaryEntryTypeMatch(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - protected boolean isPrimaryEntryTypeMatch( - TestAssertion testAssertion, - EntryContext targetContext) - { - boolean match = false; - - // If the test assertion entry type matches the target context entry type, then contine - if (testAssertion - .getEntryTypeName() - .equals(targetContext.getEntry().getEntryType().getTypeName())) - { - match = true; - } - - return match; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl#isNotApplicable(org.wsi.test.profile.TestAssertion) - */ - protected boolean isNotApplicable(TestAssertion testAssertion) - { - boolean notApplicable = false; - - // ADD: - - return notApplicable; - } - - /** - * Returns true if these tests should be run (depending on the analyzer - * config) - */ - public boolean runTests() { return testable; } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3001.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3001.java deleted file mode 100644 index de684b032..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3001.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.uddi; - -/** - * WSI3001 - */ -public class WSI3001 extends BP3001 -{ - - /** - * @param UDDIValidatorImpl - */ - public WSI3001(UDDIValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3002.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3002.java deleted file mode 100644 index c08dd2e9c..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3002.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.uddi; - -/** - * WSI3002 - */ -public class WSI3002 extends BP3002 -{ - - /** - * @param UDDIValidatorImpl - */ - public WSI3002(UDDIValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3003.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3003.java deleted file mode 100644 index deb0176b3..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3003.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.uddi; - -/** - * WSI3003 - */ -public class WSI3003 extends BP3003 -{ - - /** - * @param UDDIValidatorImpl - */ - public WSI3003(UDDIValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3004.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3004.java deleted file mode 100644 index 1a173a6b4..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3004.java +++ /dev/null @@ -1,290 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.uddi; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Map; -import java.util.Vector; - -import javax.wsdl.Binding; -import javax.wsdl.Port; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.UDDIUtils; -import org.eclipse.wst.wsi.internal.core.wsdl.WSDLDocument; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.uddi4j.datatype.tmodel.TModel; -import org.uddi4j.util.CategoryBag; -import org.uddi4j.util.KeyedReference; -import org.w3c.dom.Element; - - -/** - * WSI3004 - The conformance claims in the uddi:tModel are the same - * as those in the wsdl:binding which is referenced by the uddi:tModel. - */ -public class WSI3004 extends AssertionProcessVisitor implements WSITag -{ - private final UDDIValidatorImpl validator; - - /** - * @param UDDIValidatorImpl - */ - public WSI3004(UDDIValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private static final String PORTS_PARAM = "ports"; - private static final String BINDING_PARAM = "binding"; - - /** - * Gets WSI conformance claims from a tModel. - * @param tModel - * @return HashSet - * @throws WSIException - */ - private HashSet getConformanceClaimsFromUDDI(TModel tModel) - throws WSIException - { - String conformanceKey = UDDIUtils.getWSIConformanceTModelKey(validator.uddiProxy); - - HashSet result = new HashSet(); - - CategoryBag bag = tModel.getCategoryBag(); - if (bag != null) - { - Vector references = bag.getKeyedReferenceVector(); - for (int i = 0; i < references.size(); i++) - { - KeyedReference ref = (KeyedReference) references.get(i); - - if (ref.getTModelKey().equalsIgnoreCase(conformanceKey)) - { - result.add(ref.getKeyValue()); - } - } - } - - return result; - } - - /** - * Gets WSI conformance claims from WSDL binding - * that references specified tModel. Additionally, - * WSDL ports, which uses the binding, are processed. - * - * @param tModel - * @return HashSet - */ - private HashSet getConformanceClaimsFromWSDL(TModel tModel) - { - HashSet result = new HashSet(); - - try - { - // Read the WSDL document - String overviewURL = UDDIUtils.getOverviewURL(tModel); - WSDLDocument wsdlDocument = validator.getWSDLDocument(overviewURL); - - // Get binding - Binding binding = UDDIUtils.getBinding(overviewURL, wsdlDocument); - String bindingName = binding.getQName().getLocalPart(); - - // Get claims - result = - getClaimsFromElement(binding.getDocumentationElement(), result); - - // Get ports, which reference this binding, because: - // "A claim on a wsdl:port is inherited by the referenced wsdl:bindings." - Vector ports = getPorts(wsdlDocument, bindingName); - for (int i = 0; i < ports.size(); i++) - { - Port port = (Port) ports.get(i); - - result = getClaimsFromElement(port.getDocumentationElement(), result); - } - } - catch (Exception e) - { - // ADD: - } - - return result; - } - - /** - * Gets WSI conformance claims from the 'documentation' XML element - * and puts them into the HashSet. - * @param docElement - * @param result - * @return HashSet - */ - private HashSet getClaimsFromElement(Element docElement, HashSet result) - { - if (result == null) - { - result = new HashSet(); - } - - if (docElement != null) - { - Element claimElement = XMLUtils.findChildElement(docElement, WSI_CLAIM); - while (claimElement != null) - { - /* - Node attr = XMLUtils.getAttribute(claimElement, ATTR_CLAIM_CONFORMSTO); - if (attr != null) - result.add(attr.getNodeValue()); - */ - String value = - claimElement.getAttribute(ATTR_CLAIM_CONFORMSTO.getLocalPart()); - if (value != null) - result.add(value); - - claimElement = XMLUtils.findElement(claimElement, WSI_CLAIM); - } - } - - return result; - } - - /** - * Gets wsdl:ports, which use specified binding. - * @param wsdlDocument - * @param bindingName - * @return Vector - */ - private Vector getPorts(WSDLDocument wsdlDocument, String bindingName) - { - Vector ports = new Vector(); - - Map params = new HashMap(); - params.put(PORTS_PARAM, ports); - params.put(BINDING_PARAM, bindingName); - - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(this); - traversal.setVisitor(this); - traversal.visitPort(true); - traversal.ignoreReferences(); - traversal.ignoreImport(); - traversal.traverse(wsdlDocument.getDefinitions(), params); - - return ports; - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Port, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Port port, Object parent, WSDLTraversalContext ctx) - { - if (port - .getBinding() - .getQName() - .getLocalPart() - .equals(ctx.getParameter(BINDING_PARAM).toString())) - { - ((Vector) ctx.getParameter(PORTS_PARAM)).add(port); - } - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_PASSED; - - // Get the tModel from the entryContext - TModel tModel = (TModel) entryContext.getEntry().getEntryDetail(); - - // If the tModel does not exist, then fail - if (tModel == null) - { - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = "Could not locate a tModel."; - } - - // If there is a tModel - else - { - try - { - HashSet claimsFromUDDI = getConformanceClaimsFromUDDI(tModel); - HashSet claimsFromWSDL = getConformanceClaimsFromWSDL(tModel); - - if (claimsFromUDDI.size() == 0) - { - result = AssertionResult.RESULT_PASSED; - } - else if (claimsFromUDDI.size() == claimsFromWSDL.size()) - { - int counter = 0; - for (Iterator iter = claimsFromWSDL.iterator(); iter.hasNext();) - { - String claim = (String) iter.next(); - - for (Iterator iter2 = claimsFromUDDI.iterator(); - iter2.hasNext(); - ) - { - String uddiClaim = (String) iter2.next(); - if (claim.equalsIgnoreCase(uddiClaim)) - { - counter++; - break; - } - } - } - - if (counter != claimsFromWSDL.size()) - { - // failed - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = - "The tModel key is: [" + tModel.getTModelKey() + "]."; - } - } - else - { - // failed - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = - "The tModel key is: [" + tModel.getTModelKey() + "]."; - } - } - catch (IllegalStateException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = - "The tModel key is: [" + tModel.getTModelKey() + "]."; - } - - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetailMessage); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3005_OBSOLETE.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3005_OBSOLETE.java deleted file mode 100644 index fc6f5a47b..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3005_OBSOLETE.java +++ /dev/null @@ -1,119 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.uddi; - -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.UDDIUtils; -import org.uddi4j.client.UDDIProxy; -import org.uddi4j.datatype.tmodel.TModel; -import org.uddi4j.util.CategoryBag; -import org.uddi4j.util.KeyedReference; - - -/** - * WSI3005_OBSOLETE - A uddi:tModel which claims conformance with a WS-I profile - * must be categorized using the ws-i-org:conformsTo taxonomy. - */ -public class WSI3005_OBSOLETE extends AssertionProcess -{ - private final UDDIValidatorImpl validator; - - /** - * @param UDDIValidatorImpl - */ - public WSI3005_OBSOLETE(UDDIValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /** - * Validates the test assertion. - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - result = AssertionResult.RESULT_PASSED; - - // Get the tModel from the entryContext - TModel tModel = (TModel) entryContext.getEntry().getEntryDetail(); - - // If the tModel does not exist, then fail - if (tModel == null) - { - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = "Could not locate a tModel."; - } - - // If there is a tModel - else - { - CategoryBag bag = tModel.getCategoryBag(); - - try - { - if (!checkCategoryBag(this.validator.uddiProxy, bag)) - { - // failed - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = - "The tModel key is: [" + tModel.getTModelKey() + "]."; - } - } - catch (IllegalStateException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = - "The UDDI registry does not contain WSI conformance taxonomy" - + " tModel (\"ws-i-org:conformsTo:2002_12\")."; - } - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetailMessage); - } - - /** - * Checks a category bag. - * @param proxy - * @param bag - * @return boolean - */ - private boolean checkCategoryBag(UDDIProxy proxy, CategoryBag bag) - { - String conformanceKey = UDDIUtils.getWSIConformanceTModelKey(proxy); - - boolean result = false; - - if (bag != null) - { - Vector references = bag.getKeyedReferenceVector(); - for (int i = 0; i < references.size() && !result; i++) - { - KeyedReference ref = (KeyedReference) references.get(i); - - result = ref.getTModelKey().equalsIgnoreCase(conformanceKey); - } - } - - return result; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3006.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3006.java deleted file mode 100644 index aa8c00318..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3006.java +++ /dev/null @@ -1,165 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.uddi; - -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionResultException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.UDDIUtils; -import org.uddi4j.client.UDDIProxy; -import org.uddi4j.datatype.tmodel.TModel; -import org.uddi4j.util.CategoryBag; -import org.uddi4j.util.KeyedReference; - - -/** - * WSI3006 - The uddi:tModel uses the ws-i-org:conformsTo:2002_12 categorization - * value of "http://ws-i.org/profiles/base/1.0". The categoryBag in the tModel - * contains a keyedReference with a tModelKey that contains the key value - * uuid:65719168-72c6-3f29-8c20-62defb0961c0 for the ws-i-org:conformsTo:2002_12 - * tModel. - */ -public class WSI3006 extends AssertionProcess -{ - private final UDDIValidatorImpl validator; - /** - * @param UDDIValidatorImpl - */ - public WSI3006(UDDIValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /** - * Validates the test assertion. - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - result = AssertionResult.RESULT_PASSED; - failureDetailMessage = null; - KeyedReference claimKeyedRef = null; - - // check whether a UDDI conformance claim is being made... - - // Get the tModel from the entryContext - TModel tModel = (TModel) entryContext.getEntry().getEntryDetail(); - try - { - if ((claimKeyedRef = conformanceClaimMade(tModel)) == null) - { - throw new AssertionResultException( - AssertionResult.RESULT_NOT_APPLICABLE); - } - - // we have a conformance claim, so check the keyedReference keyValue - if (!claimKeyedRef - .getKeyValue() - .equals(WSIConstants.ATTRVAL_UDDI_CLAIM_KEYVALUE)) - { - throw new AssertionResultException( - AssertionResult.RESULT_FAILED, - "The tModel key is: [" - + tModel.getTModelKey() - + "].\nThe categoryBag is: [" - + tModel.getCategoryBag() - + "]."); - } - } - catch (AssertionResultException e) - { - result = e.getMessage(); - failureDetailMessage = e.getDetailMessage(); - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetailMessage); - } - - /** - * Checks a category bag and extracts KeyedReference containing - * the conformance claim. - * @param proxy - * @param bag - * @return boolean - */ - private KeyedReference checkCategoryBag(UDDIProxy proxy, CategoryBag bag) - { - String conformanceKey = null; - try - { - conformanceKey = UDDIUtils.getWSIConformanceTModelKey(proxy); - } - catch (IllegalStateException ex) - { - return null; - } - - boolean result = true; - KeyedReference conformanceRef = null; - - if (bag != null) - { - Vector references = bag.getKeyedReferenceVector(); - for (int i = 0; i < references.size() && result; i++) - { - KeyedReference ref = (KeyedReference) references.get(i); - - if (ref - .getTModelKey() - .equalsIgnoreCase(conformanceKey) //&& ref.getKeyValue().equals(WSIConstants.ATTRVAL_UDDI_CLAIM_KEYVALUE) - // we need only tModel key - ) - { - result = true; - conformanceRef = ref; - } - } - } - - return conformanceRef; - } - /** - * Gets KeyedReference containing the conformance claim. - * @param tModel - * @return - * @throws WSIException - */ - private KeyedReference conformanceClaimMade(TModel tModel) - throws WSIException - { - - // If the tModel does not exist, then fail - if (tModel == null) - { - throw new IllegalArgumentException("tModel cannot be null"); - } - - // If there is a tModel - else - { - CategoryBag bag = tModel.getCategoryBag(); - return checkCategoryBag(this.validator.uddiProxy, bag); - } - - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3007.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3007.java deleted file mode 100644 index 06674dd9b..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3007.java +++ /dev/null @@ -1,155 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.uddi; - -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.UDDIUtils; -import org.uddi4j.client.UDDIProxy; -import org.uddi4j.datatype.binding.BindingTemplate; -import org.uddi4j.datatype.business.BusinessEntity; -import org.uddi4j.datatype.service.BusinessService; -import org.uddi4j.util.CategoryBag; -import org.uddi4j.util.KeyedReference; - - -/** - * WSI3007 - A uddi:businessEntity or uddi:businessService associated - * with this uddi:bindingTemplate is not categorized using - * the ws-i-org:conformsTo:2002_12 taxonomy. - */ -public class WSI3007 extends AssertionProcess -{ - private final UDDIValidatorImpl validator; - - /** - * @param UDDIValidatorImpl - */ - public WSI3007(UDDIValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /** - * Validates the test assertion. - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_PASSED; - - // Get the bindingTemplate from the entryContext - BindingTemplate bindingTemplate = - (BindingTemplate) entryContext.getEntry().getEntryDetail(); - - boolean validService = false; - boolean validBusiness = false; - - String serviceKey = null; - String businessKey = null; - try - { - serviceKey = bindingTemplate.getServiceKey(); - BusinessService service = - UDDIUtils.getBusinessServiceByKey(this.validator.uddiProxy, serviceKey); - - businessKey = service.getBusinessKey(); - BusinessEntity business = - UDDIUtils.getBusinessByKey(this.validator.uddiProxy, businessKey); - - validService = checkCategoryBag(this.validator.uddiProxy, service.getCategoryBag()); - validBusiness = checkCategoryBag(this.validator.uddiProxy, business.getCategoryBag()); - - if (!validBusiness || !validService) - { - result = AssertionResult.RESULT_FAILED; - - if (!validBusiness) - { - failureDetailMessage = - "The businessEntity key is: [" + businessKey + "]."; - } - - if (!validService) - { - if (!validBusiness) - failureDetailMessage += " "; - else - failureDetailMessage = ""; - - failureDetailMessage += "The businessService key is: [" - + serviceKey - + "]."; - } - } - } - catch (IllegalStateException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = - "The UDDI registry does not contain WSI conformance taxonomy" - + " tModel (\"ws-i-org:conformsTo:2002_12\")."; - } - catch (Throwable e) - { - throw new WSIException( - "An exception occurred while processing the discovery test assertions.", - e); - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetailMessage); - } - - /** - * Checks whether the category bag contains the conformance claim. - * Returns <b>true</b> if the bag does not contain the conformance claim. - * @param proxy - * @param bag - * @return boolean - */ - private boolean checkCategoryBag(UDDIProxy proxy, CategoryBag bag) - { - String conformanceKey = null; - try - { - conformanceKey = UDDIUtils.getWSIConformanceTModelKey(proxy); - } - catch (IllegalStateException ex) - { - return false; - } - - boolean result = true; - - if (bag != null) - { - Vector references = bag.getKeyedReferenceVector(); - for (int i = 0; i < references.size() && result; i++) - { - KeyedReference ref = (KeyedReference) references.get(i); - - result = !ref.getTModelKey().equalsIgnoreCase(conformanceKey); - } - } - - return result; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3021.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3021.java deleted file mode 100644 index 085352d2f..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3021.java +++ /dev/null @@ -1,115 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.uddi; - -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.UDDIUtils; -import org.uddi4j.datatype.tmodel.TModel; -import org.uddi4j.util.CategoryBag; -import org.uddi4j.util.KeyedReference; - - -/** -* WSI3021 - The uddi:tModel has a "name" element of value "ws-i-org:conformsTo:2002_12" , -* has an overviewURL value of "http://ws-i.org/schemas/conformanceClaim/", and has -* a keyedReference element with keyName attribute value of "uddi-org:types:categorization". -*/ -public class WSI3021 extends AssertionProcess -{ - private final UDDIValidatorImpl validator; - - /** - * @param UDDIValidatorImpl - */ - public WSI3021(UDDIValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /** - * Validates the test assertion. - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - - TModel tModel = - UDDIUtils.getTModelByKey( - this.validator.uddiProxy, - UDDIUtils.getWSIConformanceTModelKey(this.validator.uddiProxy)); - - // If the tModel does not exist, then fail - if (tModel == null) - { - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = "Could not locate a tModel."; - } - else - { - boolean validURL = - tModel.getOverviewDoc() != null - && "http://ws-i.org/schemas/conformanceClaim/".equals( - tModel.getOverviewDoc().getOverviewURLString()); - boolean validCategory = checkCategoryBag(tModel.getCategoryBag()); - - if (validURL && validCategory) - { - result = AssertionResult.RESULT_PASSED; - } - else - { - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = this.validator.uddiReference.getInquiryURL(); - } - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetailMessage); - } - - /** - * Checks whether the category bag meets the WSI's requirements. - * @param bag - * @return - */ - private boolean checkCategoryBag(CategoryBag bag) - { - boolean result = false; - - if (bag != null) - { - Vector references = bag.getKeyedReferenceVector(); - for (int i = 0; i < references.size() && !result; i++) - { - KeyedReference ref = (KeyedReference) references.get(i); - - result = - "uddi-org:types:categorization".equals(ref.getKeyName()) - && "categorization".equals(ref.getKeyValue()) - && "uuid:C1ACF26D-9672-4404-9D70-39B756E62AB4".equals( - ref.getTModelKey()); - } - } - - return result; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2901.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2901.java deleted file mode 100644 index 42e561f7f..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2901.java +++ /dev/null @@ -1,146 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.Collection; -import java.util.HashSet; -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOperation; -import javax.wsdl.BindingOutput; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - -/** - * AP2901 - * - * <context>For a candidate wsdl:binding element</context> - * <assertionDescription>A description uses either the WSDL MIME Binding as described in WSDL 1.1 Section 5 - * or WSDL SOAP binding as described in WSDL 1.1 Section 3 - * on each of the wsdl:input or wsdl:output elements of a wsdl:binding. </assertionDescription> - */ -public class AP2901 extends AssertionProcess implements WSITag -{ - /** - * WSDLValidator - */ - private final WSDLValidatorImpl validator; - - private Collection mimeElements; - - /** - * @param WSDLValidatorImpl - */ - public AP2901(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - - mimeElements = new HashSet(); - mimeElements.add(WSDL_MIME_CONTENT); - mimeElements.add(WSDL_MIME_XML); - mimeElements.add(WSDL_MIME_MULTIPART); - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - // Getting a wsdl:binding - Binding binding = (Binding) entryContext.getEntry().getEntryDetail(); - - // Getting its wsdl:operation elements - List ops = binding.getBindingOperations(); - - // Going through the operation elements - for (int i = 0; i < ops.size(); i++) - { - BindingOperation bindingOperation = (BindingOperation) ops.get(i); - - // Getting wsdl:input and wsdl:output elements of an operation - BindingInput bindingInput = bindingOperation.getBindingInput(); - BindingOutput bindingOutput = bindingOperation.getBindingOutput(); - - QName inapplicableElement = null; - // Getting an inapplicable extensibility element of wsdl:input - // If such element exists, the assertion failed - if (bindingInput != null) - { - // Getting an inapplicable extensibility element of wsdl:input - // If such element exists, the assertion failed - inapplicableElement = getInapplicableElement(bindingInput.getExtensibilityElements()); - - if (inapplicableElement != null) - throw new AssertionFailException(inapplicableElement.toString()); - } - - // Getting an inapplicable extensibility element of wsdl:output - // If such element exists, the assertion failed - if (bindingOutput != null) - { - inapplicableElement = - getInapplicableElement(bindingOutput.getExtensibilityElements()); - if (inapplicableElement != null) - throw new AssertionFailException(inapplicableElement.toString()); - } - } - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Looks for any extensibility element of wsdl:input or wsdl:output - * that does not conform to the SOAP binding or the MIME binding. - * @param extElems a list of extensibility elements - * @return the QName of an inapplicable element - */ - private QName getInapplicableElement(List extElems) - { - for (int i = 0; i < extElems.size(); i++) - { - QName elementName = - ((ExtensibilityElement) extElems.get(i)).getElementType(); - - if (!mimeElements.contains(elementName) && - !elementName.equals(WSDL_SOAP_BODY) && - !elementName.equals(WSDL_SOAP_HEADER)) - { - return elementName; - } - } - - return null; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2903.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2903.java deleted file mode 100644 index 02bc31357..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2903.java +++ /dev/null @@ -1,241 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.ArrayList; -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOperation; -import javax.wsdl.BindingOutput; -import javax.wsdl.Input; -import javax.wsdl.Message; -import javax.wsdl.Output; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.mime.MIMEContent; -import javax.wsdl.extensions.mime.MIMEMultipartRelated; -import javax.wsdl.extensions.mime.MIMEPart; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - -/** - * AP2903 - * - * <context>For a candidate wsdl:binding with at least one mime:content element</context> - * <assertionDescription>The part attribute of each mime:content element in a wsdl:binding references - * a wsdl:part element of a wsdl:message that is present in the respective wsdl:input or wsdl:output of the - * corresponding wsdl:operation of the corresponding wsdl:portType.</assertionDescription> - */ -public class AP2903 extends AssertionProcess implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public AP2903(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - // A variable that indicates a binding contains at least one - // mime:content element - boolean mimeContentsFound = false; - - // Getting a wsdl:binding - Binding binding = (Binding) entryContext.getEntry().getEntryDetail(); - - // Getting its wsdl:operation elements - List ops = binding.getBindingOperations(); - - // Going through the operation elements - for (int i = 0; i < ops.size(); i++) - { - BindingOperation bindingOperation = (BindingOperation) ops.get(i); - - // Getting wsdl:input and wsdl:output elements of an operation - BindingInput bindingInput = bindingOperation.getBindingInput(); - BindingOutput bindingOutput = bindingOperation.getBindingOutput(); - - // Collecting all the mime:content elements from wsdl:input and wsdl:output - List inputMimeContents = getMimeContentElements( - bindingInput == null ? null : bindingInput.getExtensibilityElements()); - List outputMimeContents = getMimeContentElements( - bindingOutput == null ? null : bindingOutput.getExtensibilityElements()); - - // If the wsdl:input contains mime:content elements - if (!inputMimeContents.isEmpty()) - { - mimeContentsFound = true; - Input portTypeInput = bindingOperation.getOperation().getInput(); - // If there is no the corresponding wsdl:input in wsdl:portType, - // the assertion failed - if (portTypeInput == null) - throw new AssertionFailException( - "There is no the corresponging wsdl:input in the wsdl:portType" - + " operation for the wsdl:input of the \"" - + bindingOperation.getName() + "\" binding operation."); - - // If the wsdl:portType input does not reference any wsdl:message, - // the assertion failed - if (portTypeInput.getMessage() == null) - throw new AssertionFailException("The wsdl:input of the \"" - + bindingOperation.getOperation().getName() + "\" wsdl:portType " - + "operation does not reference any wsdl:message."); - - // Getting the part name that is not specified in the wsdl:message - // the input of wsdl:portType refers to - String part = getInvalidMimeContentPart( - inputMimeContents, portTypeInput.getMessage()); - - // If such part is found, the assertion failed - if (part != null) - throw new AssertionFailException("part=\"" + part + - "\", the input of the binding operation \"" - + bindingOperation.getName() + "\""); - } - - // If the wsdl:output contains mime:content elements - if (!outputMimeContents.isEmpty()) - { - mimeContentsFound = true; - Output portTypeOutput = bindingOperation.getOperation().getOutput(); - // If there is no the corresponding wsdl:input in wsdl:portType, - // the assertion failed - if (portTypeOutput == null) - throw new AssertionFailException( - "There is no the corresponging wsdl:output in the wsdl:portType" - + " operation for the wsdl:output of the \"" - + bindingOperation.getName() + "\" binding operation."); - - // If the wsdl:portType output does not reference any wsdl:message, - // the assertion failed - if (portTypeOutput.getMessage() == null) - throw new AssertionFailException("The wsdl:output of the \"" - + bindingOperation.getOperation().getName() + "\" wsdl:portType " - + "operation does not reference any wsdl:message."); - - // Getting the part name that is not specified in the wsdl:message - // the output of wsdl:portType refers to - String part = getInvalidMimeContentPart( - outputMimeContents, portTypeOutput.getMessage()); - - // If such part is found, the assertion failed - if (part != null) - throw new AssertionFailException("part=\"" + part + - "\", the output of the binding operation \"" - + bindingOperation.getName() + "\""); - } - } - - // If the binding contains no mime:content elements, - // the assertion is not applicable - if (!mimeContentsFound) - throw new AssertionNotApplicableException(); - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Collects all mime:content elements. - * @param extElems a list of extensibility elements that can contain mime:contentS. - * @return the list of mime:content elements found. - */ - private List getMimeContentElements(List extElems) - { - List mimeContentElements = new ArrayList(); - - if (extElems != null) - { - // Going through all the extensibility elements - for (int i = 0; i < extElems.size(); i++) - { - ExtensibilityElement extElem = (ExtensibilityElement) extElems.get(i); - // If the element is mime:multipartRelated - if (extElem.getElementType().equals(WSDL_MIME_MULTIPART)) - { - // Getting the mime:part elements of the mime:multipartRelated - List mimeParts = ((MIMEMultipartRelated) extElem).getMIMEParts(); - // Going through all the mime:part elements - for (int j = 0; j < mimeParts.size(); j++) - { - // Collecting all the mime:content elements of this mime:part - List elems = getMimeContentElements( - ((MIMEPart) mimeParts.get(j)).getExtensibilityElements()); - // Adding the elements to the list being returned - mimeContentElements.addAll(elems); - } - } - // Else if the element is mime:content - else if (extElem.getElementType().equals(WSDL_MIME_CONTENT)) - { - // Adding the element to the list being returned - mimeContentElements.add(extElem); - } - } - } - - return mimeContentElements; - } - - /** - * Returns part name specified in mime:content element that is not presented in wsdl:message - * @param mimeContents a list of mime:content elements which part attributes are validated - * @param message a wsdl:message - * @return a part name - */ - private String getInvalidMimeContentPart(List mimeContents, Message message) - { - // Going throug all the mime:content elements - for (int i = 0; i < mimeContents.size(); i++) - { - // Getting the part name of a mime:element - String part = ((MIMEContent) mimeContents.get(i)).getPart(); - // If the wsdl:message does not contain such part, return the part - if (!message.getParts().keySet().contains(part)) - return part; - } - // Return null if no one part is found - return null; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2904.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2904.java deleted file mode 100644 index c5a9716e3..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2904.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - -/** - * AP2904 - * <context>For a candidate wsdl:binding with at least one mime:content element</context> - * <assertionDescription>The part attribute of each mime:content element in a wsdl:binding - * does not reference a sub-component of a wsdl:part of the wsdl:message that is present in the - * respective wsdl:input or wsdl:output of the corresponding wsdl:operation of the corresponding - * wsdl:portType.</assertionDescription> - */ -public class AP2904 extends AP2903 -{ - /** - * @param WSDLValidatorImpl - */ - public AP2904(WSDLValidatorImpl impl) - { - super(impl); - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // Return assertion result - return super.validate(testAssertion, entryContext); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2906.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2906.java deleted file mode 100644 index 2c9c7cd72..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2906.java +++ /dev/null @@ -1,216 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.ArrayList; -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOperation; -import javax.wsdl.BindingOutput; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.mime.MIMEMultipartRelated; -import javax.wsdl.extensions.mime.MIMEPart; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - -/** - * AP2906 - * - * <context>For a candidate wsdl:binding containing a mime:multipartRelated element</context> - * <assertionDescription>A non-root MIME part in a wsdl:binding does not contain a soapbind:header element.</assertionDescription> - */ -public class AP2906 extends AssertionProcess implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public AP2906(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - // A variable that indicates a binding contains at least one - // mime:multipartRelated element - boolean multipartsFound = false; - - // Getting a wsdl:binding - Binding binding = (Binding) entryContext.getEntry().getEntryDetail(); - - // Getting its wsdl:operation elements - List ops = binding.getBindingOperations(); - - // Going through the operation elements - for (int i = 0; i < ops.size(); i++) - { - BindingOperation bindingOperation = (BindingOperation) ops.get(i); - - // Getting wsdl:input and wsdl:output elements of an operation - BindingInput bindingInput = bindingOperation.getBindingInput(); - BindingOutput bindingOutput = bindingOperation.getBindingOutput(); - - // Collecting all the mime:multipartRelated elements from wsdl:input and wsdl:output - List inputMultiparts = getMimeMultipartElements( - bindingInput == null ? null : bindingInput.getExtensibilityElements()); - List outputMultiparts = getMimeMultipartElements( - bindingOutput == null ? null : bindingOutput.getExtensibilityElements()); - - // If the wsdl:input contains mime:multipartRelated elements - if (!inputMultiparts.isEmpty()) - { - multipartsFound = true; - - // If there is a soap:header in the non-root mime:part, - // the assertion failed - if (containsInvalidMimePart(inputMultiparts)) - { - throw new AssertionFailException("The invalid mime:part element " - + "is in the wsdl:input of the \"" + bindingOperation.getName() - + "\" binding operation."); - } - } - - // If the wsdl:output contains mime:multipartRelated elements - if (!outputMultiparts.isEmpty()) - { - multipartsFound = true; - - // If there is a soap:header in the non-root mime:part, - // the assertion failed - if (containsInvalidMimePart(outputMultiparts)) - { - throw new AssertionFailException("The invalid mime:part element " - + "is in the wsdl:output of the \"" + bindingOperation.getName() - + "\" binding operation."); - } - } - } - // If the binding contains no one mime:multipartRelated element, - // the assertion is not applicable - if (!multipartsFound) - throw new AssertionNotApplicableException(); - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Looks for such non-root mime:part element from a list of mime:multipartRelated elements - * that contains a soap:header element. - * @param multiparts a list of mime:multipartRelated elements - * @return true, if such element is found, false otherwise - */ - private boolean containsInvalidMimePart(List multiparts) - { - // Going through a list of mime:multipartRelated elements - for (int i = 0; i < multiparts.size(); i++) - { - // Getting a list of mime:part elements - List mimeParts = - ((MIMEMultipartRelated) multiparts.get(i)).getMIMEParts(); - - // Looking for non-root mime:partS - if (mimeParts.size() > 1) - { - for (int j = 1; j < mimeParts.size(); j++) - { - // Getting a list of extensibility elements of a mime:part - List extElems = - ((MIMEPart) mimeParts.get(j)).getExtensibilityElements(); - // Going through the extensibility elements - for (int k = 0; k < extElems.size(); k++) - { - // If an extensibility element is a soap:header, - // return true - if (((ExtensibilityElement)extElems.get(k)) - .getElementType().equals(WSDL_SOAP_HEADER)) - { - return true; - } - } - } - } - } - // return false, if the element is not found - return false; - } - - /** - * Collects all mime:multipartRelated elements. - * @param extElems a list of extensibility elements that can contain mime:multipartRelated elements. - * @return the list of mime:multipartRelated elements found. - */ - private List getMimeMultipartElements(List extElems) - { - List mimeMultipartElements = new ArrayList(); - - if (extElems != null) - { - // Going through all the extensibility elements - for (int i = 0; i < extElems.size(); i++) - { - ExtensibilityElement extElem = (ExtensibilityElement) extElems.get(i); - // If the element is mime:multipartRelated - if (extElem.getElementType().equals(WSDL_MIME_MULTIPART)) - { - // Adding the element to the list being returned - mimeMultipartElements.add(extElem); - // Getting the mime:part elements of the mime:multipartRelated - List mimeParts = ((MIMEMultipartRelated) extElem).getMIMEParts(); - // Going through all the mime:part elements - for (int j = 0; j < mimeParts.size(); j++) - { - // Collecting all the mime:multipartRelated elements of this mime:part - List elems = getMimeMultipartElements( - ((MIMEPart) mimeParts.get(j)).getExtensibilityElements()); - // Adding the elements to the list being returned - mimeMultipartElements.addAll(elems); - } - } - } - } - - return mimeMultipartElements; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2907.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2907.java deleted file mode 100644 index 494445f6c..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2907.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - -/** - * AP2907 - * - * <context>For a candidate wsdl:binding</context> - * <assertionDescription>Each MIME part in a description is defined using - * an element with a local name of part in the namespace of the - * WSDL MIME Binding extension.</assertionDescription> - */ -public class AP2907 extends AssertionProcess -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public AP2907(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2908.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2908.java deleted file mode 100644 index c89f4ba27..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2908.java +++ /dev/null @@ -1,296 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.ArrayList; -import java.util.List; - -import javax.wsdl.Binding; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -/** - * AP2908 - * - * <context>For a candidate wsdl:binding</context> - * <assertionDescription>The mime:part element in a DESCRIPTION does not have a name attribute.</assertionDescription> - */ -public class AP2908 extends AssertionProcess implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public AP2908(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - // Getting a wsdl:binding - Binding wsdlBinding = (Binding) entryContext.getEntry().getEntryDetail(); - - // Since WSDL4J 1.4 ignores any attributes of mime:part, use Xerces 2.6.2 instead - Document doc = entryContext.getWSDLDocument().getDocument(); - if (doc == null) - { - doc = validator.parseXMLDocumentURL(validator.wsdlDocument.getLocation(), null); - } - - // Finding the wsdl:binding element being processed - Element binding = getBindingElement( - doc.getDocumentElement(), wsdlBinding.getQName().getLocalPart()); - - List ops = getChildElements(binding, WSDL_OPERATION); - - // A variable that indicates a binding contains at least one - // mime:multipartRelated element - boolean multipartsFound = false; - - // Going through the operation elements - for (int i = 0; i < ops.size(); i++) - { - Element bindingOperation = (Element) ops.get(i); - - // Getting wsdl:input and wsdl:output elements of an operation - Element bindingInput = getChildElement(bindingOperation, WSDL_INPUT); - Element bindingOutput = getChildElement(bindingOperation, WSDL_OUTPUT); - - // Collecting all the mime:multipartRelated elements from wsdl:input and wsdl:output - List inputMultiparts = getMimeMultipartElements(bindingInput); - List outputMultiparts = getMimeMultipartElements(bindingOutput); - - // If the wsdl:input contains mime:multipartRelated elements - if (!inputMultiparts.isEmpty()) - { - multipartsFound = true; - - // If there is a mime:part element containing a name attribute, - // the assertion failed - if (containsInvalidMimePart(inputMultiparts)) - { - throw new AssertionFailException("The invalid " - + "mime:part element is in the wsdl:input of the \"" - + bindingOperation.getAttribute(WSIConstants.ATTR_NAME) - + "\" binding operation."); - } - } - - // If the wsdl:output contains mime:multipartRelated elements - if (!outputMultiparts.isEmpty()) - { - multipartsFound = true; - - // If there is a mime:part element containing a name attribute, - // the assertion failed - if (containsInvalidMimePart(outputMultiparts)) - { - throw new AssertionFailException("The invalid " - + "mime:part element is in the wsdl:output of the \"" - + bindingOperation.getAttribute(WSIConstants.ATTR_NAME) - + "\" binding operation."); - } - } - } - // If the binding contains no one mime:multipartRelated element, - // the assertion is not applicable - if (!multipartsFound) - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - catch (Exception ioe) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Validates mime:part elements for each of mime:multipartRelated element. - * @param multiparts a list of mime:multipartRelated elements. - * @return true, if any mime:part contains a name attribute, false otherwise. - */ - private boolean containsInvalidMimePart(List multiparts) { - // Going through a list of mime:multipartRelated elements - for (int i = 0; i < multiparts.size(); i++) - { - // Getting a list of mime:part elements - List mimeParts = - getChildElements((Element) multiparts.get(i), WSDL_MIME_PART); - // Going through all the mime:part elements - for (int j = 0; j < mimeParts.size(); j++) - { - Element mimePart = (Element) mimeParts.get(j); - // If the mime:part element contains a name attribute, - // return true - if (mimePart.getAttributeNode(WSIConstants.ATTR_NAME) != null) - { - return true; - } - } - } - // No one invalid mime:part element is found, return false - return false; - } - - /** - * Collects all mime:multipartRelated elements. - * @param parent an element which the child elements are gathered from. - * @return the list of mime:multipartRelated elements found. - */ - private List getMimeMultipartElements(Element parent) - { - List mimeMultipartElements = new ArrayList(); - // If the parent is not null - if (parent != null) - { - // Getting the first parent's child - Element child = XMLUtils.getFirstChild(parent); - while (child != null) - { - // If the child is a mime:multipartRelated element - if (child.getNamespaceURI().equals(WSDL_MIME_MULTIPART.getNamespaceURI()) - && child.getLocalName().equals(WSDL_MIME_MULTIPART.getLocalPart())) - { - // Adding the element to the list being returned - mimeMultipartElements.add(child); - - // Getting mime:partS from the element - List mimeParts = getChildElements(child, WSDL_MIME_PART); - // Going through all the mime:part elements - for (int i = 0; i < mimeParts.size(); i++) - { - // Collecting all the mime:multipartRelated elements of this mime:part - List elems = getMimeMultipartElements((Element) mimeParts.get(i)); - // Adding the elements to the list being returned - mimeMultipartElements.addAll(elems); - } - } - // Getting the next child - child = XMLUtils.getNextSibling(child); - } - } - - return mimeMultipartElements; - } - - /** - * Looks for an element's child element. - * @param parent a parent element. - * @param childName a qualified element name being found. - * @return an element or null if it is not found. - */ - private Element getChildElement(Element parent, QName childName) - { - // Getting the first parent's child - Element child = XMLUtils.getFirstChild(parent); - while (child != null) - { - // If the child has the required qualified name - if (child.getNamespaceURI().equals(childName.getNamespaceURI()) - && child.getLocalName().equals(childName.getLocalPart())) - { - // return the child - return child; - } - // Getting the next child - child = XMLUtils.getNextSibling(child); - } - return null; - } - - /** - * Collects element's child elements. - * @param parent a parent element. - * @param childName a qualified element name being found. - * @return a list of elements found. - */ - private List getChildElements(Element parent, QName childName) - { - List children = new ArrayList(); - if (parent != null) - { - // Getting the first parent's child - Element child = XMLUtils.getFirstChild(parent); - while (child != null) - { - // If the child has the required qualified name - if (child.getNamespaceURI().equals(childName.getNamespaceURI()) - && child.getLocalName().equals(childName.getLocalPart())) - { - // Adding the child to the list - children.add(child); - } - // Getting the next binding's child - child = XMLUtils.getNextSibling(child); - } - } - return children; - } - - /** - * Looks for wsdl:binding element. - * @param definitions a wsdl:definitions element. - * @param bindingName a name of wsdl:binding element. - * @return a wsdl:binding element or null if it is not found. - */ - private Element getBindingElement(Element definitions, String bindingName) - { - // Getting the first definitions' child - Element child = XMLUtils.getFirstChild(definitions); - while (child != null) - { - // If definitions' child is wsdl:binding element - // and is the same that is being processed by WSDLValidator - if (child.getNamespaceURI().equals(WSDL_BINDING.getNamespaceURI()) - && child.getLocalName().equals(WSDL_BINDING.getLocalPart()) - && child.getAttribute(WSIConstants.ATTR_NAME).equals(bindingName)) - { - // return the wsdl:binding element - return child; - } - // Getting the next definitions' child - child = XMLUtils.getNextSibling(child); - } - // return null, is there is no such wsdl:binding - return null; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2909.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2909.java deleted file mode 100644 index 86681ba50..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2909.java +++ /dev/null @@ -1,215 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.ArrayList; -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOperation; -import javax.wsdl.BindingOutput; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.mime.MIMEContent; -import javax.wsdl.extensions.mime.MIMEMultipartRelated; -import javax.wsdl.extensions.mime.MIMEPart; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - -/** - * AP2909 - * - * <context>For a candidate wsdl:binding</context> - * <assertionDescription>Multiple mime:content child elements of a mime:part element - * in a desciption reference the same wsdl:part.</assertionDescription> - */ -public class AP2909 extends AssertionProcess implements WSITag -{ - private final WSDLValidatorImpl validator; - - // A variable that indicates a binding contains - // multiple mime:content elements - private boolean multipleContentFound; - - /** - * @param WSDLValidatorImpl - */ - public AP2909(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // Resetting the variable - multipleContentFound = false; - - try - { - // Getting a wsdl:binding - Binding binding = (Binding) entryContext.getEntry().getEntryDetail(); - - // Getting its wsdl:operation elements - List ops = binding.getBindingOperations(); - - // Going through the operation elements - for (int i = 0; i < ops.size(); i++) - { - BindingOperation bindingOperation = (BindingOperation) ops.get(i); - - // Getting wsdl:input and wsdl:output elements of an operation - BindingInput bindingInput = bindingOperation.getBindingInput(); - BindingOutput bindingOutput = bindingOperation.getBindingOutput(); - - // Collecting all the mime:part elements from wsdl:input and wsdl:output - List inputMimeParts = getMimeParts( - bindingInput == null ? null : bindingInput.getExtensibilityElements()); - List outputMimeParts = getMimeParts( - bindingOutput == null ? null : bindingOutput.getExtensibilityElements()); - - // If there is a mime:part containing multiple mime:contentS - // which reference different wsdl:partS, the assertion failed - if (containsInvalidMimePart(inputMimeParts)) - { - throw new AssertionFailException("The invalid mime:part element " - + "is in the wsdl:input of the \"" + bindingOperation.getName() - + "\" binding operation."); - } - - // If there is a mime:part containing multiple mime:contentS - // which reference different wsdl:partS, the assertion failed - if (containsInvalidMimePart(outputMimeParts)) - { - throw new AssertionFailException("The invalid mime:part element " - + "is in the wsdl:output of the \"" + bindingOperation.getName() - + "\" binding operation."); - } - - } - // If the binding does not contain a mime:part with multiple - // mime:content elements, the assertion is not applicable - if (!multipleContentFound) - throw new AssertionNotApplicableException(); - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Validates mime:part elements. - * @param mimeParts a list of mime:part elements. - * @return true if multiple mime:contentS of a mime:part - * reference different wsdl:partS, false otherwise. - */ - private boolean containsInvalidMimePart(List mimeParts) - { - // Going through a list of mime:part elements - for (int i = 0; i < mimeParts.size(); i++) - { - // A variable that indicates the mime:part contains - // at least one mime:content element - boolean mimeContentFound = false; - String mimeContentPart = null; - - // Going through mime:part extensibility elements - List extElems = ((MIMEPart) mimeParts.get(i)).getExtensibilityElements(); - for (int j = 0; j < extElems.size(); j++) - { - // If an extensibility element is mime:content - if (((ExtensibilityElement)extElems.get(j)) - .getElementType().equals(WSDL_MIME_CONTENT)) - { - MIMEContent mimeContent = (MIMEContent) extElems.get(j); - // If a mime:content element was already found in this mime:part - if (mimeContentFound) - { - multipleContentFound = true; - // If a mime:content references other wsdl:part than the - // previous mime:content do, return true - if (mimeContent.getPart() == null - || !mimeContent.getPart().equals(mimeContentPart)) - { - return true; - } - } - // This is the first mime:content element of mime:part - else - { - mimeContentFound = true; - mimeContentPart = mimeContent.getPart(); - } - } - } - } - // There are no invalid mime:part elements, return false - return false; - } - - /** - * Collects all mime:part elements. - * @param extElems a list of extensibility elements that can contain mime:part elements. - * @return the list of mime:part elements found. - */ - private List getMimeParts(List extElems) - { - List mimeParts = new ArrayList(); - - if (extElems != null) - { - // Going through all the extensibility elements - for (int i = 0; i < extElems.size(); i++) - { - ExtensibilityElement extElem = (ExtensibilityElement) extElems.get(i); - // If the element is mime:multipartRelated - if (extElem.getElementType().equals(WSDL_MIME_MULTIPART)) - { - // Getting the mime:part elements of the mime:multipartRelated - List mParts = ((MIMEMultipartRelated) extElem).getMIMEParts(); - mimeParts.addAll(mParts); - // Going through all the mime:part elements - for (int j = 0; j < mParts.size(); j++) - { - List elems = getMimeParts( - ((MIMEPart) mParts.get(j)).getExtensibilityElements()); - // Adding the elements to the list being returned - mimeParts.addAll(elems); - } - } - } - } - return mimeParts; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2910.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2910.java deleted file mode 100644 index a42d335d3..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2910.java +++ /dev/null @@ -1,230 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.ArrayList; -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOperation; -import javax.wsdl.BindingOutput; -import javax.wsdl.Input; -import javax.wsdl.Message; -import javax.wsdl.Output; -import javax.wsdl.Part; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.mime.MIMEContent; -import javax.wsdl.extensions.mime.MIMEMultipartRelated; -import javax.wsdl.extensions.mime.MIMEPart; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - -/** - * AP2910 - * - * <context>For a candidate wsdl:binding</context> - * <assertionDescription>A mime:content in a DESCRIPTION references - * a wsdl:part that is defined using either the type attribute - * or the element attribute.</assertionDescription> - */ -public class AP2910 extends AssertionProcess implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public AP2910(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - // A variable that indicates a binding contains at least one - // mime:content element - boolean mimeContentsFound = false; - - // Getting a wsdl:binding - Binding binding = (Binding) entryContext.getEntry().getEntryDetail(); - - // Getting its wsdl:operation elements - List ops = binding.getBindingOperations(); - - // Going through the operation elements - for (int i = 0; i < ops.size(); i++) - { - BindingOperation bindingOperation = (BindingOperation) ops.get(i); - - // Getting wsdl:input and wsdl:output elements of an operation - BindingInput bindingInput = bindingOperation.getBindingInput(); - BindingOutput bindingOutput = bindingOperation.getBindingOutput(); - - // Collecting all the mime:content elements from wsdl:input and wsdl:output - List inputMimeContents = getMimeContentElements( - bindingInput == null ? null : bindingInput.getExtensibilityElements()); - List outputMimeContents = getMimeContentElements( - bindingOutput == null ? null : bindingOutput.getExtensibilityElements()); - - // If the wsdl:input contains mime:content elements - if (!inputMimeContents.isEmpty()) - { - mimeContentsFound = true; - Input portTypeInput = bindingOperation.getOperation().getInput(); - // If there is no the corresponding wsdl:input in wsdl:portType - // or the wsdl:input does not specify a message attribute, - // the assertion failed - if (portTypeInput == null || portTypeInput.getMessage() == null) - throw new AssertionFailException( - "The corresponging operation in the wsdl:portType for the \"" - + bindingOperation.getName() + "\" binding operation is invalid."); - // Getting a mime:content referencing an invalid wsdl:part - String part = getInvalidMimeContentPart( - inputMimeContents, portTypeInput.getMessage()); - // If such part is found, the assertion failed - if (part != null) - throw new AssertionFailException("part=\"" + part + - "\", the input of the binding operation \"" - + bindingOperation.getName() + "\""); - } - - // If the wsdl:output contains mime:content elements - if (!outputMimeContents.isEmpty()) - { - mimeContentsFound = true; - Output portTypeOutput = bindingOperation.getOperation().getOutput(); - // If there is no the corresponding wsdl:output in wsdl:portType - // or the wsdl:output does not specify a message attribute, - // the assertion failed - if (portTypeOutput == null || portTypeOutput.getMessage() == null) - throw new AssertionFailException( - "The corresponging operation in the wsdl:portType for the \"" - + bindingOperation.getName() + "\" binding operation is invalid."); - // Getting a mime:content referencing an invalid wsdl:part - String part = getInvalidMimeContentPart( - outputMimeContents, portTypeOutput.getMessage()); - // If such part is found, the assertion failed - if (part != null) - throw new AssertionFailException("part=\"" + part + - "\", the output of the binding operation \"" - + bindingOperation.getName() + "\""); - } - } - - // If the binding does not contain mime:content elements, - // the assertion is not applicable - if (!mimeContentsFound) - throw new AssertionNotApplicableException(); - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Validates every mime:content element. If it references a wsdl:part that - * is defined using neither the type attribute nor the element attribute - * or using them together, it is invalid. - * @param mimeContents a list of mime:content elements. - * @param message the corresponding wsdl:message element for mime:contentS. - * @return a value of the part attribute of an invalid mime:content - * or null if all the mime:content elements are valid. - */ - private String getInvalidMimeContentPart(List mimeContents, Message message) { - // Going throug all the mime:content elements - for (int i = 0; i < mimeContents.size(); i++) - { - // Getting a value of the part attribute from a mime:element - String partName = ((MIMEContent) mimeContents.get(i)).getPart(); - // Getting the corresponging wsdl:part - Part part = message.getPart(partName); - // if it is defined and use neither the type attribute - // nor the element attribute or use them together, return part value - if (part != null - && ((part.getTypeName() == null && part.getElementName() == null) - || (part.getTypeName() != null && part.getElementName() != null))) - { - return partName; - } - } - // Return null if no one part is found - return null; - } - - /** - * Collects all mime:content elements. - * @param extElems a list of extensibility elements that can contain mime:contentS. - * @return the list of mime:content elements found. - */ - private List getMimeContentElements(List extElems) - { - List mimeContentElements = new ArrayList(); - - if (extElems != null) - { - // Going through all the extensibility elements - for (int i = 0; i < extElems.size(); i++) - { - ExtensibilityElement extElem = (ExtensibilityElement) extElems.get(i); - // If the element is mime:multipartRelated - if (extElem.getElementType().equals(WSDL_MIME_MULTIPART)) - { - // Getting the mime:part elements of the mime:multipartRelated - List mimeParts = ((MIMEMultipartRelated) extElem).getMIMEParts(); - // Going through all the mime:part elements - for (int j = 0; j < mimeParts.size(); j++) - { - // Collecting all the mime:content elements of this mime:part - List elems = getMimeContentElements( - ((MIMEPart) mimeParts.get(j)).getExtensibilityElements()); - // Adding the elements to the list being returned - mimeContentElements.addAll(elems); - } - } - // Else if the element is mime:content - else if (extElem.getElementType().equals(WSDL_MIME_CONTENT)) - { - // Adding the element to the list being returned - mimeContentElements.add(extElem); - } - } - } - - return mimeContentElements; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2911.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2911.java deleted file mode 100644 index 943383bea..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2911.java +++ /dev/null @@ -1,228 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.ArrayList; -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOperation; -import javax.wsdl.BindingOutput; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.mime.MIMEMultipartRelated; -import javax.wsdl.extensions.mime.MIMEPart; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - -/** - * AP2911 - * - * <context>For a candidate wsdl:binding</context> - * <assertionDescription>The mime:multipartRelated elements in wsdl:input and wsdl:ouput elements - * of operations in a wsdl:binding, contain exactly one mime:part child element that contains - * a soapbind:body child element.</assertionDescription> - */ -public class AP2911 extends AssertionProcess implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public AP2911(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - // A variable that indicates a binding contains at least one - // mime:multipartRelated element - boolean multipartsFound = false; - - // Getting a wsdl:binding - Binding binding = (Binding) entryContext.getEntry().getEntryDetail(); - - // Getting its wsdl:operation elements - List ops = binding.getBindingOperations(); - - // Going through the operation elements - for (int i = 0; i < ops.size(); i++) - { - BindingOperation bindingOperation = (BindingOperation) ops.get(i); - - // Getting wsdl:input and wsdl:output elements of an operation - BindingInput bindingInput = bindingOperation.getBindingInput(); - BindingOutput bindingOutput = bindingOperation.getBindingOutput(); - - // Collecting all the mime:multipartRelated elements from wsdl:input and wsdl:output - List inputMultiparts = getMimeMultipartElements( - bindingInput == null ? null : bindingInput.getExtensibilityElements()); - List outputMultiparts = getMimeMultipartElements( - bindingOutput == null ? null : bindingOutput.getExtensibilityElements()); - - // If the wsdl:input contains mime:multipartRelated elements - if (!inputMultiparts.isEmpty()) - { - multipartsFound = true; - - // If there is not exactly one mime:part element containing - // a soapbind:body child, the assertion failed - if (!containsOneSoapBody(inputMultiparts)) - { - throw new AssertionFailException("The invalid " - + "mime:multipartRelated element is in the wsdl:input of the \"" - + bindingOperation.getName() + "\" binding operation."); - } - } - - // If the wsdl:output contains mime:multipartRelated elements - if (!outputMultiparts.isEmpty()) - { - multipartsFound = true; - - // If there is not exactly one mime:part element containing - // a soapbind:body child, the assertion failed - if (!containsOneSoapBody(outputMultiparts)) - { - throw new AssertionFailException("The invalid " - + "mime:multipartRelated element is in the wsdl:output of the \"" - + bindingOperation.getName() + "\" binding operation."); - } - } - - } - // If the binding contains no one mime:multipartRelated element, - // the assertion is not applicable - if (!multipartsFound) - throw new AssertionNotApplicableException(); - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Looks for mime:part elements containing a soap:body child - * for each of mime:multipartRelated element. - * @param multiparts a list of mime:multipartRelated elements. - * @return true if there is exactly one mime:part containing a soap:body - * child, false otherwise. - */ - private boolean containsOneSoapBody(List multiparts) - { - // A variable indicates that a soap:body element is found - boolean soapBodyFound = false; - - // Going through a list of mime:multipartRelated elements - for (int i = 0; i < multiparts.size(); i++) - { - // Getting a list of mime:part elements - List mimeParts = - ((MIMEMultipartRelated) multiparts.get(i)).getMIMEParts(); - - // Going through all the mime:part elements - for (int j = 0; j < mimeParts.size(); j++) - { - // Getting a list of extensibility elements of a mime:part - List extElems = - ((MIMEPart) mimeParts.get(j)).getExtensibilityElements(); - // Going through the extensibility elements - for (int k = 0; k < extElems.size(); k++) - { - // If an extensibility element is a soap:body - if (((ExtensibilityElement)extElems.get(k)) - .getElementType().equals(WSDL_SOAP_BODY)) - { - // If a soap:body element was already found, - // return true - if (soapBodyFound) - { - return false; - } - // else set the variable to the true value - else - { - soapBodyFound = true; - } - } - } - } - } - - return soapBodyFound; - } - - /** - * Collects all mime:multipartRelated elements. - * @param extElems a list of extensibility elements that can contain mime:multipartRelated elements. - * @return the list of mime:multipartRelated elements found. - */ - private List getMimeMultipartElements(List extElems) - { - List mimeMultipartElements = new ArrayList(); - - if (extElems != null) - { - // Going through all the extensibility elements - for (int i = 0; i < extElems.size(); i++) - { - ExtensibilityElement extElem = (ExtensibilityElement) extElems.get(i); - // If the element is mime:multipartRelated - if (extElem.getElementType().equals(WSDL_MIME_MULTIPART)) - { - // Adding the element to the list being returned - mimeMultipartElements.add(extElem); - // Getting the mime:part elements of the mime:multipartRelated - List mimeParts = ((MIMEMultipartRelated) extElem).getMIMEParts(); - // Going through all the mime:part elements - for (int j = 0; j < mimeParts.size(); j++) - { - // Collecting all the mime:multipartRelated elements of this mime:part - List elems = getMimeMultipartElements( - ((MIMEPart) mimeParts.get(j)).getExtensibilityElements()); - // Adding the elements to the list being returned - mimeMultipartElements.addAll(elems); - } - } - } - } - - return mimeMultipartElements; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2930.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2930.java deleted file mode 100644 index 01734f8ba..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2930.java +++ /dev/null @@ -1,136 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.Collection; -import java.util.Iterator; -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.BindingFault; -import javax.wsdl.BindingOperation; -import javax.wsdl.extensions.ExtensibilityElement; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - -/** - * AP2930 - * - * <context>For a candidate wsdl:binding</context> - * <assertionDescription>A wsdl:fault element in a description does not have - * mime:multipartRelated element as its child element.</assertionDescription> - */ -public class AP2930 extends AssertionProcess implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public AP2930(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - // A variable that indicates a binding contains at least one - // wsdl:fault element - boolean faultsFound = false; - - // Getting a wsdl:binding - Binding binding = (Binding) entryContext.getEntry().getEntryDetail(); - - // Getting its wsdl:operation elements - List ops = binding.getBindingOperations(); - - // Going through the operation elements - for (int i = 0; i < ops.size(); i++) - { - BindingOperation bindingOperation = (BindingOperation) ops.get(i); - - // Getting wsdl:fault elements - Collection faults = bindingOperation.getBindingFaults().values(); - if (!faults.isEmpty()) - { - faultsFound = true; - // If there is at least one mime:multipartRelated element, - // the assertion failed - if (containsMimeMultiparts(faults)) - throw new AssertionFailException("The binding operation is \"" - + bindingOperation.getName() + "\"."); - } - } - - // If the binding does not contain wsdl:fault elements, - // the assertion is not applicable - if (!faultsFound) - throw new AssertionNotApplicableException(); - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Validates wsdl:fault elements. - * @param faults a collection of wsdl:fault elements. - * @return true if any wsdl:fault has a mime:multipartRelated child - * element, false otherwise. - */ - private boolean containsMimeMultiparts(Collection faults) - { - // Going through all the wsdl:faultS - Iterator i = faults.iterator(); - while (i.hasNext()) - { - // Getting wsdl:fault's extensibility elements - List extElems = ((BindingFault) i.next()).getExtensibilityElements(); - for (int j = 0; j < extElems.size(); j++) - { - // If there is a mime:multipartRelated element, return true - if (((ExtensibilityElement)extElems.get(j)) - .getElementType().equals(WSDL_MIME_MULTIPART)) - { - return true; - } - } - } - // There are no mime:multipartRelated elements, return false - return false; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2940.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2940.java deleted file mode 100644 index 6392a1d40..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2940.java +++ /dev/null @@ -1,450 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import javax.wsdl.Binding; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOperation; -import javax.wsdl.BindingOutput; -import javax.wsdl.Input; -import javax.wsdl.Message; -import javax.wsdl.Output; -import javax.wsdl.Part; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.UnknownExtensibilityElement; -import javax.wsdl.extensions.mime.MIMEMultipartRelated; -import javax.wsdl.extensions.mime.MIMEPart; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPHeader; -import javax.xml.namespace.QName; - -import org.apache.xerces.impl.dv.XSSimpleType; -import org.apache.xerces.xs.XSAttributeUse; -import org.apache.xerces.xs.XSComplexTypeDefinition; -import org.apache.xerces.xs.XSConstants; -import org.apache.xerces.xs.XSElementDeclaration; -import org.apache.xerces.xs.XSModel; -import org.apache.xerces.xs.XSModelGroup; -import org.apache.xerces.xs.XSObjectList; -import org.apache.xerces.xs.XSParticle; -import org.apache.xerces.xs.XSTerm; -import org.apache.xerces.xs.XSTypeDefinition; -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.w3c.dom.Element; - -/** - * AP2940 - * - * <context>For a candidate wsdl:binding</context> - * <assertionDescription>In a description, a wsdl:part defined with the - * ref:swaRef schema type is bound to a soapbind:body, or a soapbind:header - * in a MIME binding.</assertionDescription> - */ -public class AP2940 extends AssertionProcess implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public AP2940(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - // A variable that indicates wsdl:portType references at least one - // wsdl:part defined with the ref:swaRef schema type - boolean swaRefFound = false; - - // Getting a wsdl:binding - Binding binding = (Binding) entryContext.getEntry().getEntryDetail(); - - // Getting its wsdl:operation elements - List ops = binding.getBindingOperations(); - - // Going through the operation elements - for (int i = 0; i < ops.size(); i++) - { - BindingOperation bindingOperation = (BindingOperation) ops.get(i); - - // Getting wsdl:input and wsdl:output elements of an operation - BindingInput bindingInput = bindingOperation.getBindingInput(); - BindingOutput bindingOutput = bindingOperation.getBindingOutput(); - - Input portTypeInput = bindingOperation.getOperation().getInput(); - Output portTypeOutput = bindingOperation.getOperation().getOutput(); - // If the corresponding wsdl:input exists in wsdl:portType - // and includes the message attribute - if (portTypeInput != null && portTypeInput.getMessage() != null) - { - // Collecting all the message's parts defined with ref:swaRef - List swaRefParts = getSwaRefParts(portTypeInput.getMessage()); - if (!swaRefParts.isEmpty()) - { - swaRefFound = true; - // Getting a wsdl:part that is unbound - String unboundPart = getUnboundPart(swaRefParts, - portTypeInput.getMessage().getQName(), - bindingInput == null ? null : bindingInput.getExtensibilityElements()); - // If such wsdl:part exists, assertion failed - if (unboundPart != null) - throw new AssertionFailException("The part \"" + unboundPart - + "\" is not bound properly to the wsdl:input of the \"" - + bindingOperation.getName() + "\" binding operation."); - } - } - - // If the corresponding wsdl:output exists in wsdl:portType - // and includes the message attribute - if (portTypeOutput != null && portTypeOutput.getMessage() != null) - { - // Collecting all the message's parts defined with ref:swaRef - List swaRefParts = getSwaRefParts(portTypeOutput.getMessage()); - if (!swaRefParts.isEmpty()) - { - swaRefFound = true; - // Getting a wsdl:part that is unbound - String unboundPart = getUnboundPart(swaRefParts, - portTypeOutput.getMessage().getQName(), - bindingOutput == null ? null : bindingOutput.getExtensibilityElements()); - // If such wsdl:part exists, assertion failed - if (unboundPart != null) - throw new AssertionFailException("The part \"" + unboundPart - + "\" is not bound properly to the wsdl:input of the \"" - + bindingOperation.getName() + "\" binding operation."); - } - } - } - - // If there is no wsdl:partS defined with the ref:swaRef - // schema type, the assertion is not applicable - if (!swaRefFound) - throw new AssertionNotApplicableException(); - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException afe) - { - // The assertion is "recommended", using the "warning" result - result = AssertionResult.RESULT_WARNING; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Looks for a wsdl:part that is not bound to either soap:body or soap:header - * in a MIME binding. - * @param swaRefParts a list of wsdl:part names that are defined with the - * ref:swaRef schema type. - * @param messageName the qualified name of the wsdl:message being validated. - * @param extElems a list of extensibility elements of either wsdl:input or - * wsdl:output of the corresponding binding operation. - * @return a wsdl:part name that is not bound properly, or null. - */ - private String getUnboundPart(List swaRefParts, QName messageName, List extElems) { - // Going through wsdl:part names - for (int i = 0; i < swaRefParts.size(); i++) - { - String part = (String) swaRefParts.get(i); - boolean boundProperly = false; - if (extElems != null) - { - // Going through extensibility elements - for (int j = 0; j < extElems.size() && !boundProperly; j++) - { - ExtensibilityElement extElem = (ExtensibilityElement) extElems.get(j); - // If the element is mime:multipartRelated - if (extElem.getElementType().equals(WSDL_MIME_MULTIPART)) - { - // Getting the mime:part elements of the mime:multipartRelated - List mimeParts = ((MIMEMultipartRelated) extElem).getMIMEParts(); - // Getting the first mime:part element where soap:body - // and soap:header could appear - if (mimeParts.size() > 0) - { - List elems = ((MIMEPart) mimeParts.get(0)).getExtensibilityElements(); - // Going through all the MIME part's extensibility elements - for (int k = 0; k < elems.size(); k ++) - { - ExtensibilityElement elem = (ExtensibilityElement) elems.get(k); - // If that is a soap:body - if (elem.getElementType().equals(WSDL_SOAP_BODY)) - { - List pts = ((SOAPBody) elem).getParts(); - // If the part is bound by this element - if (pts == null || pts.contains(part)) - { - boundProperly = true; - break; - } - } - // else if that is a soap:header - else if (elem.getElementType().equals(WSDL_SOAP_HEADER)) - { - if (elem instanceof SOAPHeader) - { - SOAPHeader header = (SOAPHeader) elem; - // If the part is bound by this element - if (messageName.equals(header.getMessage()) - && header.getPart() != null - && header.getPart().equals(part)) - { - boundProperly = true; - break; - } - } - // WSDL4J 1.4 does not recognize soap:header elements that - // are enclosed in mime:multipartRelated, so using a workaround - else - { - Element header = - ((UnknownExtensibilityElement) elem).getElement(); - // If a header references the corresponding message - // and the part is bound by this element - if (referencesMessage(header, messageName) - && header.getAttribute("part").equals(part)) - { - boundProperly = true; - break; - } - } - } - } - } - } - } - } - // If this part is unbound properly, return it - if (!boundProperly) - return part; - } - // All the parts are bound properly, return null - return null; - } - - /** - * Validates whether an element contains a message attribute that references - * a message that have the qualified name specified. - * @param elem an element to be validated. - * @param messageName the qualified name of a message. - * @return true if an element is valid, false otherwise. - */ - private boolean referencesMessage(Element elem, QName messageName) - { - // Getting the element's message attribute - String message = elem.getAttribute("message"); - // finding the colon delimiter - int colonPos = message.indexOf(":"); - String ns = null; - // Getting a local part - String lp = colonPos > -1 ? message.substring(colonPos + 1) : message; - // If the delimiter is found - if (colonPos > -1) - { - // Retrieving a namespace URI - ns = validator.wsdlDocument.getDefinitions() - .getNamespace(message.substring(0, colonPos)); - } - // If the local part and the namespace URI are the same as a message have - if (messageName.getLocalPart().equals(lp) - && messageName.getNamespaceURI().equals(ns)) - { - // element is valid, return true - return true; - } - // element is not valid, return false - return false; - } - - /** - * Collects all the wsdl:part defined with the ref:swaRef schema type. - * @param message a message containig wsdl:part elements. - * @return a list of wsdl:part names. - */ - private List getSwaRefParts(Message message) - { - List swaRefParts = new ArrayList(); - - // Going through message's parts - Iterator it = message.getParts().values().iterator(); - while (it.hasNext()) - { - Part part = (Part) it.next(); - QName ref; - short type; - // Getting either part's element reference or type reference - if ((ref = part.getTypeName()) != null) - { - type = XSConstants.TYPE_DEFINITION; - } - else if ((ref = part.getElementName()) != null) - { - type = XSConstants.ELEMENT_DECLARATION; - } - // The part does conatins neither element nor type attribute, - // proceeding with the next part - else - { - continue; - } - // Getting a list of schemas defined - Map schemas = validator.wsdlDocument.getSchemas(); - // Going through the schemas - Iterator it2 = schemas.values().iterator(); - while (it2.hasNext()) - { - XSModel xsModel = (XSModel) it2.next(); - XSTypeDefinition partType = null; - // Getting the corresponding part type - if (type == XSConstants.ELEMENT_DECLARATION) - { - XSElementDeclaration elem = xsModel.getElementDeclaration( - ref.getLocalPart(), ref.getNamespaceURI()); - if (elem != null) - partType = elem.getTypeDefinition(); - } - else - { - partType = xsModel.getTypeDefinition( - ref.getLocalPart(), ref.getNamespaceURI()); - } - // If the part type is defined using the ref:swaRef schema type - if (referencesSwaRef(partType, new ArrayList())) - { - // Adding the part's name to the list being returned - swaRefParts.add(part.getName()); - } - } - } - // Return the list - return swaRefParts; - } - - /** - * Check schema type whether it contains ref:swaRef simple schema type - * or has an attribute of this schema type. - * @param xsType a schema type definition element - * @return true, if schema type contains ref:swaRef, false otherwise. - */ - private boolean referencesSwaRef(XSTypeDefinition xsType, List types) - { - if ((xsType != null) && (!types.contains(xsType))) - { - types.add(xsType); - // If this is a complex type - if (xsType.getTypeCategory() == XSTypeDefinition.COMPLEX_TYPE) - { - XSComplexTypeDefinition xsComplexType = - (XSComplexTypeDefinition) xsType; - // If it contains mixed context - // check whether the context contains ref:swaRef - if (xsComplexType.getParticle() != null - && referencesSwaRef(xsComplexType.getParticle().getTerm(), types)) - { - return true; - } - // Getting the type's attributes - XSObjectList attrList = xsComplexType.getAttributeUses(); - for (int i = 0; i < attrList.getLength(); i++) - { - XSAttributeUse xsAttrUse = (XSAttributeUse) attrList.item(i); - // If an attribute is defined using ref:swaRef, return true - if (referencesSwaRef( - xsAttrUse.getAttrDeclaration().getTypeDefinition(), types)) - { - return true; - } - } - } - // else if this is a simple type - else if (xsType.getTypeCategory() == XSTypeDefinition.SIMPLE_TYPE) - { - XSSimpleType xsSimpleType = (XSSimpleType) xsType; - // If this type is ref:swaRef, return true - if (xsSimpleType.getNamespace().equals(WSIConstants.NS_URI_SWA_REF) - && xsSimpleType.getName().equals(WSIConstants.SCHEMA_TYPE_SWA_REF)) - { - return true; - } - } - } - // The schema type does not contain any element defined with the ref:swaRef - // return false - return false; - } - - /** - * Checks a term whether it is defined with ref:swaRef. - * @param term a term that can be one of a model group or an - * element declaration. - * @return true if a term is defined with ref:swaRef, false otherwise. - */ - private boolean referencesSwaRef(XSTerm term, List types) - { - // If a term is an element declaration - if (term.getType() == XSConstants.ELEMENT_DECLARATION) - { - // If element's type is defined with the ref:swaRef, return true - if (referencesSwaRef( - ((XSElementDeclaration) term).getTypeDefinition(), types)) - { - return true; - } - } - // else if a term is a model group - else if(term.getType() == XSConstants.MODEL_GROUP) - { - // Getting a list of Particle schema components - XSObjectList list = ((XSModelGroup) term).getParticles(); - for (int i = 0; i < list.getLength(); i++) - { - // If the term of a particle is defined with the ref:swaRef, - // return true - if (referencesSwaRef(((XSParticle) list.item(i)).getTerm(), types)) - { - return true; - } - } - } - return false; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2941.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2941.java deleted file mode 100644 index 162f0def0..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2941.java +++ /dev/null @@ -1,367 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.BindingFault; -import javax.wsdl.BindingOperation; -import javax.wsdl.Input; -import javax.wsdl.Message; -import javax.wsdl.Output; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.UnknownExtensibilityElement; -import javax.wsdl.extensions.mime.MIMEContent; -import javax.wsdl.extensions.mime.MIMEMultipartRelated; -import javax.wsdl.extensions.mime.MIMEPart; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPFault; -import javax.wsdl.extensions.soap.SOAPHeader; -import javax.wsdl.extensions.soap.SOAPHeaderFault; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Element; - -/** - * AP2941 - * - * <context>For a candidate wsdl:binding</context> - * <assertionDescription>A wsdl:binding in a description binds every wsdl:part - * of a wsdl:message in the wsdl:portType to which it refers to one of - * soapbind:body, soapbind:header, soapbind:fault , soapbind:headerfault, - * or mime:content.</assertionDescription> - */ -public class AP2941 extends AssertionProcess implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public AP2941(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - // Getting a wsdl:binding - Binding binding = (Binding) entryContext.getEntry().getEntryDetail(); - - // Getting its wsdl:operation elements - List ops = binding.getBindingOperations(); - - // Going through the operation elements - for (int i = 0; i < ops.size(); i++) - { - BindingOperation bindingOperation = (BindingOperation) ops.get(i); - Input portTypeInput = bindingOperation.getOperation().getInput(); - Output portTypeOutput = bindingOperation.getOperation().getOutput(); - // If the corresponding wsdl:input exists in wsdl:portType - // and includes the message attribute - if (portTypeInput != null && portTypeInput.getMessage() != null) - { - // Getting the list of all the parts bound by wsdl:input's child elements - List inputParts = getBindingParts( - bindingOperation.getBindingInput().getExtensibilityElements(), - portTypeInput.getMessage()); - // If not true that all the wsdl:partS are bound, - // the assertion failed - if (!inputParts - .containsAll(portTypeInput.getMessage().getParts().keySet())) - { - throw new AssertionFailException("The wsdl:input of the \"" - + bindingOperation.getName() + "\" binding operation does not " - + "bind all the corresponding wsdl:partS."); - } - } - - // If the corresponding wsdl:output exists in wsdl:portType - // and includes the message attribute - if (portTypeOutput != null && portTypeOutput.getMessage() != null) - { - // Getting the list of all the parts bound by wsdl:output's child elements - List outputParts = getBindingParts( - bindingOperation.getBindingOutput().getExtensibilityElements(), - portTypeOutput.getMessage()); - // If not true that all the wsdl:partS are bound, - // the assertion failed - if (!outputParts - .containsAll(portTypeOutput.getMessage().getParts().keySet())) - { - throw new AssertionFailException("The wsdl:output of the \"" - + bindingOperation.getName() + "\" binding operation does not " - + "bind all the corresponding wsdl:partS."); - } - } - - // IF there are wsdl:faultS in the wsdl:portType operation - if (!bindingOperation.getOperation().getFaults().isEmpty()) - { - // Collecting all the soap:fault names - List faultNames = new ArrayList(); - Collection faults = bindingOperation.getBindingFaults().values(); - // Going through all the wsdl:faultS - Iterator it = faults.iterator(); - while (it.hasNext()) - { - // Getting wsdl:fault's extensibility elements - List extElems = ((BindingFault) it.next()).getExtensibilityElements(); - for (int j = 0; j < extElems.size(); j++) - { - if (((ExtensibilityElement)extElems.get(j)) - .getElementType().equals(WSDL_SOAP_FAULT)) - { - faultNames.add(((SOAPFault)extElems.get(j)).getName()); - } - } - } - // Going through all the soap:headerfaultS - faultNames.addAll(findAllHeaderFaults(bindingOperation)); - // If not true that all the wsdl:faultS are bound, - // the assertion failed - if (!faultNames.containsAll( - bindingOperation.getOperation().getFaults().keySet())) - { - throw new AssertionFailException("The binding operation \"" - + bindingOperation.getName() + "\" does not " - + "bind all the corresponding wsdl:faultS."); - } - } - } - } - catch (AssertionFailException afe) - { - // The assertion is "recommended", using the "warning" result - result = AssertionResult.RESULT_WARNING; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Collects all the parts bound by extensibility elements. - * @param extElems a lit of extensibility elements. - * @param message the wsdl:message element corresponging - * to the extensibility elements. - * @return a list of wsdl:part names bound. - */ - private List getBindingParts(List extElems, Message message) - { - List parts = new ArrayList(); - if (extElems != null) - { - // Going through the extensibility elements - for (int i = 0; i < extElems.size(); i++) - { - ExtensibilityElement extElem = (ExtensibilityElement) extElems.get(i); - // If that is a soap:body - if (extElem.getElementType().equals(WSDL_SOAP_BODY)) - { - // Adding all the parts bound to the list - List pts = ((SOAPBody) extElem).getParts(); - if (pts != null) - { - parts.addAll(pts); - } - // else the parts attribute is omitted, - // all parts defined by the message are assumed to be included - // in the SOAP Body portion. - else - { - parts.addAll(message.getParts().keySet()); - } - } - // else if that is a soap:header - else if (extElem.getElementType().equals(WSDL_SOAP_HEADER)) - { - List headerFaults = null; - if (extElem instanceof SOAPHeader) - { - SOAPHeader header = (SOAPHeader) extElem; - // If a header references the corresponding message, - // adding part name to the list - if (message.getQName().equals(header.getMessage())) - parts.add(header.getPart()); - - headerFaults = header.getSOAPHeaderFaults(); - } - // WSDL4J 1.4 does not recognize soap:header elements that are enclosed - // in mime:multipartRelated, so using a workaround - else - { - Element header = - ((UnknownExtensibilityElement) extElem).getElement(); - // If a header references the corresponding message, - // adding part name to the list - if (referencesMessage(header, message.getQName())) - parts.add(header.getAttribute("part")); - // Collecting soap:headerfault elements for the header - headerFaults = getHeaderFaults(header); - } - // Going through the soap:headerfaultS - for (int j = 0; j < headerFaults.size(); j++) - { - if (headerFaults.get(j) instanceof SOAPHeaderFault) - { - SOAPHeaderFault shf = (SOAPHeaderFault) headerFaults.get(j); - // If a soap:headerfault references the corresponding - // message, adding part name to the list - if (message.equals(shf.getMessage())) - parts.add(shf.getPart()); - } - // the same workaround... - else - { - Element shf = (Element) headerFaults.get(j); - // If a soap:headerfault references the corresponding - // message, adding part name to the list - if (referencesMessage(shf, message.getQName())) - parts.add(shf.getAttribute("part")); - } - } - } - // else if that is a mime:content - else if (extElem.getElementType().equals(WSDL_MIME_CONTENT)) - { - // adding part name to the list - parts.add(((MIMEContent) extElem).getPart()); - } - // else if that is a mime:multipartRelated - else if (extElem.getElementType().equals(WSDL_MIME_MULTIPART)) - { - // Getting the mime:part elements of the mime:multipartRelated - List mimeParts = ((MIMEMultipartRelated) extElem).getMIMEParts(); - // Going through all the mime:part elements - for (int j = 0; j < mimeParts.size(); j++) - { - // Collecting all the values of part attributes - // of mime:part's extensibility elements - parts.addAll(getBindingParts( - ((MIMEPart) mimeParts.get(j)).getExtensibilityElements(), - message)); - } - } - } - } - return parts; - } - - /** - * Validates whether an element contains a message attribute that references - * a message that have the qualified name specified. - * @param elem an element to be validated. - * @param messageName the qualified name of a message. - * @return true if an element is valid, false otherwise. - */ - private boolean referencesMessage(Element elem, QName messageName) - { - // Getting the element's message attribute - String message = elem.getAttribute("message"); - // finding the colon delimiter - int colonPos = message.indexOf(":"); - String ns = null; - // Getting a local part - String lp = colonPos > -1 ? message.substring(colonPos + 1) : message; - // If the delimiter is found - if (colonPos > -1) - { - // Retrieving a namespace URI - ns = validator.wsdlDocument.getDefinitions() - .getNamespace(message.substring(0, colonPos)); - } - // If the local part and the namespace URI are the same as a message have - if (messageName.getLocalPart().equals(lp) - && messageName.getNamespaceURI().equals(ns)) - { - // element is valid, return true - return true; - } - // element is not valid, return false - return false; - } - - private List findAllHeaderFaults(BindingOperation bindingOp) - { - List headerFaults = new ArrayList(); - if (bindingOp == null) - return headerFaults; - List ioElements = bindingOp.getBindingInput().getExtensibilityElements(); - ioElements.addAll(bindingOp.getBindingOutput().getExtensibilityElements()); - for (int i = 0; i < ioElements.size(); i++) - { - ExtensibilityElement extElem = (ExtensibilityElement) ioElements.get(i); - if (extElem.getElementType().equals(WSDL_SOAP_HEADER)) { - List shfList = ((SOAPHeader) extElem).getSOAPHeaderFaults(); - for (int j = 0; j < shfList.size(); j++) - headerFaults.add(((SOAPHeaderFault) shfList.get(j)).getPart()); - } - else if (!extElem.getElementType().equals(WSDL_SOAP_BODY)) { - List elList = getHeaderFaults(( - (UnknownExtensibilityElement) extElem).getElement()); - for (int j = 0; j < elList.size(); j++) - headerFaults.add(((Element)elList.get(j)).getAttribute("part")); - } - } - return headerFaults; - } - /** - * Collects all the element's child elements of the soap:headerfault type. - * @param element an element that can have soap:headerfault elements. - * @return the list of soap:headerfault elements found. - */ - private List getHeaderFaults(Element element) - { - List headerFaults = new ArrayList(); - if (element != null) - { - // Getting the first header's child - Element child = XMLUtils.getFirstChild(element); - while (child != null) - { - // If the child is soap:headerfault - if (child.getNamespaceURI().equals(WSDL_SOAP_HEADERFAULT.getNamespaceURI()) - && child.getLocalName().equals(WSDL_SOAP_HEADERFAULT.getLocalPart())) - { - // Adding the child to the list - headerFaults.add(child); - } - // Getting the next header's child - child = XMLUtils.getNextSibling(child); - } - } - return headerFaults; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2944.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2944.java deleted file mode 100644 index ca93a7bfd..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2944.java +++ /dev/null @@ -1,234 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.ArrayList; -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOperation; -import javax.wsdl.BindingOutput; -import javax.wsdl.Input; -import javax.wsdl.Message; -import javax.wsdl.Output; -import javax.wsdl.Part; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.mime.MIMEContent; -import javax.wsdl.extensions.mime.MIMEMultipartRelated; -import javax.wsdl.extensions.mime.MIMEPart; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - -/** - * AP2944 - * - * <context>For a candidate wsdl:binding</context> - * <assertionDescription>In a DESCRIPTION, if a wsdl:part element refers to a - * global element declaration (via the element attribute of the wsdl:part element) - * then the value of the type attribute of a mime:content element that binds that part - * is a content type suitable for carrying an XML serialization.</assertionDescription> - */ -public class AP2944 extends AssertionProcess implements WSITag -{ - private final WSDLValidatorImpl validator; - - // A variable that indicates a binding contains mime:content elements - // that bind wsdl:partS defined with the element attribute - private boolean mimeContentFound; - /** - * @param WSDLValidatorImpl - */ - public AP2944(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // Resetting the variable - mimeContentFound = false; - - try - { - // Getting a wsdl:binding - Binding binding = (Binding) entryContext.getEntry().getEntryDetail(); - - // Getting its wsdl:operation elements - List ops = binding.getBindingOperations(); - - // Going through the operation elements - for (int i = 0; i < ops.size(); i++) - { - BindingOperation bindingOperation = (BindingOperation) ops.get(i); - - // Getting wsdl:input and wsdl:output elements of an operation - BindingInput bindingInput = bindingOperation.getBindingInput(); - BindingOutput bindingOutput = bindingOperation.getBindingOutput(); - - // Collecting all the mime:content elements from wsdl:input and wsdl:output - List inputMimeContents = getMimeContentElements( - bindingInput == null ? null : bindingInput.getExtensibilityElements()); - List outputMimeContents = getMimeContentElements( - bindingOutput == null ? null : bindingOutput.getExtensibilityElements()); - - // If the wsdl:input contains mime:content elements - if (!inputMimeContents.isEmpty()) - { - Input portTypeInput = bindingOperation.getOperation().getInput(); - // If the corresponding wsdl:input exists in wsdl:portType - // and includes the message attribute - if (portTypeInput != null && portTypeInput.getMessage() != null) - { - // If there is an invalid mime:content element - MIMEContent imc = getInvalidMimeContent( - inputMimeContents, portTypeInput.getMessage()); - if (imc != null) - { - throw new AssertionFailException("The mime:content element in " - + "the wsdl:input of the \"" + bindingOperation.getName() - + "\" that binds the \"" + imc.getPart() - + "\" wsdl:part uses the invalid content type \"" - + imc.getType() + "\". "); - } - } - } - - // If the wsdl:output contains mime:content elements - if (!outputMimeContents.isEmpty()) - { - Output portTypeOutput = bindingOperation.getOperation().getOutput(); - // If the corresponding wsdl:output exists in wsdl:portType - // and includes the message attribute - if (portTypeOutput != null && portTypeOutput.getMessage() != null) - { - // If there is an invalid mime:content element - MIMEContent imc = getInvalidMimeContent( - outputMimeContents, portTypeOutput.getMessage()); - if (imc != null) - { - throw new AssertionFailException("The mime:content element in " - + "the wsdl:output of the \"" + bindingOperation.getName() - + "\" that binds the \"" + imc.getPart() - + "\" wsdl:part uses the invalid content type \"" - + imc.getType() + "\". "); - } - } - } - } - // If mime:content elements are not found, - // the assertion is not applicable - if (!mimeContentFound) - throw new AssertionNotApplicableException(); - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Checks whether any mime:content element binds wsdl:part that is defined - * with the element attribute and uses the content type "text/xml". - * @param mimeContents a list of mime:content elements of binding operation. - * @param message the corresponding wsdl:message element. - * @return a mime:content element that uses a content type other than - * "text/xml", null if no one such element is found. - */ - private MIMEContent getInvalidMimeContent(List mimeContents, Message message) - { - // Going through a list of mime:content elements - for (int i = 0; i < mimeContents.size(); i++) - { - MIMEContent mimeContent = (MIMEContent) mimeContents.get(i); - // Getting the corresponding wsdl:part - Part part = message.getPart(mimeContent.getPart()); - // If the part is defined with the element attribute - if (part != null && part.getElementName() != null) - { - mimeContentFound = true; - // If the type attribute value is other than "text/xml" - if (!WSIConstants.CONTENT_TYPE_TEXT_XML.equals(mimeContent.getType())) - { - // return the invalid element - return mimeContent; - } - } - } - return null; - } - - /** - * Collects all mime:content elements. - * @param extElems a list of extensibility elements that can contain mime:contentS. - * @return the list of mime:content elements found. - */ - private List getMimeContentElements(List extElems) - { - List mimeContentElements = new ArrayList(); - - if (extElems != null) - { - // Going through all the extensibility elements - for (int i = 0; i < extElems.size(); i++) - { - ExtensibilityElement extElem = (ExtensibilityElement) extElems.get(i); - // If the element is mime:multipartRelated - if (extElem.getElementType().equals(WSDL_MIME_MULTIPART)) - { - // Getting the mime:part elements of the mime:multipartRelated - List mimeParts = ((MIMEMultipartRelated) extElem).getMIMEParts(); - // Going through all the mime:part elements - for (int j = 0; j < mimeParts.size(); j++) - { - // Collecting all the mime:content elements of this mime:part - List elems = getMimeContentElements( - ((MIMEPart) mimeParts.get(j)).getExtensibilityElements()); - // Adding the elements to the list being returned - mimeContentElements.addAll(elems); - } - } - // Else if the element is mime:content - else if (extElem.getElementType().equals(WSDL_MIME_CONTENT)) - { - // Adding the element to the list being returned - mimeContentElements.add(extElem); - } - } - } - - return mimeContentElements; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2946.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2946.java deleted file mode 100644 index 4555739d3..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2946.java +++ /dev/null @@ -1,194 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.ArrayList; -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOperation; -import javax.wsdl.BindingOutput; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.mime.MIMEContent; -import javax.wsdl.extensions.mime.MIMEMultipartRelated; -import javax.wsdl.extensions.mime.MIMEPart; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - -/** - * AP2946 - * - * <context>For a candidate wsdl:binding with at least one mime:content element</context> - * <assertionDescription>In a DESCRIPTION, a mime:content element - * includes the part attribute.</assertionDescription> - */ -public class AP2946 extends AssertionProcess implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public AP2946(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - try - { - // A variable that indicates a binding contains at least one - // mime:content element - boolean mimeContentsFound = false; - - // Getting a wsdl:binding - Binding binding = (Binding) entryContext.getEntry().getEntryDetail(); - - // Getting its wsdl:operation elements - List ops = binding.getBindingOperations(); - - // Going through the operation elements - for (int i = 0; i < ops.size(); i++) - { - BindingOperation bindingOperation = (BindingOperation) ops.get(i); - - // Getting wsdl:input and wsdl:output elements of an operation - BindingInput bindingInput = bindingOperation.getBindingInput(); - BindingOutput bindingOutput = bindingOperation.getBindingOutput(); - - // Collecting all the mime:content elements from wsdl:input and wsdl:output - List inputMimeContents = getMimeContentElements( - bindingInput == null ? null : bindingInput.getExtensibilityElements()); - List outputMimeContents = getMimeContentElements( - bindingOutput == null ? null : bindingOutput.getExtensibilityElements()); - - // If the wsdl:input contains mime:content elements - if (!inputMimeContents.isEmpty()) - { - mimeContentsFound = true; - // If there is a mime:content that does not include - // the part attribute, the assertion failed - if (hasInvalidMimeContent(inputMimeContents)) - throw new AssertionFailException("The invalid mime:content element" - + " is in the wsdl:input of the \"" + bindingOperation.getName() - + "\" binding operation."); - } - - // If the wsdl:output contains mime:content elements - if (!outputMimeContents.isEmpty()) - { - mimeContentsFound = true; - // If there is a mime:content that does not include - // the part attribute, the assertion failed - if (hasInvalidMimeContent(outputMimeContents)) - throw new AssertionFailException("The invalid mime:content element" - + " is in the wsdl:output of the \"" + bindingOperation.getName() - + "\" binding operation."); - } - } - - // If the binding contains no mime:content elements, - // the assertion is not applicable - if (!mimeContentsFound) - throw new AssertionNotApplicableException(); - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException afe) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - afe.getMessage(), entryContext); - } - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Collects all mime:content elements. - * @param extElems a list of extensibility elements that can contain mime:contentS. - * @return the list of mime:content elements found. - */ - private List getMimeContentElements(List extElems) - { - List mimeContentElements = new ArrayList(); - - if (extElems != null) - { - // Going through all the extensibility elements - for (int i = 0; i < extElems.size(); i++) - { - ExtensibilityElement extElem = (ExtensibilityElement) extElems.get(i); - // If the element is mime:multipartRelated - if (extElem.getElementType().equals(WSDL_MIME_MULTIPART)) - { - // Getting the mime:part elements of the mime:multipartRelated - List mimeParts = ((MIMEMultipartRelated) extElem).getMIMEParts(); - // Going through all the mime:part elements - for (int j = 0; j < mimeParts.size(); j++) - { - // Collecting all the mime:content elements of this mime:part - List elems = getMimeContentElements( - ((MIMEPart) mimeParts.get(j)).getExtensibilityElements()); - // Adding the elements to the list being returned - mimeContentElements.addAll(elems); - } - } - // Else if the element is mime:content - else if (extElem.getElementType().equals(WSDL_MIME_CONTENT)) - { - // Adding the element to the list being returned - mimeContentElements.add(extElem); - } - } - } - - return mimeContentElements; - } - - /** - * Validates mime:content elements. - * @param mimeContents a list of mime:content elements. - * @return true if any mime:content does not include the part attribute, - * false otherwise - */ - private boolean hasInvalidMimeContent(List mimeContents) - { - // Going through a list of mime:content elements - for (int i = 0; i < mimeContents.size(); i++) - { - // If a mime:content does not include the part attribute, return true - if (((MIMEContent) mimeContents.get(i)).getPart() == null) - return true; - } - // There are no invalid mime:contentS, return false - return false; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2010.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2010.java deleted file mode 100644 index e15193eb6..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2010.java +++ /dev/null @@ -1,119 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; - -import javax.wsdl.Operation; -import javax.wsdl.PortType; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - - -/** -* BP2010. -* "Name" attributes of Operations are unique across the wsdl:portType definition -* -* @version 1.0.1 27.06.2003 -* @author Vitali Fedosenko -**/ -public class BP2010 extends AssertionProcess -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2010(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - // Get the portType from the entry context - PortType portType = (PortType) entryContext.getEntry().getEntryDetail(); - - // Check the operations names for uniqueness within the candidate Port Type in the WSDL - Iterator ops; - HashSet namesSeen = new HashSet(); - HashSet duplicates = new HashSet(); - try - { - List opsList = portType.getOperations(); - if (opsList == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - // no operations found in portType - } - else - { - ops = opsList.iterator(); // will use Candidate.getOperations() - while (ops.hasNext()) - { - Operation op = (Operation) ops.next(); - String opName = op.getName(); - if (namesSeen.contains(opName)) - { - duplicates.add(opName); - } - else - { - namesSeen.add(opName); - } - } - } - - if (!duplicates.isEmpty()) - { - StringBuffer failInfo = - new StringBuffer( - "Duplicate operation names in portType " - + portType.getQName() - + ": "); - Iterator i = duplicates.iterator(); - while (i.hasNext()) - { - failInfo.append((String) i.next() + "; "); - } - throw new AssertionFailException(failInfo.toString()); - } - } - catch (NullPointerException e) - { // ?? no operations found, but does not fail the assertion. - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - this.validator.createFailureDetail(e.getMessage(), entryContext, portType); - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2011.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2011.java deleted file mode 100644 index 3858afc86..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2011.java +++ /dev/null @@ -1,349 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 2009 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.io.FileInputStream; -import java.io.InputStreamReader; -import java.io.Reader; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.Iterator; -import java.util.List; - -import javax.wsdl.Definition; -import javax.wsdl.Types; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.schema.Schema; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.util.StringTokenizer; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - - -/** - * BP2011. - * The imported XML schema is a well-formed XML 1.0 document and if it contains an - * XML declaration, it is version 1.0. - * - * @version 1.0.1 27.06.2003 - * @author Vitali Fedosenko -**/ -public class BP2011 extends AssertionProcess implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2011(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private ErrorList errors = new ErrorList(); - - private final char[] OMMITED_XML_DECLARATION_DELIMITERS = - new char[] { 0x20, 0x9, 0xD, 0xA, '\'', '\"' }; - private final char[] XML_DECLARATION_DELIMITERS = new char[] { '=' }; - private final String VERSION_TOKEN = "version"; - private final String VERSION = "1.0"; - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - - //Definition def = (Definition) entryContext.getEntry().getEntryDetail(); - Types types = (Types) entryContext.getEntry().getEntryDetail(); - - List exts = null; - //if (def.getTypes()!=null) - if (types != null) - { - exts = types.getExtensibilityElements(); - } - if (exts != null) - { - Definition definition = null; - if ((definition = - validator.analyzerContext.getCandidateInfo().getDefinition(types)) - == null) - { - throw new WSIException("Could not find types definition in any WSDL document."); - } - - Iterator it = exts.iterator(); - while (it.hasNext()) - { - ExtensibilityElement el = (ExtensibilityElement) it.next(); - if (el instanceof Schema) - searchForSchema(((Schema) el).getElement(), - definition.getDocumentBaseURI(), new ArrayList()); - } - } - - if (!errors.isEmpty()) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - } /*else - result = AssertionResult.RESULT_PASSED;*/ - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } - - /* Search xsd schema or xsd import from node. If node is xsd import it's loading schema. - * @param n - UnknownExtencibilityElement - */ - private void searchForSchema(Node n, String context, List processedSchemas) - { - if ((n!= null) && (!processedSchemas.contains(n))) - { - while (n != null) - { - // searches for xsd:import element - if (Node.ELEMENT_NODE == n.getNodeType()) - { - // if xsd:schema element is found -> process schema - if (XMLUtils.equals(n, ELEM_XSD_SCHEMA)) - processSchema(n, context, processedSchemas); - else - // if xsd:import element is found -> load schema and process schema - // FIXED: if xsd:import is found and parent element is xsd:schema - if (XMLUtils.equals(n, ELEM_XSD_IMPORT) - && XMLUtils.equals(n.getParentNode(), ELEM_XSD_SCHEMA)) - loadSchema(n, context, processedSchemas); - else - // else iterate element recursively - searchForSchema(n.getFirstChild(), context, processedSchemas); - } - n = n.getNextSibling(); - } - } - } - - /* - * It loads xsd schema and then check the version 1.0 and looking for xsd:schema element for next process. - * @param importNode xsd schema - */ - private void loadSchema(Node importNode, String context, List processedSchemas) - { - Element im = (Element) importNode; - Attr schemaLocation = XMLUtils.getAttribute(im, ATTR_XSD_SCHEMALOCATION); - // try to parse imported XSD - if (schemaLocation != null && schemaLocation.getValue() != null) - { - try - { - // if any error or root element is not XSD schema -> error - String decl = - readXMLDeclarationStatement(schemaLocation.getValue(), context); - if (!validVersion(decl)) - { - Attr a = XMLUtils.getAttribute(im, ATTR_XSD_NAMESPACE); - errors.add((a != null) ? a.getValue() : ""); - } - Document schema = - validator.parseXMLDocumentURL(schemaLocation.getValue(), context); - if (XMLUtils.equals(schema.getDocumentElement(), ELEM_XSD_SCHEMA)) - { - processSchema(schema.getDocumentElement(), - XMLUtils.createURLString(schemaLocation.getValue(), context), processedSchemas); - } - result = AssertionResult.RESULT_PASSED; - } - catch (Throwable t) - { - } - } - // else if there is only the namespace attribute, the import relates to inline schema - else if (XMLUtils.getAttribute(im, ATTR_XSD_NAMESPACE) != null) - { - result = AssertionResult.RESULT_PASSED; - } - } - - /** - * Reads an XML declaration statement. - * @param location - * @return String - */ - private String readXMLDeclarationStatement(String location, String baseURI) - { - String result = null; - try - { - new URL(location); - } - catch (Throwable t) - { - // nothing - int i = baseURI.lastIndexOf('/'); - int j = baseURI.lastIndexOf('\\'); - if (j > i) - i = j; - location = baseURI.substring(0, i + 1) + location; - } - - if (location != null) - { - URL url = null; - Reader reader = null; - - try - { - try - { - url = new URL(location); - } - catch (MalformedURLException e) - { - // we should try to access location as file - } - - if (url != null) - { - reader = new InputStreamReader(url.openStream()); - } - else - { - reader = new InputStreamReader(new FileInputStream(location)); - } - - int charCode; - boolean end = false; - if (reader.ready()) - { - charCode = reader.read(); - - while (reader.ready() && !(charCode == '<')) - { - charCode = reader.read(); - } - - StringBuffer buf = new StringBuffer(); - if (charCode == '<') - { - buf.append((char) charCode); - while (reader.ready() && !end) - { - charCode = reader.read(); - buf.append((char) charCode); - - end = charCode == '>'; - } - } - else - { - // NOTE: This result does not get propogated back! - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = - "Cannot read the XML declaration statement."; - } - - result = buf.toString(); - } - } - catch (Exception e) - { - } - finally - { - if (reader != null) - { - try - { - reader.close(); - } - catch (Throwable e) - { - } - } - } - } - - return result; - } - - /* - * @param xmlDecl - xml declaration - * @return if xml declaration contains version="1.0" it retirns true. - */ - private boolean validVersion(String xmlDecl) - { - //boolean result = false; - boolean result = true; - if (xmlDecl != null) - { - StringTokenizer st = - new StringTokenizer( - OMMITED_XML_DECLARATION_DELIMITERS, - XML_DECLARATION_DELIMITERS); - Enumeration tokens = st.parse(xmlDecl); - boolean found = false; - while (tokens.hasMoreElements() && !found) - { - String token = (String) tokens.nextElement(); - - if (token.equalsIgnoreCase(VERSION_TOKEN)) - { - found = true; - - tokens.nextElement(); - String ver = (String) tokens.nextElement(); - - result = VERSION.equals(ver); - } - } - } - - return result; - } - - /* - * It's loking for xsd import and load it if find. - * @param schema xsd schema - */ - private void processSchema(Node schema, String context, List processedSchemas) - { - if ((schema != null) && (!processedSchemas.contains(schema))) - { - processedSchemas.add(schema); - Node n = schema.getFirstChild(); - while (n != null) - { - if (Node.ELEMENT_NODE == n.getNodeType() - && XMLUtils.equals(n, ELEM_XSD_IMPORT)) - loadSchema(n, context, processedSchemas); - - n = n.getNextSibling(); - } - } - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2012.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2012.java deleted file mode 100644 index fa33c1be8..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2012.java +++ /dev/null @@ -1,123 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Binding; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl.WSDLValidatorImpl.BindingMatch; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - - -/** - * BP2012. - * Example: - * - * <message name="getConfigurationOptionsRequest"> - * <part name="refresh" element="cfg:refresh" /> - * </message> - * <portType name="ConfiguratorPortType"> - * <operation name="getConfigurationOptions"> - * <input message="tns:getConfigurationOptionsRequest" /> - * <output ..... /> - * <fault ..... /> - * </operation> - * </portType> - * <binding name="ConfiguratorBinding" type="tns:ConfiguratorPortType"> - * <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> - * <operation name="getConfigurationOptions"> - * <soap:operation soapAction="http://www.zzz.com/zzz.wsdl/getConfigurationOptions" /> - * <input> - * <soap:body use="literal" namespace="http://www.zzz.com/zzz.wsdl" /> - * </input> - * <output>.....</output> - * <fault>......</fault> - * </operation> - * </binding> - * - * Above, the test for this assertion might be that the element attribute is specified in the "refresh" - * part of the getConfigurationOptionsRequest message. - * - * Context : for <binding> "ConfiguratorBinding", <soap:binding> style=document; <soap:body> use=literal - * for the <input> of binding operation "getConfigurationOptions". - * (<input> is an example. Could be <output> or <fault> equally). - * Action: check the part(s) of the message specified in the <input> element (in example) of the <portType>, - * namely tns:getConfigurationOptionsRequest, that the element attribute is specified. In this case we have - * <part name="refresh" element="cfg:refresh" />, so the test passes. - * All such parts associated with the assertion candidate binding(s) must be similarly checked for this assertion - * to pass. - */ -public class BP2012 extends AssertionProcess -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2012(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* - * Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // Get binding from entry context - - // Oleg's & Graham's version: - Binding binding = (Binding) entryContext.getEntry().getEntryDetail(); - - // to use original version require a binding array - //Binding[] binding = {(Binding) entryContext.getEntry().getEntryDetail()}; - - // get list of candidate matches - BindingMatch[] bindingMatch = - this.validator.getBindingMatches( - binding, - WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC, - WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT); - if (bindingMatch.length == 0) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - try - { - if (!this.validator.checkPartAttributes(bindingMatch, "useInput", "useElement") - || !this.validator.checkPartAttributes(bindingMatch, "useOutput", "useElement")) - { - // this should never happen - throw new AssertionFailException("diagnostic: internal processing error!"); - } - } - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - this.validator.createFailureDetail(e.getMessage(), entryContext, binding); - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2013.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2013.java deleted file mode 100644 index b93a378db..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2013.java +++ /dev/null @@ -1,91 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Binding; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl.WSDLValidatorImpl.BindingMatch; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - - -/** - * BP2013. - * The binding (in soapbind:body elements) only refers to part elements that have been defined using the "type" attribute. - * - * @version 1.0.1 27.06.2003 - * @author Vitali Fedosenko - */ -public class BP2013 extends AssertionProcess -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2013(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // Get binding from entry context - - // Oleg's & Graham's version: - Binding binding = (Binding) entryContext.getEntry().getEntryDetail(); - - // to use original version require a binding array - //Binding[] binding = {(Binding) entryContext.getEntry().getEntryDetail()}; - - // get list of candidate matches - BindingMatch[] bindingMatch = - this.validator.getBindingMatches( - binding, - WSIConstants.ATTRVAL_SOAP_BIND_STYLE_RPC, - WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT); - if (bindingMatch.length == 0) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - try - { - if (!this.validator.checkPartAttributes(bindingMatch, "useInput", "useType") - || !this.validator.checkPartAttributes(bindingMatch, "useOutput", "useType")) - { - // this should never happen - throw new AssertionFailException("diagnostic: internal processing error!"); - } - } - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - this.validator.createFailureDetail(e.getMessage(), entryContext, binding); - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2014.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2014.java deleted file mode 100644 index e31088981..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2014.java +++ /dev/null @@ -1,286 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import javax.wsdl.Binding; -import javax.wsdl.BindingOperation; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.Output; -import javax.wsdl.extensions.soap.SOAPBinding; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPOperation; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; - - -/** - * BP2014. - * Context: - * For a candidate wsdl:operation, if referred to by a candidate rpc-literal wsdl:binding element - * If the parameterOrder attribute is present, it omits at most 1 part from output wsdl:message. - **/ -public class BP2014 extends AssertionProcessVisitor implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2014(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private ErrorList errors = new ErrorList(); - - /* - * @param binding - binding - * @return It returns style of soap binding of binding. If style omitted returns "document" style. - */ - private String getSOAPBindingStyle(Binding binding) - { - String style = null; - List list = binding.getExtensibilityElements(); - for (int i = 0; i < list.size(); i++) - { - if (list.get(i) instanceof SOAPBinding) - { - style = ((SOAPBinding) list.get(i)).getStyle(); - break; - } - } - if (style == null) - style = WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC; - return style; - } - - /* - * @param list - List of extencibility elements from binding output - * @return first soap body in list. - */ - private SOAPBody getSOAPBody(List list) - { - for (int i = 0; i < list.size(); i++) - if (list.get(i) instanceof SOAPBody) - return (SOAPBody) list.get(i); - return null; - } - - /* - * @param list - List of extencibility elements of binding operation - * @return First soap operation in list. - */ - private SOAPOperation getSOAPOperation(List list) - { - for (int i = 0; i < list.size(); i++) - if (list.get(i) instanceof SOAPOperation) - return (SOAPOperation) list.get(i); - return null; - } - - /* - * @param oper - operation - * @param binding - binding - * @return if style of soap binding of binding is rpc and use of soap body of binding output of binding operation is literal then it returns true. - */ - private boolean checkRpcLiteral(BindingOperation oper, Binding binding) - { - List list = oper.getExtensibilityElements(); - SOAPOperation sop = getSOAPOperation(list); - if (sop == null) - return false; - String style = - (sop.getStyle() == null - ? getSOAPBindingStyle(binding) - : sop.getStyle()); - if (!style.equals(WSIConstants.ATTRVAL_SOAP_BIND_STYLE_RPC)) - return false; - list = oper.getBindingOutput().getExtensibilityElements(); - SOAPBody body = getSOAPBody(list); - if (body == null) - return false; - String use = body.getUse(); - if (use == null) - return false; - - return use.equals(WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT); - } - - /* It checks operation contains more than one part in parameter order - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Operation, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Operation obj, Object parent, WSDLTraversalContext ctx) - { - Binding[] bindings = validator.analyzerContext.getCandidateInfo().getBindings(); - if (obj.getParameterOrdering() == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - return; - } - - if (bindings == null || obj == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - return; - } - - if (obj.getOutput() == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - return; - } - - if (obj.getOutput().getMessage() == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - return; - } - - // For each binding - for (int i = 0; i < bindings.length; i++) - { - List list = bindings[i].getBindingOperations(); - // For each binding operation - for (int j = 0; j < list.size(); j++) - { - BindingOperation oper = (BindingOperation) list.get(j); - - // If the input operation name and binding operatino name are not null - if (obj.getName() != null && oper.getName() != null) - { - // If the operation names are equal - if (obj.getName().equals(oper.getName())) - { - // If the operation is RPC literal - if (checkRpcLiteral(oper, bindings[i])) - { - // Get the list of parts in the parameterOrder attribute - List parts = obj.getParameterOrdering(); - - Output output = null; - Message message = null; - Map messageParts = null; - - // Get the list of parts for the output message - if ((output = obj.getOutput()) != null) - { - if ((message = output.getMessage()) != null) - { - messageParts = message.getParts(); - } - } - - // If there are parts in the parameterOrder attribute - // and there are output message parts, then process assertion - if (parts != null && messageParts != null) - { - int partCount = 0; - - String partName; - Iterator iterator = parts.iterator(); - while (iterator.hasNext()) - { - // Get part name from parameterOrder list - partName = (String) iterator.next(); - - // Check each output message part to see if there is a match - if (messageParts.containsKey(partName)) - partCount++; - } - - if ((partCount == messageParts.size()) - || (partCount == messageParts.size() - 1)) - result = AssertionResult.RESULT_PASSED; - else - { - errors.add(obj.getName()); - ctx.cancelOperationProcessing(); - } - return; - } - - else - { - if (parts == null) - result = AssertionResult.RESULT_NOT_APPLICABLE; - else - result = AssertionResult.RESULT_PASSED; - return; - } - } - - else - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - return; - } - } - } - - else - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - return; - } - } - } - result = AssertionResult.RESULT_NOT_APPLICABLE; - - } - - /** - * Validates the test assertion. - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(this); - traversal.setVisitor(this); - traversal.visitOperation(true); - traversal.ignoreImport(); - traversal.traverse((Operation) entryContext.getEntry().getEntryDetail()); - - if (!errors.isEmpty()) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - this.validator.createFailureDetail( - errors.toString(), - entryContext, - entryContext.getEntry().getEntryDetail()); - } - //else - // result = AssertionResult.RESULT_PASSED; - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2017.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2017.java deleted file mode 100644 index 64f4590dd..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2017.java +++ /dev/null @@ -1,142 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.Vector; - -import javax.wsdl.Binding; -import javax.wsdl.extensions.soap.SOAPBinding; -import javax.wsdl.extensions.soap.SOAPOperation; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - - -/** - * BP2017. - * <context>For a candidate wsdl:binding</context> - * <assertionDescription>The "style" attribute of each operation in the contained soap:binding has the same value of "document" or "rpc", for all operations of the wsdl:binding.</assertionDescription> - */ -public class BP2017 extends AssertionProcess -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2017(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - //String firstStyle = null; // GT: is this needed?? - Vector failureDetailList = new Vector(); - - // Get the binding from the entry context - Binding binding = (Binding) entryContext.getEntry().getEntryDetail(); - if (binding == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - return validator.createAssertionResult(testAssertion, result, failureDetailList); - } - SOAPBinding soapB = WSDLValidatorImpl.getSoapBinding(binding); - if (soapB == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - return validator.createAssertionResult(testAssertion, result, failureDetailList); - } - String styleB = - (soapB.getStyle() == null - ? WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC - : soapB.getStyle()); - - // Try to get the SOAP operations - HashMap soapOperationList = validator.getSoapOperations(binding); - - if (soapOperationList.isEmpty()) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - // check that they all have the same style element value - String style = null; - String checkStyle; - SOAPOperation soapOperation; - Iterator iterator = soapOperationList.keySet().iterator(); - while (iterator.hasNext()) - { - soapOperation = (SOAPOperation) iterator.next(); - checkStyle = soapOperation.getStyle(); - if (checkStyle == null) - checkStyle = styleB; - if (checkStyle != null - && !checkStyle.equals(WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC) - && !checkStyle.equals(WSIConstants.ATTRVAL_SOAP_BIND_STYLE_RPC)) - { - result = AssertionResult.RESULT_FAILED; - failureDetailList.add( - this.validator.createFailureDetail( - "Operation Name: " - + soapOperationList.get(soapOperation) - + "\nSOAP Operation: " - + soapOperation.toString(), - entryContext, - soapOperation)); - // REMOVE: Need to process all operations - //break; - } - - if (style == null) - { - style = checkStyle; - } - else if (!style.equals(checkStyle) || !style.equals(styleB)) - { - result = AssertionResult.RESULT_FAILED; - failureDetailList.add( - this.validator.createFailureDetail( - "Operation Name: " - + soapOperationList.get(soapOperation) - + "\nSOAP Operation: " - + soapOperation.toString(), - entryContext, - soapOperation)); - // REMOVE: Need to process all operations - //break; - } - } - - if (style == null) - { - // no style attribute was found in the SOAP operation(s) of the binding. - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - } - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetailList); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2018.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2018.java deleted file mode 100644 index dd467cd89..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2018.java +++ /dev/null @@ -1,127 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Definition; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.Utils; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - - -/** - * BP2018. - * <context>For a candidate Web service definition</context> - * <assertionDescription>The wsdl:types element occurs either as the first child in the WSDL namespace of the wsdl:definitions element if no wsdl:documentation or wsdl:import element is present; or immediately following the wsdl:documentation element(s) if they are present but wsdl:import(s) are not, or immediately following both the wsdl:documentation and wsdl:import elemen(s) if present.</assertionDescription> - */ -public class BP2018 extends AssertionProcess implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2018(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* - * @param el - xml element - * @return if element is extensibility element returns true. - */ - private boolean isExtensibilityElement(Element el) - { - boolean isEx = true; - isEx = isEx && !XMLUtils.equals(el, WSDL_BINDING); - isEx = isEx && !XMLUtils.equals(el, WSDL_DEFINITIONS); - isEx = isEx && !XMLUtils.equals(el, WSDL_DOCUMENTATION); - isEx = isEx && !XMLUtils.equals(el, WSDL_FAULT); - isEx = isEx && !XMLUtils.equals(el, WSDL_IMPORT); - isEx = isEx && !XMLUtils.equals(el, WSDL_INPUT); - isEx = isEx && !XMLUtils.equals(el, WSDL_MESSAGE); - isEx = isEx && !XMLUtils.equals(el, WSDL_OPERATION); - isEx = isEx && !XMLUtils.equals(el, WSDL_OUTPUT); - isEx = isEx && !XMLUtils.equals(el, WSDL_PART); - isEx = isEx && !XMLUtils.equals(el, WSDL_PORT); - isEx = isEx && !XMLUtils.equals(el, WSDL_PORTTYPE); - isEx = isEx && !XMLUtils.equals(el, WSDL_SERVICE); - isEx = isEx && !XMLUtils.equals(el, WSDL_TYPES); - - return isEx; - } - - /** - * Validates the test assertion. - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_PASSED; - - // Get the location of the WSDL document - Definition definition = - (Definition) entryContext.getEntry().getEntryDetail(); - try - { - // Parse the WSDL document as an XML file - Document doc = - validator.parseXMLDocumentURL(definition.getDocumentBaseURI(), null); - - Element root = doc.getDocumentElement(); // get definition - - Element types = XMLUtils.findChildElement((Element) root, WSDL_TYPES); - - if (types != null) - { - Element el = XMLUtils.findPreviousSibling(types); - while (el != null) - { - if (!isExtensibilityElement(el) && - ((!XMLUtils.equals(el, WSDL_IMPORT)) && - (!XMLUtils.equals(el, WSDL_DOCUMENTATION)))) - { - result = AssertionResult.RESULT_FAILED; - String message = "The " + el.getLocalName() + " element must not precede the types element."; - failureDetail = this.validator.createFailureDetail(message, entryContext); - break; - } - el = XMLUtils.findPreviousSibling(el); - } - } - } - - catch (Throwable t) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - failureDetail = - this.validator.createFailureDetail( - "An error occurred while processing the document at " - + definition.getDocumentBaseURI() - + ".\n\n" - + Utils.getExceptionDetails(t), - entryContext); - } - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2019.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2019.java deleted file mode 100644 index 5a670bf88..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2019.java +++ /dev/null @@ -1,122 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.Iterator; -import java.util.Vector; - -import javax.wsdl.Binding; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.soap.SOAPBinding; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.Utils; - - -/** - * BP2019. - * <context>For a candidate wsdl:binding element, if the contained soap:binding element has a "style" attribute equal to "document" and soap:operations have "use" attribute equal to "literal":</context> - * <assertionDescription>The "namespace" attribute is not specified in any contained soapbind:body, soapbind:header, soapbind::headerfault, soapbind:fault elements </assertionDescription> - * @version 1.0.1 27.06.2003 - * @author Vitali Fedosenko - */ -public class BP2019 extends AssertionProcess -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2019(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - boolean docLitFound = false; - String errantElements = new String(""); - // Get the binding from the entry context - Binding binding = (Binding) entryContext.getEntry().getEntryDetail(); - - // Try to get the SOAP binding - SOAPBinding soapBinding = WSDLValidatorImpl.getSoapBinding(binding); - - if (soapBinding != null) - { - String style = - (soapBinding.getStyle() == null) - ? WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC - : soapBinding.getStyle(); - if (style.equals(WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC)) - { - Vector soapElements = Utils.arrayToVector(this.validator.getSoapBodies(binding)); - soapElements.addAll(Utils.arrayToVector(this.validator.getSoapFaults(binding))); - soapElements.addAll(Utils.arrayToVector(this.validator.getSoapHeaders(binding))); - soapElements.addAll( - Utils.arrayToVector(this.validator.getSoapHeaderFaults(binding))); - - Iterator i = soapElements.iterator(); - while (i.hasNext()) - { - ExtensibilityElement soapElement = - (ExtensibilityElement) (i.next()); - try - { - if (this.validator.isLiteral(soapElement)) - { - docLitFound = true; - if (this.validator.namespaceFoundInSoapLiteral(soapElement)) - { - errantElements += "\n--- " + (soapElement.toString()); - } - } - } - catch (Exception e) - { - } // continue with clenched teeth - } - } - } - - if (!docLitFound) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - // If a namespace was not found then test assertion passed - if (errantElements.length() != 0) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - this.validator.createFailureDetail( - "Failing elements:" + errantElements, - entryContext); - } - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2020.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2020.java deleted file mode 100644 index 428bf927e..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2020.java +++ /dev/null @@ -1,162 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Binding; -import javax.wsdl.extensions.soap.SOAPBinding; -import javax.wsdl.extensions.soap.SOAPBody; - -import org.apache.xerces.util.URI; -import org.apache.xerces.util.URI.MalformedURIException; -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - - -/** -* BP2020. -* <context>For a candidate wsdl:binding element, if the style attribute of the contained soapbind:binding is "rpc" -* and the use attribute is "literal".</context> -* <assertionDescription>The namespace attribute is specified on all soapbind:body elements and the value of the -* namespace attribute is an absolute URI. </assertionDescription> -* @version 1.0.1 27.06.2003 -* @author Vitali Fedosenko -**/ -public class BP2020 extends AssertionProcess -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2020(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - boolean rpcLitFound = false; - - // Get the binding from the entry context - Binding binding = (Binding) entryContext.getEntry().getEntryDetail(); - - // Try to get the SOAP binding - SOAPBinding soapBinding = WSDLValidatorImpl.getSoapBinding(binding); - - // Test the assertion - // Check style to make sure that it is rpc - the subject of the assertion - String style = WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC; - if (soapBinding != null) - style = - (soapBinding.getStyle() == null - ? WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC - : soapBinding.getStyle()); - - if ((soapBinding != null) - && (style.equals(WSIConstants.ATTRVAL_SOAP_BIND_STYLE_RPC))) - { - // Get the list of SOAP body elements - SOAPBody[] soapBodies = this.validator.getSoapBodies(binding); - - // Check for Soap operation namespace - boolean assertionFailure = false; - String namespaceURI = null; - for (int i = 0; i < soapBodies.length && !(assertionFailure); i++) - { - SOAPBody soapBody = soapBodies[i]; - // Added check for null use value, since the default value is literal - if (soapBody.getUse() == null - || soapBody.getUse().equals(WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT)) - { - rpcLitFound = true; - // If there is no namespace, then flag as a failure - if ((namespaceURI = soapBody.getNamespaceURI()) == null) - { - assertionFailure = true; - failureDetail = - this.validator.createFailureDetail( - "--- SOAP BODY:\n" - + soapBody.toString() - + "\n--- BINDING QNAME:\n" - + binding.getQName(), - entryContext); - } - - // Else, verify that the namespace is an absolute URI - else - { - try - { - //URL url = new URL(namespaceURI); - URI uri = new URI(namespaceURI); - if (uri.getScheme() == null) - { - // no scheme implies not an absolute URI - assertionFailure = true; - failureDetail = - this.validator.createFailureDetail( - "--- SOAP BODY:\n" - + soapBody.toString() - + "\n--- BINDING QNAME:\n" - + binding.getQName(), - entryContext); - } - } - catch (MalformedURIException mue) - { - assertionFailure = true; - failureDetail = - this.validator.createFailureDetail( - "--- SOAP BODY:\n" - + soapBody.toString() - + "\n--- BINDING QNAME:\n" - + binding.getQName(), - entryContext); - } - - } - } - } - if (!rpcLitFound) - { - // style is rpc but no document use elements - result = AssertionResult.RESULT_NOT_APPLICABLE; - failureDetail = null; - } - else if (!assertionFailure) - { // If no assertion failure, then set result to passed - result = AssertionResult.RESULT_PASSED; - failureDetail = null; - } - } - else - { - // style is not rpc - result = AssertionResult.RESULT_NOT_APPLICABLE; - failureDetail = null; - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2021.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2021.java deleted file mode 100644 index 105086ee5..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2021.java +++ /dev/null @@ -1,112 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.Iterator; -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.extensions.soap.SOAPHeader; -import javax.wsdl.extensions.soap.SOAPHeaderFault; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; - - -/** -* BP2021. -* <context>For a candidate wsdl:binding element</context> -* <assertionDescription>The wsdl:input element and wsdl:output element of each operation uses the attribute name "part" with a Schema type of "NMTOKEN" and does not use "parts", for both soapbind:header elements and soapbind:headerfault elements. </assertionDescription> -* -* @version 1.0.1 27.06.2003 -* @author Vitali Fedosenko -**/ -public class BP2021 extends AssertionProcess -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2021(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - //Operation operation = null; - - // Get the binding from the entry context - Binding binding = (Binding) entryContext.getEntry().getEntryDetail(); - - // Get SOAP headers for this binding - SOAPHeader[] soapHeaders = this.validator.getSoapHeaders(binding); - - if (soapHeaders.length == 0) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - // Check each header to see if it has part element with NMTOKEN type - for (int header = 0; - header < soapHeaders.length - && result.equals(AssertionResult.RESULT_PASSED); - header++) - { - if ((soapHeaders[header].getPart() == null) - || (!XMLUtils.isNmtoken(soapHeaders[header].getPart()))) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - this.validator.createFailureDetail(soapHeaders[header].toString(), entryContext); - } - // Else, check the headerfault if there is one - else - { - List soapHeaderFaultList = - soapHeaders[header].getSOAPHeaderFaults(); - Iterator iterator = soapHeaderFaultList.iterator(); - - // Check each header fault to see if it has part element with NMTOKEN type - while (iterator.hasNext() - && result.equals(AssertionResult.RESULT_PASSED)) - { - SOAPHeaderFault soapHeaderFault = - (SOAPHeaderFault) iterator.next(); - if ((soapHeaderFault.getPart() == null) - || (!XMLUtils.isNmtoken(soapHeaderFault.getPart()))) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - this.validator.createFailureDetail(soapHeaderFault.toString(), entryContext); - } - } - } - } - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2022.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2022.java deleted file mode 100644 index 1145d7f84..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2022.java +++ /dev/null @@ -1,82 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Binding; -import javax.wsdl.extensions.soap.SOAPFault; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - - -/** - * BP2022. - * <context>For a candidate wsdl:binding element</context> - * <assertionDescription>the name attribute is specified on the soapbind:fault element.</assertionDescription> -**/ -public class BP2022 extends AssertionProcess -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2022(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // Get the binding from the entry context - Binding binding = (Binding) entryContext.getEntry().getEntryDetail(); - - // Get list of SOAP faults for the binding - SOAPFault[] soapFaults = this.validator.getSoapFaults(binding); - - if (soapFaults == null || soapFaults.length == 0) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - else - { - // check all soap:faults. - // MUST have a name attribute - for (int i = 0; i < soapFaults.length; i++) - { - SOAPFault soapFault = soapFaults[i]; - if (soapFault.getName() == null) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - this.validator.createFailureDetail( - "soapbind:fault element : " + soapFault.toString(), - entryContext); - break; - } - } - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2023.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2023.java deleted file mode 100644 index 20360aedd..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2023.java +++ /dev/null @@ -1,85 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Binding; -import javax.wsdl.extensions.soap.SOAPFault; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - - -/** - * BP2023. - * <context>For a candidate wsdl:binding element, with the "use" attribute present on the soapbind:fault element</context> - * <assertionDescription>The value of the attribute is "literal".</assertionDescription> - */ -public class BP2023 extends AssertionProcess -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2023(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // Get the binding from the entry context - Binding binding = (Binding) entryContext.getEntry().getEntryDetail(); - - // Get list of SOAP faults for the binding - SOAPFault[] soapFaults = this.validator.getSoapFaults(binding); - - if (soapFaults == null || soapFaults.length == 0) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - else - { - // check all soap:faults. - // MUST have a name attribute, and if a use attribute is specified, it MUST be value "literal" - for (int i = 0; i < soapFaults.length; i++) - { - SOAPFault soapFault = soapFaults[i]; - if ((soapFault.getUse() != null) - && (!soapFault - .getUse() - .equals(WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT))) - { - result = AssertionResult.RESULT_FAILED; - - failureDetail = - this.validator.createFailureDetail(soapFault.toString(), entryContext); - break; - } - } - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2032.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2032.java deleted file mode 100644 index afd96dbbb..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2032.java +++ /dev/null @@ -1,86 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Binding; -import javax.wsdl.BindingFault; -import javax.wsdl.extensions.soap.SOAPFault; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - - -/** - * BP2032. - * <context>For a candidate wsdl:binding element</context> - * <assertionDescription>the name attribute that is specified on the soapbind:fault element matches the value specified on the parent element wsdl:fault.</assertionDescription> - */ -public class BP2032 extends AssertionProcess -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2032(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // Get the binding from the entry context - Binding binding = (Binding) entryContext.getEntry().getEntryDetail(); - - // Get list of Binding faults for the binding - BindingFault[] bindingFaults = this.validator.getAllBindingFaults(binding); - - if (bindingFaults == null || bindingFaults.length == 0) - { - result = AssertionResult.RESULT_PASSED; - } - - else - { - // for each binding fault, compare the child soap:fault name with the binding fault name - - for (int i = 0; i < bindingFaults.length; i++) - { - BindingFault bindingFault = bindingFaults[i]; - SOAPFault soapFault = this.validator.getSoapFault(bindingFault); - if (soapFault == null - || soapFault.getName() == null - || bindingFault.getName() == null - || !bindingFault.getName().equals(soapFault.getName())) - { - result = AssertionResult.RESULT_FAILED; - - failureDetail = this.validator.createFailureDetail( - soapFault == null ? null : soapFault.toString(), entryContext); - break; - } - } - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2034.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2034.java deleted file mode 100644 index c913456bb..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2034.java +++ /dev/null @@ -1,94 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 2009 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.List; - -import javax.wsdl.Definition; -import javax.wsdl.Types; -import javax.wsdl.extensions.schema.Schema; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - -/** - * BP2034 - * - * <context>For a candidate description within a WSDL document</context> - * <assertionDescription>The candidate description does not contain the namespace declaration xmlns:xml="http://www.w3.org/XML/1998/namespace".</assertionDescription> - */ -public class BP2034 extends AssertionProcess -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2034(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // Getting wsdl:definition element - Definition def = (Definition) entryContext.getEntry().getEntryDetail(); - Types types; - // Getting the namespace declaration xmlns:xml - String xmlNs = (String) def.getNamespaces().get("xml"); - // If it exists and equals to "http://www.w3.org/XML/1998/namespace" - if (xmlNs != null && xmlNs.equals(WSIConstants.NS_URI_XML)) - { - // setting assertion result to warning - result = AssertionResult.RESULT_WARNING; - } - // there is no namespace declaration xmlns:xml in the wsdl:definition - // element, checking whether the definition has wsdl:type element - else if ((types = def.getTypes()) != null) - { - // Getting the list of wsdl:schemaS - List extElems = types.getExtensibilityElements(); - for (int i = 0; i < extElems.size(); i++) - { - // Getting wsdl:schema element - Schema schema = - (Schema) extElems.get(i); - // Getting a value of the attribute xmlns:xml - String attrValue = schema.getElement().getAttributeNS( - WSIConstants.NS_URI_XMLNS, "xml"); - // If it equals to "http://www.w3.org/XML/1998/namespace", - if (WSIConstants.NS_URI_XML.equals(attrValue)) - { - // setting assertion result to warning - result = AssertionResult.RESULT_WARNING; - failureDetail = validator.createFailureDetail("The namespace " - + "declaration nested in wsdl:schema element.", entryContext); - break; - } - } - } - - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2098.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2098.java deleted file mode 100644 index 6db653ee8..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2098.java +++ /dev/null @@ -1,69 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Import; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; - - -/** - * BP2098. - * <context>For a candidate wsdl:import element</context> - * <assertionDescription>The "location" attribute is specified for the wsdl:import element, and has a non-empty value.</assertionDescription> - */ -public class BP2098 extends AssertionProcess implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2098(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private ErrorList errors = new ErrorList(); - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - - Import im = (Import) entryContext.getEntry().getEntryDetail(); - // suppose that if location is invalid, the definition equals to null - if (im.getLocationURI() == null || im.getLocationURI() == "") - errors.add(im.getNamespaceURI(), im.getLocationURI()); - - if (!errors.isEmpty()) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - } - else - result = AssertionResult.RESULT_PASSED; - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2101.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2101.java deleted file mode 100644 index 9d5a77d3e..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2101.java +++ /dev/null @@ -1,106 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Definition; -import javax.wsdl.Import; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; - - -/** - * BP2101. - * <context>For a candidate wsdl:definition, if it contains wsdl:import statements</context> - * <assertionDescription>Each wsdl:import statement is only used to import another WSDL description.</assertionDescription> - */ -public class BP2101 extends AssertionProcessVisitor implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2101(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private ErrorList errors = new ErrorList(); - - boolean importFound = false; - - /* Create falure report if import contains reference to non WSDL description. - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Import, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Import im, Object parent, WSDLTraversalContext ctx) - { - importFound = true; - try - { - // by the way : WSDL4J throws Exception if imported WSDL is not resolved - // but documentation says that im.getDefinition() will be equal to null - if (im.getDefinition() == null) - errors.add( - im.getNamespaceURI() - + ":" - + im.getLocationURI() - + "\nImport element does not reference a WSDL definition."); - } - catch (Exception e) - { - errors.add( - im.getNamespaceURI() - + ":" - + im.getLocationURI() - + "\nImport element does not reference a WSDL definition."); - } - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(this); - traversal.setVisitor(this); - traversal.visitImport(true); - traversal.ignoreReferences(); - traversal.traverse((Definition) entryContext.getEntry().getEntryDetail()); - - if (!errors.isEmpty()) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - } - - else if (!importFound) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - else - result = AssertionResult.RESULT_PASSED; - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2102.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2102.java deleted file mode 100644 index c7b5209b2..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2102.java +++ /dev/null @@ -1,210 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 2009 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import javax.wsdl.Definition; -import javax.wsdl.Types; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.schema.Schema; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - - -/** - * BP2102. - * <context>For a candidate wsdl:types element, with XML schema import elements</context> - * <assertionDescription>Each XML schema import statement (xsd:import) is only used to directly reference an XML schema definition, which has "schema" from XML namespace "http://www.w3.org/2001/XMLSchema" as root element. It does not contain a reference to another document embedding the XML schema definition (e.g. WSDL).</assertionDescription> - */ -public class BP2102 extends AssertionProcess implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2102(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private boolean importFound = false; - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_PASSED; - - // parse WSDL as XML - try - { - Types t = (Types) entryContext.getEntry().getEntryDetail(); - List exts = t.getExtensibilityElements(); - - Definition definition = null; - if ((definition = validator.analyzerContext.getCandidateInfo().getDefinition(t)) - == null) - { - throw new WSIException("Could not find types definition in any WSDL document."); - } - - if (exts != null) - { - Iterator it = exts.iterator(); - while (it.hasNext()) - { - ExtensibilityElement el = (ExtensibilityElement) it.next(); - if (el instanceof Schema - && el.getElementType().equals(ELEM_XSD_SCHEMA)) - testNode(((Schema) el).getElement(), - definition.getDocumentBaseURI(), new ArrayList()); - - if (result.equals(AssertionResult.RESULT_FAILED)) - { - failureDetail = - this.validator.createFailureDetail(failureDetailMessage, entryContext); - } - } - } - - if (!importFound) - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - catch (Throwable tt) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - failureDetail = - this.validator.createFailureDetail( - "WSDL document can not be processed", - entryContext); - } - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } - - /* - * Check node is xsd import and it is - * only used to directly reference an XML schema definition, which has "schema" - * from XML namespace "http://www.w3.org/2001/XMLSchema" as root element. - * And it does not contain a reference to another document embedding the XML schema - * definition (e.g. WSDL). - * @param n - Unknown extensibility element - */ - private void testNode(Node n, String context, List processedSchemas) - { - if ((n != null) && (!processedSchemas.contains(n))) - { - if (XMLUtils.equals(n.getParentNode(), ELEM_XSD_SCHEMA)) - processedSchemas.add(n); - - while (n != null) - { - // searches for xsd:import element - if (Node.ELEMENT_NODE == n.getNodeType()) - { - if (XMLUtils.equals(n, ELEM_XSD_IMPORT)) - { - importFound = true; - - Element im = (Element) n; - // Getting the schemaLocation and the namespace attributes - Attr schemaLocation = - XMLUtils.getAttribute(im, ATTR_XSD_SCHEMALOCATION); - Attr namespace = XMLUtils.getAttribute(im, ATTR_XSD_NAMESPACE); - // If there is only the namespace attribute of import element - if (schemaLocation == null && namespace != null) - { - // Getting all the inline schemas of the wsdl definition - Map schemasMap = validator.wsdlDocument.getSchemas(); - // If an inline schema imported is defined - if (schemasMap.keySet().contains(namespace.getValue())) - { - // If an inline schema imported is defined - // (that means the schema is valid), - // continue with the next element - n = n.getNextSibling(); - continue; - } - - // no schemaLocation so try the namespace - schemaLocation = namespace; - } - - // try to parse imported XSD - if (schemaLocation != null && schemaLocation.getValue() != null) - { - try - { - // if any error or root element is not XSD schema -> error - // !! ATTENTION - // root XSD SCHEMA SCHEMA is not valid - //Document schema = XMLUtils.parseXMLDocumentURL(schemaLocation.getValue(), XSD_SCHEMALOCATION, context); - Document schema = - validator.parseXMLDocumentURL(schemaLocation.getValue(), context); - - // If the import is valid, then check its contents - if (XMLUtils - .equals(schema.getDocumentElement(), ELEM_XSD_SCHEMA)) - { - // Check content of imported document - testNode(schema.getDocumentElement().getFirstChild(), - XMLUtils.createURLString(schemaLocation.getValue(), context), processedSchemas); - } - - else - { - throw new Exception(); - } - } - catch (Throwable t) - { - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = schemaLocation.getValue(); - break; - } - } - else - { - //result = AssertionResult.RESULT_FAILED; - result = AssertionResult.RESULT_NOT_APPLICABLE; - failureDetailMessage = - "schemaLocation == null and namespace == null"; - break; - } - } - testNode(n.getFirstChild(), context, processedSchemas); - } - n = n.getNextSibling(); - } - } - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2103.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2103.java deleted file mode 100644 index 81e367296..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2103.java +++ /dev/null @@ -1,130 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 2009 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Definition; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.schema.Schema; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Attr; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - - -/** - * BP2103. - * <context>For each a candidate wsdl:definitions</context> - * <assertionDescription>For the referenced definitions as well as all imported - * descriptions, The XML schema import statement is only used within an xsd:schema - * element.</assertionDescription> - */ -public class BP2103 extends AssertionProcessVisitor implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2103(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private ErrorList errors = new ErrorList(); - - /* Check all unknown extensibility elements it is not xsd import. - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.ExtensibilityElement, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - ExtensibilityElement el, - Object parent, - WSDLTraversalContext ctx) - { - if (el instanceof Schema) - searchForImport(((Schema) el).getElement()); - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - - //processWSDL(entryContext.getWSDLDocument().getFilename()); - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(this); - traversal.setVisitor(this); - traversal.ignoreImport(); - traversal.visitExtensibilityElement(true); - - traversal.ignoreReferences(); - traversal.traverse((Definition) entryContext.getEntry().getEntryDetail()); - - if (!errors.isEmpty()) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - } - else - result = AssertionResult.RESULT_PASSED; - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } - - /* - * Create falure report if node is xsd import. - * @param n - node - */ - private void searchForImport(Node n) - { - while (n != null) - { - // searches for xsd:import element - if (Node.ELEMENT_NODE == n.getNodeType()) - { - if (XMLUtils.equals(n, ELEM_XSD_IMPORT)) - { - Attr a = - XMLUtils.getAttribute((Element) n, ATTR_XSD_SCHEMALOCATION); - String schemaLocation = (a != null) ? a.getValue() : ""; - a = XMLUtils.getAttribute((Element) n, ATTR_XSD_NAMESPACE); - String namespace = (a != null) ? a.getValue() : ""; - errors.add(new QName(namespace, schemaLocation)); - } - - else - { - // if xsd:schema element is found -> process schema - if (!XMLUtils.equals(n, ELEM_XSD_SCHEMA)) - searchForImport(n.getFirstChild()); - } - } - - n = n.getNextSibling(); - } - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2104.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2104.java deleted file mode 100644 index 792f365c3..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2104.java +++ /dev/null @@ -1,100 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Definition; -import javax.wsdl.Import; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.util.NullUtil; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; - - -/** - * BP2104. - * <context>For a candidate wsdl:import</context> - * <assertionDescription>The targetNamespace attribute on the wsdl:definitions element for the imported WSDL description has the same value as the namespace attribute on the wsdl:import element that imported the WSDL description.</assertionDescription> - */ -public class BP2104 extends AssertionProcessVisitor implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2104(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private ErrorList errors = new ErrorList(); - - private boolean importFound = false; - - /* Create falure report if namespace of wsdl:import does not equal targetnamespace in referenced wsdl. - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Import, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Import im, Object parent, WSDLTraversalContext ctx) - { - importFound = true; - Definition def = im.getDefinition(); - if (def != null) - { - if (!NullUtil.equals(im.getNamespaceURI(), def.getTargetNamespace())) - errors.add( - new QName(im.getNamespaceURI(), im.getLocationURI()), - new QName(def.getTargetNamespace(), def.getDocumentBaseURI())); - } - } - - /* - * Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(this); - traversal.setVisitor(this); - traversal.visitImport(true); - traversal.ignoreReferences(); - traversal.traverse((Definition) entryContext.getEntry().getEntryDetail()); - - if (!errors.isEmpty()) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - } - - else if (!importFound) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - result = AssertionResult.RESULT_PASSED; - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2105.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2105.java deleted file mode 100644 index b104c6d31..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2105.java +++ /dev/null @@ -1,232 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Definition; -import javax.wsdl.Import; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - - -/** - * BP2105. - * <context>For a candidate wsdl:definitions</context> - * <assertionDescription>For the referenced definitions, as well as all imported descriptions, in the WSDL namespace under the wsdl:defintitions element, the wsdl:import element is either directly after the wsdl:documentation element or is the first child element if the wsdl:documentation element is not present.</assertionDescription> - */ -public class BP2105 extends AssertionProcessVisitor implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2105(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private ErrorList errors = new ErrorList(); - - private boolean importFound = false; - - /* - * Check wsld import element is either directly after the wsdl:documentation element - * or is the first child element if the wsdl:documentation element is not present. - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Import, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Import im, Object parent, WSDLTraversalContext ctx) - { - importFound = true; - if (im.getDefinition() != null && im.getLocationURI() != null) - processWSDL(im.getDefinition().getDocumentBaseURI()); - } - - /* - * Check element is extensibility. - * @param el - xml element - * @return boolean - */ - private boolean isExtensibilityElement(Element el) - { - boolean isEx = true; - isEx = isEx && !XMLUtils.equals(el, WSDL_BINDING); - isEx = isEx && !XMLUtils.equals(el, WSDL_DEFINITIONS); - isEx = isEx && !XMLUtils.equals(el, WSDL_DOCUMENTATION); - isEx = isEx && !XMLUtils.equals(el, WSDL_FAULT); - isEx = isEx && !XMLUtils.equals(el, WSDL_IMPORT); - isEx = isEx && !XMLUtils.equals(el, WSDL_INPUT); - isEx = isEx && !XMLUtils.equals(el, WSDL_MESSAGE); - isEx = isEx && !XMLUtils.equals(el, WSDL_OPERATION); - isEx = isEx && !XMLUtils.equals(el, WSDL_OUTPUT); - isEx = isEx && !XMLUtils.equals(el, WSDL_PART); - isEx = isEx && !XMLUtils.equals(el, WSDL_PORT); - isEx = isEx && !XMLUtils.equals(el, WSDL_PORTTYPE); - isEx = isEx && !XMLUtils.equals(el, WSDL_SERVICE); - isEx = isEx && !XMLUtils.equals(el, WSDL_TYPES); - - return isEx; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - - // Get the definition element that will be analyzed - Definition definition = - (Definition) entryContext.getEntry().getEntryDetail(); - - // If it doesn't contain any imports, then the result is notApplicable - if ((definition.getImports() == null) - || (definition.getImports().size() == 0)) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - // Else analyze the - else - { - processWSDL(definition.getDocumentBaseURI()); - - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(this); - traversal.setVisitor(this); - traversal.visitImport(true); - - traversal.ignoreReferences(); - traversal.ignoreImport(); - traversal.traverse( - (Definition) entryContext.getEntry().getEntryDetail()); - - if (!errors.isEmpty()) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - } - - else if (!importFound) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - else - { - result = AssertionResult.RESULT_PASSED; - } - } - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } - - /* - * the method loads WSDL and check structure - * @param location - */ - private void processWSDL(String location) - { - try - { - // parses WSDL - Document doc = validator.parseXMLDocumentURL(location, null); - checkWSDL(doc.getDocumentElement()); // get definition - } - catch (Throwable t) - { - // ADD: add exception handling - //System.err.println("2105 - WSDL load failed"); - errors.add(t.toString()); - } - } - - /* - * Create falure report contains information of node. - * @param root - */ - private void createFailed(Node root) - { - Attr a = XMLUtils.getAttribute((Element) root, ATTR_WSDL_LOCATION); - String schemaLocation = (a != null) ? a.getValue() : ""; - a = XMLUtils.getAttribute((Element) root, ATTR_WSDL_NAMESPACE); - String namespace = (a != null) ? a.getValue() : ""; - errors.add(new QName(namespace, schemaLocation)); - } - - /* - * Check wsdl correspons assertion description. - * @param root - definition - */ - private void checkWSDL(Node root) - { - if (root != null) - { - // Find the first import element - Element im = XMLUtils.findChildElement((Element) root, WSDL_IMPORT); - - // Determine if a documentation element is present in the WSDL document - boolean documentIsPresent = - (XMLUtils.findChildElement((Element) root, WSDL_DOCUMENTATION) - != null); - - // Verify that all import elements occur after a documentation element - while (im != null) - { - // Find elements that are previous to the import element - Element el = XMLUtils.findPreviousSibling(im); - if (el != null) - while (isExtensibilityElement(el) && el != null) - if (el != null) - el = XMLUtils.findPreviousSibling(el); - - // If the wsdl:document elemnt is present - if (documentIsPresent && el != null) - { - if (!XMLUtils.equals(el, WSDL_DOCUMENTATION) && !XMLUtils.equals(el, WSDL_IMPORT)) - createFailed(root); - } - - // Else check if it is another wsdl: element - else if (el != null) - { - // If not the definitions element, then check for other wsdl: element - if (!XMLUtils.equals(el, WSDL_DEFINITIONS) && !XMLUtils.equals(el, WSDL_IMPORT)) - { - if (el.getNamespaceURI().equals(WSIConstants.NS_URI_WSDL)) - createFailed(root); - } - } - - // Get the next import element - im = XMLUtils.findElement(im, WSDL_IMPORT); - } - } - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2107.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2107.java deleted file mode 100644 index d642066ee..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2107.java +++ /dev/null @@ -1,200 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 2009 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.Iterator; -import java.util.List; - -import javax.wsdl.Types; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.schema.Schema; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Attr; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - - -/** - * BP2107. - * <context>For a candidate wsdl:types element containing an xsd:schema element</context> - * <assertionDescription>The xsd:schema element contains a targetNamespace attribute with a valid and non-null value unless the xsd:schema element has xsd:import and/or xsd:annotation as its only child element(s).</assertionDescription> - */ -public class BP2107 extends AssertionProcess implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2107(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private boolean schemaFound = false; - private ErrorList errors = new ErrorList(); - //private String context; - - /* - * Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - - Types t = (Types) entryContext.getEntry().getEntryDetail(); - List exts = t.getExtensibilityElements(); - if (exts != null) - { - //context = entryContext.getWSDLDocument().getDefinitions().getDocumentBaseURI(); - Iterator it = exts.iterator(); - while (it.hasNext()) - { - ExtensibilityElement el = (ExtensibilityElement) it.next(); - if (el instanceof Schema) - searchForSchema(((Schema) el).getElement()); - } - } - - // context = entryContext.getWSDLDocument().getDefinitions().getDocumentBaseURI(); - // processWSDL(entryContext.getWSDLDocument().getFilename()); - - if (!errors.isEmpty()) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - } - - else if (!schemaFound) - result = AssertionResult.RESULT_NOT_APPLICABLE; - - else - result = AssertionResult.RESULT_PASSED; - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } - - /* - * Check node schema or load schema from inmport if it exists and process it. - * @param n - node - */ - private void searchForSchema(Node n) - { - while (n != null) - { - // searches for xsd:import element - if (Node.ELEMENT_NODE == n.getNodeType()) - { - // if xsd:schema element is found -> process schema - if (XMLUtils.equals(n, ELEM_XSD_SCHEMA)) - { - schemaFound = true; - processSchema(n, null); - } - - else - { - // if xsd:import element is found -> load schema and process schema - //if (XMLUtils.equals(n, ELEM_XSD_IMPORT)) - // loadSchema(n); - //else - // else iterate element recursively - searchForSchema(n.getFirstChild()); - } - } - - n = n.getNextSibling(); - } - } - - /* - * Load schema and process it. - * @param importNode - xsd:import element - */ - //private void loadSchema(Node importNode) - //{ - // Element im = (Element) importNode; - // Attr schemaLocation = XMLUtils.getAttribute(im, ATTR_XSD_SCHEMALOCATION); - // // try to parse imported XSD - // if (schemaLocation != null && schemaLocation.getValue() != null) - // try - // { - // // if any error or root element is not XSD schema -> error - // Document schema = - // validator.parseXMLDocumentURL(schemaLocation.getValue(), context); - // if (XMLUtils.equals(schema.getDocumentElement(), ELEM_XSD_SCHEMA)) - // { - // Attr a = XMLUtils.getAttribute(im, ATTR_XSD_NAMESPACE); - // String namespace = (a != null) ? a.getValue() : ""; - // processSchema(schema.getDocumentElement(), namespace); - // } - // } - // catch (Throwable t) - // { - // // nothing. it's not a schema - // } - //} - - /* - * Create falure report if it's not correspons assertion description. - * @param schema - xsd:schema - * @param namespace - namespace of schema - */ - private void processSchema(Node schema, String namespace) - { - Attr a = - XMLUtils.getAttribute((Element) schema, ATTR_XSD_TARGETNAMESPACE); - String targetNamespace = (a != null) ? a.getValue() : null; - - Node n = schema.getFirstChild(); - // !! we suppose that xsd:import element is occured only within xsd:schema element - boolean containsOnlyImportAndAnnotation = true; - while (n != null) - { - if (n.getNodeType() == Node.ELEMENT_NODE) - { - containsOnlyImportAndAnnotation - &= (XMLUtils.equals(n, ELEM_XSD_IMPORT) - || XMLUtils.equals(n, ELEM_XSD_ANNOTATION)); - } - - //if (Node.ELEMENT_NODE == n.getNodeType() && XMLUtils.equals(n, ELEM_XSD_IMPORT)) - // loadSchema(n); - - n = n.getNextSibling(); - } - - // If the target namespace is not set and there are elements in addition to import and annotation, then error - if ((targetNamespace == null || targetNamespace.length() == 0) - && (!containsOnlyImportAndAnnotation)) - { - errors.add(targetNamespace, XMLUtils.serialize((Element) schema)); - } - - if (namespace != null && !namespace.equals(targetNamespace)) - { - errors.add(namespace, XMLUtils.serialize((Element) schema)); - } - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2108.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2108.java deleted file mode 100644 index bf733f5dc..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2108.java +++ /dev/null @@ -1,94 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.Iterator; - -import javax.wsdl.Definition; -import javax.wsdl.Types; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.util.TypesRegistry; - - -/** - * BP2108. - * <context>For a candidate wsdl:types, with Array declarations either locally defined or from an imported description</context> - * <assertionDescription>The type soapenc:Array does not appear in these declarations, and the wsdl:arrayType attribute is not used in the type declaration.</assertionDescription> - */ -public class BP2108 extends AssertionProcess implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2108(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private ErrorList errors = new ErrorList(); - - /* - * Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - - Types t = (Types) entryContext.getEntry().getEntryDetail(); - - // Search the definitions in CandidateInfo to locate the definition element that contains the specified types element - Definition definition = null; - if ((definition = validator.analyzerContext.getCandidateInfo().getDefinition(t)) - == null) - { - // This should never happen, but if it does then throw an execption - throw new WSIException("Could not locate types element definition."); - } - - else - { - TypesRegistry registry = - new TypesRegistry( - t, - definition.getDocumentBaseURI(), - validator); - - Iterator it = registry.getArrayTypes().iterator(); - while (it.hasNext()) - errors.add((QName) it.next()); - - if (!errors.isEmpty()) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - } - else - result = AssertionResult.RESULT_PASSED; - } - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2110.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2110.java deleted file mode 100644 index 519b6f0c6..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2110.java +++ /dev/null @@ -1,98 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.Iterator; - -import javax.wsdl.Definition; -import javax.wsdl.Types; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.util.TypesRegistry; - - -/** - * BP2110. - * <context>For a candidate wsdl:types</context> - * <assertionDescription>Array declaration wrapper elements does not use the naming convention ArrayOfXXX.</assertionDescription> - */ -public class BP2110 extends AssertionProcess implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2110(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private ErrorList errors = new ErrorList(); - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_WARNING; - - Types t = (Types) entryContext.getEntry().getEntryDetail(); - - // Search the definitions in CandidateInfo to locate the definition element that contains the specified types element - Definition definition = null; - if ((definition = validator.analyzerContext.getCandidateInfo().getDefinition(t)) - == null) - { - // This should never happen, but if it does then throw an execption - throw new WSIException("Could not locate types element definition."); - } - - else - { - TypesRegistry registry = - new TypesRegistry( - t, - definition.getDocumentBaseURI(), - validator); - - Iterator it = registry.getElementList().iterator(); - while (it.hasNext()) - { - QName type = (QName) it.next(); - if (type.getLocalPart().startsWith("ArrayOf")) - errors.add(type); - } - - if (!errors.isEmpty()) - { - result = AssertionResult.RESULT_WARNING; - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - } - - else - result = AssertionResult.RESULT_PASSED; - } - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2111.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2111.java deleted file mode 100644 index b9d942ddf..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2111.java +++ /dev/null @@ -1,142 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.extensions.soap.SOAPBinding; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPOperation; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; - - -/** - * BP2111. - * <context>For a candidate wsdl:binding, which contains a document-literal soap:binding</context> - * - * <assertionDescription>If the "parts" attribute is present, then the soapbind:body element(s) have at most one part listed in the parts attribute.</assertionDescription> - */ -public class BP2111 extends AssertionProcessVisitor implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2111(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private boolean docLiteralFound = false; - private ErrorList errors = new ErrorList(); - - /* - * Put in context soap binding's style - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPBinding, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - - public void visit( - SOAPBinding binding, - Object parent, - WSDLTraversalContext ctx) - { - String style = - (binding.getStyle() == null) - ? WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC - : binding.getStyle(); - ctx.addParameter("style", style); - } - - /* - * Verify style of soap operation is "document" if not then it's canceled process. - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPOperation, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - SOAPOperation operation, - Object parent, - WSDLTraversalContext ctx) - { - String style = operation.getStyle(); - if (style == null) - style = (String) ctx.getParameter("style"); - // assert style != null - if (!WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC.equals(style)) - ctx.cancelBindingOperationProcessing(); - } - - /* - * If use of soap body is "literal" and parts of soap body is more than one it creates falure report. - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPBody, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(SOAPBody body, Object parent, WSDLTraversalContext ctx) - { - // assert style == "document" - if (WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT.equals(body.getUse())) - { - docLiteralFound = true; - - List parts = body.getParts(); - if (parts != null && parts.size() > 1) - //how to pick out one body from another one ? - errors.add(body.getElementType(), body.getNamespaceURI()); - } - } - - /* - * Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(this);; - traversal.setVisitor(this); - traversal.visitSOAPBinding(true); - traversal.visitSOAPBody(true); - traversal.visitSOAPOperation(true); - - traversal.ignoreReferences(); - traversal.ignoreImport(); - traversal.traverse((Binding) entryContext.getEntry().getEntryDetail()); - - if (!errors.isEmpty()) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - } - - else if (!docLiteralFound) - result = AssertionResult.RESULT_NOT_APPLICABLE; - - else - result = AssertionResult.RESULT_PASSED; - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2112.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2112.java deleted file mode 100644 index 262bc9f34..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2112.java +++ /dev/null @@ -1,203 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.Iterator; -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOperation; -import javax.wsdl.BindingOutput; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.Part; -import javax.wsdl.extensions.soap.SOAPBinding; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPOperation; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.util.WSDLUtil; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; - - -/** - * BP2112. - * <context>For a candidate wsdl:binding, with a style "rpc" attribute and containing at least a soapbind:body element</context> - * <assertionDescription>No wsdl:part referred by such a soapbind:body element is defined using the "element" attribute.</assertionDescription> - */ -public class BP2112 extends AssertionProcessVisitor implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2112(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private boolean rpcLiteralFound = false; - private ErrorList errors = new ErrorList(); - - /* - * Put in context soap binding's style - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPBinding, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - - public void visit( - SOAPBinding binding, - Object parent, - WSDLTraversalContext ctx) - { - String style = - (binding.getStyle() == null) - ? WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC - : binding.getStyle(); - ctx.addParameter("bindingStyle", style); - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.BindingOperation, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - BindingOperation op, - Object parent, - WSDLTraversalContext ctx) - { - ctx.removeParameter("operationStyle"); - } - - /* - * Verify style of soap operation is "rpc" if not then it's canceled process. - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPOperation, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - SOAPOperation operation, - Object parent, - WSDLTraversalContext ctx) - { - ctx.addParameter("operationStyle", operation.getStyle()); - } - - /* - * If use of soap body is "literal" and if at least one part is define using "element" attribute it creates falure report. - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPBody, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(SOAPBody body, Object parent, WSDLTraversalContext ctx) - { - String opStyle = (String) ctx.getParameter("operationStyle"); - String bStyle = (String) ctx.getParameter("bindingStyle"); - - if ((opStyle == null - && !WSIConstants.ATTRVAL_SOAP_BIND_STYLE_RPC.equals(bStyle)) - || (opStyle != null - && !WSIConstants.ATTRVAL_SOAP_BIND_STYLE_RPC.equals(opStyle))) - { - ctx.cancelBindingOperationProcessing(); - return; - } - // assert use == "literal" - if (WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT.equals(body.getUse())) - { - rpcLiteralFound = true; - - // find corresponding message - Operation op = ctx.getBindingOperation().getOperation(); - // if some links are broken, cancel processing - if (op == null - || (parent instanceof BindingInput && op.getInput() == null) - || (parent instanceof BindingOutput && op.getOutput() == null)) - return; - - Message m = - (parent instanceof BindingInput) - ? op.getInput().getMessage() - : op.getOutput().getMessage(); - // REMOVE: current message should equals to message given as entry - //if (m == null || message != m) - if (m == null) - return; - - List parts = - WSDLUtil.getParts( - op, - m, - body, - WSIConstants.ATTRVAL_SOAP_BIND_STYLE_RPC); - if (parts == null) - return; - - /* check whether parts list contains a parts which uses - * element attribute. If so, part name will be added into - * errors set. - */ - Iterator it = parts.iterator(); - while (it.hasNext()) - { - Part part = (Part) it.next(); - if (part.getElementName() != null) - errors.add(part.getName()); - } - } - } - - /* - * Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - // save message - //message = (Message)entryContext.getEntry().getEntryDetail(); - - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(this);; - traversal.setVisitor(this); - traversal.visitSOAPBinding(true); - traversal.visitBindingOperation(true); - traversal.visitSOAPOperation(true); - traversal.visitSOAPBody(true); - - traversal.ignoreReferences(); - traversal.ignoreImport(); - - traversal.traverse((Binding) entryContext.getEntry().getEntryDetail()); - - if (!errors.isEmpty()) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - } - - else if (!rpcLiteralFound) - result = AssertionResult.RESULT_NOT_APPLICABLE; - - else - result = AssertionResult.RESULT_PASSED; - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2113.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2113.java deleted file mode 100644 index bd31cdc0d..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2113.java +++ /dev/null @@ -1,159 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.HashMap; -import java.util.Map; - -import javax.wsdl.Binding; -import javax.wsdl.Definition; -import javax.wsdl.Fault; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.Part; -import javax.wsdl.extensions.soap.SOAPFault; -import javax.wsdl.extensions.soap.SOAPHeader; -import javax.wsdl.extensions.soap.SOAPHeaderFault; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.util.WSDLUtil; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; - - -/** - * BP2113. - * <context>For a candidate wsdl:binding element</context> - * <assertionDescription>The soapbind:header, soapbind:headerfault and soapbind:fault elements only refer to wsdl:part element(s) that have been defined using the "element" attribute.</assertionDescription> - */ -public class BP2113 extends AssertionProcessVisitor implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2113(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private ErrorList errors = new ErrorList(); - - /* - * Verify soap header uses part is define using "element" attribute - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPHeader, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - SOAPHeader header, - Object parent, - WSDLTraversalContext ctx) - { - Definition d = (Definition) ctx.getParameter("definition"); - Message m = d.getMessage(header.getMessage()); - if (m != null) - checkPart(m.getPart(header.getPart()), ctx.getBinding()); - } - - /* - * Verify soap headerfault uses part is define using "element" attribute - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPHeaderFault, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - SOAPHeaderFault fault, - Object parent, - WSDLTraversalContext ctx) - { - Definition d = (Definition) ctx.getParameter("definition"); - Message m = d.getMessage(fault.getMessage()); - // if message or part is not found - NOT_APPLICABLE ???? - if (m != null) - checkPart(m.getPart(fault.getPart()), ctx.getBinding()); - } - - /* - * Verify soap fault uses part is define using "element" attribute - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPFault, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(SOAPFault fault, Object parent, WSDLTraversalContext ctx) - { - String faultName = fault.getName(); - if (faultName == null) - faultName = ctx.getBindingFault().getName(); - Operation op = ctx.getBindingOperation().getOperation(); - if (op == null /* || faultName == null*/ - ) // may be it's possible to have legal fault with null name - return; - // we suppose that SOAPFault.getName() corresponds to the abstract operation's fault name - Fault f = op.getFault(faultName); - if (f == null) - return; - Message m = f.getMessage(); - // message should have only one part - if (m == null || m.getParts() == null || m.getParts().size() != 1) - return; - checkPart((Part) m.getOrderedParts(null).get(0), ctx.getBinding()); - } - - /* - * Verify part is define using "element" attribute. - * @param p - part - * @param b - binding - */ - // refactoring - private void checkPart(Part p, Binding b) - { - if (p != null && p.getElementName() == null) - errors.add(b.getQName(), p.getName()); - } - - /* - * Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(this);; - traversal.setVisitor(this); - traversal.visitSOAPHeader(true); - traversal.visitSOAPHeaderFault(true); - traversal.visitSOAPFault(true); - - Map m = new HashMap(); - Definition def = entryContext.getWSDLDocument().getDefinitions(); - WSDLUtil.expandDefinition(def); - m.put("definition", def); - traversal.traverse((Binding) entryContext.getEntry().getEntryDetail(), m); - - if (!errors.isEmpty()) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - } - else - result = AssertionResult.RESULT_PASSED; - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2114.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2114.java deleted file mode 100644 index 4b549d12c..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2114.java +++ /dev/null @@ -1,278 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.wsdl.Binding; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOutput; -import javax.wsdl.Fault; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.Part; -import javax.wsdl.extensions.soap.SOAPBinding; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPFault; -import javax.wsdl.extensions.soap.SOAPHeader; -import javax.wsdl.extensions.soap.SOAPHeaderFault; -import javax.wsdl.extensions.soap.SOAPOperation; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.util.WSDLUtil; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; - - -/** - * BP2114. - * <context>For a candidate wsdl:binding element</context> - * - * - * <assertionDescription>Every wsdl:part from each wsdl:message in the associated - * wsdl:portType is referenced either by the soapbind:body, soapbind:header, - * soapbind:fault, or soapbind:headerfault.</assertionDescription> - */ -public class BP2114 extends AssertionProcessVisitor implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2114(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private ErrorList errors = new ErrorList(); - // map Message QName -> set(Part name) - public Map messages = new HashMap(); - - /* - * Add to Map parts which used by message - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Message, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Message m, Object parent, WSDLTraversalContext ctx) - { - if (m != null - && !messages.containsKey(m) - && m.getOrderedParts(null) != null) - { - Set s = new HashSet(); - Iterator it = m.getOrderedParts(null).iterator(); - while (it.hasNext()) - s.add(((Part) it.next()).getName()); - - //messages.put(m.getQName(), s); - if (s.size() > 0) - { - messages.put(m.getQName(), s); - } - } - } - - /* - * Put in context style of soap binding - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPBinding, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - SOAPBinding binding, - Object parent, - WSDLTraversalContext ctx) - { - String style = - (binding.getStyle() == null) - ? WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC - : binding.getStyle(); - ctx.addParameter("style", style); - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPOperation, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - SOAPOperation operation, - Object parent, - WSDLTraversalContext ctx) - { - String style = operation.getStyle(); - if (style != null) - ctx.addParameter("style", style); - } - - /* - * Remove parts of soap body from Map. - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPBody, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(SOAPBody body, Object parent, WSDLTraversalContext ctx) - { - // String style = (String)ctx.getParameter("style"); - - // find corresponding message - Operation op = ctx.getBindingOperation().getOperation(); - // if some links are broken, cancel processing - if (op == null) - return; - Message m = null; - if (parent instanceof BindingInput) - { - if (op.getInput() == null) - return; - m = op.getInput().getMessage(); - } - else if (parent instanceof BindingOutput) - { - if (op.getOutput() == null) - return; - m = op.getOutput().getMessage(); - } - if (m == null) - return; - - // get parts - List parts = WSDLUtil.getParts(op, m, body, null); - if (parts == null) - return; - - // iterate all parts and check - Iterator it = parts.iterator(); - while (it.hasNext()) - removePart(m.getQName(), ((Part) it.next()).getName()); - } - - /* - * Remove parts of soap header from Map. - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPHeader, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - SOAPHeader header, - Object parent, - WSDLTraversalContext ctx) - { - // we suppose that it possible to have legal message and part with null names - // ATTENTION - // should we add message which is referenced by header or headerfault to messages ? - removePart(header.getMessage(), header.getPart()); - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPHeaderFault, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - SOAPHeaderFault fault, - Object parent, - WSDLTraversalContext ctx) - { - // we suppose that it possible to have legal message and patr with null names - QName messageName = fault.getMessage(); - if (messageName == null) - messageName = ctx.getSOAPHeader().getMessage(); - removePart(messageName, fault.getPart()); - } - - /* - * Remove parts of soap fault from Map. - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPFault, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(SOAPFault fault, Object parent, WSDLTraversalContext ctx) - { - String faultName = fault.getName(); - if (faultName == null) - faultName = ctx.getBindingFault().getName(); - Operation op = ctx.getBindingOperation().getOperation(); - if (op == null) - return; - - // we suppose that SOAPFault.getName() corresponds to the abstract operation's fault name - Fault f = op.getFault(faultName); - - // fault message should have 1 part - if (f == null - || f.getMessage() == null - || f.getMessage().getParts().size() != 1) - return; - - Part p = (Part) f.getMessage().getOrderedParts(null).get(0); - removePart(f.getMessage().getQName(), p.getName()); - } - - /* - * Remove part from Map. - * @param messageName - message - * @param partName - part - */ - // refatoring - private void removePart(QName messageName, String partName) - { - Set parts = (Set) messages.get(messageName); - if (parts != null) - { - parts.remove(partName); - if (parts.size() == 0) - messages.remove(messageName); - } - } - - /* - * Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_WARNING; - - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(this); - traversal.setVisitor(this); - traversal.visitMessage(true); - traversal.visitSOAPBinding(true); - traversal.visitSOAPBody(true); - traversal.visitSOAPHeader(true); - traversal.visitSOAPHeaderFault(true); - traversal.visitSOAPFault(true); - traversal.visitSOAPOperation(true); - - Binding b = (Binding) entryContext.getEntry().getEntryDetail(); - traversal.traverse(b); - - if (messages.size() > 0) - errors.add(b.getQName()); - - if (!errors.isEmpty()) - { - result = AssertionResult.RESULT_WARNING; - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - } - - else - result = AssertionResult.RESULT_PASSED; - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2115.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2115.java deleted file mode 100644 index be98298b9..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2115.java +++ /dev/null @@ -1,97 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Message; -import javax.wsdl.Part; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.util.TypesRegistry; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; - - -/** - * BP2115. - * <context>For a candidate wsdl:message</context> - * <assertionDescription>An "element" attribute on any wsdl:part element refers to a global element declaration.</assertionDescription> - */ -public class BP2115 extends AssertionProcessVisitor implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2115(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private ErrorList errors = new ErrorList(); - private TypesRegistry registry = null; - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Part, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Part part, Object parent, WSDLTraversalContext ctx) - { - if (part.getElementName() != null - && registry.getType(part.getElementName()) == null) - { - errors.add(ctx.getMessage().getQName()); - ctx.cancelMessageProcessing(); - } - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - - registry = - new TypesRegistry( - entryContext.getWSDLDocument().getDefinitions(), - validator); - - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(this); - traversal.setVisitor(this); - traversal.visitPart(true); - - traversal.ignoreReferences(); - traversal.ignoreImport(); - traversal.traverse((Message) entryContext.getEntry().getEntryDetail()); - - if (!errors.isEmpty()) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - } - - else - result = AssertionResult.RESULT_PASSED; - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2116.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2116.java deleted file mode 100644 index f19ff0991..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2116.java +++ /dev/null @@ -1,88 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Message; -import javax.wsdl.Part; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; - - -/** - * BP2116. - * <context>For a candidate wsdl:message element</context> - * <assertionDescription>The wsdl:message element does not contain part elements that use both "type" and "element" attributes.</assertionDescription> - */ -public class BP2116 extends AssertionProcessVisitor implements WSITag -{ - - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2116(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private ErrorList errors = new ErrorList(); - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Part, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Part part, Object parent, WSDLTraversalContext ctx) - { - if (part.getElementName() != null && part.getTypeName() != null) - { - errors.add(ctx.getMessage().getQName()); - ctx.cancelMessageProcessing(); - } - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(this); - traversal.setVisitor(this); - traversal.visitPart(true); - traversal.ignoreReferences(); - traversal.ignoreImport(); - traversal.traverse((Message) entryContext.getEntry().getEntryDetail()); - - if (!errors.isEmpty()) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - } - else - result = AssertionResult.RESULT_PASSED; - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2117.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2117.java deleted file mode 100644 index 6709fa796..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2117.java +++ /dev/null @@ -1,183 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Binding; -import javax.wsdl.extensions.soap.SOAPBinding; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPFault; -import javax.wsdl.extensions.soap.SOAPHeader; -import javax.wsdl.extensions.soap.SOAPHeaderFault; -import javax.wsdl.extensions.soap.SOAPOperation; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; - - -/** - * BP2117. - * <context>For a candidate wsdl:binding element, referred to by an rpc-literal soap:binding</context> - * <assertionDescription>The rpc-literal binding does not have a namespace attribute specified on a contained soapbind:header, soapbind:headerfault, and soapbind:fault element.</assertionDescription> - */ -public class BP2117 extends AssertionProcessVisitor implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2117(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private boolean rpcLiteralFound = false; - private ErrorList errors = new ErrorList(); - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPBinding, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - SOAPBinding binding, - Object parent, - WSDLTraversalContext ctx) - { - String style = - (binding.getStyle() == null) - ? WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC - : binding.getStyle(); - ctx.addParameter("style", style); - } - - /* - * If use of soap body is "literal" and if at least one part is define using "element" attribute it creates falure report. - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPBody, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(SOAPBody body, Object parent, WSDLTraversalContext ctx) - { - // assert use == "literal" - if (WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT.equals(body.getUse()) - && ((String) ctx.getParameter("style")).equals( - WSIConstants.ATTRVAL_SOAP_BIND_STYLE_RPC)) - { - rpcLiteralFound = true; - } - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPOperation, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - SOAPOperation operation, - Object parent, - WSDLTraversalContext ctx) - { - String style = operation.getStyle(); - if (style == null) - style = (String) ctx.getParameter("style"); - - // assert style != null - if (!WSIConstants.ATTRVAL_SOAP_BIND_STYLE_RPC.equals(style)) - ctx.cancelBindingOperationProcessing(); - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPHeader, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - SOAPHeader header, - Object parent, - WSDLTraversalContext ctx) - { - check(header.getUse(), header.getNamespaceURI(), ctx); - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPHeaderFault, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - SOAPHeaderFault fault, - Object parent, - WSDLTraversalContext ctx) - { - check(fault.getUse(), fault.getNamespaceURI(), ctx); - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPFault, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(SOAPFault fault, Object parent, WSDLTraversalContext ctx) - { - check(fault.getUse(), fault.getNamespaceURI(), ctx); - } - - // refactoring - // check LITERAL use and != namespace - // canceling further processing - private void check(String use, String namespace, WSDLTraversalContext ctx) - { - if (WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT.equals(use) - && namespace != null) - { - errors.add(ctx.getBinding().getQName()); - // suppresses subsequent processing, because error list contains only failed binding - ctx.cancelProcessing(); - } - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(this); - traversal.setVisitor(this); - traversal.visitSOAPBinding(true); - traversal.visitSOAPBody(true); - traversal.visitSOAPHeader(true); - traversal.visitSOAPHeaderFault(true); - traversal.visitSOAPFault(true); - traversal.visitSOAPOperation(true); - - traversal.ignoreReferences(); - traversal.ignoreImport(); - traversal.traverse((Binding) entryContext.getEntry().getEntryDetail()); - - if (!errors.isEmpty()) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - } - - else if (!rpcLiteralFound) - result = AssertionResult.RESULT_NOT_APPLICABLE; - - else - result = AssertionResult.RESULT_PASSED; - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2118.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2118.java deleted file mode 100644 index 6a4a73385..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2118.java +++ /dev/null @@ -1,98 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Binding; -import javax.wsdl.Operation; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; - - -/** - * BP2118. - * <context>For a candidate wsdl:binding element</context> - * <assertionDescription>The list (or set) of wsdl:operation elements for the contained wsdl:binding is the same as the list of wsdl:operations for the referred wsdl:portType.</assertionDescription> - */ -public class BP2118 extends AssertionProcessVisitor implements WSITag -{ - - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2118(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private ErrorList errors = new ErrorList(); - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Operation, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Operation op, Object parent, WSDLTraversalContext ctx) - { - // assert parent instanceof BindingOperation - if (op == null) - { - errors.add(ctx.getBinding().getQName()); - // suppresses subsequent processing, because error list contains only failed binding - ctx.cancelBindingProcessing(); - ctx.cancelBindingOperationProcessing(); - } - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - - Binding b = (Binding) entryContext.getEntry().getEntryDetail(); - // if operations count in port type and binding is differ -> error - if (b.getPortType() == null - || b.getPortType().getOperations().size() - != b.getBindingOperations().size()) - errors.add(b.getQName()); - else - { - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(this); - traversal.setVisitor(this); - traversal.visitOperation(true); - traversal.traverse(b); - } - - if (!errors.isEmpty()) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - } - else - result = AssertionResult.RESULT_PASSED; - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2119.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2119.java deleted file mode 100644 index 3de1a8342..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2119.java +++ /dev/null @@ -1,165 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.Map; - -import javax.wsdl.Binding; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOutput; -import javax.wsdl.Operation; -import javax.wsdl.extensions.soap.SOAPBinding; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPOperation; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; - - -/** - * BP2119. - * <context>For a candidate wsdl:binding, which is of type document-literal</context> - * <assertionDescription>If it does not specify the parts attribute on a soapbind:body element, the corresponding abstract wsdl:message defines zero or one wsdl:part.</assertionDescription> - */ -public class BP2119 extends AssertionProcessVisitor implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2119(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private boolean docLiteralFound = false; - private ErrorList errors = new ErrorList(); - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPBinding, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - SOAPBinding binding, - Object parent, - WSDLTraversalContext ctx) - { - String style = - (binding.getStyle() == null) - ? WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC - : binding.getStyle(); - ctx.addParameter("style", style); - } - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPOperation, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - SOAPOperation operation, - Object parent, - WSDLTraversalContext ctx) - { - String style = operation.getStyle(); - if (style == null) - style = (String) ctx.getParameter("style"); - // assert style != null - if (!WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC.equals(style)) - ctx.cancelBindingOperationProcessing(); - } - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPBody, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(SOAPBody body, Object parent, WSDLTraversalContext ctx) - { - String use = - (body.getUse() == null) - ? WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT - : body.getUse(); - - // assert style == "document" - if (WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT.equals(use)) - { - docLiteralFound = true; - if (body.getParts() == null) - { - Operation op = ctx.getBindingOperation().getOperation(); - if (op == null) - return; - - Map parts = null; - if (parent instanceof BindingInput) - { - if (op.getInput() == null || op.getInput().getMessage() == null) - return; - parts = op.getInput().getMessage().getParts(); - } - else if (parent instanceof BindingOutput) - { - if (op.getOutput() == null || op.getOutput().getMessage() == null) - return; - parts = op.getOutput().getMessage().getParts(); - } - - if (parts != null && parts.size() > 1) - { - errors.add(ctx.getBinding().getQName()); - // suppresses subsequent processing, because error list contains only failed binding - ctx.cancelBindingProcessing(); - ctx.cancelBindingOperationProcessing(); - ctx.cancelBindingInputProcessing(); - ctx.cancelBindingOutputProcessing(); - } - } - } - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(this); - traversal.setVisitor(this); - traversal.visitSOAPBinding(true); - traversal.visitSOAPBody(true); - traversal.visitSOAPOperation(true); - traversal.ignoreImport(); - traversal.traverse((Binding) entryContext.getEntry().getEntryDetail()); - - if (!errors.isEmpty()) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - } - - else if (!docLiteralFound) - result = AssertionResult.RESULT_NOT_APPLICABLE; - - else - result = AssertionResult.RESULT_PASSED; - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2120.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2120.java deleted file mode 100644 index 692728364..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2120.java +++ /dev/null @@ -1,247 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Set; - -import javax.wsdl.Binding; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.Part; -import javax.wsdl.extensions.soap.SOAPBinding; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPOperation; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.util.WSDLUtil; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; - - -/** - * BP2120. - * <context>For a candidate wsdl:binding</context> - * <assertionDescription>Each operation referenced by the binding results in a unique wire signature.</assertionDescription> - */ -public class BP2120 extends AssertionProcessVisitor implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2120(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private ErrorList errors = new ErrorList(); - private Set wares = new HashSet(); - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPBinding, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - SOAPBinding binding, - Object parent, - WSDLTraversalContext ctx) - { - String style = - (binding.getStyle() == null) - ? WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC - : binding.getStyle(); - ctx.addParameter("style", style); - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPOperation, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - SOAPOperation operation, - Object parent, - WSDLTraversalContext ctx) - { - String style = operation.getStyle(); - if (style != null) - ctx.addParameter("style", style); - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.soap.SOAPBody, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(SOAPBody body, Object parent, WSDLTraversalContext ctx) - { - List signature = new LinkedList(); - - String style = (String) ctx.getParameter("style"); - - // find corresponding message - Operation op = ctx.getBindingOperation().getOperation(); - - // if some links are broken, cancel processing - if (op == null - || op.getInput() == null - || op.getInput().getMessage() == null) - return; - Message m = op.getInput().getMessage(); - - List parts = WSDLUtil.getParts(op, m, body, style); - if (parts == null) - return; - // !! ATTENTION - // may be required to add types instead of part into signature ? - - // create signature - signature.addAll(parts); - - // suppose that wire signature for - // - rpc style = operation name + parts' qname - // - document style = parts' qname - if (WSIConstants.ATTRVAL_SOAP_BIND_STYLE_RPC.equals(style)) - signature.add(0, op.getName()); - - if (sameSignature(wares, signature)) - errors.add(op.getName()); - else - wares.add(signature); - } - - /** - * Check if the signature is in the set match. - */ - private boolean sameSignature(Set signatureSet, List signature) - { - boolean same = false; - - // Get iterator for set - Iterator set = signatureSet.iterator(); - while (set.hasNext() && !same) - { - // Get next signature from the set - List nextSignature = (List) set.next(); - - // Only continue if the signatures are the same size - if (nextSignature.size() == signature.size()) - { - Iterator iterator1 = nextSignature.iterator(); - Iterator iterator2 = signature.iterator(); - - // Assume same until a difference is found - same = true; - - // Process each list until a difference is found - while (iterator1.hasNext() && iterator2.hasNext() && same) - { - // Get the next elements - Object element1 = iterator1.next(); - Object element2 = iterator2.next(); - - // If the element is a string, then if equal check parts - if ((element1 instanceof String) - && (element2 instanceof String) - && (((String) element1).equals((String) element2))) - { - same = true; - } - - // If the elements are parts, then check if they are equal - else if ((element1 instanceof Part) && (element2 instanceof Part)) - { - same = sameParts((Part) element1, (Part) element2); - } - - else - { - same = false; - } - } - } - } - - return same; - } - - /** - * Check if two parts are the same. - */ - private boolean sameParts(Part part1, Part part2) - { - boolean same = false; - - // If the part has an element then see if they are the same - if (part1.getElementName() != null - && part2.getElementName() != null - && part1.getElementName().equals(part2.getElementName())) - { - same = true; - } - - // If the part has an type then see if they are the same - else if ( - part1.getTypeName() != null - && part2.getTypeName() != null - && part1.getTypeName().equals(part2.getTypeName())) - { - same = true; - } - - else - { - same = false; - } - - return same; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(this); - traversal.setVisitor(this); - traversal.visitSOAPBinding(true); - traversal.visitSOAPBody(true); - traversal.visitSOAPOperation(true); - traversal.ignoreBindingOutput(); - traversal.traverse((Binding) entryContext.getEntry().getEntryDetail()); - - // !! ATTENTION - // Analyze soapbind:body:namespace and service targetNamespace - if (!errors.isEmpty()) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - } - else - result = AssertionResult.RESULT_PASSED; - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2121.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2121.java deleted file mode 100644 index 6ad594a36..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2121.java +++ /dev/null @@ -1,174 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.Iterator; -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOutput; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.Part; -import javax.wsdl.extensions.soap.SOAPBinding; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPOperation; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.util.TypesRegistry; -import org.eclipse.wst.wsi.internal.core.util.WSDLUtil; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; - - -/** - * BP2121. - * Context: - * For a wsdl:binding element which is referenced directly or associated - * with a specified wsdl:port. - * - * Assertion Description: - * Each operation referenced by a document-literal binding must have a - * message definition where the wsdl:part references a global element - * definition. - */ -public class BP2121 extends AssertionProcessVisitor implements WSITag -{ - - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2121(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private ErrorList errors = new ErrorList(); - private TypesRegistry registry = null; - - public void visit( - SOAPBinding binding, - Object parent, - WSDLTraversalContext ctx) - { - String style = - (binding.getStyle() == null) - ? WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC - : binding.getStyle(); - ctx.addParameter("style", style); - } - public void visit( - SOAPOperation operation, - Object parent, - WSDLTraversalContext ctx) - { - String style = operation.getStyle(); - if (style == null) - style = (String) ctx.getParameter("style"); - // assert style != null - if (!WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC.equals(style)) - ctx.cancelBindingOperationProcessing(); - } - - public void visit(SOAPBody body, Object parent, WSDLTraversalContext ctx) - { - // !! ATTENTION - // we suppose that soapbody child elements is its parts. - // assert style == "document" - if (WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT.equals(body.getUse())) - { - // find corresponding message - Operation op = ctx.getBindingOperation().getOperation(); - // if some links are broken, cancel processing - if (op == null - || (parent instanceof BindingInput && op.getInput() == null) - || (parent instanceof BindingOutput && op.getOutput() == null)) - return; - - Message m = - (parent instanceof BindingInput) - ? op.getInput().getMessage() - : op.getOutput().getMessage(); - if (m == null) - return; - - // find parts which are involved in the given body - List parts = - WSDLUtil.getParts( - op, - m, - body, - WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC); - if (parts == null) - return; - - // check parts - Iterator it = parts.iterator(); - while (it.hasNext()) - { - Part p = (Part) it.next(); - // check whether p declared as global element - if (p.getElementName() == null - || registry.getType(p.getElementName()) == null) - { - errors.add(op.getName()); - // suppresses subsequent processing, because error list contains only failed operation - ctx.cancelBindingOperationProcessing(); - } - } - } - } - - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - - registry = - new TypesRegistry( - entryContext.getWSDLDocument().getDefinitions(), - validator); - - // collect all types from messages to checkedParts map - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(this); - traversal.setVisitor(this); - traversal.visitSOAPBinding(true); - traversal.visitSOAPBody(true); - traversal.visitSOAPOperation(true); - traversal.ignoreReferences(); - traversal.ignoreImport(); - traversal.traverse((Binding) entryContext.getEntry().getEntryDetail()); - - if (!errors.isEmpty()) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - } - else - result = AssertionResult.RESULT_PASSED; - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2122.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2122.java deleted file mode 100644 index ee660551b..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2122.java +++ /dev/null @@ -1,95 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 2009 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.List; - -import javax.wsdl.Types; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.schema.Schema; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; - - -/** - * BP2122. - * <context>For a candidate wsdl:types element</context> - * <assertionDescription>The data type definition if any within the wsdl:types element is an XML schema definition defined in the XML Schema 1.0 Recommendation with the namespace URI "http://www.w3.org/2001/XMLSchema".</assertionDescription> - */ -public class BP2122 extends AssertionProcess -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2122(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /** - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(TestAssertion, EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_PASSED; - ErrorList errorList = new ErrorList(); - - // Get the types from the entry context - Types types = (Types) entryContext.getEntry().getEntryDetail(); - - if (types != null) - { - ExtensibilityElement extElement; - List extElements = types.getExtensibilityElements(); - - // Process each ext. element - for (int i = 0; i < extElements.size(); i++) - { - // If it is an unknown ext. element and it is a schema, then check it - if ((extElement = (ExtensibilityElement) extElements.get(i)) - instanceof Schema) - { - if (!extElement.getElementType().equals(WSITag.ELEM_XSD_SCHEMA)) - { - // If it is not a schema definition, then it is an error - errorList.add( - extElement.getElementType().toString() - + " can not be a child of the wsdl:types element."); - } - } - } - } - - // If XMLSchemaValidator could not find any errors, check errors from the inline schema validator - if (errorList.isEmpty()) - errorList.add(validator.wsdlDocument.getSchemasValidationErrors()); - - if (!errorList.isEmpty()) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(errorList.toString(), entryContext); - } - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2123.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2123.java deleted file mode 100644 index af5f833d2..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2123.java +++ /dev/null @@ -1,357 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Binding; -import javax.wsdl.BindingFault; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOperation; -import javax.wsdl.BindingOutput; -import javax.wsdl.Definition; -import javax.wsdl.Fault; -import javax.wsdl.Input; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.Output; -import javax.wsdl.Part; -import javax.wsdl.Port; -import javax.wsdl.PortType; -import javax.wsdl.extensions.ExtensibilityElement; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Element; - - -/** - * BP2123. - * <context>For a candidate wsdl:definitions, if it contains a wsdl:port, wsdl:binding, wsdl:portType, wsdl:operation, or wsdl:message</context> - * <assertionDescription>Contained WSDL extension elements do not use the wsdl:required attribute value of "true".</assertionDescription> - */ -public class BP2123 extends AssertionProcessVisitor implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2123(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private boolean claimFound = false; - - private static final String PORT_KEY = "port"; - private static final String BINDING_KEY = "binding"; - private static final String PORT_TYPE_KEY = "port type"; - private static final String OPERATION_KEY = "operation"; - private static final String MESSAGE_KEY = "message"; - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Port, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Port port, Object parent, WSDLTraversalContext ctx) - { - if (port != null) - { - if (containsLegalClaim(port.getDocumentationElement())) - { - claimFound = true; - ctx.addParameter(PORT_KEY, Boolean.TRUE); - } - else - { - ctx.addParameter(PORT_KEY, Boolean.FALSE); - } - } - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Binding, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Binding binding, Object parent, WSDLTraversalContext ctx) - { - if (binding != null) - { - Boolean port = (Boolean) ctx.getParameter(PORT_KEY); - - if (port.booleanValue()) - { - ctx.addParameter(BINDING_KEY, Boolean.TRUE); - } - else - { - claimFound = containsClaim(binding.getDocumentationElement()); - ctx.addParameter( - BINDING_KEY, - new Boolean(containsLegalClaim(binding.getDocumentationElement()))); - } - } - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.PortType, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(PortType type, Object parent, WSDLTraversalContext ctx) - { - if (type != null) - { - Boolean binding = (Boolean) ctx.getParameter(BINDING_KEY); - - if (binding.booleanValue()) - { - ctx.addParameter(PORT_TYPE_KEY, Boolean.TRUE); - } - else - { - claimFound = containsClaim(type.getDocumentationElement()); - ctx.addParameter( - PORT_TYPE_KEY, - new Boolean(containsLegalClaim(type.getDocumentationElement()))); - } - } - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Operation, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - Operation operation, - Object parent, - WSDLTraversalContext ctx) - { - if (operation != null) - { - Boolean type = (Boolean) ctx.getParameter(PORT_TYPE_KEY); - - if (type.booleanValue()) - { - ctx.addParameter(OPERATION_KEY, Boolean.TRUE); - } - else - { - claimFound = containsClaim(operation.getDocumentationElement()); - ctx.addParameter( - OPERATION_KEY, - new Boolean( - containsLegalClaim(operation.getDocumentationElement()))); - } - } - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Message, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Message message, Object parent, WSDLTraversalContext ctx) - { - if (message != null) - { - Boolean operation = (Boolean) ctx.getParameter(OPERATION_KEY); - - if (operation.booleanValue()) - { - ctx.addParameter(MESSAGE_KEY, Boolean.TRUE); - } - else - { - claimFound = containsClaim(message.getDocumentationElement()); - ctx.addParameter( - MESSAGE_KEY, - new Boolean(containsLegalClaim(message.getDocumentationElement()))); - } - } - } - - /* - public void visit(BindingOperation operation, Object parent, WSDLTraversalContext ctx) { - if (operation != null) { - if (containsLegalClaim(operation.getDocumentationElement())) { - System.out.println("binding operation found"); - } else { - - } - } - } - */ - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.ExtensibilityElement, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - - public void visit( - ExtensibilityElement el, - Object parent, - WSDLTraversalContext ctx) - { - boolean required = - el != null - && el.getRequired() != null - && el.getRequired().booleanValue(); - - if (isParentConforms(parent, ctx)) - { - if (required) - { - result = AssertionResult.RESULT_WARNING; - failureDetailMessage = el.toString(); - } - } - } - - /** - * Indicates whether the parent element conforms to the basic profile. - * @param parent - * @param ctx - * @return boolean - */ - private boolean isParentConforms(Object parent, WSDLTraversalContext ctx) - { - boolean result = false; - - if (parent instanceof Port) - { - result = ((Boolean) ctx.getParameter(PORT_KEY)).booleanValue(); - } - else if ( - parent instanceof Binding - || parent instanceof BindingOperation - || parent instanceof BindingInput - || parent instanceof BindingOutput - || parent instanceof BindingFault) - { - result = ((Boolean) ctx.getParameter(BINDING_KEY)).booleanValue(); - } - else if (parent instanceof PortType) - { - result = ((Boolean) ctx.getParameter(PORT_TYPE_KEY)).booleanValue(); - } - else if ( - parent instanceof Operation - || parent instanceof Input - || parent instanceof Output - || parent instanceof Fault) - { - result = ((Boolean) ctx.getParameter(OPERATION_KEY)).booleanValue(); - } - else if (parent instanceof Message || parent instanceof Part) - { - result = ((Boolean) ctx.getParameter(MESSAGE_KEY)).booleanValue(); - } - - return result; - } - - /** - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(TestAssertion, EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_PASSED; - - // Expect wsdl:defintions - Definition def = (Definition) entryContext.getEntry().getEntryDetail(); - //((Service)def.getServices().values().toArray()[0]).getPorts() - // Traverse WSDL - WSDLTraversal traversal = new WSDLTraversal(); - // VisitorAdaptor.adapt(this); - traversal.setVisitor(this); - traversal.visitOperation(true); - traversal.visitBinding(true); - traversal.visitMessage(true); - traversal.visitPort(true); - traversal.visitPortType(true); - traversal.visitExtensibilityElement(true); - - traversal.ignoreImport(); - traversal.ignoreDefinition2Binding(); - traversal.ignoreDefinition2Element(); - traversal.ignoreDefinition2ExtensibilityElement(); - traversal.ignoreDefinition2Message(); - traversal.ignoreDefinition2PortType(); - traversal.ignoreDefinition2Types(); - - traversal.traverse(def); - - if (!claimFound) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - else if (result.equals(AssertionResult.RESULT_WARNING)) - { - failureDetail = this.validator.createFailureDetail(failureDetailMessage, entryContext); - } - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } - - /** - * Check the documentation element whether contains conformance claims. - * Returns true if documentation element contains conformance claim with - * legal schema definition URI. - * legal is 'http://ws-i.org/schemas/conformanceClaim/' - * @param el - * @return boolean - */ - private boolean containsClaim(Element el) - { - if (el == null) - return false; - // find claim - el = XMLUtils.findChildElement(el, WSI_CLAIM); - if (el != null) - { - return true; - } - return false; - } - - /** - * Check the documentation element whether contains conformance claims. - * Returns true if documentation element contains conformance claim with - * legal schema definition URI. - * legal is 'http://ws-i.org/schemas/conformanceClaim/' - * @param el - * @return boolean - */ - private boolean containsLegalClaim(Element el) - { - if (el == null) - return false; - // find claim - el = XMLUtils.findChildElement(el, WSI_CLAIM); - while (el != null) - { - String value = el.getAttribute(ATTR_CLAIM_CONFORMSTO.getLocalPart()); - if (value != null - && value.equalsIgnoreCase(WSIConstants.ATTRVAL_UDDI_CLAIM_KEYVALUE)) - { - return true; - } - - el = XMLUtils.findElement(el, WSI_CLAIM); - } - return false; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2201.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2201.java deleted file mode 100644 index 324ddfc3e..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2201.java +++ /dev/null @@ -1,189 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; -import java.io.FileInputStream; -import java.io.InputStreamReader; -import java.io.Reader; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Enumeration; - -import javax.wsdl.Definition; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.StringTokenizer; - -/** - * BP2201. - * <context>For a candidate Web service definition within a WSDL document with a XML declaration statement. </context> - * <assertionDescription>The XML declaration statement uses UTF-8 or UTF-16 for the encoding. </assertionDescription> - */ -public class BP2201 extends AssertionProcess -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2201(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private final char[] OMMITED_XML_DECLARATION_DELIMITERS = new char[]{0x20, - 0x9, 0xD, 0xA, '\'', '\"'}; - private final char[] XML_DECLARATION_DELIMITERS = new char[]{'='}; - private final String UTF_8_ENCODING = "UTF-8"; - private final String UTF_16_ENCODING = "UTF-16"; - private final String ENCODING_TOKEN = "encoding"; - /* - * (non-Javadoc) - * - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, - * org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate(TestAssertion testAssertion, - EntryContext entryContext) throws WSIException - { - result = AssertionResult.RESULT_PASSED; - Definition definition = (Definition) entryContext.getEntry() - .getEntryDetail(); - String location = definition.getDocumentBaseURI(); - String xmlDecl = readXMLDeclarationStatement(location); - if (xmlDecl == null) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } else - { - if (!validEncoding(xmlDecl)) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail(xmlDecl, entryContext); - } - } - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } - /** - * Reads an XML declaration statement. - * - * @param location - * @return String - */ - private String readXMLDeclarationStatement(String location) - { - String result = null; - if (location != null) - { - URL url = null; - Reader reader = null; - try - { - try - { - url = new URL(location); - } catch (MalformedURLException e) - { - // we should try to access location as file - } - if (url != null) - { - reader = new InputStreamReader(url.openStream()); - } else - { - reader = new InputStreamReader(new FileInputStream(location)); - } - int charCode; - boolean end = false; - if (reader.ready()) - { - charCode = reader.read(); - while (reader.ready() && !(charCode == '<')) - { - charCode = reader.read(); - } - char[] c = new char[4]; - reader.read(c); - StringBuffer buf = new StringBuffer(); - if (new String(c).toLowerCase().equals("?xml")) - { - buf.append("<?xml"); - while (reader.ready() && !end) - { - charCode = reader.read(); - buf.append((char) charCode); - end = charCode == '>'; - } - } else - { - // NOTE: This result does not get propogated back! - this.result = AssertionResult.RESULT_NOT_APPLICABLE; - return null; - } - result = buf.toString(); - } - } catch (Exception e) - { - //VERBOSE - if (validator.verboseOption) - { - System.err.println(" [WSI2201] Exception: " + e.getMessage()); - } - } finally - { - if (reader != null) - { - try - { - reader.close(); - } catch (Throwable e) - { - } - } - } - } - return result; - } - /* - * Verify xml declaration contains utf-16 or utf-8 encoding. @param xmlDecl - - * xml declaration @return - */ - private boolean validEncoding(String xmlDecl) - { - //boolean result = false; - boolean result = true; - if (xmlDecl != null) - { - StringTokenizer st = new StringTokenizer( - OMMITED_XML_DECLARATION_DELIMITERS, XML_DECLARATION_DELIMITERS); - Enumeration tokens = st.parse(xmlDecl); - boolean found = false; - while (tokens.hasMoreElements() && !found) - { - String token = (String) tokens.nextElement(); - if (token.equals(ENCODING_TOKEN)) - { - found = true; - tokens.nextElement(); - String enc = (String) tokens.nextElement(); - result = UTF_8_ENCODING.equalsIgnoreCase(enc) - || UTF_16_ENCODING.equalsIgnoreCase(enc); - } - } - } - return result; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2202.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2202.java deleted file mode 100644 index 0a398fc32..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2202.java +++ /dev/null @@ -1,428 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 2009 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.io.FileInputStream; -import java.io.InputStreamReader; -import java.io.Reader; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.Iterator; -import java.util.List; - -import javax.wsdl.Definition; -import javax.wsdl.Types; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.schema.Schema; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.util.StringTokenizer; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - - -/** - * BP2202. - * <context>For a candidate wsdl:types element within a WSDL document which imports an XML schema directly or indirectly.</context> - * <assertionDescription>The imported schema uses UTF-8 or UTF-16 for the encoding.</assertionDescription> - */ -public class BP2202 extends AssertionProcess implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2202(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private ErrorList errors = new ErrorList(); - private boolean importFound = false; - - private final char[] OMMITED_XML_DECLARATION_DELIMITERS = - new char[] { 0x20, 0x9, 0xD, 0xA, '\'', '\"' }; - private final char[] XML_DECLARATION_DELIMITERS = new char[] { '=' }; - private final String UTF_8_ENCODING = "UTF-8"; - private final String UTF_16_ENCODING = "UTF-16"; - - private final String ENCODING_TOKEN = "encoding"; - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - - //Definition def = (Definition) entryContext.getEntry().getEntryDetail(); - Types types = (Types) entryContext.getEntry().getEntryDetail(); - List exts = null; - //if (def.getTypes() != null) - if (types != null) - //exts = def.getTypes().getExtensibilityElements(); - exts = types.getExtensibilityElements(); - if (exts != null) - { - Definition definition = null; - if ((definition = - validator.analyzerContext.getCandidateInfo().getDefinition(types)) - == null) - { - throw new WSIException("Could not find types definition in any WSDL document."); - } - - Iterator it = exts.iterator(); - while (it.hasNext()) - { - ExtensibilityElement el = (ExtensibilityElement) it.next(); - if (el instanceof Schema - && el.getElementType().equals(ELEM_XSD_SCHEMA)) - searchForSchema(((Schema) el).getElement(), - definition.getDocumentBaseURI(), new ArrayList()); - } - } - - if (!errors.isEmpty()) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - } - - else if (!importFound) - result = AssertionResult.RESULT_NOT_APPLICABLE; - - else - result = AssertionResult.RESULT_PASSED; - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } - - /* - * Search xsd schema or xsd import from node. If node is xsd import it's loading schema. - * @param n - node - */ - private void searchForSchema(Node n, String context, List processedSchemas) - { - if ((n!= null) && (!processedSchemas.contains(n))) - { - while (n != null) - { - // searches for xsd:import element - if (Node.ELEMENT_NODE == n.getNodeType()) - { - // if xsd:schema element is found -> process schema - if (XMLUtils.equals(n, ELEM_XSD_SCHEMA)) - { - processSchema(n, context, processedSchemas); - } - else - { - // if xsd:import element is found -> load schema and process schema - if (XMLUtils.equals(n, ELEM_XSD_IMPORT)) - { - importFound = true; - loadSchema(n, context, processedSchemas); - } - else - // else iterate element recursively - searchForSchema(n.getFirstChild(), context, processedSchemas); - } - } - n = n.getNextSibling(); - } - } - } - - /* - * It loads xsd schema and then check valid encoding and looking for xsd:schema element for next process. - * @param importNode - xsd schema - */ - private void loadSchema(Node importNode, String context, List processedSchemas) - { - Element im = (Element) importNode; - Attr schemaLocation = XMLUtils.getAttribute(im, ATTR_XSD_SCHEMALOCATION); - // try to parse imported XSD - if (schemaLocation != null && schemaLocation.getValue() != null) - try - { - // if any error or root element is not XSD schema -> error - String decl = - readXMLDeclarationStatement(schemaLocation.getValue(), context); - if (!validDeclaration(decl, - ENCODING_TOKEN, - new String[] { UTF_8_ENCODING, UTF_16_ENCODING })) - { - Attr a = XMLUtils.getAttribute(im, ATTR_XSD_NAMESPACE); - errors.add((a != null) ? a.getValue() : ""); - } - - if (!validDeclaration(decl, "version", new String[] { "1.0" })) - { - errors.add( - "Version number in XML declaration is not 1.0. XML schema file: " - + schemaLocation.getValue()); - } - - // DEBUG: - // System.out.println(schemaLocation.getValue() + ":" + context); - - Document schema = - validator.parseXMLDocumentURL(schemaLocation.getValue(), context); - - if (XMLUtils.equals(schema.getDocumentElement(), ELEM_XSD_SCHEMA)) - { - processSchema(schema.getDocumentElement(), - XMLUtils.createURLString(schemaLocation.getValue(), context), processedSchemas); - } - result = AssertionResult.RESULT_PASSED; - } - catch (Throwable t) - { - } - } - - /** - * Reads an XML declaration statement. - * @param location - * @return String - */ - private String readXMLDeclarationStatement(String location, String baseURI) - { - String result = null; - try - { - new URL(location); - } - catch (Throwable t) - { - // nothing - int i = baseURI.lastIndexOf('/'); - int j = baseURI.lastIndexOf('\\'); - if (j > i) - i = j; - location = baseURI.substring(0, i + 1) + location; - } - - if (location != null) - { - URL url = null; - Reader reader = null; - - try - { - try - { - url = new URL(location); - } - catch (MalformedURLException e) - { - // we should try to access location as file - } - - if (url != null) - { - reader = new InputStreamReader(url.openStream()); - } - else - { - reader = new InputStreamReader(new FileInputStream(location)); - } - - int charCode; - boolean end = false; - if (reader.ready()) - { - charCode = reader.read(); - - while (reader.ready() && !(charCode == '<')) - { - charCode = reader.read(); - } - - StringBuffer buf = new StringBuffer(); - if (charCode == '<') - { - buf.append((char) charCode); - while (reader.ready() && !end) - { - charCode = reader.read(); - buf.append((char) charCode); - - end = charCode == '>'; - } - } - else - { - // NOTE: This result does not get propogated back! - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = - "Cannot read the XML declaration statement."; - } - - result = buf.toString(); - } - } - catch (Exception e) - { - errors.add(e.getMessage()); - } - finally - { - if (reader != null) - { - try - { - reader.close(); - } - catch (Throwable e) - { - } - } - } - } - - return result; - } - - /* - * @param xmlDecl - xml declaration - * @return if xml declaration contains encoding="utf-16" or encoding="utf-8" it retirns true. - */ - - //private boolean validEncoding(String xmlDecl) - //{ - // //boolean result = false; - // boolean result = true; - // if (xmlDecl != null) - // { - // StringTokenizer st = - // new StringTokenizer( - // OMMITED_XML_DECLARATION_DELIMITERS, - // XML_DECLARATION_DELIMITERS); - // Enumeration tokens = st.parse(xmlDecl); - // boolean found = false; - // while (tokens.hasMoreElements() && !found) - // { - // String token = (String) tokens.nextElement(); - // - // if (token.equals(ENCODING_TOKEN)) - // { - // found = true; - // - // tokens.nextElement(); - // String enc = (String) tokens.nextElement(); - // - // result = - // UTF_8_ENCODING.equalsIgnoreCase(enc) - // || UTF_16_ENCODING.equalsIgnoreCase(enc); - // } - // } - // } - // - // return result; - //} - - /** - * @param xmlDecl - xml declaration - * @return if xml declaration contains valid version number then true is returned. - */ - private boolean validDeclaration( - String xmlDecl, - String tokenName, - String[] checkValueList) - { - //boolean result = false; - boolean result = true; - if (xmlDecl != null) - { - StringTokenizer st = - new StringTokenizer( - OMMITED_XML_DECLARATION_DELIMITERS, - XML_DECLARATION_DELIMITERS); - Enumeration tokens = st.parse(xmlDecl); - - if (tokens.hasMoreElements()) - { - boolean found = false; - while (tokens.hasMoreElements() && !found) - { - String token = (String) tokens.nextElement(); - - if (token.equals(tokenName)) - { - found = true; - result = false; - - tokens.nextElement(); - String tokenValue = (String) tokens.nextElement(); - - for (int i = 0; i < checkValueList.length && !result; i++) - { - if (checkValueList[i].equalsIgnoreCase(tokenValue)) - result = true; - } - } - } - } - - // If there are no tokens then it is not a valid declaraction - else - { - result = false; - } - } - - return result; - } - - /* - * It's looking for xsd import and load it if find. - * @param schema - xsd schema - * @param namespace - namespace of schema - */ - private void processSchema(Node schema, String context, List processedSchemas) - { - if ((schema != null) && (!processedSchemas.contains(schema))) - { - processedSchemas.add(schema); - Node n = schema.getFirstChild(); - while (n != null) - { - if (Node.ELEMENT_NODE == n.getNodeType() - && XMLUtils.equals(n, ELEM_XSD_IMPORT)) - { - importFound = true; - loadSchema(n, context, processedSchemas); - } - - n = n.getNextSibling(); - } - } - } - -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2208.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2208.java deleted file mode 100644 index c35963300..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2208.java +++ /dev/null @@ -1,72 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Operation; -import javax.wsdl.OperationType; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - - -/** - * BP2208. - * <context>For a candidate wsdl:operation in a wsdl:portType definition</context> - * <assertionDescription>The wsdl:operation element is either a WSDL request/response or a one-way operation (no Notification or Sollicit-Response).</assertionDescription> - */ -public class BP2208 extends AssertionProcess -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2208(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - Operation operation = - (Operation) entryContext.getEntry().getEntryDetail(); - OperationType opType = operation.getStyle(); - if ((opType == null) - || (!opType.equals(OperationType.ONE_WAY) - && !opType.equals(OperationType.REQUEST_RESPONSE))) - { - result = AssertionResult.RESULT_FAILED; - if (opType == null) - failureDetail = - this.validator.createFailureDetail( - "Could not determine the operation type for " - + operation.getName() - + ".", - entryContext); - else - failureDetail = null; // none defined in TAD at present - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2402.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2402.java deleted file mode 100644 index 74f3da49e..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2402.java +++ /dev/null @@ -1,69 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Binding; -import javax.wsdl.extensions.soap.SOAPBinding; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - - -/** - * BP2402. - * <context>For a candidate wsdl:binding element</context> - * <assertionDescription>The wsdl:binding element has a soapbind:binding child element.</assertionDescription> - */ -public class BP2402 extends AssertionProcess -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2402(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - - // Get the port from the entry context - //Port port = (Port) entryContext.getEntry().getEntryDetail(); - Binding binding = (Binding) entryContext.getEntry().getEntryDetail(); - - // Try to get the SOAP binding - SOAPBinding soapBinding = WSDLValidatorImpl.getSoapBinding(binding); - - // Test the assertion - // Check that there is at least one SOAP Binding - if (soapBinding != null) - { - result = AssertionResult.RESULT_PASSED; - failureDetail = null; - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2404.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2404.java deleted file mode 100644 index 688e8d506..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2404.java +++ /dev/null @@ -1,76 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Binding; -import javax.wsdl.extensions.soap.SOAPBinding; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - - -/** - * BP2404. - * <context>For a candidate wsdl:binding element</context> - * <assertionDescription>The contained soap:binding element has a "transport" attribute, which has value: http://schemas.xmlsoap.org/soap/http.</assertionDescription> - */ -public class BP2404 extends AssertionProcess -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2404(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - result = AssertionResult.RESULT_PASSED; - - // Get the binding from the entry context - Binding binding = (Binding) entryContext.getEntry().getEntryDetail(); - - // Try to get the SOAP binding - SOAPBinding soapBinding = WSDLValidatorImpl.getSoapBinding(binding); - - // Test the assertion - // Check for Soap binding namespace - if ((soapBinding == null) - || (soapBinding.getTransportURI() == null) - || !soapBinding.getTransportURI().equals(WSIConstants.NS_URI_SOAP_HTTP)) - { - result = AssertionResult.RESULT_FAILED; - this.validator.createFailureDetail( - soapBinding == null - ? "WSDL document does not contain SOAP binding element." - : soapBinding.toString(), - entryContext); - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2406.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2406.java deleted file mode 100644 index 9d5d8ed2a..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2406.java +++ /dev/null @@ -1,166 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Binding; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPFault; -import javax.wsdl.extensions.soap.SOAPHeader; -import javax.wsdl.extensions.soap.SOAPHeaderFault; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - - -/** - * BP2406. - * <context>For a candidate wsdl:binding element, if the use attribute is specified on the soapbind:body, soapbind:fault, soapbind:header, or soapbind:headerfault elements.</context> - * <assertionDescription>The use attribute has a value of "literal".</assertionDescription> - */ -public class BP2406 extends AssertionProcess -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2406(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - // Get the binding from the entry context - Binding binding = (Binding) entryContext.getEntry().getEntryDetail(); - - // Get SOAP body elements - SOAPBody[] soapBodies = this.validator.getSoapBodies(binding); - - // ADD: What happens if there are no soap body elements? Right now the TA result is NA. - - // Test the assertion - // Check for correct use value - for (int i = 0; i < soapBodies.length; i++) - { - SOAPBody soapBody = soapBodies[i]; - if (soapBody.getUse() != null - && !soapBody.getUse().equals(WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT)) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - this.validator.createFailureDetail(soapBody.toString(), entryContext); - break; - } - } - - // Get SOAP fault elements - SOAPFault[] soapFaults = this.validator.getSoapFaults(binding); - - // Test the assertion - // Check for correct use value - for (int i = 0; i < soapFaults.length; i++) - { - SOAPFault soapFault = soapFaults[i]; - if (soapFault.getUse() != null - && !soapFault.getUse().equals(WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT)) - { - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = - (failureDetailMessage == null - ? soapFault.toString() - : failureDetailMessage + "\n\n" + soapFault.toString()); - if (failureDetail == null) - failureDetail = - this.validator.createFailureDetail(failureDetailMessage, entryContext); - else - failureDetail.setFailureMessage(failureDetailMessage); - break; - } - } - - // Get SOAP header elements - SOAPHeader[] soapHeaders = this.validator.getSoapHeaders(binding); - - // Test the assertion - // Check for correct use value - for (int i = 0; i < soapHeaders.length; i++) - { - SOAPHeader soapHeader = soapHeaders[i]; - if (soapHeader.getUse() != null - && !soapHeader.getUse().equals(WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT)) - { - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = - (failureDetailMessage == null - ? soapHeader.toString() - : failureDetailMessage + "\n\n" + soapHeader.toString()); - if (failureDetail == null) - failureDetail = - this.validator.createFailureDetail(failureDetailMessage, entryContext); - else - failureDetail.setFailureMessage(failureDetailMessage); - break; - } - } - - // Get SOAP header fault elements - SOAPHeaderFault[] soapHeaderFaults = this.validator.getSoapHeaderFaults(binding); - - // Test the assertion - // Check for correct use value - for (int i = 0; i < soapHeaderFaults.length; i++) - { - SOAPHeaderFault soapHeaderFault = soapHeaderFaults[i]; - if (soapHeaderFault.getUse() != null - && !soapHeaderFault.getUse().equals( - WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT)) - { - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = - (failureDetailMessage == null - ? soapHeaderFault.toString() - : failureDetailMessage + "\n\n" + soapHeaderFault.toString()); - if (failureDetail == null) - failureDetail = - this.validator.createFailureDetail(failureDetailMessage, entryContext); - else - failureDetail.setFailureMessage(failureDetailMessage); - break; - } - } - - // If the result is passed, but there was nothing to check then set to notApplicable - if (result == AssertionResult.RESULT_PASSED - && (soapBodies == null || soapBodies.length == 0) - && (soapFaults == null || soapFaults.length == 0) - && (soapHeaders == null || soapHeaders.length == 0) - && (soapHeaderFaults == null || soapHeaderFaults.length == 0)) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2416.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2416.java deleted file mode 100644 index 1a1eba328..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2416.java +++ /dev/null @@ -1,209 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import javax.wsdl.Binding; -import javax.wsdl.Definition; -import javax.wsdl.Fault; -import javax.wsdl.Input; -import javax.wsdl.Operation; -import javax.wsdl.Output; -import javax.wsdl.Port; -import javax.wsdl.PortType; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; - - -/** -* BP2416. -* <context>For a candidate wsdl:definitions</context> -* <assertionDescription>Every QName in the WSDL document and its imports, is referencing an element in a namespace that has either been imported or defined in the WSDL document that contains the reference.</assertionDescription> -*/ -public class BP2416 extends AssertionProcessVisitor -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2416(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private static final String NS_LIST_KEY = "namespaces"; - - /** - * Checks whether the namespace is defined or imported in the definition. - * @param qname - * @param ctx - */ - private void checkNamespace(QName qname, WSDLTraversalContext ctx) - { - if (qname != null) - { - String namespace = qname.getNamespaceURI(); - - if (namespace != null) - { - List namespaces = (List) ctx.getParameter(NS_LIST_KEY); - - if (!namespaces.contains(namespace)) - { - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = namespace; - - ctx.cancelProcessing(); - } - } // ??? should we do something otherwise - } - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Port, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Port port, Object parent, WSDLTraversalContext ctx) - { - if (port != null) - { - Binding binding = port.getBinding(); - if (binding != null) - { - checkNamespace(binding.getQName(), ctx); - } - } - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Binding, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Binding binding, Object parent, WSDLTraversalContext ctx) - { - if (binding != null) - { - PortType pType = binding.getPortType(); - if (pType != null) - { - checkNamespace(pType.getQName(), ctx); - } - } - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Operation, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - Operation operation, - Object parent, - WSDLTraversalContext ctx) - { - if (operation != null) - { - Input input = operation.getInput(); - if (input != null && input.getMessage() != null) - { - checkNamespace(input.getMessage().getQName(), ctx); - } - - Output output = operation.getOutput(); - if (output != null && output.getMessage() != null) - { - checkNamespace(output.getMessage().getQName(), ctx); - } - - Map faults = operation.getFaults(); - for (Iterator iter = faults.values().iterator(); iter.hasNext();) - { - Fault fault = (Fault) iter.next(); - - if (fault.getMessage() != null) - { - checkNamespace(fault.getMessage().getQName(), ctx); - } - } - } - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Message, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - /* REMOVE: This is already done in WSI2417 - public void visit(Message message, Object parent, WSDLTraversalContext ctx) { - if (message != null) { - Map parts = message.getParts(); - for (Iterator iter = parts.values().iterator(); iter.hasNext();) { - Part part = (Part) iter.next(); - - checkNamespace(part.getElementName(), ctx); - checkNamespace(part.getTypeName(), ctx); - } - } - } - */ - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_PASSED; - - // Get the definition from the entry context - Definition definition = - (Definition) entryContext.getEntry().getEntryDetail(); - - // get list of namespaces imported and defined in the definition - List namespaces = this.validator.getWSDLTargetNamespaceList(definition); - - // REMOVE: - //Map namespaces = definition.getNamespaces(); - - // traverse definition to check namespaces - Map params = new HashMap(); - params.put(NS_LIST_KEY, namespaces); - - WSDLTraversal traversal = new WSDLTraversal(); - // VisitorAdaptor.adapt(this); - traversal.setVisitor(this); - traversal.visitOperation(true); - traversal.visitBinding(true); - traversal.visitMessage(true); - traversal.visitPort(true); - - traversal.ignoreImport(); - traversal.ignoreReferences(); - traversal.traverse(definition, params); - - if (result.equals(AssertionResult.RESULT_FAILED)) - { - this.validator.createFailureDetail(failureDetailMessage, entryContext); - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2417.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2417.java deleted file mode 100644 index 1743d4995..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2417.java +++ /dev/null @@ -1,160 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Vector; - -import javax.wsdl.Definition; -import javax.wsdl.Message; -import javax.wsdl.Part; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; - - -/** - * BP2417. - * <context>For a candidate wsdl:definitions</context> - * <assertionDescription>Every QName in the WSDL document and its imports and that - * is referring to a schema component, uses the namespace defined in the targetNamespace - * attribute on the xs:schema element, or a namespace defined in the namespace attribute - * on an xs:import element within the xs:schema element.</assertionDescription> - */ -public class BP2417 extends AssertionProcessVisitor -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2417(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private ErrorList errorList = new ErrorList(); - private static final String NS_LIST_KEY = "namespaces"; - - /** - * Checks whether the namespace is defined or imported in the definition. - * @param qname - * @param ctx - */ - private void checkNamespace(QName qname, WSDLTraversalContext ctx) - { - if (qname != null) - { - String namespace = qname.getNamespaceURI(); - - if (namespace != null) - { - List namespaceList = (List) ctx.getParameter(NS_LIST_KEY); - - if ((namespaceList != null) && !namespaceList.contains(namespace)) - { - errorList.add(qname); - } - } - } - } - - /** - * @see org.eclipse.wst.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Message, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Message message, Object parent, WSDLTraversalContext ctx) - { - if (message != null) - { - Map parts = message.getParts(); - - for (Iterator iter = parts.values().iterator(); iter.hasNext();) - { - Part part = (Part) iter.next(); - - checkNamespace(part.getElementName(), ctx); - checkNamespace(part.getTypeName(), ctx); - } - } - } - - /** - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_PASSED; - - // Get the definition from the entry context - Definition definition = - (Definition) entryContext.getEntry().getEntryDetail(); - - // Get a list of all schema targetNamespaces - List tnsList = null; - try - { - if ((tnsList = this.validator.getSchemaNamespaceList(definition)) == null) - tnsList = new Vector(); - } - - catch (WSIException e) - { - // This exception would indicate that the schema definition had a problem - tnsList = new Vector(); - } - - // Always add XML schema namespace to cover built-in types - tnsList.add(WSIConstants.NS_URI_XSD); - - // Traverse definition to check schema namespaces - Map params = new HashMap(); - params.put(NS_LIST_KEY, tnsList); - - WSDLTraversal traversal = new WSDLTraversal(); - traversal.setVisitor(this); - traversal.visitMessage(true); - - traversal.ignoreImport(); - traversal.ignoreReferences(); - traversal.traverse(definition, params); - - // If there were no errors, then the assertion passed - if (errorList.isEmpty()) - { - result = AssertionResult.RESULT_PASSED; - } - - // Otherwise it failed / create the failure detail using the QNames that were in error - else - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(errorList.toString(), entryContext); - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2700.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2700.java deleted file mode 100644 index 1064e14c3..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2700.java +++ /dev/null @@ -1,81 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.Utils; -import org.xml.sax.SAXException; - -/** - * BP2700. - * <context>For a candidate wsdl:definitions element within a WSDL document.</context> - * <assertionDescription>The wsdl:definitions is a well-formed XML 1.0 document.</assertionDescription> - */ -public class BP2700 extends AssertionProcess -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2700(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - result = AssertionResult.RESULT_PASSED; - - try - { - //String wsdlURI = entryContext.getWSDLDocument().getDefinitions().getDocumentBaseURI(); - // TEMP: Need to define a better way to get the WSDL URI - String wsdlURI = entryContext.getEntry().getReferenceID(); - // non-validating parse - validator.parseXMLDocumentURL(wsdlURI, null); - } - - catch (WSIException e) - { - if (e.getTargetException() instanceof SAXException) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - this.validator.createFailureDetail( - Utils.getExceptionDetails(e.getTargetException()), - entryContext); - } - } - - catch (Exception e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = - this.validator.createFailureDetail(Utils.getExceptionDetails(e), entryContext); - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2701.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2701.java deleted file mode 100644 index 124c1f99a..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2701.java +++ /dev/null @@ -1,89 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Definition; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - - -/** - * BP2701. - * <context>For a candidate wsdl:definitions element within a WSDL document.</context> - * <assertionDescription>The wsdl:definitions namespace has value: http://schemas.xmlsoap.org/wsdl/.</assertionDescription> - */ -public class BP2701 extends AssertionProcess -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2701(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - Definition def = (Definition) entryContext.getEntry().getEntryDetail(); - - /* - if (def != null) { - QName qname = def.getQName(); - - if (qname != null) { - //if (def.getNamespace("").equals(WSIConstants.NS_URI_WSDL) { - if (qname.getNamespaceURI().equals(WSIConstants.NS_URI_WSDL)) { - result = AssertionResult.RESULT_PASSED; - } - } - } - */ - - try - { - String schemaUsed = this.validator.getSchemaUsed(def); - if (schemaUsed.equals(WSIConstants.NS_URI_WSDL)) - { - result = AssertionResult.RESULT_PASSED; - } - - else - { - result = AssertionResult.RESULT_FAILED; - } - } - - catch (AssertionFailException e) - { - result = AssertionResult.RESULT_FAILED; - //ADD: failure description? - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2703.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2703.java deleted file mode 100644 index 3e2565178..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2703.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - - -/** - * BP2703. - * <context>For a candidate description within a WSDL document, if it uses the WSDL namespace</context> - * <assertionDescription>The definition conforms to the WSDL schema located at http://schemas.xmlsoap.org/wsdl/2003-02-11.xsd</assertionDescription> - */ -public class BP2703 extends AssertionProcess -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2703(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - // note that this assertion is redundant, since the base wsdl validator checks this already. - return validator.createAssertionResult(testAssertion, AssertionResult.RESULT_PASSED, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2803.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2803.java deleted file mode 100644 index a2602a2a8..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2803.java +++ /dev/null @@ -1,87 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.net.URI; - -import javax.wsdl.Import; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionNotApplicableException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; - - -/** - * BP2803 - * <context>For a candidate wsdl:import element</context> - * <assertionDescription>The "namespace" attribute is specified for the wsdl:import element, and the attribute's value is not a relative URI.</assertionDescription> - */ -public class BP2803 extends AssertionProcess -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP2803(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - - // Getting wsdl:import - Import im = (Import) entryContext.getEntry().getEntryDetail(); - - try - { - // If there is no the "namespace" attribute in the import, - // the assertion is not applicable - if (im.getNamespaceURI() == null) - { - throw new AssertionNotApplicableException(); - } - - // If a namespace URI is relative or invalid, the assertion failed - URI uri = new URI(im.getNamespaceURI()); - if (!uri.isAbsolute()) - { - throw new AssertionFailException( - im.getNamespaceURI() + " is relative URI."); - } - } - catch (AssertionNotApplicableException anae) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - catch (Exception e) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = validator.createFailureDetail( - e.getMessage(), entryContext); - } - - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP4200.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP4200.java deleted file mode 100644 index 6ec065bbd..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP4200.java +++ /dev/null @@ -1,162 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Definition; -import javax.wsdl.Types; -import javax.wsdl.extensions.ExtensibilityElement; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; - -/** - * BP4200. - * <context>For a candidate wsdl:definitions that contains a wsdl extension element or attribute from a namespace other than "http://schemas.xmlsoap.org/wsdl/soap/".</context> - * <assertionDescription>Contained WSDL extension elements that do not belong to the "http://schemas.xmlsoap.org/wsdl/soap/" namespaces may require out of band negotiation.</assertionDescription> -*/ -public class BP4200 extends AssertionProcessVisitor implements WSITag -{ - private final WSDLValidatorImpl validator; - private ErrorList errorList = new ErrorList(); - - /** - * @param WSDLValidatorImpl - */ - public BP4200(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.ExtensibilityElement, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(ExtensibilityElement obj, Object parent, - WSDLTraversalContext ctx) - { - // If a child element of wsdl:types is from a namespace other than - // "http://www.w3.org/2001/XMLSchema" - if (parent instanceof Types) - { - //if (!obj.getElementType().getNamespaceURI().equals( - // WSIConstants.NS_URI_XSD)) - //{ - // Add element name to error list - // errorList.add(obj.getElementType()); - //} - } - // or any other ext element coming from a namespace other than - // "http://schemas.xmlsoap.org/wsdl/soap/" - else if (!obj.getElementType().getNamespaceURI().equals(WSIConstants.NS_URI_WSDL_SOAP) - && !obj.getElementType().getNamespaceURI().equals(WSIConstants.NS_URI_WSDL)) - { - // Add element name to error list - errorList.add(obj.getElementType()); - } - } - - /** - * (non-Javadoc) - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate(TestAssertion testAssertion, - EntryContext entryContext) throws WSIException - { - // Get the definition from the entry context - Definition definition = - (Definition) entryContext.getEntry().getEntryDetail(); - - WSDLTraversal traversal = new WSDLTraversal(); - traversal.setVisitor(this); - - traversal.visitExtensibilityElement(true); - traversal.visitElement(true); - - traversal.ignoreImport(); - traversal.ignoreReferences(); - traversal.traverse(definition); - - try - { - // getting WSDL document. - Document doc = validator.parseXMLDocumentURL(definition.getDocumentBaseURI(), null); - if (doc != null) - { - checkElement(doc.getDocumentElement()); - - if (errorList.isEmpty()) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - { - failureDetail = validator.createFailureDetail( - testAssertion.getDetailDescription() + "\n\n" + errorList.toString(), - entryContext); - } - } - } - catch (Throwable t) - { - } - // Return assertion result - return validator.createAssertionResult( - testAssertion, result, failureDetail); - } - - /** - * Checking on wsdl elements recursively whether they contain extension attributes. - * @param elem Element. - */ - private void checkElement(Element elem) - { - while (elem != null) - { - String elemNS = elem.getNamespaceURI(); - NamedNodeMap attrs = elem.getAttributes(); - if (attrs != null) - { - for (int i = 0; i < attrs.getLength(); i++) - { - Attr attr = (Attr) attrs.item(i); - String attrNS = attr.getNamespaceURI(); - if (attrNS != null - && !attrNS.equals(WSIConstants.NS_URI_XMLNS) - && !attrNS.equals(WSIConstants.NS_URI_WSDL) - && !attrNS.equals(WSIConstants.NS_URI_WSDL_SOAP)) - { - errorList.add("Extensibility attribute " + attr.getName() - + "for the " + elem.getNodeName() + " element is found."); - } - } - } - - if (!elemNS.equals(WSIConstants.NS_URI_XSD)) - { - checkElement(XMLUtils.getFirstChild(elem)); - } - elem = XMLUtils.getNextSibling(elem); - } - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP4201.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP4201.java deleted file mode 100644 index 21f131f16..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP4201.java +++ /dev/null @@ -1,144 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.net.URISyntaxException; -import java.util.Iterator; - -import javax.wsdl.Definition; -import javax.wsdl.Import; -import javax.wsdl.Port; -import javax.wsdl.extensions.soap.SOAPAddress; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; - - -/** -* BP4201. -* <context>For a candidate wsdl:import element, where the location attribute or the namespace attribute has a value that is a relative URI, or a for soap:address element where the location attribute is a relative URI.</context> -* <assertionDescription>The use of a relative URI as the value for a wsdl:import location or namespace attribute, or for a soap:address location attribute may require out of band coordination.</assertionDescription> -*/ -public class BP4201 extends AssertionProcessVisitor -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP4201(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - private ErrorList errorList = new ErrorList(); - - /** - * (non-Javadoc) - * @see org.eclipse.wst.wsi.wsdl.traversal.WSDLVisitor#visit(Import, Object, WSDLTraversalContext) - */ - public void visit(Import obj, Object parent, WSDLTraversalContext ctx) - { - if(obj != null) - { - if(isRelativeURI(obj.getNamespaceURI()) || - isRelativeURI(obj.getLocationURI())) - { - errorList.add(obj.getNamespaceURI(), obj.getLocationURI()); - } - } - } - - /** - * (non-Javadoc) - * @see org.eclipse.wst.wsi.wsdl.traversal.WSDLVisitor#visit(Port, Object, WSDLTraversalContext) - */ - public void visit(Port obj, Object parent, WSDLTraversalContext ctx) - { - if(obj != null) - { - Iterator it = obj.getExtensibilityElements().iterator(); - while (it.hasNext()) - { - Object e = (Object) it.next(); - // for each SOAPAddress elements check LocationURI - if(e instanceof SOAPAddress) { - if(isRelativeURI(((SOAPAddress) e).getLocationURI())) - { - errorList.add(((SOAPAddress) e).getElementType() + - ":" + ((SOAPAddress) e).getLocationURI()); - } - } - } - } - } - - /** - * (non-Javadoc) - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_PASSED; - - // Get the definition from the entry context - Definition definition = - (Definition) entryContext.getEntry().getEntryDetail(); - - WSDLTraversal traversal = new WSDLTraversal(); - traversal.setVisitor(this); - traversal.visitImport(true); - traversal.visitPort(true); - traversal.ignoreReferences(); - traversal.traverse(definition); - - if (errorList.isEmpty()) - { - return validator.createAssertionResult(testAssertion, - AssertionResult.RESULT_NOT_APPLICABLE, (String) null); - } - - failureDetail = this.validator.createFailureDetail(testAssertion.getFailureMessage() + - "\n\n" + errorList.toString(), entryContext); - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } - /** - * Returns true if URI is relative - * @param s - URI - * @return true - if URI is relative, false - in other case - */ - private boolean isRelativeURI(String s) - { - if(s == null) - return false; - try - { - if(new java.net.URI(s).isAbsolute()) - { - return false; - } - } catch (URISyntaxException e) - { - return false; - } - return true; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP4202.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP4202.java deleted file mode 100644 index f1a548247..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP4202.java +++ /dev/null @@ -1,132 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 2009 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Message; -import javax.wsdl.Types; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.schema.Schema; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; -import org.eclipse.wst.wsi.internal.core.xml.schema.XMLSchemaProcessor; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - - -/** - * BP4202. - * <context>For an XML schema definition defined in the wsdl:types element, or imported directly or indirectly by a schema definition defined in the wsdl:types element, which contains any schema annotation elements.</context> - * <assertionDescription>An XML schema definition defined in the wsdl:types element, or imported directly or indirectly by a schema definition defined in the wsdl:types element, may use schema annotation elements as an extensibility mechanism.</assertionDescription> - */ - public class BP4202 extends AssertionProcessVisitor implements WSITag - { - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public BP4202(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private static final String ANNOTATION_KEY = "annotation"; - - private ErrorList errorList = new ErrorList(); - private AnnotationProcessor processor; - - /** - * (non-Javadoc) - * @see org.eclipse.wst.wsi.wsdl.traversal.WSDLVisitor#visit(Message, Object, WSDLTraversalContext) - */ - public void visit(ExtensibilityElement obj, Object parent, WSDLTraversalContext ctx) - { - if((obj != null) && (obj instanceof Schema)) - { - Schema el = (Schema) obj; - try { - processor.processAllSchema(el.getElement()); - } catch (WSIException e) {} - } - } - - /** - * (non-Javadoc) - * @see org.eclipse.wst.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_PASSED; - - // Get the types from the entry context - Types types = - (Types) entryContext.getEntry().getEntryDetail(); - - processor = new AnnotationProcessor( - entryContext.getWSDLDocument().getDefinitions().getDocumentBaseURI()); - - WSDLTraversal traversal = new WSDLTraversal(); - traversal.setVisitor(this); - traversal.visitExtensibilityElement(true); - traversal.ignoreReferences(); - traversal.traverse(types); - - if (errorList.isEmpty()) - { - return validator.createAssertionResult(testAssertion, - AssertionResult.RESULT_NOT_APPLICABLE, (String) null); - } - - failureDetail = this.validator.createFailureDetail(testAssertion.getFailureMessage() + - "\n\n" + errorList.toString(), entryContext); - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetail); - } - - /** - * Class for parse schema and search annotation elements - */ - class AnnotationProcessor extends XMLSchemaProcessor - { - public AnnotationProcessor(String context) - { - super(context, false); - } - - protected void processSchema(Element element) - { - checkForAnnotation(element); - } - - private void checkForAnnotation(Node node) - { - if((node.getLocalName() != null) && (node.getLocalName().equals(ANNOTATION_KEY))) { - errorList.add(node.toString()); - } - for (int i = 0; i < node.getChildNodes().getLength(); i++) - { - checkForAnnotation(node.getChildNodes().item(i)); - } - } - } - }
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/SSBP2209.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/SSBP2209.java deleted file mode 100644 index 4c4dd0f25..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/SSBP2209.java +++ /dev/null @@ -1,29 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - - -/** - * SSBP2209 - * - * <context>For a candidate wsdl:binding element</context> - * <assertionDescription>The wsdl:binding binds every wsdl:part of a wsdl:message in the wsdl:portType to which it refers to one of soapbind:body, soapbind:header, soapbind:fault or soapbind:headerfault.</assertionDescription> - */ -public class SSBP2209 extends BP2114 -{ - /** - * @param WSDLValidatorImpl - */ - public SSBP2209(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/SSBP2402.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/SSBP2402.java deleted file mode 100644 index 9291f3660..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/SSBP2402.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * SSBP2402 - */ -public class SSBP2402 extends BP2402 -{ - - /** - * @param WSDLValidatorImpl - */ - public SSBP2402(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/SSBP2403.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/SSBP2403.java deleted file mode 100644 index 041320f33..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/SSBP2403.java +++ /dev/null @@ -1,191 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Binding; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.UnknownExtensibilityElement; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; -import org.eclipse.wst.wsi.internal.core.xml.XMLTraversal; -import org.w3c.dom.Attr; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - - -/** - * SSBP2403. - * <context>For a candidate wsdl:binding element</context> - * <assertionDescription>Descendant elements and attributes in the wsdl:binding are not from the namespaces for the WSDL MIME, HTTP GET/POST or DIME binding extensions.</assertionDescription> - */ -public class SSBP2403 extends AssertionProcessVisitor implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public SSBP2403(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - - private ErrorList errors = new ErrorList(); - - /** - * Returns true if the the namespace specifies any WSDL MIME, - * HTTP GET/POST or DIME binding extensions. - * @param namespace a namespace. - * @return true if the the namespace specifies any WSDL MIME, - * HTTP GET/POST or DIME binding extensions. - */ - private boolean isNonConformantBindingExtension(String namespace) - { - boolean result = false; - if (namespace != null) - { - if (namespace.equals(WSIConstants.NS_NAME_WSDL_MIME) - || namespace.equals(WSIConstants.NS_NAME_WSDL_HTTP) - || namespace.equals(WSIConstants.NS_NAME_WSDL_DIME)) - result = true; - } - return result; - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.extensions.ExtensibilityElement, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - ExtensibilityElement exel, - Object parent, - WSDLTraversalContext ctx) - { - if (isNonConformantBindingExtension(exel - .getElementType() - .getNamespaceURI())) - errors.add(exel.getElementType()); - else - { - // extensibility element is ok, check the descendants - if (exel instanceof UnknownExtensibilityElement) - { - Element el = ((UnknownExtensibilityElement) exel).getElement(); - - // traverse all of the descendants and check for non compliant binding extensions - XMLTraversalCheckingExtensions traversal = - new XMLTraversalCheckingExtensions(); - traversal.visit(el); - } - } - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - - WSDLTraversal traversal = new WSDLTraversal(); - traversal.setVisitor(this); - traversal.visitElement(true); - traversal.visitExtensibilityElement(true); - - traversal.ignoreReferences(); - traversal.ignoreImport(); - traversal.traverse((Binding) entryContext.getEntry().getEntryDetail()); - - if (!errors.isEmpty()) - { - result = AssertionResult.RESULT_FAILED; - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - } - - else - result = AssertionResult.RESULT_PASSED; - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } - - - /** - * A specialized XMLTraversal class to check if the wsdl:binding element has any - * descendant elements/attributes from the namespaces for the WSDL MIME, - * HTTP GET/POST or DIME binding extensions. - */ - private class XMLTraversalCheckingExtensions extends XMLTraversal - { - boolean nonConformantExtensionFound = false; - - /* (non-Javadoc) - * @see org.wsi.xml.XMLTraversal#action(org.w3c.dom.Node) - */ - public boolean action(Node n) - { - return !nonConformantExtensionFound; - } - - /* (non-Javadoc) - * @see org.wsi.xml.XMLVisitor#visit(org.w3c.dom.Attr) - */ - public void visit(Attr node) - { - if (action(node)) - { - if (isNonConformantBindingExtension(node.getNamespaceURI())) - { - errors.add(node.getName()); - nonConformantExtensionFound = true; - } - } - } - - /* (non-Javadoc) - * @see org.wsi.xml.XMLVisitor#visit(org.w3c.dom.Element) - */ - public void visit(Element node) - { - if (action(node)) - { - if (isNonConformantBindingExtension(node.getNamespaceURI())) - { - errors.add(node.getNodeName()); - nonConformantExtensionFound = true; - } - else - { - // element is compliant, check attributes and descendants - visit(node.getAttributes()); - for (Node n = node.getFirstChild(); - n != null; - n = n.getNextSibling()) - { - doVisit(n); - } - } - } - } - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSDLValidatorImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSDLValidatorImpl.java deleted file mode 100644 index a5966a50b..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSDLValidatorImpl.java +++ /dev/null @@ -1,2391 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 2010 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Vector; - -import javax.wsdl.Binding; -import javax.wsdl.BindingFault; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOperation; -import javax.wsdl.BindingOutput; -import javax.wsdl.Definition; -import javax.wsdl.Fault; -import javax.wsdl.Import; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.Part; -import javax.wsdl.Port; -import javax.wsdl.PortType; -import javax.wsdl.Service; -import javax.wsdl.Types; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.schema.Schema; -import javax.wsdl.extensions.soap.SOAPBinding; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPFault; -import javax.wsdl.extensions.soap.SOAPHeader; -import javax.wsdl.extensions.soap.SOAPHeaderFault; -import javax.wsdl.extensions.soap.SOAPOperation; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSIRuntimeException; -import org.eclipse.wst.wsi.internal.core.analyzer.AnalyzerContext; -import org.eclipse.wst.wsi.internal.core.analyzer.AssertionFailException; -import org.eclipse.wst.wsi.internal.core.analyzer.CandidateInfo; -import org.eclipse.wst.wsi.internal.core.analyzer.ServiceReference; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AnalyzerConfig; -import org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLElement; -import org.eclipse.wst.wsi.internal.core.profile.ProfileArtifact; -import org.eclipse.wst.wsi.internal.core.profile.ProfileAssertions; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.WSDLValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseValidatorImpl; -import org.eclipse.wst.wsi.internal.core.report.Entry; -import org.eclipse.wst.wsi.internal.core.report.EntryContainer; -import org.eclipse.wst.wsi.internal.core.report.FailureDetail; -import org.eclipse.wst.wsi.internal.core.report.ReportArtifact; -import org.eclipse.wst.wsi.internal.core.report.Reporter; -import org.eclipse.wst.wsi.internal.core.util.EntryType; -import org.eclipse.wst.wsi.internal.core.wsdl.WSDLDocument; -import org.eclipse.wst.wsi.internal.core.wsdl.WSDLElementList; -import org.eclipse.wst.wsi.internal.core.wsdl.WSDLUtils; -import org.eclipse.wst.wsi.internal.core.xml.dom.ElementLocation; -import org.eclipse.wst.wsi.internal.core.xml.schema.TargetNamespaceProcessor; -import org.eclipse.wst.wsi.internal.core.xml.schema.XMLSchemaValidator; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -/** - * The WSDL validator will verify that the WSDL and associated XML schema definitions - * are in conformance with the profile. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - * @author Graham Turrell (gturrell@uk.ibm.com) - */ - -public class WSDLValidatorImpl - extends BaseValidatorImpl - implements WSDLValidator -{ - /** - * WSDL URL. - * @deprecated -- access the wsdl url via wsdlDocument field. - */ - protected String wsdlURL; - - /** - * WSDL document. - */ - protected WSDLDocument wsdlDocument = null; - private boolean testable; - - /** - * Entry container map. - */ - protected HashMap containerMap = new HashMap(); - - protected boolean processDefAssertions = true; - - /** - * Get the artifact type that this validator applies to. - * @return the artifact type (a String) - */ - public String getArtifactType() - { - return TYPE_DESCRIPTION; - } - - /** - * Get the collection of entry types that this validator applies to. - * @return an array of entry types (Strings) - */ - public String[] getEntryTypes() - { - return new String[] { - TYPE_DESCRIPTION_DEFINITIONS, - TYPE_DESCRIPTION_IMPORT, - TYPE_DESCRIPTION_TYPES, - TYPE_DESCRIPTION_MESSAGE, - TYPE_DESCRIPTION_OPERATION, - TYPE_DESCRIPTION_PORTTYPE, - TYPE_DESCRIPTION_BINDING, - TYPE_DESCRIPTION_PORT - }; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.WSDLValidator#init(org.eclipse.wst.wsi.internal.core.analyzer.AnalyzerContext, org.wsi.test.profile.ProfileArtifact, org.wsi.test.report.ReportArtifact, java.lang.String, org.wsi.wsdl.WSDLDocument, org.wsi.test.report.Reporter) - */ - public void init( - AnalyzerContext analyzerContext, - ProfileAssertions assertions, - ReportArtifact reportArtifact, - AnalyzerConfig analyzerConfig, - Reporter reporter) - throws WSIException - { - init(analyzerContext, assertions, reportArtifact, analyzerConfig, reporter, true); - } - - public void init( - AnalyzerContext analyzerContext, - ProfileAssertions assertions, - ReportArtifact reportArtifact, - AnalyzerConfig analyzerConfig, - Reporter reporter, - boolean processDefAssertions) - throws WSIException - { - // BaseValidatorImpl - super.init(analyzerContext, assertions.getArtifact(TYPE_DESCRIPTION), reportArtifact, reporter); - this.wsdlDocument = analyzerContext.getWsdlDocument(); - testable = analyzerContext.getWsdlDocument() != null; - if (this.wsdlDocument != null) - this.wsdlURL = wsdlDocument.getLocation(); - this.processDefAssertions = processDefAssertions; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.WSDLValidator#init(org.eclipse.wst.wsi.internal.core.analyzer.AnalyzerContext, org.wsi.test.profile.ProfileArtifact, org.wsi.test.report.ReportArtifact, java.lang.String, org.wsi.wsdl.WSDLDocument, org.wsi.test.report.Reporter) - */ - public void init( - AnalyzerContext analyzerContext, - ProfileArtifact profileArtifact, - ReportArtifact reportArtifact, - String wsdlURL, - WSDLDocument wsdlDocument, - Reporter reporter) - throws WSIException - { - init(analyzerContext, profileArtifact, reportArtifact, wsdlURL, wsdlDocument, reporter, true); - } - - public void init( - AnalyzerContext analyzerContext, - ProfileArtifact profileArtifact, - ReportArtifact reportArtifact, - String wsdlURL, - WSDLDocument wsdlDocument, - Reporter reporter, - boolean processDefAssertions) - throws WSIException - { - // BaseValidatorImpl - super.init(analyzerContext, profileArtifact, reportArtifact, reporter); - this.wsdlDocument = wsdlDocument; - testable = (wsdlDocument != null); - if (wsdlDocument != null) - this.wsdlURL = wsdlDocument.getLocation(); - - if (wsdlURL != null) - this.wsdlURL = wsdlURL; - this.processDefAssertions = processDefAssertions; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.WSDLValidator#validate() - */ - public void validateArtifact() throws WSIException - { - //WSDLDocument wsdlDocument = null; - Service service = null; - Port port = null; - Binding binding = null; - PortType portType = null; - Operation operation = null; - Message message = null; - - // it depricated after refactoring - // now the inner classes moved out from validator - //String classPrefix = this.getClass().getName() + "$"; - String classPrefix = this.getClass().getPackage().getName()+"."; - - // Get the definition element - Definition definition = wsdlDocument.getDefinitions(); - - // Get service reference from analyzer context - ServiceReference serviceReference = analyzerContext.getServiceReference(); - - // Create normalized data about the service under test. - CandidateInfo candidate = new CandidateInfo(serviceReference, wsdlDocument); - - analyzerContext.setCandidateInfo(candidate); - - // Set prereq type to entry container - reporter.setPrereqType(Reporter.PREREQ_TYPE_ENTRY_CONTAINER); - - // always process Import, Definitions & Types assertions - // TEMP: - if (processDefAssertions) - { - processDefinitionAssertions(classPrefix, candidate); - processTypesAssertions(classPrefix, candidate); - processImportAssertions(classPrefix, candidate); - } - - // Process the element hierarchy in the WSDL document starting with the one that was specified - // FIX: Element finding already completed by CandidateInfo constructor - so use that rather than retest here - - // --------------------------- - // wsdl:port - // --------------------------- - if (serviceReference.getWSDLElement().isPort()) - { - // Find the service element - if ((service = - definition.getService( - serviceReference.getWSDLElement().getParentElementQName())) - == null) - { - throw new WSIRuntimeException( - "Could not locate WSDL service: " - + serviceReference.getWSDLElement().getParentElementName()); - } - - // Find the port element - if ((port = service.getPort(serviceReference.getWSDLElement().getName())) - == null) - { - throw new WSIRuntimeException( - "Could not locate WSDL port: " - + serviceReference.getWSDLElement().getName()); - } - - // TEMP: Remove until there are port test assertions - //processPortAssertions(port, serviceReference, classPrefix, wsdlDocument); - - // Next, process the binding - if (((binding = port.getBinding()) == null) || (binding.isUndefined())) - { - //throw new WSIRuntimeException("Could not locate WSDL binding for port: " + port.getName()); - // Set missingInput for all binding, portType, operation and message test assertions - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_BINDING)); - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_PORTTYPE)); - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_OPERATION)); - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_MESSAGE)); - } - - else - { - processBindingAssertions( - binding, - serviceReference, - classPrefix, - wsdlDocument); - - // Next, process the portType - if (((portType = binding.getPortType()) == null) - || (portType.isUndefined())) - { - //throw new WSIRuntimeException("Could not locate WSDL portType for binding: " + binding.getQName().getLocalPart()); - // Set missingInput for all portType, operation and message test assertions - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_PORTTYPE)); - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_OPERATION)); - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_MESSAGE)); - } - - else - { - processMessageAssertions( - binding, - serviceReference, - classPrefix, - wsdlDocument); - processPortTypeAssertions( - portType, - serviceReference, - classPrefix, - wsdlDocument); - processOperationAssertions( - portType, - serviceReference, - classPrefix, - wsdlDocument); - processMessageAssertions( - portType, - serviceReference, - classPrefix, - wsdlDocument); - } - } - - } - - // --------------------------- - // wsdl:binding - // --------------------------- - else if (serviceReference.getWSDLElement().isBinding()) - { - WSDLElement wsdlElement = serviceReference.getWSDLElement(); - // Find the binding element - if (wsdlElement.getQName() != null - && wsdlElement.getQName().getLocalPart() != null - && wsdlElement.getQName().getLocalPart().length() > 0) - { - if (((binding = - definition.getBinding(serviceReference.getWSDLElement().getQName())) - == null) - || (binding.isUndefined())) - { - throw new WSIRuntimeException( - "Could not locate WSDL binding: " - + serviceReference.getWSDLElement().getName()); - } - - processBindingAssertions( - binding, - serviceReference, - classPrefix, - wsdlDocument); - processMessageAssertions( - binding, - serviceReference, - classPrefix, - wsdlDocument); - - // Next, process the portType - if (((portType = binding.getPortType()) == null) - || (portType.isUndefined())) - { - //throw new WSIRuntimeException("Could not locate WSDL PortType for Binding: " + binding.getQName().getLocalPart()); - - // Set missingInput for all portType, operation and message test assertions - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_PORTTYPE)); - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_OPERATION)); - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_MESSAGE)); - } - - else - { - processPortTypeAssertions( - portType, - serviceReference, - classPrefix, - wsdlDocument); - processOperationAssertions( - portType, - serviceReference, - classPrefix, - wsdlDocument); - - // Process each message within each operation of the portType associated with the binding - processMessageAssertions( - portType, - serviceReference, - classPrefix, - wsdlDocument); - } - } - - // There was a problem with the binding element specification. This can - // happen when a UDDI tModel did not have a valid binding reference. - else - { - // Set missingInput for all binding, portType, operation and message test assertions - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_BINDING)); - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_PORTTYPE)); - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_OPERATION)); - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_MESSAGE)); - } - } - - // --------------------------- - // wsdl:portType - // --------------------------- - else if (serviceReference.getWSDLElement().isPortType()) - { - // Find the PortType element - if (((portType = - definition.getPortType(serviceReference.getWSDLElement().getQName())) - == null) - || (portType.isUndefined())) - { - throw new WSIRuntimeException( - "Could not locate WSDL PortType: " - + serviceReference.getWSDLElement().getName()); - } - - // Set missingInput for all binding test assertions - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_BINDING)); - - processPortTypeAssertions( - portType, - serviceReference, - classPrefix, - wsdlDocument); - processOperationAssertions( - portType, - serviceReference, - classPrefix, - wsdlDocument); - - // Process each message within each operation of the portType - processMessageAssertions( - portType, - serviceReference, - classPrefix, - wsdlDocument); - } - - // --------------------------- - // wsdl:operation - // --------------------------- - else if (serviceReference.getWSDLElement().isOperation()) - { - // Find the operation - // get portType from config parent element - if (((portType = - definition.getPortType( - serviceReference.getWSDLElement().getParentElementQName())) - == null) - || (portType.isUndefined())) - { - throw new WSIRuntimeException( - "Could not locate WSDL portType: " - + serviceReference.getWSDLElement().getParentElementQName()); - } - - if (((operation = - getOperationFromPortType( - portType, - serviceReference.getWSDLElement().getName())) - == null) - || (operation.isUndefined())) - { - throw new WSIRuntimeException( - "Could not locate WSDL Operation: " - + serviceReference.getWSDLElement().getName() - + "in portType: " - + portType.getQName()); - } - - // Set missingInput for all binding and portType test assertions - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_BINDING)); - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_PORTTYPE)); - - processOperationAssertions( - operation, - portType, - serviceReference, - classPrefix, - wsdlDocument); - processMessageAssertions( - operation, - serviceReference, - classPrefix, - wsdlDocument); - } - - // --------------------------- - // wsdl:message - // --------------------------- - else if (serviceReference.getWSDLElement().isMessage()) - { - // Find the message - if (((message = - definition.getMessage(serviceReference.getWSDLElement().getQName())) - == null) - || (message.isUndefined())) - { - throw new WSIRuntimeException( - "Could not locate WSDL Message: " - + serviceReference.getWSDLElement().getName()); - } - - // Set missingInput for all binding, portType, and operation test assertions - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_BINDING)); - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_PORTTYPE)); - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_OPERATION)); - - processMessageAssertions( - message, - serviceReference, - classPrefix, - wsdlDocument); - } - - else - { - throw new WSIRuntimeException( - "The following WSDL type is not supported: " - + serviceReference.getWSDLElement().getType()); - } - - // Cleanup - cleanup(); - } - - public void cleanup() throws WSIException { - super.cleanup(); - containerMap.clear(); - wsdlDocument = null; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.WSDLValidator#validate() - */ - /** @deprecated -- use validateArtifact(). */ - public WSDLDocument validate() throws WSIException - { - validateArtifact(); - - // Return WSDL document - return this.wsdlDocument; - } - /** - * Get entry container using the filename for WSDL document. - * @param filename a file name. - * @return entry container using the filename for WSDL document. - */ - protected EntryContainer getEntryContainer(String filename) - { - EntryContainer entryContainer = null; - - // If the entry container already exists, then use it - if ((entryContainer = (EntryContainer) containerMap.get(filename)) == null) - { - // Create new entry container - entryContainer = this.reporter.createEntryContainer(); - - // Set container id using the filename for the WSDL document - entryContainer.setId(filename); - - // Put the new entry container into the container map - containerMap.put(filename, entryContainer); - } - - return entryContainer; - } - - /** - * Get operation from port type. - * @param portType port type. - * @param operationName operation name. - * @return operation from port type. - */ - protected Operation getOperationFromPortType( - PortType portType, - String operationName) - { - // FIX: wsdl4j available method call below implies that only - // name+inputname+outputname uniquely defines operation - // Use this instead for now: - get the first operation we find... - Operation op = null; - if (portType.getOperations() != null) - { - Iterator opIt = portType.getOperations().iterator(); - - while (opIt.hasNext()) - { - op = (Operation) opIt.next(); - if (operationName.equals(op.getName())) - { - return op; - } - } - } - - return null; // no matching operation found - } - - /** - * Process definition assertions. - * @param classPrefix class prefix. - * @param candidate candidate. - * @throws WSIException if problems occur during processing. - */ - protected void processDefinitionAssertions( - String classPrefix, - CandidateInfo candidate) - throws WSIException - { - - Entry entry = null; - - Definition[] wsdlDefinitions = candidate.getDefinitions(); - - for (int i = 0; i < wsdlDefinitions.length; i++) - { - Definition definition = wsdlDefinitions[i]; - if (definition == null) - continue; - // Create entry - entry = this.reporter.getReport().createEntry(); - entry.setEntryType(EntryType.getEntryType(TYPE_DESCRIPTION_DEFINITIONS)); - entry.setReferenceID(definition.getDocumentBaseURI()); - entry.setEntryDetail(definition); - - // Set entry container - entry.setEntryContainer( - getEntryContainer(definition.getDocumentBaseURI())); - - // Process all of the definition related test assertions - processAssertions( - classPrefix, - new EntryContext(entry, candidate.getWsdlDocument())); - // ADD: need to use here the specific document corresponding to the definition?? - - } - } - - /** - * Process types assertions. - * @param classPrefix class prefix. - * @param candidate candidate. - * @throws WSIException if problem occurs during processing - * type assertions. - */ - protected void processTypesAssertions( - String classPrefix, - CandidateInfo candidate) - throws WSIException - { - Entry entry = null; - - Types[] wsdlTypes = candidate.getTypes(); - Definition[] wsdlDefinitions = candidate.getDefinitions(); - - // If there are no types elements, then set all results to missingInput - if (wsdlTypes == null || wsdlTypes.length == 0) - { - // Set missingInput for all test assertions with this entry type - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_TYPES)); - } - - else - { - for (int i = 0; i < wsdlTypes.length; i++) - { - Types types = wsdlTypes[i]; - if (types == null) - { - // no Types element in i-th document - continue; - } - - // Create entry - entry = this.reporter.getReport().createEntry(); - entry.setEntryType(EntryType.getEntryType(TYPE_DESCRIPTION_TYPES)); - entry.setReferenceID( - candidate.getDefinition(types).getDocumentBaseURI() + "-Types"); - entry.setEntryDetail(types); - - // Set entry container - entry.setEntryContainer( - getEntryContainer(wsdlDefinitions[i].getDocumentBaseURI())); - - // Process all of the Types related test assertions - processAssertions( - classPrefix, - new EntryContext(entry, candidate.getWsdlDocument())); - } - } - } - - /** - * Process import assertions. - * @param classPrefix class prefix. - * @param candidate candidate. - * @throws WSIException if problem occurs during processing - * import assertions. - */ - protected void processImportAssertions( - String classPrefix, - CandidateInfo candidate) - throws WSIException - { - - Entry entry = null; - - Import[] wsdlImports = candidate.getImports(); - - // If there are no import elements, then set all results to missingInput - if (wsdlImports == null || wsdlImports.length == 0) - { - // Set missingInput for all test assertions with this entry type - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_IMPORT)); - } - - else - { - for (int i = 0; i < wsdlImports.length; i++) - { - Import wsdlImport = wsdlImports[i]; - // Create entry - entry = this.reporter.getReport().createEntry(); - entry.setEntryType(EntryType.getEntryType(TYPE_DESCRIPTION_IMPORT)); - entry.setReferenceID(wsdlImport.getNamespaceURI()); - entry.setEntryDetail(wsdlImport); - - // Set entry container - entry.setEntryContainer(getEntryContainer(wsdlImport.getLocationURI())); - - // Process all of the import related test assertions - processAssertions( - classPrefix, - new EntryContext(entry, candidate.getWsdlDocument())); - // ADD: need to use here the specific document corresponding to the import!! - } - } - } - - /** - * Process port assertions. - * @param port a port. - * @param serviceReference service reference. - * @param classPrefix class prefix. - * @param wsdlDocument WSDL document. - * @throws WSIException if problem occurs during processing - * port assertions. - */ - protected void processPortAssertions( - Port port, - ServiceReference serviceReference, - String classPrefix, - WSDLDocument wsdlDocument) - throws WSIException - { - Entry entry = null; - - // Create entry - entry = this.reporter.getReport().createEntry(); - entry.setEntryType(EntryType.getEntryType(TYPE_DESCRIPTION_PORT)); - entry.setReferenceID(port.getName()); - entry.setParentElementName( - serviceReference.getWSDLElement().getParentElementName()); - entry.setEntryDetail(port); - - // Process assertions for this artifact against the target context - processAssertions(classPrefix, new EntryContext(entry, wsdlDocument)); - } - - /** - * Process binding assertions. - * @param binding binding. - * @param serviceReference service reference. - * @param classPrefix class prefix. - * @param wsdlDocument WSDL document. - * @throws WSIException if problem occurs during processing - * binding assertions. - */ - protected void processBindingAssertions( - Binding binding, - ServiceReference serviceReference, - String classPrefix, - WSDLDocument wsdlDocument) - throws WSIException - { - Entry entry = null; - QName bindingQName = binding.getQName(); - - // Create entry - entry = this.reporter.getReport().createEntry(); - entry.setEntryType( - EntryType.getEntryType(TYPE_DESCRIPTION_BINDING)); - entry.setReferenceID(bindingQName.toString()); - entry.setEntryDetail(binding); - - // Set entry container - Definition definition = - analyzerContext.getCandidateInfo().getDefinition(binding); - entry.setEntryContainer( - getEntryContainer( - (definition == null ? null : definition.getDocumentBaseURI()))); - - // Process binding test assertions - processAssertions(classPrefix, new EntryContext(entry, wsdlDocument)); - } - - /** - * Process port type assertions. - * @param portType port type. - * @param serviceReference service reference. - * @param classPrefix class prefix. - * @param wsdlDocument WSDL document. - * @throws WSIException if problem occurs during processing - * port type assertions. - */ - protected void processPortTypeAssertions( - PortType portType, - ServiceReference serviceReference, - String classPrefix, - WSDLDocument wsdlDocument) - throws WSIException - { - - Entry entry = null; - QName portTypeQName = portType.getQName(); - - // Create entry - entry = this.reporter.getReport().createEntry(); - entry.setEntryType(EntryType.getEntryType(TYPE_DESCRIPTION_PORTTYPE)); - entry.setReferenceID(portTypeQName.toString()); - entry.setEntryDetail(portType); - - // Set entry container - Definition definition = - analyzerContext.getCandidateInfo().getDefinition(portType); - entry.setEntryContainer( - getEntryContainer( - (definition == null ? null : definition.getDocumentBaseURI()))); - - // Process test assertions - processAssertions(classPrefix, new EntryContext(entry, wsdlDocument)); - } - - /** - * Process operation assertions. - * @param operation an operation. - * @param portType port type. - * @param serviceReference service reference. - * @param classPrefix class prefix. - * @param wsdlDocument WSDL document. - * @throws WSIException if problem occurs during processing - * operation assertions. - */ - protected void processOperationAssertions( - Operation operation, - PortType portType, - ServiceReference serviceReference, - String classPrefix, - WSDLDocument wsdlDocument) - throws WSIException - { - // qualify operation with service location from config. - Entry entry = null; - - // Create entry - entry = this.reporter.getReport().createEntry(); - entry.setEntryType(EntryType.getEntryType(TYPE_DESCRIPTION_OPERATION)); - entry.setReferenceID(operation.getName()); - entry.setParentElementName(portType.getQName().getLocalPart()); - entry.setEntryDetail(operation); - - // Set entry container - Definition definition = - analyzerContext.getCandidateInfo().getDefinition(portType); - entry.setEntryContainer( - getEntryContainer( - (definition == null ? null : definition.getDocumentBaseURI()))); - - // Process test assertions - processAssertions(classPrefix, new EntryContext(entry, wsdlDocument)); - } - - /** - * Process operation assertions. - * @param portType port type. - * @param serviceReference service reference. - * @param classPrefix class prefix. - * @param wsdlDocument WSDL document. - * @throws WSIException if problem occurs during processing - * operation assertions. - */ - protected void processOperationAssertions( - PortType portType, - ServiceReference serviceReference, - String classPrefix, - WSDLDocument wsdlDocument) - throws WSIException - { - // For each operation, - if (portType.getOperations() == null) - { - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_OPERATION)); - } - - else - { - Operation operation; - Iterator opIt = portType.getOperations().iterator(); - while (opIt.hasNext()) - { - operation = (Operation) opIt.next(); - if (operation == null || operation.isUndefined()) - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_OPERATION)); - else - processOperationAssertions( - operation, - portType, - serviceReference, - classPrefix, - wsdlDocument); - } - } - } - - /** - * Process message assertions. - * @param message a message. - * @param serviceReference service reference. - * @param classPrefix class prefix. - * @param wsdlDocument WSDL document. - * @throws WSIException if problem occurs during processing - * message assertions. - */ - protected void processMessageAssertions( - Message message, - ServiceReference serviceReference, - String classPrefix, - WSDLDocument wsdlDocument) - throws WSIException - { - - Entry entry = null; - QName messageQName = message.getQName(); - - // Create entry - entry = this.reporter.getReport().createEntry(); - entry.setEntryType(EntryType.getEntryType(TYPE_DESCRIPTION_MESSAGE)); - entry.setReferenceID(messageQName.toString()); - entry.setEntryDetail(message); - - // Set entry container - Definition definition = - analyzerContext.getCandidateInfo().getDefinition(message); - entry.setEntryContainer( - getEntryContainer( - (definition == null ? null : definition.getDocumentBaseURI()))); - - // Process binding test assertions - processAssertions(classPrefix, new EntryContext(entry, wsdlDocument)); - } - - /** - * Process message assertions. - * @param binding a binding. - * @param serviceReference service reference. - * @param classPrefix class prefix. - * @param wsdlDocument WSDL document. - * @throws WSIException if problem occurs during processing - * message assertions. - */ - protected void processMessageAssertions( - Binding binding, - ServiceReference serviceReference, - String classPrefix, - WSDLDocument wsdlDocument) - throws WSIException - { - HashSet messageSet; - - if (binding.getBindingOperations() != null) - { // can do nothing if have no operations defined - messageSet = - WSDLUtils.findMessages(wsdlDocument.getDefinitions(), binding); - - // Process any messages that were found - if (messageSet.size() > 0) - { - Iterator messageIt = messageSet.iterator(); - while (messageIt.hasNext()) - { - Message message = (Message) messageIt.next(); - if (!message.isUndefined()) - processMessageAssertions( - message, - serviceReference, - classPrefix, - wsdlDocument); - } - } - } - } - - /** - * Process message assertions. - * @param portType port type. - * @param serviceReference service reference. - * @param classPrefix class prefix. - * @param wsdlDocument WSDL document. - * @throws WSIException if problem occurs during processing - * message assertions. - */ - protected void processMessageAssertions( - PortType portType, - ServiceReference serviceReference, - String classPrefix, - WSDLDocument wsdlDocument) - throws WSIException - { - - HashSet messageSet = new HashSet(); - - if (portType.getOperations() != null) - { - // can do nothing if have no operations defined - - Iterator opIt = portType.getOperations().iterator(); - - while (opIt.hasNext()) - { - Operation op = (Operation) opIt.next(); - - // Since there is no guarantee that we have both and input and output message, - // check for its existence before adding it - if (op.getInput() != null && !op.getInput().getMessage().isUndefined()) - messageSet.add(op.getInput().getMessage()); - - if (op.getOutput() != null - && !op.getOutput().getMessage().isUndefined()) - messageSet.add(op.getOutput().getMessage()); - - // also messages from any Faults defined within the operation - if (op.getFaults() != null) - { - Iterator faultIt = op.getFaults().values().iterator(); - Message message; - while (faultIt.hasNext()) - { - message = ((Fault) faultIt.next()).getMessage(); - if (!message.isUndefined()) - messageSet.add(message); - } - } - } - - if (messageSet.size() == 0) - { - // Set all message test assertion results to missingInput - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_MESSAGE)); - } - - else - { - // now step through each derived Message - Iterator messageIt = messageSet.iterator(); - while (messageIt.hasNext()) - { - processMessageAssertions( - (Message) (messageIt.next()), - serviceReference, - classPrefix, - wsdlDocument); - } - } - } - } - - /** - * Process message assertions. - * @param op - operation. - * @param serviceReference service reference. - * @param classPrefix class prefix. - * @param wsdlDocument WSDL document. - * @throws WSIException if problem occurs during processing - * message assertions. - */ - protected void processMessageAssertions( - Operation op, - ServiceReference serviceReference, - String classPrefix, - WSDLDocument wsdlDocument) - throws WSIException - { - - HashSet messageSet = new HashSet(); - if (op.getInput() != null && !op.getInput().getMessage().isUndefined()) - messageSet.add(op.getInput().getMessage()); - - if (op.getOutput() != null && !op.getOutput().getMessage().isUndefined()) - messageSet.add(op.getOutput().getMessage()); - - // also messages from any Faults defined within the operation - Iterator faultIt = op.getFaults().values().iterator(); - Message message; - while (faultIt.hasNext()) - { - message = ((Fault) faultIt.next()).getMessage(); - if (!message.isUndefined()) - messageSet.add(message); - } - - if (messageSet.size() == 0) - { - // Set all message test assertion results to missingInput - setMissingInput(EntryType.getEntryType(TYPE_DESCRIPTION_MESSAGE)); - } - - else - { - // now step through each derived Message - Iterator messageIt = messageSet.iterator(); - while (messageIt.hasNext()) - { - processMessageAssertions( - (Message) (messageIt.next()), - serviceReference, - classPrefix, - wsdlDocument); - } - } - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl#isPrimaryEntryTypeMatch(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - protected boolean isPrimaryEntryTypeMatch( - TestAssertion testAssertion, - EntryContext targetContext) - { - boolean match = false; - - // If the test assertion entry type matches the target context entry type, then contine - if (testAssertion - .getEntryTypeName() - .equals(targetContext.getEntry().getEntryType().getTypeName())) - { - match = true; - } - - return match; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl#isNotApplicable(org.wsi.test.profile.TestAssertion) - */ - protected boolean isNotApplicable(TestAssertion testAssertion) - { - boolean notApplicable = false; - - // ADD: - - return notApplicable; - } - - /** - * Method getSoapFaults. - * - * @param inBinding in binding. - * @return soap faults. - * @throws WSIException if problems occur while processing binding faults. - */ - protected SOAPFault[] getSoapFaults(Binding inBinding) throws WSIException - { - - Vector soapFaults = new Vector(); - - // Go through each bindingFault one at a time - BindingFault[] bindingFaults = getAllBindingFaults(inBinding); - for (int fault = 0; fault < bindingFaults.length; fault++) - { - SOAPFault soapFault = getSoapFault(bindingFaults[fault]); - if (soapFault != null) - { - soapFaults.add(soapFault); - } - } - - SOAPFault[] soapFaultArray = new SOAPFault[soapFaults.size()]; - soapFaults.copyInto(soapFaultArray); - - return soapFaultArray; - } - - /** - * Method getAllBindingFaults. - * - * @param inBinding binding. - * @return all binding faults. - * @throws WSIException if problems occur during processing. - */ - protected BindingFault[] getAllBindingFaults(Binding inBinding) - throws WSIException - { - - Vector faults = new Vector(); - - try - { - - Iterator bindingOperations = inBinding.getBindingOperations().iterator(); - - while (bindingOperations.hasNext()) - { - - try - { - BindingOperation bo = (BindingOperation) bindingOperations.next(); - Iterator bindingFaults = bo.getBindingFaults().values().iterator(); - while (bindingFaults.hasNext()) - { - - faults.add((BindingFault) bindingFaults.next()); - } - } - catch (NullPointerException e) - { - - } - } - } - catch (NullPointerException e) - { - // no binding operations in this binding - ignore & continue - } - - BindingFault[] faultArray = new BindingFault[faults.size()]; - faults.copyInto(faultArray); - - return faultArray; - } - - /** - * Method getWSDLFaults. - * - * @param bindingFault a binding fault. - * @return WSDL faults. - * @throws WSIException if problems occur during processing. - */ - protected SOAPFault getSoapFault(BindingFault bindingFault) - throws WSIException - { - - SOAPFault soapFault = null; - try - { - Iterator faultExtensibles = - bindingFault.getExtensibilityElements().iterator(); - - while (faultExtensibles.hasNext() && soapFault == null) - { - try - { - soapFault = (SOAPFault) faultExtensibles.next(); - } - catch (ClassCastException e) - { // ignore everything but SOAP Fault elements. - } - } - } - catch (NullPointerException e) - { - } - - return soapFault; - } - - /** - * Method getSoapHeader. - * - * @param inBinding a binding. - * @return SOAP headers. - * @throws WSIException if problems occur during processing. - */ - protected SOAPHeader[] getSoapHeaders(Binding inBinding) throws WSIException - { - // Get all bindings - Binding[] bindingList = new Binding[1]; - bindingList[0] = inBinding; - - Vector soapHeaderList = new Vector(); - - // Go through each binding one at a time - for (int binding = 0; binding < bindingList.length; binding++) - { - try - { - // get the list of binding Operations - BindingOperation[] bindingOperations = - (BindingOperation[]) bindingList[binding] - .getBindingOperations() - .toArray( - new BindingOperation[0]); - - // get references to the extensible elements within the <input> and <output> elements of this binding <operation>. - for (int bo = 0; bo < bindingOperations.length; bo++) - { - - // Iterate over all input/output extensibles, looking for <SOAP:Body> elements. - try - { - BindingInput bindingInput = bindingOperations[bo].getBindingInput(); - BindingOutput bindingOutput = - bindingOperations[bo].getBindingOutput(); - - Iterator extElements = - bindingInput.getExtensibilityElements().iterator(); - while (extElements.hasNext()) - { - try - { - soapHeaderList.add((SOAPHeader) extElements.next()); - } - catch (ClassCastException e) - { // ignore everything but SOAP Header. - } - } - - extElements = bindingOutput.getExtensibilityElements().iterator(); - while (extElements.hasNext()) - { - try - { - soapHeaderList.add((SOAPHeader) extElements.next()); - } - catch (ClassCastException e) - { // ignore everything but SOAP Header. - } - } - } - catch (NullPointerException e) - { // no extensibility elements for <input> or <output> - ignore : not checking this here. - } - } - } - catch (NullPointerException e) - { - // no binding operations in this binding - ignore & continue - } - } - - SOAPHeader[] soapHeaderArray = new SOAPHeader[soapHeaderList.size()]; - soapHeaderList.copyInto(soapHeaderArray); - - return soapHeaderArray; - } - - /** - * Method getSoapHeaderFaults. - * - * WSDLDocument getter method - maybe better off in class WSDLDocument... - * - * @param inBinding a binding. - * @return SOAP header faults. - * @throws WSIException if problems occur during processing. - */ - protected SOAPHeaderFault[] getSoapHeaderFaults(Binding inBinding) - throws WSIException - { - Vector soapHeaderFaultList = new Vector(); - - // Get the list of SOAP headers - SOAPHeader[] soapHeaderArray = getSoapHeaders(inBinding); - - // Go through the list and get the header faults - List list = null; - for (int header = 0; header < soapHeaderArray.length; header++) - { - // Get list for this header - if ((list = soapHeaderArray[header].getSOAPHeaderFaults()) != null) - { - // Add to primary list - soapHeaderFaultList.addAll(list); - } - } - - SOAPHeaderFault[] soapHeaderFaultArray = - new SOAPHeaderFault[soapHeaderFaultList.size()]; - soapHeaderFaultList.copyInto(soapHeaderFaultArray); - - return soapHeaderFaultArray; - } - - /** - * Method getSoapBodies. - * - * WSDLDocument getter method - maybe better off in class WSDLDocument... - * - * @param inBinding a binding. - * @return SOAP bodies. - * @throws WSIException if if problems occur during processing. - */ - protected SOAPBody[] getSoapBodies(Binding inBinding) throws WSIException - { - // REMOVE: Get all bindings - //Binding[] bindingList = wsdlDocument.getBindings(); - Binding[] bindingList = new Binding[1]; - bindingList[0] = inBinding; - - Vector soapBodies = new Vector(); - - // Go through each binding one at a time - for (int binding = 0; binding < bindingList.length; binding++) - { - // get the list of binding Operations - BindingOperation[] bindingOperations = - (BindingOperation[]) bindingList[binding] - .getBindingOperations() - .toArray( - new BindingOperation[0]); - - // get references to the extensible elements within the <input> and <output> elements of this binding <operation>. - for (int bo = 0; bo < bindingOperations.length; bo++) - { - - // Iterate over all input/output extensibles, looking for <SOAP:Body> elements. - try - { - Iterator inputExtensibles = - bindingOperations[bo] - .getBindingInput() - .getExtensibilityElements() - .iterator(); - while (inputExtensibles.hasNext()) - { - try - { - soapBodies.add((SOAPBody) inputExtensibles.next()); - } - catch (ClassCastException e) - { // ignore everything but SOAP Body elements. - } - } - } - catch (NullPointerException e) - { // no extensibility elements for <input> - ignore : not checking this here. - } - - try - { - Iterator outputExtensibles = - bindingOperations[bo] - .getBindingOutput() - .getExtensibilityElements() - .iterator(); - while (outputExtensibles.hasNext()) - { - try - { - soapBodies.add((SOAPBody) outputExtensibles.next()); - } - catch (ClassCastException e) - { // ignore everything but SOAP Body elements. - } - } - } - catch (NullPointerException e) - { // no extensibility elements for <output>. - } - } - } - - SOAPBody[] soapBodyArray = new SOAPBody[soapBodies.size()]; - soapBodies.copyInto(soapBodyArray); - - return soapBodyArray; - } - - /** - * Method getSoapBody. - * - * @param bindingInput a BindingInput object. - * @return body. - * @throws WSIException if problems occur during processing. - */ - protected SOAPBody getSoapBody(BindingInput bindingInput) throws WSIException - { - - SOAPBody soapBody = null; - - Iterator extensibles = bindingInput.getExtensibilityElements().iterator(); - while (extensibles.hasNext()) - { - Object extensible = extensibles.next(); - if (extensible instanceof SOAPBody) - { - soapBody = (SOAPBody) extensible; - break; - } - } - return soapBody; - } - - /** - * Method getSoapBody. - * - * @param bindingOutput a BindingOutput object. - * @return SOAP body. - * @throws WSIException if problems occur during processing. - */ - protected SOAPBody getSoapBody(BindingOutput bindingOutput) - throws WSIException - { - - SOAPBody soapBody = null; - - Iterator extensibles = bindingOutput.getExtensibilityElements().iterator(); - while (extensibles.hasNext()) - { - Object extensible = extensibles.next(); - if (extensible instanceof SOAPBody) - { - soapBody = (SOAPBody) extensible; - break; - } - } - return soapBody; - } - - /** - * Get schema used. - * @param def definition. - * @return Schema used. - * @throws AssertionFailException if problem getting WSDL defintions - * namespace. - */ - protected String getSchemaUsed(Definition def) throws AssertionFailException - { - String schemaUsed = ""; - - try - { - // Need to read the file directly, since WSDL4J always puts in the default WSDL namespace - Document document = wsdlDocument.getDocument(); - if (document == null) - { - document = parseXMLDocumentURL(def.getDocumentBaseURI(), null); - } - - if (document != null) - { - // Get the root element - Element element = document.getDocumentElement(); - - // Get the namespace for this element - if (element != null) - schemaUsed = element.getNamespaceURI(); - } - } - - catch (WSIException we) - { - throw new AssertionFailException("problem getting WSDL defintions namespace"); - } - - /* - // Get the default namespace - String schemaUsed = def.getNamespace(""); - - // If the default was set, then process it to get the namespace - if (schemaUsed == null) { - // do it the hard way (still better than another DOM parse)... - //WSDLWriter w = new WSDLWriterImpl(); - try { - WSDLWriter w = WSDLFactory.newInstance().newWSDLWriter(); - Document doc = w.getDocument(def); - Element e = doc.getDocumentElement(); - schemaUsed = e.getNamespaceURI(); - } - catch (NullPointerException e) { - throw new AssertionFailException("problem getting WSDL defintions namespace"); - } - catch (WSDLException e) { - throw new AssertionFailException("problem getting document defintion"); - } - } - */ - - return schemaUsed; - } - - /** - * Method getSoapBinding. - * - * Get the SOAP binding for a Binding. - * - * @param binding a binding. - * @return a SOAP binding. - * @throws WSIException if problems occur during processing. - */ - public static SOAPBinding getSoapBinding(Binding binding) throws WSIException - { - SOAPBinding soapBinding = null; - - // Get the list of extensibility elements - List exElements = binding.getExtensibilityElements(); - if (exElements != null) - { - Iterator iterator = binding.getExtensibilityElements().iterator(); - - // Check for <soap:binding> element - while ((iterator.hasNext()) && (soapBinding == null)) - { - try - { - soapBinding = (SOAPBinding) iterator.next(); - } - catch (ClassCastException e) - { // ignore everything but SOAP Binding element - } - } - } - - return soapBinding; - } - - /** - * Create XML schema validator. This is done here because some compilers do not allow - * the documentList field to be accessed from within an inner class. - * @param documentBaseURI the base URL. - * @return newly created XML schema validator. - */ - protected XMLSchemaValidator createXMLSchemaValidator(String documentBaseURI) - { - // Create XML schema validator - return new XMLSchemaValidator(documentBaseURI); - } - - /** - * Search xsd schema or xsd import from node. If node is xsd import it's loading schema. - * @param definition a Definition object. - * @return a list of schema target namespaces. - * @throws WSIException if problem during processing method. - */ - protected List getSchemaTargetNamespaceList(Definition definition) - throws WSIException - { - List list = null, nextList = null; - - // Get list of extension elements within the types element - Types types = null; - if ((types = definition.getTypes()) != null) - { - Iterator iterator = types.getExtensibilityElements().iterator(); - - ExtensibilityElement extElement = null; - while (iterator.hasNext()) - { - // Get next ext. element - extElement = (ExtensibilityElement) iterator.next(); - // If this is an unknown ext. element, then see if it is a schema element - TargetNamespaceProcessor tnsProcessor = null; - if (extElement instanceof Schema) - { - tnsProcessor = new TargetNamespaceProcessor(definition.getDocumentBaseURI()); - - - if ((nextList = - tnsProcessor.processAllSchema( - ((Schema) extElement).getElement())) - != null) - if (list == null) - list = new Vector(); - list.addAll(nextList); - } - } - } - - return list; - } - /** - * Search xsd schema or xsd import from node. If node is xsd import it's loading schema. - * @param definition a Definition object. - * @return a list of schema target namespaces. - * @throws WSIException if problem during processing method. - */ - protected List getSchemaNamespaceList(Definition definition) - throws WSIException - { - List list = new Vector(); - - // Always add current document targetNamespace - List targetNamespaceList = getSchemaTargetNamespaceList(definition); - - if ((targetNamespaceList != null) && !targetNamespaceList.isEmpty()) - list.addAll(targetNamespaceList); - - // Get list of imported WSDL documents - Map importMap = definition.getImports(); - - Import imp; - - // Add each imports targetNamespace to the list - if (importMap != null && !importMap.isEmpty()) - { - Iterator values = importMap.values().iterator(); - List importList; - while (values.hasNext()) - { - importList = (List) values.next(); - Iterator imports = importList.iterator(); - while (imports.hasNext()) - { - imp = (Import) imports.next(); - if (imp != null && imp.getDefinition() != null) - list.addAll(getSchemaNamespaceList(imp.getDefinition())); - } - } - } - - return list; - } - - /** - * Build list of WSDL targetNamespaces. - * @param definition a Definition object. - * @return list of WSDL targetNamespaces. - */ - protected List getWSDLTargetNamespaceList(Definition definition) - { - return getWSDLTargetNamespaceList(definition, new ArrayList()); - } - - /** - * Build list of WSDL targetNamespaces. - * @param definition a Definition object. - * @return list of WSDL targetNamespaces. - */ - protected List getWSDLTargetNamespaceList(Definition definition, List alreadyProcessedDefinitions) - { - List list = new ArrayList(); - if ((definition != null) && (!alreadyProcessedDefinitions.contains(definition))) - { - alreadyProcessedDefinitions.add(definition); - - // Always add current document targetNamespace - if (definition.getTargetNamespace() != null) - list.add(definition.getTargetNamespace()); - - // Get list of imported WSDL documents - Map importMap = definition.getImports(); - - Import imp; - - // Add each imports targetNamespace to the list - if (importMap != null && !importMap.isEmpty()) - { - Iterator values = importMap.values().iterator(); - List importList; - while (values.hasNext()) - { - importList = (List) values.next(); - Iterator imports = importList.iterator(); - while (imports.hasNext()) - { - imp = (Import) imports.next(); - if (imp != null && imp.getDefinition() != null) - list.addAll(getWSDLTargetNamespaceList(imp.getDefinition(), alreadyProcessedDefinitions)); - // list.add(imp.getDefinition().getTargetNamespace()); - } - } - } - } - - return list; - } - - protected class BindingMatch - { - private Binding binding; - private BindingOperation bindingOperation; - private SOAPBinding soapBinding; - //private Vector bindingArgs; // set of BindingInputs and BindingOutputs - private BindingInput bindingInput; - private BindingOutput bindingOutput; - - // ADD: need to include BindingFault support... - public BindingMatch( - Binding b, - BindingOperation bo, - SOAPBinding sb, - BindingInput bin, - BindingOutput bout) - { - binding = b; - bindingOperation = bo; - soapBinding = sb; - //bindingArgs = new Vector(); - //if (bin != null) { bindingArgs.add(bin); } - //if (bout != null) { bindingArgs.add(bout); } - bindingInput = bin; - bindingOutput = bout; - } - - public BindingMatch( - Binding b, - BindingOperation bo, - SOAPBinding sb, - BindingInput bin) - { - this(b, bo, sb, bin, null); - } - - public BindingMatch( - Binding b, - BindingOperation bo, - SOAPBinding sb, - BindingOutput bout) - { - this(b, bo, sb, null, bout); - } - - /** - * Returns the soapBinding. - * @return SOAPBinding - */ - public SOAPBinding getSoapBinding() - { - return soapBinding; - } - - /** - * Returns the bindingOperation. - * @return BindingOperation - */ - public BindingOperation getBindingOperation() - { - return bindingOperation; - } - - /** - * Returns the bindingInput. - * @return BindingInput - */ - public BindingInput getBindingInput() - { - return bindingInput; - } - - /** - * Returns the bindingOutput. - * @return BindingOutput - */ - public BindingOutput getBindingOutput() - { - return bindingOutput; - } - - public boolean hasBindingInput() - { - return (this.bindingInput != null); - } - - public boolean hasBindingOutput() - { - return (this.bindingOutput != null); - } - - /** - * Returns the binding. - * @return Binding - */ - public Binding getBinding() - { - return binding; - } - - } - - /** - * Get binding matches. - * @param binding a binding. - * @param soapBindingStyle soap binding style. - * @param soapBodyUse soap body use. - * @return binding matches. - * @throws WSIException if problems occur during processing. - */ - public BindingMatch[] getBindingMatches( - Binding binding, - String soapBindingStyle, - String soapBodyUse) - throws WSIException - { - - Vector bindingMatches = new Vector(); - - // Check binding - SOAPBinding soapBinding = getSoapBinding(binding); - - // check that the soap:binding for this WSDL binding is the specified style - // ADD: check for null pointer - if (soapBinding != null) - { - String defaultStyle = soapBinding.getStyle(); - - if (defaultStyle == null) - { - defaultStyle = WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC; - } - - // Get the set of operations for this WSDL binding - List bindingOpsList = binding.getBindingOperations(); - if (bindingOpsList != null) - { - Iterator bindingOps = bindingOpsList.iterator(); - // for each binding operation: - while (bindingOps.hasNext()) - { - BindingOperation bindingOp = (BindingOperation) bindingOps.next(); - - SOAPOperation soapOp = getSoapOperation(bindingOp); - - if ((soapOp == null && defaultStyle.equals(soapBindingStyle)) - || (soapOp != null - && soapOp.getStyle() == null - && defaultStyle.equals(soapBindingStyle)) - || (soapOp != null - && soapOp.getStyle() != null - && soapOp.getStyle().equals(soapBindingStyle))) - { - // check binding input & output - BindingInput bInput = bindingOp.getBindingInput(); - if (bInput != null) - { - SOAPBody inputSoapBody = getSoapBody(bInput); - if (inputSoapBody == null - || (inputSoapBody.getUse() != null - && !inputSoapBody.getUse().equals(soapBodyUse))) - { - bInput = null; - } - } - - BindingOutput bOutput = bindingOp.getBindingOutput(); - if (bOutput != null) - { - SOAPBody outputSoapBody = getSoapBody(bOutput); - - if (outputSoapBody == null - || (outputSoapBody.getUse() != null - && !outputSoapBody.getUse().equals(soapBodyUse))) - { - bOutput = null; - } - } - - if ((bOutput != null) || (bInput != null)) - { - // we have a match, add to the vector - bindingMatches.add( - new BindingMatch( - binding, - bindingOp, - soapBinding, - bInput, - bOutput)); - } - } - } - } - } - - BindingMatch[] BindingMatchArray = new BindingMatch[bindingMatches.size()]; - bindingMatches.copyInto(BindingMatchArray); - return BindingMatchArray; - } - - /** - * Method getSoapOperation. - * - * @param bindingOperation a binding operation. - * @return a soap operation. - * @throws WSIException if problems while processing. - */ - public static SOAPOperation getSoapOperation(BindingOperation bindingOperation) - throws WSIException - { - - if (bindingOperation.getExtensibilityElements() == null) - { - return null; - } - - Iterator extensibles = - bindingOperation.getExtensibilityElements().iterator(); - while (extensibles.hasNext()) - { - Object extensible = extensibles.next(); - if (extensible instanceof SOAPOperation) - { - return (SOAPOperation) extensible; - } - } - return null; - } - - /* - * Returns an array of SOAPOperations corresponding to the wsdl:binding supplied. - */ - protected HashMap getSoapOperations(Binding binding) throws WSIException - { - HashMap soapOperationList = new HashMap(); - - if (binding.getBindingOperations() == null) - { - return null; - } - - //Vector soapOpVector = new Vector(); - - // Get the list of binding operations - Iterator operations = binding.getBindingOperations().iterator(); - - // Check each binding operation to see if it has a soap operation element - BindingOperation bindingOperation = null; - while (operations.hasNext()) - { - bindingOperation = (BindingOperation) operations.next(); - Iterator extensibles = - bindingOperation.getExtensibilityElements().iterator(); - while (extensibles.hasNext()) - { - Object extensible = extensibles.next(); - if (extensible instanceof SOAPOperation) - { - soapOperationList.put(extensible, bindingOperation.getName()); - } - } - } - - //return (SOAPOperation[])soapOpVector.toArray(new SOAPOperation[] {}); - return soapOperationList; - } - - /** - * Check part attributes. - * @param bindingMatch an array of BindingMatch objects. - * @param inOrOut a String object. - * @param attrib attribute. - * @return a boolean. - * @throws AssertionFailException if the part is not compliant. - */ - // GT - rework this method with a better way of parameterizing the getters required for the invocation. - protected boolean checkPartAttributes( - BindingMatch[] bindingMatch, - String inOrOut, - String attrib) - throws AssertionFailException - { - - if (!(inOrOut.equals("useInput") || inOrOut.equals("useOutput")) - || !(attrib.equals("useType") || attrib.equals("useElement"))) - { - // invalid argument value supplied by calling method - "internal error" - return false; - } - - for (int i = 0; i < bindingMatch.length; i++) - { - BindingMatch nextMatch = bindingMatch[i]; - - // check the associated parts - Message msg; - Map parts; - Iterator partIteration; - - BindingOperation bindingOp = nextMatch.getBindingOperation(); - if (bindingOp == null) - { - continue; // no Binding Operation for some reason - } - - Operation op = bindingOp.getOperation(); - - /* ADD: handle soap:faults in similar way - try { - // check faults - remarkably similar.... (need to retain operation id for failuredetail msg) - if (nextMatch.hasBindingFault()) { - - msg = op.getFault().getMessage(); - parts = msg.getParts(); - - //check that each part has an element attribute - partIteration = parts.values().iterator(); - while (partIteration.hasNext()) { - Part part = (Part)partIteration.next(); - if (part.getElementName() == null) { - throw new AssertionFailException("OPERATION: " + op + "MESSAGE: " + msg); - } - } - } - } - catch (NullPointerException n) { - // no parts found - this qualifies an assertion failure - throw new AssertionFailException(n.getMessage()); - } - */ - - try - { - - QName attributeName; - - //GT: Do we need to check BindingInput / Output here ?? - - if (inOrOut.equals("useInput")) - { - if (op.getInput() == null || !nextMatch.hasBindingInput()) - { - // No Input so nothing to check - continue; - } - - msg = op.getInput().getMessage(); - - } - else - { // Looking for Output - if (op.getOutput() == null || !nextMatch.hasBindingOutput()) - { - // No Output so nothing to check - continue; - } - - msg = op.getOutput().getMessage(); - } - - if (msg == null) - { - continue; // nothing to check from this Binding Match (?) - } - - // Get the list of parts - parts = msg.getParts(); - - // If there is a parts attribute, then only process those parts - List partsNameList = null; - if ((partsNameList = getPartsList(nextMatch, inOrOut)) != null) - { - Vector partsList = new Vector(); - Iterator partsNameIterator = partsNameList.iterator(); - while (partsNameIterator.hasNext()) - { - partsList.add(parts.get((String) partsNameIterator.next())); - } - partIteration = partsList.iterator(); - } - - // Otherwise use the complete list of parts - else - { - partIteration = parts.values().iterator(); - } - - //check that each part has an element or type attribute - while (partIteration.hasNext()) - { - Part part = (Part) partIteration.next(); - if (attrib.equals("useElement")) - { - attributeName = part.getElementName(); - } - else - { // "useType" - attributeName = part.getTypeName(); - } - - if (attributeName == null) - { - throw new AssertionFailException( - "Name of operation that failed: " - + op.getName() - + "\n" - + op.toString() - + "\n" - + "\nName of message that failed: " - + msg.getQName() - + "\n" - + msg.toString()); - } - } - } - catch (NullPointerException n) - { - // no parts found - this qualifies an assertion failure - throw new AssertionFailException(n.toString()); - } - } - return true; // tests successful - } - - /** - * Get parts list from a soapbind:body element. - */ - private List getPartsList(BindingMatch bindingMatch, String type) - { - List partsList = null; - Iterator iterator = null; - - BindingOperation bindingOp; - - try - { - // Get the binding operation - bindingOp = bindingMatch.getBindingOperation(); - - // Determine if the binding operation contains a soapbind:body with a parts attribute - if (type.equals("useInput")) - { - iterator = - bindingOp.getBindingInput().getExtensibilityElements().iterator(); - } - else - { - iterator = - bindingOp.getBindingOutput().getExtensibilityElements().iterator(); - } - } - catch (NullPointerException e) - { - return null; - // either no binding operation, binding input/output, or SOAP element - } - - // Determine if the binding operation contains a soapbind:body with a parts attribute - while ((iterator.hasNext()) && (partsList == null)) - { - try - { - SOAPBody soapBody = (SOAPBody) iterator.next(); - partsList = soapBody.getParts(); - } - catch (ClassCastException cce) - { // not a SOAPBody extensibility element so ignore - } - } - - return partsList; - } - - /** - * Get element location. - * @param wsdlDocument WSDL document. - * @param wsdlElement WSDL element. - * @return element location. - */ - protected ElementLocation getElementLocation( - WSDLDocument wsdlDocument, - Object wsdlElement) - { - ElementLocation elementLocation = null; - WSDLElementList wsdlElementList; - - if ((wsdlElementList = wsdlDocument.getElementList()) != null) - { - elementLocation = wsdlElementList.getElementLocation(wsdlElement); - } - - return elementLocation; - } - - /** - * Create failure detail. - * @param message a message. - * @param entryContext entry context. - * @return failure detail. - */ - protected FailureDetail createFailureDetail( - String message, - EntryContext entryContext) - { - return createFailureDetail( - message, - entryContext, - entryContext.getEntry().getEntryDetail()); - } - - /** - * Create failure detail. - * @param message a message. - * @param entryContext entry context. - * @param wsdlElement WSDL element. - * @return failure detail. - */ - protected FailureDetail createFailureDetail( - String message, - EntryContext entryContext, - Object wsdlElement) - { - FailureDetail failureDetail = reporter.createFailureDetail(); - failureDetail.setFailureMessage(message); - failureDetail.setElementLocation( - getElementLocation(entryContext.getWSDLDocument(), wsdlElement)); - return failureDetail; - } - - /** - * SOAPBody, SOAPFault, SOAPHeader and SOAPHeaderFault class - * interfaces have compatible getUse() and getNamespaceURI() - * methods, but wsdl4j does not declare them at the parent interface. - * Therefore use reflection to access these common methods. - * - * @param extElement extensibility element. - * @return true if namespace is found in SOAP literal. - * @throws NoSuchMethodException if this method cannot be found. - * @throws InvocationTargetException if problems occur in an invoked method or constructor - * @throws IllegalAccessException if there is am attempt to load a - * class that it does not have access to. - */ - protected boolean namespaceFoundInSoapLiteral(ExtensibilityElement extElement) - throws NoSuchMethodException, InvocationTargetException, IllegalAccessException - { - Class c = extElement.getClass(); - Method getUseMethod = c.getMethod("getUse", new Class[0]); - Method getNamespaceURIMethod = c.getMethod("getNamespaceURI", new Class[0]); - - // (use attribute is mandatory but the null case is checked for since a missing use is not - // checked with this TA. If its missing its invalid but we don't know whether we have doc-lit). - if (getUseMethod.invoke(extElement, null) == null - || !getUseMethod.invoke(extElement, null).equals( - WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT)) - { - return false; - } - - // return true if namespace found - boolean namespaceFound = - (getNamespaceURIMethod.invoke(extElement, null) != null); - - // return true if namespace found - return namespaceFound; - - } - - /** - * Verify extensibility element uses literal. - * @param extensible - extensibility element - * @return boolean - * @throws NoSuchMethodException if this method cannot be found. - * @throws InvocationTargetException if problems occur in an invoked method or constructor - * @throws IllegalAccessException if there is am attempt to load a - * class that it does not have access to. - */ - protected boolean isLiteral(ExtensibilityElement extensible) - throws NoSuchMethodException, InvocationTargetException, IllegalAccessException - { - - Class c = extensible.getClass(); - Method getUseMethod = c.getMethod("getUse", new Class[0]); - - // (use attribute is mandatory but the null case is checked for since a missing use is not - // checked with this TA. If its missing its invalid but we don't know whether we have doc-lit). - if (getUseMethod.invoke(extensible, null) == null - || !getUseMethod.invoke(extensible, null).equals( - WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT)) - { - return false; - } - - // return true if shown to have use="literal" - return true; - - } - - /** - * Returns true if these tests should be run (depending on the analyzer - * config) - */ - public boolean runTests() { return testable; } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2010.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2010.java deleted file mode 100644 index 4b39b5d48..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2010.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2010 - */ -public class WSI2010 extends BP2010 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2010(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2011.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2011.java deleted file mode 100644 index 61d5da778..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2011.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2011 - */ -public class WSI2011 extends BP2011 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2011(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2012.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2012.java deleted file mode 100644 index 21d9ef231..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2012.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2012 - */ -public class WSI2012 extends BP2012 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2012(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2013.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2013.java deleted file mode 100644 index d4f01cf16..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2013.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2013 - */ -public class WSI2013 extends BP2013 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2013(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2014.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2014.java deleted file mode 100644 index fbb6a6ae2..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2014.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2014 - */ -public class WSI2014 extends BP2014 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2014(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2017.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2017.java deleted file mode 100644 index 93e9820b6..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2017.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2017 - */ -public class WSI2017 extends BP2017 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2017(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2018.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2018.java deleted file mode 100644 index 3845e3130..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2018.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2018 - */ -public class WSI2018 extends BP2018 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2018(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2019.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2019.java deleted file mode 100644 index fb197f277..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2019.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2019 - */ -public class WSI2019 extends BP2019 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2019(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2020.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2020.java deleted file mode 100644 index 25f0206d4..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2020.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2020 - */ -public class WSI2020 extends BP2020 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2020(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2021.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2021.java deleted file mode 100644 index 437f1bc35..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2021.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2021 - */ -public class WSI2021 extends BP2021 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2021(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2022.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2022.java deleted file mode 100644 index 826996572..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2022.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2022 - */ -public class WSI2022 extends BP2022 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2022(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2032.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2032.java deleted file mode 100644 index 6c07ac1a6..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2032.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2032 - */ -public class WSI2032 extends BP2032 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2032(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2098.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2098.java deleted file mode 100644 index 82a905c27..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2098.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2098 - */ -public class WSI2098 extends BP2098 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2098(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2099.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2099.java deleted file mode 100644 index 514b52c08..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2099.java +++ /dev/null @@ -1,157 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.BindingFault; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOperation; -import javax.wsdl.BindingOutput; -import javax.wsdl.Definition; -import javax.wsdl.Fault; -import javax.wsdl.Import; -import javax.wsdl.Input; -import javax.wsdl.Output; -import javax.wsdl.Part; -import javax.wsdl.Service; -import javax.wsdl.Types; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Element; - - -/** - * WSI2099. - * <context>For a candidate wsdl:definitions, </context> - * <assertionDescription>A WS-I conformance annotation does not appear outside a wsdl:port, wsdl:binding, wsdl:portType, wsdl:operation, or wsdl:message element.</assertionDescription> - */ -public class WSI2099 extends AssertionProcessVisitor implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public WSI2099(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private ErrorList errors = new ErrorList(); - private boolean containsClaims = false; - - /** - * Check a WS-I conformance annotation does not appear outside a wsdl:port, wsdl:binding, wsdl:portType, wsdl:operation, or wsdl:message element if not it creates failure report. - * @see org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLVisitor#visit(org.w3c.dom.Element, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Element el, Object parent, WSDLTraversalContext ctx) - { - // conformance claim should be within : port, binding, porttype, operation, message - if (containsConformanceClaim(el)) - { - containsClaims = true; - - if (parent instanceof BindingFault) - errors.add(WSDL_FAULT, ((BindingFault) parent).getName()); - else if (parent instanceof BindingInput) - errors.add(WSDL_INPUT, ((BindingInput) parent).getName()); - else if (parent instanceof BindingOperation) - errors.add(WSDL_OPERATION, ((BindingOperation) parent).getName()); - else if (parent instanceof BindingOutput) - errors.add(WSDL_OUTPUT, ((BindingOutput) parent).getName()); - else if (parent instanceof Definition) - errors.add(WSDL_DEFINITIONS, ((Definition) parent).getQName()); - else if (parent instanceof Service) - errors.add(WSDL_SERVICE, ((Service) parent).getQName()); - else if (parent instanceof Fault) - errors.add(WSDL_FAULT, ((Fault) parent).getName()); - else if (parent instanceof Output) - errors.add(WSDL_INPUT, ((Output) parent).getName()); - else if (parent instanceof Import) - errors.add(WSDL_IMPORT, ((Import) parent).getNamespaceURI()); - else if (parent instanceof Input) - errors.add(WSDL_INPUT, ((Input) parent).getName()); - else if (parent instanceof Part) - errors.add(WSDL_PART, ((Part) parent).getName()); - else if (parent instanceof Types) - errors.add(WSDL_TYPES); - } - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(this); - traversal.setVisitor(this); - traversal.visitElement(true); - /* - traversal. - ignorePort2Element(). - ignoreMessage2Element(). - ignoreBinding2Element(). - ignorePortType2Element(). - ignoreOperation2Element(); - */ - traversal.ignoreReferences(); - traversal.ignoreImport(); - traversal.traverse((Definition) entryContext.getEntry().getEntryDetail()); - - // create detail message with the list of error elements - if (!errors.isEmpty()) - { - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - result = AssertionResult.RESULT_FAILED; - } - - else if (!containsClaims) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - - else - { - result = AssertionResult.RESULT_PASSED; - } - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } - - /** - * Check the documentation element whether contains conformance claims. - * Returns true if documentation element contains conformance claim. - * @param el - * @return boolean - */ - private boolean containsConformanceClaim(Element el) - { - if (el == null) - return false; - el = XMLUtils.findChildElement(el, WSI_CLAIM); - return (el != null); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2100.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2100.java deleted file mode 100644 index da15585c4..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2100.java +++ /dev/null @@ -1,171 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -import javax.wsdl.Binding; -import javax.wsdl.Definition; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.Port; -import javax.wsdl.PortType; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.ErrorList; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Element; - - -/** - * WSI2100. - * <context>For a candidate wsdl:definitions, if it contains a wsdl:port, wsdl:binding, wsdl:portType, wsdl:operation, or wsdl:message, which in turn contains a conformance annotation</context> - * <assertionDescription>The conformance annotation of the wsdl:port, wsdl:binding, wsdl:portType, wsdl:operation, or wsdl:message, validates to the schema defined in the Basic Profile, and is direct child of the documentation element for the WSDL element. The schema definition uses "http://ws-i.org/schemas/conformanceClaim/" as the targetNamespace. </assertionDescription> - */ -public class WSI2100 extends AssertionProcessVisitor implements WSITag -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public WSI2100(WSDLValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private boolean containsClaims = false; - private ErrorList errors = new ErrorList(); - - /* Create falure report if port contains illegal claim. - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Port, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Port port, Object parent, WSDLTraversalContext ctx) - { - if (port != null && !containsLegalClaim(port.getDocumentationElement())) - errors.add(WSDL_PORT, port.getName()); - } - - /* Create falure report if binding contains illegal claim. - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Binding, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Binding binding, Object parent, WSDLTraversalContext ctx) - { - if (binding != null - && !containsLegalClaim(binding.getDocumentationElement())) - errors.add(WSDL_BINDING, binding.getQName()); - } - - /* Create falure report if port type contains illegal claim. - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.PortType, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(PortType type, Object parent, WSDLTraversalContext ctx) - { - if (type != null && !containsLegalClaim(type.getDocumentationElement())) - errors.add(WSDL_PORTTYPE, type.getQName()); - } - - /* Create falure report if operation contains illegal claim. - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Operation, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - Operation operation, - Object parent, - WSDLTraversalContext ctx) - { - if (operation != null - && !containsLegalClaim(operation.getDocumentationElement())) - errors.add(WSDL_OPERATION, operation.getName()); - } - - /* Create falure report if message contains illegal claim. - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Message, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Message message, Object parent, WSDLTraversalContext ctx) - { - if (message != null - && !containsLegalClaim(message.getDocumentationElement())) - errors.add(WSDL_MESSAGE, message.getQName()); - } - - /* Validates the test assertion. - * @see org.wsi.test.profile.validator.impl.BaseValidatorImpl.AssertionProcess#validate(org.wsi.test.profile.TestAssertion, org.wsi.test.profile.validator.EntryContext) - */ - public AssertionResult validate( - TestAssertion testAssertion, - EntryContext entryContext) - throws WSIException - { - result = AssertionResult.RESULT_FAILED; - - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(this); - traversal.setVisitor(this); - traversal.visitOperation(true); - traversal.visitBinding(true); - traversal.visitMessage(true); - traversal.visitPort(true); - traversal.visitPortType(true); - traversal.ignoreReferences(); - traversal.ignoreImport(); - traversal.traverse((Definition) entryContext.getEntry().getEntryDetail()); - - // create detail message with the list of error elements - if (!errors.isEmpty()) - { - failureDetail = this.validator.createFailureDetail(errors.toString(), entryContext); - result = AssertionResult.RESULT_FAILED; - } - - else if (!containsClaims) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - else - result = AssertionResult.RESULT_PASSED; - - return validator.createAssertionResult(testAssertion, result, failureDetail); - } - - /** - * Check the documentation element whether contains conformance claims. - * Returns true if documentation element contains conformance claim with - * illegal schema definition URI. - * legal is 'http://ws-i.org/schemas/conformanceClaim/' - * @param el - * @return boolean - */ - private boolean containsLegalClaim(Element el) - { - if (el == null) - return true; - // find claim - el = XMLUtils.findChildElement(el, WSI_CLAIM); - - if (el != null) - containsClaims = true; - - while (el != null) - { - if (XMLUtils.getAttribute(el, ATTR_CLAIM_CONFORMSTO) == null - || XMLUtils.getAttribute(el, ATTR_SOAP_MUSTUNDERSTAND) != null) - return false; - el = XMLUtils.findElement(el, WSI_CLAIM); - } - return true; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2101.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2101.java deleted file mode 100644 index 68f09db6a..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2101.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2101 - */ -public class WSI2101 extends BP2101 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2101(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2102.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2102.java deleted file mode 100644 index 63627d05c..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2102.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2102 - */ -public class WSI2102 extends BP2102 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2102(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2103.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2103.java deleted file mode 100644 index bb75f197c..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2103.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2103 - */ -public class WSI2103 extends BP2103 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2103(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2104.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2104.java deleted file mode 100644 index b7427795e..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2104.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2104 - */ -public class WSI2104 extends BP2104 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2104(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2105.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2105.java deleted file mode 100644 index bbbddfeec..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2105.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2105 - */ -public class WSI2105 extends BP2105 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2105(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2107.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2107.java deleted file mode 100644 index dc5742fd8..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2107.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2107 - */ -public class WSI2107 extends BP2107 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2107(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2108.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2108.java deleted file mode 100644 index 746beaa3f..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2108.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2108 - */ -public class WSI2108 extends BP2108 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2108(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2110.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2110.java deleted file mode 100644 index e70cc4d30..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2110.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2110 - */ -public class WSI2110 extends BP2110 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2110(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2111.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2111.java deleted file mode 100644 index ef9286fb9..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2111.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2111 - */ -public class WSI2111 extends BP2111 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2111(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2112.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2112.java deleted file mode 100644 index ed40abe32..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2112.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2112 - */ -public class WSI2112 extends BP2112 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2112(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2113.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2113.java deleted file mode 100644 index 0c1189792..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2113.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2113 - */ -public class WSI2113 extends BP2113 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2113(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2114.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2114.java deleted file mode 100644 index ef55a24eb..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2114.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2114 - */ -public class WSI2114 extends BP2114 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2114(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2115.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2115.java deleted file mode 100644 index 916ef7a3d..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2115.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2115 - */ -public class WSI2115 extends BP2115 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2115(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2116.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2116.java deleted file mode 100644 index 03358e71d..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2116.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2116 - */ -public class WSI2116 extends BP2116 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2116(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2117.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2117.java deleted file mode 100644 index 87b377cb3..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2117.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2117 - */ -public class WSI2117 extends BP2117 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2117(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2118.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2118.java deleted file mode 100644 index d6d33076b..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2118.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2118 - */ -public class WSI2118 extends BP2118 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2118(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2119.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2119.java deleted file mode 100644 index 1416ce33a..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2119.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2119 - */ -public class WSI2119 extends BP2119 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2119(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2120.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2120.java deleted file mode 100644 index 4f2e205b7..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2120.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2120 - */ -public class WSI2120 extends BP2120 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2120(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2122.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2122.java deleted file mode 100644 index 22994ec84..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2122.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2122 - */ -public class WSI2122 extends BP2122 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2122(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2123.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2123.java deleted file mode 100644 index 44f05a6b4..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2123.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2123 - */ -public class WSI2123 extends BP2123 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2123(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2201.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2201.java deleted file mode 100644 index 696457c71..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2201.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2201 - */ -public class WSI2201 extends BP2201 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2201(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2202.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2202.java deleted file mode 100644 index ebb59f35f..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2202.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2202 - */ -public class WSI2202 extends BP2202 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2202(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2208.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2208.java deleted file mode 100644 index 4ed71303b..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2208.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2208 - */ -public class WSI2208 extends BP2208 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2208(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2402.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2402.java deleted file mode 100644 index 10c57852b..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2402.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2402 - */ -public class WSI2402 extends BP2402 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2402(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2403.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2403.java deleted file mode 100644 index 8facd42e0..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2403.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2403 - */ -public class WSI2403 extends SSBP2403 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2403(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2404.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2404.java deleted file mode 100644 index 9dfa8e9c8..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2404.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2404 - */ -public class WSI2404 extends BP2404 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2404(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2406.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2406.java deleted file mode 100644 index c6d420a79..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2406.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2406 - */ -public class WSI2406 extends BP2406 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2406(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2416.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2416.java deleted file mode 100644 index 770bf3f6b..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2416.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2416 - */ -public class WSI2416 extends BP2416 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2416(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2417.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2417.java deleted file mode 100644 index 7c2383641..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2417.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2417 - */ -public class WSI2417 extends BP2417 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2417(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2700.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2700.java deleted file mode 100644 index 39bbb363b..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2700.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2700 - */ -public class WSI2700 extends BP2700 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2700(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2701.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2701.java deleted file mode 100644 index 4337f53d3..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2701.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2701 - */ -public class WSI2701 extends BP2701 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2701(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2703.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2703.java deleted file mode 100644 index 54637088b..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2703.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI2703 - */ -public class WSI2703 extends BP2703 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI2703(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI4200.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI4200.java deleted file mode 100644 index ed43a7c31..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI4200.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI4200 - */ -public class WSI4200 extends BP4200 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI4200(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI4201.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI4201.java deleted file mode 100644 index f7233d977..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI4201.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI4201 - */ -public class WSI4201 extends BP4201 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI4201(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI4202.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI4202.java deleted file mode 100644 index 92d9baed5..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI4202.java +++ /dev/null @@ -1,26 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl; - -/** - * WSI4202 - */ -public class WSI4202 extends BP4202 -{ - - /** - * @param WSDLValidatorImpl - */ - public WSI4202(WSDLValidatorImpl impl) - { - super(impl); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/ArtifactReference.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/ArtifactReference.java deleted file mode 100644 index 89899de60..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/ArtifactReference.java +++ /dev/null @@ -1,67 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report; - -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.document.DocumentElement; - -/** - * An artifact reference. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface ArtifactReference extends DocumentElement -{ - /** - * Element name. - */ - public static final String ELEM_NAME = WSIConstants.ELEM_ARTIFACT_REFERENCE; - - /** - * QName. - */ - public static final QName QNAME = - new QName(WSIConstants.NS_URI_WSI_REPORT, ELEM_NAME); - - /** - * Get timestamp. - * @return timestamp. - * @see #setTimestamp - */ - public String getTimestamp(); - - /** - * Set timestamp. - * @param timestamp a timestamp. - * @see #getTimestamp - */ - public void setTimestamp(String timestamp); - - /** - * Get document element. - * @return document element. - * @see #setDocumentElement - */ - public DocumentElement getDocumentElement(); - - /** - * Set document element. - * @param documentElement document element. - * @param namespaceName namespace prefix. - * @see #getDocumentElement - */ - public void setDocumentElement( - DocumentElement documentElement, - String namespaceName); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/AssertionResult.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/AssertionResult.java deleted file mode 100644 index c5113e86f..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/AssertionResult.java +++ /dev/null @@ -1,148 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report; - -import java.util.Vector; - -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AssertionResultsOption; -import org.eclipse.wst.wsi.internal.core.document.DocumentElement; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; - -/** - * Test assertion result. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface AssertionResult extends DocumentElement -{ - /** - * Element name. - */ - public static final String ELEM_NAME = WSIConstants.ELEM_ASSERTION_RESULT; - - /** - * QName. - */ - public static final QName QNAME = - new QName(WSIConstants.NS_URI_WSI_REPORT, ELEM_NAME); - - /** - * Result values. - */ - public static final String RESULT_PASSED = "passed"; - public static final String RESULT_FAILED = "failed"; - public static final String RESULT_PREREQ_FAILED = "prereqFailed"; - public static final String RESULT_MISSING_INPUT = "missingInput"; - public static final String RESULT_WARNING = "warning"; - public static final String RESULT_NOT_APPLICABLE = "notApplicable"; - - /** - * Get result. - * @return result. - * @see #setResult - */ - public String getResult(); - - /** - * Set result. - * @param result the result value. - * @see #getResult - */ - public void setResult(String result); - - /** - * Get assertion. - * @return profile test assertion. - * @see #setAssertion - */ - public TestAssertion getAssertion(); - - /** - * Set assertion. - * @param profileAssertion profile test assertion. - * @see #getAssertion - */ - public void setAssertion(TestAssertion profileAssertion); - - /** - * Get entry. - * @return entry. - * @see #setEntry - */ - public Entry getEntry(); - - /** - * Set entry. - * @param entry an entry. - * @see #getEntry - */ - public void setEntry(Entry entry); - - /** - * Get failure detail messages. - * @return failure detail messages. - * @see #setFailureDetailList - */ - public Vector getFailureDetailList(); - - /** - * Set failure detail messages. - * @param failureDetailList failure detail messages. - * @see #getFailureDetailList - */ - public void setFailureDetailList(Vector failureDetailList); - - /** - * Get warning messages. - * @return warning messages. - * @see #setWarningMessages - */ - //public Vector getWarningMessages(); - - /** - * Set warning messages. - * @param warningMessages warning messages. - * @see #getWarningMessages - */ - //public void setWarningMessages(Vector warningMessages); - - /** - * Get assertion results option. - * @return ssertion results option. - * @see #setAssertionResultsOption - */ - public AssertionResultsOption getAssertionResultsOption(); - - /** - * Set assertion results option. - * @param assertionResultsOption assertion results option. - * @see #getAssertionResultsOption - */ - public void setAssertionResultsOption(AssertionResultsOption assertionResultsOption); - - /** - * Get prereq failed list. - * @return prereq failed list. - * @see #setPrereqFailedList - */ - public PrereqFailedList getPrereqFailedList(); - - /** - * Set prereq failed list. - * @param prereqFailedList prereq failed list. - * @see #getPrereqFailedList - */ - public void setPrereqFailedList(PrereqFailedList prereqFailedList); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/BuildReport.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/BuildReport.java deleted file mode 100644 index 09dbc2fe4..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/BuildReport.java +++ /dev/null @@ -1,125 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report; - -import org.eclipse.wst.wsi.internal.core.WSIException; - -/** - * This interface is used to build the Profile report. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface BuildReport -{ - /** - * Prereq type - entry. - */ - public static final String PREREQ_TYPE_ENTRY = "entry"; - - /** - * Prereq type - entry container. - */ - public static final String PREREQ_TYPE_ENTRY_CONTAINER = "entryContainer"; - - /** - * Start current artifact. - * @param reportArtifact current report artifact. - * @throws WSIException the base WS-I exception. - */ - public void setCurrentArtifact(ReportArtifact reportArtifact) - throws WSIException; - - /** - * Add artifact refererence. - * @param artifactReference artifact reference. - * @throws WSIException the base WS-I exception. - */ - public void addArtifactReference(ArtifactReference artifactReference) - throws WSIException; - - /** - * End current artifact. - * @throws WSIException the base WS-I exception. - */ - public void endCurrentArtifact() throws WSIException; - - /** - * Start current entry. - * @param entry the current entry. - * @throws WSIException the base WS-I exception. - */ - public void setCurrentEntry(Entry entry) throws WSIException; - - /** - * Start current entry. - * @param entry the current entry. - * @throws WSIException the base WS-I exception. - */ - public void setCurrentEnvelopeEntry(Entry entry) throws WSIException; - /** - * End current entry. - * @throws WSIException the base WS-I exception. - */ - public void endCurrentEntry() throws WSIException; - - /** - * Add test assertion result. - * @param assertionResult test assertion result. - * @throws WSIException the base WS-I exception. - */ - public void addAssertionResult(AssertionResult assertionResult) - throws WSIException; - - /** - * Get the assertion result for a specific test assertion. - * @param assertionId the test assertion ID. - * @return the assertion result for the specified test assertion ID. - * If an assertion result was not found, then null is returned. - */ - public AssertionResult getAssertionResult(String assertionId); - - /** - * Create assertion result. - * @return newly created assertion result. - */ - public AssertionResult createAssertionResult(); - - /** - * Create entry. - * @return newly created entry. - */ - public Entry createEntry(); - - /** - * Create entry container. - * @return newly created entry container. - */ - public EntryContainer createEntryContainer(); - - /** - * Create artifact. - * @return newly created artifact. - */ - public ReportArtifact createArtifact(); - - /** - * Create failure detail. - * @return newly created failure detail. - */ - public FailureDetail createFailureDetail(); - - /** - * Set type of prereq processing - either entry or document. - * @param prereqType type of prereq processing - either entry or document. - */ - public void setPrereqType(String prereqType); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/Entry.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/Entry.java deleted file mode 100644 index e9cd89acb..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/Entry.java +++ /dev/null @@ -1,153 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report; - -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.document.DocumentElement; -import org.eclipse.wst.wsi.internal.core.util.EntryType; - -/** - * Test assertion target. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface Entry extends EntryResult, DocumentElement -{ - /** - * Element name. - */ - public static final String ELEM_NAME = WSIConstants.ELEM_ENTRY; - - /** - * QName. - */ - public static final QName QNAME = - new QName(WSIConstants.NS_URI_WSI_REPORT, ELEM_NAME); - - /** - * Get assertion results option. - */ - //public AssertionResultsOption getAssertionResultsOption(); - - /** - * Set assertion results option. - */ - //public void setAssertionResultsOption(AssertionResultsOption assertionResultsOption); - - /** - * Get entry type. - * @return entry type. - * @see #setEntryType - */ - public EntryType getEntryType(); - - /** - * Set entry type. - * @param entryType entry type. - * @see #getEntryType - */ - public void setEntryType(EntryType entryType); - - /** - * Get artifact name. - * @return artifact name. - * @see #setArtifactName - */ - public String getArtifactName(); - - /** - * Set artifact name. - * @param artifactName artifact name. - * @see #getArtifactName - */ - public void setArtifactName(String artifactName); - - /** - * Get reference ID. - * @return reference ID. - * @see #setReferenceID - */ - public String getReferenceID(); - - /** - * Set reference ID. - * @param referenceID referenceID. - * @see #getReferenceID - */ - public void setReferenceID(String referenceID); - - /** - * Get parent element name. - * @return parent element name. - * @see #setParentElementName - */ - public String getParentElementName(); - - /** - * Set parent element name. - * @param parentElementName parent element name. - * @see #getParentElementName - */ - public void setParentElementName(String parentElementName); - - /** - * Get entry detail. - * @return entry detail. - * @see #setEntryDetail - */ - public Object getEntryDetail(); - - /** - * Set entry detail. - * @param detail entry detail. - * @see #getEntryDetail - */ - public void setEntryDetail(Object detail); - - /** - * Get entry container. - * @return entry container. - * @see #setEntryContainer - */ - public EntryContainer getEntryContainer(); - - /** - * Set entry container. - * @param entryContainer entry container. - * @see #getEntryContainer - */ - public void setEntryContainer(EntryContainer entryContainer); - - /** - * Get start element string. - * @param namespaceName namespace prefix. - * @param showLogEntry show log entry option. - * @return start XML element string. - */ - public String getStartXMLString(String namespaceName, boolean showLogEntry); - - /** - * Get start element string. - * @param namespaceName namespace prefix. - * @param showLogEntry show log entry option. - * @return start XML element string. - */ - public String getStartXMLString(String namespaceName, boolean showLogEntry, boolean envelopeArtifactType); - /** - * Get end element string. - * @param namespaceName namespace prefix. - * @return end XML element string. - */ - public String getEndXMLString(String namespaceName); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/EntryContainer.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/EntryContainer.java deleted file mode 100644 index 9991e1591..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/EntryContainer.java +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report; - -/** - * This class represents a container which has one or more entries. - * For example, a WSDL document contains one or more elements. - * - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ -public interface EntryContainer extends EntryResult -{ - /** - * Get container id. - * @return container id. - * @see #setId - */ - public String getId(); - - /** - * Set container id. - * @param id container id. - * @see #getId - */ - public void setId(String id); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/EntryResult.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/EntryResult.java deleted file mode 100644 index 77a4f576a..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/EntryResult.java +++ /dev/null @@ -1,42 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report; - -import java.util.TreeMap; - -/** - * Result for a specific test assertion. - * - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ -public interface EntryResult -{ - /** - * Add assertion result. - * @param assertionResult assertion result. - */ - public void addAssertionResult(AssertionResult assertionResult); - - /** - * Get assertion results. - * @return assertion results. - */ - public TreeMap getAssertionResultList(); - - /** - * Get the assertion result for a specific test assertion. - * @param assertionId test assertion id. - * @return the assertion result for the specified test assertion ID. - * If an assertion result was not found, then null is returned. - */ - public AssertionResult getAssertionResult(String assertionId); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/FailureDetail.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/FailureDetail.java deleted file mode 100644 index 4c8acb3ad..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/FailureDetail.java +++ /dev/null @@ -1,94 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report; - -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.document.DocumentElement; -import org.eclipse.wst.wsi.internal.core.xml.dom.ElementLocation; - -/** - * Failure detail. - * - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ -public interface FailureDetail extends DocumentElement -{ - /** - * Element name. - */ - public static final String ELEM_NAME = WSIConstants.ELEM_FAILURE_DETAIL; - - /** - * QName. - */ - public static final QName QNAME = - new QName(WSIConstants.NS_URI_WSI_REPORT, ELEM_NAME); - - /** - * Get failure detail message. - * @return failure detail message. - * @see #setFailureMessage - */ - public String getFailureMessage(); - - /** - * Set failure detail message. - * @param failureMessage failure detail message. - * @see #getFailureMessage - */ - public void setFailureMessage(String failureMessage); - - /** - * Get reference type. - * @return reference type. - * @see #setReferenceType - */ - public String getReferenceType(); - - /** - * Set reference type. - * @param referenceType reference type. - * @see #getReferenceType - */ - public void setReferenceType(String referenceType); - - /** - * Get reference ID. - * @return reference ID. - * @see #setReferenceIDn - */ - public String getReferenceID(); - - /** - * Set reference ID. - * @param referenceID reference ID. - * @see #getReferenceID - */ - public void setReferenceIDn(String referenceID); - - /** - * Get element location. - * @return element location. - * @see #setElementLocation - */ - public ElementLocation getElementLocation(); - - /** - * Set element location. - * @param elementLocation element location. - * @see #getElementLocation - */ - public void setElementLocation(ElementLocation elementLocation); - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/PrereqFailedList.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/PrereqFailedList.java deleted file mode 100644 index 81059d363..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/PrereqFailedList.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report; - -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.document.DocumentElement; - -/** - * This interface is used to maintain and access the Prerequisite Failed List. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface PrereqFailedList extends DocumentElement -{ - /** - * Element name. - */ - public static final String ELEM_NAME = WSIConstants.ELEM_PREREQ_FAILED_LIST; - - /** - * QName. - */ - public static final QName QNAME = - new QName(WSIConstants.NS_URI_WSI_REPORT, ELEM_NAME); - - /** - * Add test assertion ID. - * @param assertionID test assertion ID. - */ - public void addTestAssertionID(String assertionID); - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/Report.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/Report.java deleted file mode 100644 index 1f0ad51e7..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/Report.java +++ /dev/null @@ -1,105 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report; - -import java.util.List; - -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.document.WSIDocument; - -/** - * Conformance test report. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface Report extends WSIDocument, BuildReport -{ - /** - * Element name. - */ - public static final String ELEM_NAME = WSIConstants.ELEM_REPORT; - - /** - * QName. - */ - public static final QName QNAME = - new QName(WSIConstants.NS_URI_WSI_REPORT, ELEM_NAME); - - /** - * Get report context. - * @return report context. - * @see #setReportContext - */ - public ReportContext getReportContext(); - - /** - * Set report context. - * @param reportContext report context. - * @see #getReportContext - */ - public void setReportContext(ReportContext reportContext); - - /** - * Get current artifact. - * @return current artifact. - */ - public ReportArtifact getCurrentArtifact(); - - /** - * Get current entry. - * @return current entry. - */ - public Entry getCurrentEntry(); - - /** - * Method getEntries. - * @return entry list. - */ - public List getEntries(); - - /** - * Method getArtifacts. - * @return artifacts. - */ - public List getArtifacts(); - - /** - * Get start element string. - * @param namespaceName namespace prefix - * @return start element string. - */ - public String getStartXMLString(String namespaceName); - - /** - * Get end element string. - * @param namespaceName namespace prefix - * @return end element string. - */ - public String getEndXMLString(String namespaceName); - - /** - * Get error XML string. - * @param namespaceName namespace prefix. - * @param errorDetail an error detail. - * @return error XML string. - */ - public String getErrorXMLString(String namespaceName, String errorDetail); - - /** - * Get summary result. - * @return summary result. - */ - public String getSummaryResult(); - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/ReportArtifact.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/ReportArtifact.java deleted file mode 100644 index 4a1fb9ced..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/ReportArtifact.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report; - -import java.util.TreeMap; - -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.document.DocumentElement; -import org.eclipse.wst.wsi.internal.core.util.ArtifactType; - -/** - * Report artifact. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface ReportArtifact extends DocumentElement -{ - /** - * Element name. - */ - public static final String ELEM_NAME = WSIConstants.ELEM_ARTIFACT; - - /** - * QName. - */ - public static final QName QNAME = - new QName(WSIConstants.NS_URI_WSI_REPORT, ELEM_NAME); - - /** - * Get artifact type. - * @return artifact type. - * @see #setType - */ - public ArtifactType getType(); - - /** - * Set artifact type. - * @param artifactType artifact type. - * @see #getType - */ - public void setType(ArtifactType artifactType); - - /** - * Add entry. - * @param entry an entry. - */ - public void addEntry(Entry entry); - - /** - * Get entry list. - * @return entry list. - */ - public TreeMap getEntryList(); - - /** - * Get start element string. - * @param namespaceName namespace prefix. - * @return start element string. - */ - public String getStartXMLString(String namespaceName); - - /** - * Get end element string. - * @param namespaceName namespace prefix. - * @return end element string. - */ - public String getEndXMLString(String namespaceName); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/ReportContext.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/ReportContext.java deleted file mode 100644 index 06507b095..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/ReportContext.java +++ /dev/null @@ -1,116 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.analyzer.Analyzer; -import org.eclipse.wst.wsi.internal.core.profile.ProfileAssertions; - -/** - * Report context. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class ReportContext -{ - /** - * Report title. - */ - protected String reportTitle = WSIConstants.DEFAULT_REPORT_TITLE; - - /** - * Profile definition. - */ - protected ProfileAssertions profileAssertions; - - /** - * Analyzer. - */ - protected Analyzer analyzer; - - /** - * Create report context. - * @param reportTitle report title. - * @param profileAssertions profile test assertions. - * @param analyzer an Analyzer object. - */ - public ReportContext( - String reportTitle, - ProfileAssertions profileAssertions, - Analyzer analyzer) - { - this.reportTitle = reportTitle; - this.profileAssertions = profileAssertions; - this.analyzer = analyzer; - } - - /** - * Get report title. - * @return report title. - * @see #setReportTitle - */ - public String getReportTitle() - { - return this.reportTitle; - } - - /** - * Set report title. - * @param reportTitle report title. - * @see #getReportTitle - */ - public void setReportTitle(String reportTitle) - { - this.reportTitle = reportTitle; - } - - /** - * Get profile definition. - * @return profile definition. - * @see #setProfileAssertions - */ - public ProfileAssertions getProfileAssertions() - { - return this.profileAssertions; - } - - /** - * Set profile definition. - * @param profileAssertions profile definition. - * @see #getProfileAssertions - */ - public void setProfileAssertions(ProfileAssertions profileAssertions) - { - this.profileAssertions = profileAssertions; - } - - /** - * Get analyzer. - * @return analyzer. - * @see #setAnalyzer - */ - public Analyzer getAnalyzer() - { - return this.analyzer; - } - - /** - * Set analyzer. - * @param analyzer an Analyzer object. - * @see #getAnalyzer - * - */ - public void setAnalyzer(Analyzer analyzer) - { - this.analyzer = analyzer; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/ReportWriter.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/ReportWriter.java deleted file mode 100644 index ae7fc6667..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/ReportWriter.java +++ /dev/null @@ -1,40 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report; - -import java.io.Writer; - -import org.eclipse.wst.wsi.internal.core.document.DocumentWriter; - -/** - * Defines the interface used to write the report documents. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface ReportWriter extends DocumentWriter -{ - /** - * Write the entire contents of the document using the location - * that was previously set using the setLocation method. - * @param report a report. - * @throws IllegalStateException if this operation has been invoked - * at an illegal or inappropriate time - */ - public void write(Report report) throws IllegalStateException; - - /** - * Write the entire contents of the document. - * @param report a report. - * @param writer a Writer object. - */ - public void write(Report report, Writer writer); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/Reporter.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/Reporter.java deleted file mode 100644 index 1ea784313..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/Reporter.java +++ /dev/null @@ -1,21 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report; - -/** - * Conformance test reporter interface. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface Reporter extends BuildReport, WriteReport -{ -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/WriteReport.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/WriteReport.java deleted file mode 100644 index 8c70d9ad3..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/WriteReport.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report; - -import org.eclipse.wst.wsi.internal.core.WSIException; - -/** - * This class .. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface WriteReport -{ - /** - * Start conformance report. - * @throws WSIException the base WS-I exception. - */ - public void startReport() throws WSIException; - - /** - * Finish the conformance report by adding the summary and test coverage information. - * @throws WSIException the base WS-I exception. - */ - public void finishReport() throws WSIException; - - /** - * Finish the conformance report because of an analyzer error. - * @param errorDetail analyzer error. - * @throws WSIException the base WS-I exception. - */ - public void finishReportWithError(String errorDetail) throws WSIException; - - /** - * Get report. - * @return report. - */ - public Report getReport(); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/ArtifactReferenceImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/ArtifactReferenceImpl.java deleted file mode 100644 index d4b46ba3a..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/ArtifactReferenceImpl.java +++ /dev/null @@ -1,125 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report.impl; - -import java.io.PrintWriter; -import java.io.StringWriter; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.document.DocumentElement; -import org.eclipse.wst.wsi.internal.core.report.ArtifactReference; - -/** - * An artifact reference. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class ArtifactReferenceImpl implements ArtifactReference -{ - /** - * Timestamp. - */ - protected String timestamp = null; - - /** - * Optional document element. - */ - protected DocumentElement documentElement = null; - - /** - * Optional document element namespace name. - */ - protected String elementNamespaceName = null; - - /* (non-Javadoc) - * @see org.wsi.test.report.ArtifactReference#getTimestamp() - */ - public String getTimestamp() - { - return this.timestamp; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.ArtifactReference#setTimestamp(String) - */ - public void setTimestamp(String timestamp) - { - this.timestamp = timestamp; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.ArtifactReference#getDocumentElement() - */ - public DocumentElement getDocumentElement() - { - return this.documentElement; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.ArtifactReference#setDocumentElement(DocumentElement, String) - */ - public void setDocumentElement( - DocumentElement documentElement, - String namespaceName) - { - this.documentElement = documentElement; - this.elementNamespaceName = namespaceName; - } - - /* (non-Javadoc) - * Get string representation of this object. - */ - public String toString() - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - pw.println(" Artifact Reference: "); - pw.println(" timestamp ........... " + this.timestamp); - - if (this.documentElement != null) - pw.println( - " documentElement ..... " - + this.documentElement.toXMLString(this.elementNamespaceName)); - - return sw.toString(); - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentElement#toXMLString(String) - */ - public String toXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - // Create element - pw.print(" <" + nsName + ELEM_NAME + " "); - pw.println(WSIConstants.ATTR_TIMESTAMP + "=\"" + getTimestamp() + "\">"); - - // If there is a document element, then add it - if (this.documentElement != null) - { - pw.print(documentElement.toXMLString(this.elementNamespaceName)); - } - - // End element - pw.println(" </" + nsName + ELEM_NAME + ">"); - - return sw.toString(); - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/AssertionResultImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/AssertionResultImpl.java deleted file mode 100644 index 5b2d8ce14..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/AssertionResultImpl.java +++ /dev/null @@ -1,236 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report.impl; - -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.Iterator; -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AssertionResultsOption; -import org.eclipse.wst.wsi.internal.core.analyzer.config.impl.AssertionResultsOptionImpl; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.report.Entry; -import org.eclipse.wst.wsi.internal.core.report.FailureDetail; -import org.eclipse.wst.wsi.internal.core.report.PrereqFailedList; - -import com.ibm.wsdl.util.xml.DOMUtils; - -/** - * Test assertion result. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class AssertionResultImpl implements AssertionResult -{ - /** - * Assertion result. - */ - protected String result = null; - - /** - * Entry. - */ - protected Entry entry = null; - - /** - * Profile test assertion. - */ - protected TestAssertion testAssertion = null; - - /** - * Failure detail messages. - */ - protected Vector failureDetailList = null; - - /** - * Assertion results option. - */ - protected AssertionResultsOption assertionResultsOption = - new AssertionResultsOptionImpl(); - - /** - * Prereq failed list. - */ - protected PrereqFailedList prereqFailedList = null; - - /** - * Create a new assertion result. - */ - public AssertionResultImpl() - { - } - - /* (non-Javadoc) - * @see org.wsi.test.report.AssertionResult#getResult() - */ - public String getResult() - { - return this.result; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.AssertionResult#setResult(java.lang.String) - */ - public void setResult(String result) - { - this.result = result; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.AssertionResult#getAssertion() - */ - public TestAssertion getAssertion() - { - return this.testAssertion; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.AssertionResult#setAssertion(org.wsi.test.profile.TestAssertion) - */ - public void setAssertion(TestAssertion testAssertion) - { - this.testAssertion = testAssertion; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.AssertionResult#getEntry() - */ - public Entry getEntry() - { - return this.entry; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.AssertionResult#setEntry(org.wsi.test.report.Entry) - */ - public void setEntry(Entry entry) - { - this.entry = entry; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.AssertionResult#getFailureDetailList() - */ - public Vector getFailureDetailList() - { - return this.failureDetailList; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.AssertionResult#setFailureDetailList(java.util.Vector) - */ - public void setFailureDetailList(Vector failureDetailList) - { - this.failureDetailList = failureDetailList; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.AssertionResult#getAssertionResultsOption() - */ - public AssertionResultsOption getAssertionResultsOption() - { - return this.assertionResultsOption; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.AssertionResult#setAssertionResultsOption(org.wsi.test.analyzer.config.AssertionResultsOption) - */ - public void setAssertionResultsOption(AssertionResultsOption assertionResultsOption) - { - this.assertionResultsOption = assertionResultsOption; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.AssertionResult#getPrereqFailedList() - */ - public PrereqFailedList getPrereqFailedList() - { - return this.prereqFailedList; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.AssertionResult#setPrereqFailedList(org.wsi.test.report.PrereqFailedList) - */ - public void setPrereqFailedList(PrereqFailedList prereqFailedList) - { - this.prereqFailedList = prereqFailedList; - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentElement#toXMLString(java.lang.String) - */ - public String toXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - // Create element - pw.print(" <" + nsName + ELEM_NAME + " "); - pw.print(WSIConstants.ATTR_ID + "=\"" + this.testAssertion.getId() + "\" "); - pw.println(WSIConstants.ATTR_RESULT + "=\"" + this.result + "\">"); - - // ADD: Add support for additional targets - - // Add prereq failed list - if (this.prereqFailedList != null) - { - pw.print(prereqFailedList.toXMLString(nsName)); - } - - // ADD: Add support for multiple languages - // If result is failed or warning, then add failure message - if ((result.equals(RESULT_FAILED) || result.equals(RESULT_WARNING)) - && (assertionResultsOption.getShowFailureMessage())) - { - pw.print( - " <" - + nsName - + WSIConstants.ELEM_FAILURE_MESSAGE - + " xml:lang=\"en\">"); - pw.print(DOMUtils.cleanString(this.testAssertion.getFailureMessage())); - pw.println("</" + nsName + WSIConstants.ELEM_FAILURE_MESSAGE + ">"); - } - - // ADD: Add support for multiple languages - // If any failure detail messages were specified, then add them - if ((failureDetailList != null) - && (assertionResultsOption.getShowFailureDetail())) - { - Iterator iterator = failureDetailList.iterator(); - while (iterator.hasNext()) - { - pw.print(((FailureDetail) iterator.next()).toXMLString(nsName)); - } - } - - // End the element - pw.println(" </" + nsName + ELEM_NAME + ">"); - - // Return string - return sw.toString(); - } - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - public String toString() - { - return result; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/DefaultReporter.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/DefaultReporter.java deleted file mode 100644 index 30ac2fe2a..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/DefaultReporter.java +++ /dev/null @@ -1,280 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2003 IBM Corporation, Parasoft 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 - Initial API and implementation - * Parasoft - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report.impl; - -import java.io.StringReader; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AnalyzerConfig; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AssertionResultType; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.report.ArtifactReference; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.report.Entry; -import org.eclipse.wst.wsi.internal.core.report.EntryContainer; -import org.eclipse.wst.wsi.internal.core.report.FailureDetail; -import org.eclipse.wst.wsi.internal.core.report.Report; -import org.eclipse.wst.wsi.internal.core.report.ReportArtifact; -import org.eclipse.wst.wsi.internal.core.report.ReportWriter; -import org.eclipse.wst.wsi.internal.core.report.Reporter; - -/** - * Base class for reporting errors from the analyzer. - * Extend this class for specific types of reporting, such as reporting - * in different formats, reporting to files, reporting to a GUI. - * - * @version 1.0.1 - * @author Jim Clune - * @author Peter Brittenham - */ -public class DefaultReporter implements Reporter -{ - /** - * Conformance report. - */ - protected Report report; - - /** - * Document writer. - */ - protected ReportWriter reportWriter; - - /** - * Analyzer config. - */ - protected AnalyzerConfig analyzerConfig; - - /** - * Assertoin result type. - */ - protected AssertionResultType assertionResultType; - - /** - * Create result reporter. - * @param report a Report object. - * @param reportWriter a ReportWriterObject. - */ - public DefaultReporter(Report report, ReportWriter reportWriter) - { - this.report = report; - this.reportWriter = reportWriter; - - // ADD: Verify that writer set in reportWriter - - // Get report context - this.analyzerConfig = - report.getReportContext().getAnalyzer().getAnalyzerConfig(); - this.assertionResultType = - this.analyzerConfig.getAssertionResultsOption().getAssertionResultType(); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#setCurrentArtifact(org.wsi.test.report.ReportArtifact) - */ - public void setCurrentArtifact(ReportArtifact reportArtifact) - throws WSIException - { - report.setCurrentArtifact(reportArtifact); - reportWriter.write(new StringReader(reportArtifact.getStartXMLString(""))); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#endCurrentArtifact() - */ - public void endCurrentArtifact() throws WSIException - { - reportWriter.write( - new StringReader(report.getCurrentArtifact().getEndXMLString(""))); - report.endCurrentArtifact(); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#addArtifactReference(org.wsi.test.report.ArtifactReference) - */ - public void addArtifactReference(ArtifactReference artifactReference) - throws WSIException - { - reportWriter.write(new StringReader(artifactReference.toXMLString(""))); - - // Add artifact reference to report - report.addArtifactReference(artifactReference); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#setCurrentEntry(org.wsi.test.report.Entry) - */ - public void setCurrentEntry(Entry entry) throws WSIException - { - report.setCurrentEntry(entry); - reportWriter.write( - new StringReader( - entry.getStartXMLString( - "", - this - .report - .getReportContext() - .getAnalyzer() - .getAnalyzerConfig() - .getAssertionResultsOption() - .getShowMessageEntry()))); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#setCurrentEntry(org.wsi.test.report.Entry) - */ - public void setCurrentEnvelopeEntry(Entry entry) throws WSIException - { - report.setCurrentEntry(entry); - reportWriter.write( - new StringReader( - entry.getStartXMLString( - "", - this - .report - .getReportContext() - .getAnalyzer() - .getAnalyzerConfig() - .getAssertionResultsOption() - .getShowMessageEntry(), - true))); - } -/* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#endCurrentEntry() - */ - public void endCurrentEntry() throws WSIException - { - reportWriter.write( - new StringReader(report.getCurrentEntry().getEndXMLString(""))); - report.endCurrentEntry(); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#addAssertionResult(org.wsi.test.report.AssertionResult) - */ - public void addAssertionResult(AssertionResult assertionResult) - throws WSIException - { - // Based on the config options, write out assertion result - if ((assertionResultType.isAll()) - || ((assertionResultType.isFailedOnly()) - && (assertionResult.getResult().equals(AssertionResult.RESULT_FAILED))) - || ((assertionResultType.isNotPassed()) - && (!assertionResult.getResult().equals(AssertionResult.RESULT_PASSED))) - || ((assertionResultType.isNotInfo()) - && (!assertionResult.getAssertion().getType().equals(TestAssertion.TYPE_INFORMATIONAL)))) - { - reportWriter.write(new StringReader(assertionResult.toXMLString(""))); - } - - // Add assertion to report - report.addAssertionResult(assertionResult); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#getAssertionResult(java.lang.String) - */ - public AssertionResult getAssertionResult(String assertionId) - { - // Get the assertion result from the current assertion target - return report.getAssertionResult(assertionId); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.WriteReport#startReport() - */ - public void startReport() throws WSIException - { - // Write out start of report - reportWriter.write(new StringReader(report.getStartXMLString(""))); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.WriteReport#finishReport() - */ - public void finishReport() throws WSIException - { - // End the report file - reportWriter.write(new StringReader(report.getEndXMLString(""))); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.WriteReport#finishReportWithError(java.lang.String) - */ - public void finishReportWithError(String errorDetail) throws WSIException - { - // Check if entry or artifact need to be closed - if (this.report.getCurrentEntry() != null) - endCurrentEntry(); - if (this.report.getCurrentArtifact() != null) - endCurrentArtifact(); - - // End the report file - reportWriter.write( - new StringReader(report.getErrorXMLString("", errorDetail))); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#createAssertionResult() - */ - public AssertionResult createAssertionResult() - { - return report.createAssertionResult(); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#createArtifact() - */ - public ReportArtifact createArtifact() - { - return report.createArtifact(); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#createEntry() - */ - public Entry createEntry() - { - return report.createEntry(); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#createEntryContainer() - */ - public EntryContainer createEntryContainer() - { - return report.createEntryContainer(); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#createFailureDetail() - */ - public FailureDetail createFailureDetail() - { - return report.createFailureDetail(); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.WriteReport#getReport() - */ - public Report getReport() - { - return this.report; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#setPrereqType(java.lang.String) - */ - public void setPrereqType(String prereqType) - { - this.report.setPrereqType(prereqType); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/EntryContainerImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/EntryContainerImpl.java deleted file mode 100644 index 956d086db..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/EntryContainerImpl.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2003 IBM Corporation, Parasoft 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 - Initial API and implementation - * Parasoft - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report.impl; - -import org.eclipse.wst.wsi.internal.core.report.EntryContainer; - -/** - * This class represents a container for one or more entries. - * An example would be a WSDL document. - * - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ -public class EntryContainerImpl - extends EntryResultImpl - implements EntryContainer -{ - /** - * Container ID. - */ - protected String id; - - /* (non-Javadoc) - * @see org.wsi.test.report.EntryContainer#getId() - */ - public String getId() - { - return this.id; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.EntryContainer#setId(String) - */ - public void setId(String id) - { - this.id = id; - } - - /** - * Return string representation of this object. - */ - public String toString() - { - return "[" + this.id + "] " + this.assertionResultList; - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/EntryImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/EntryImpl.java deleted file mode 100644 index b607759b5..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/EntryImpl.java +++ /dev/null @@ -1,276 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report.impl; - -import java.io.PrintWriter; -import java.io.StringWriter; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.document.DocumentElement; -import org.eclipse.wst.wsi.internal.core.profile.validator.EnvelopeValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.MessageValidator; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.report.Entry; -import org.eclipse.wst.wsi.internal.core.report.EntryContainer; -import org.eclipse.wst.wsi.internal.core.util.EntryType; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; - -/** - * This class represents an entry in a report. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class EntryImpl extends EntryResultImpl implements Entry -{ - /** - * Entry type. - */ - protected EntryType entryType = null; - - /** - * Artifact name (optional). - */ - protected String artifactName = null; - - /** - * Reference ID. - */ - protected String referenceID = null; - - /** - * Parent element name (only used when entry type is "port" or "operation"). - */ - protected String parentElementName = null; - - /** - * Entry detail object. - */ - protected Object entryDetail = null; - - /** - * Entry container. - */ - protected EntryContainer entryContainer = null; - - /* (non-Javadoc) - * @see org.wsi.test.report.Entry#getEntryType() - */ - public EntryType getEntryType() - { - return this.entryType; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Entry#setEntryType(EntryType) - */ - public void setEntryType(EntryType entryType) - { - this.entryType = entryType; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Entry#getArtifactName() - */ - public String getArtifactName() - { - return this.artifactName; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Entry#setArtifactName(java.lang.String) - */ - public void setArtifactName(String artifactName) - { - this.artifactName = artifactName; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Entry#getReferenceID() - */ - public String getReferenceID() - { - return this.referenceID; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Entry#setReferenceID(String) - */ - public void setReferenceID(String referenceID) - { - this.referenceID = referenceID; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Entry#getParentElementName() - */ - public String getParentElementName() - { - return this.parentElementName; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Entry#setParentElementName(String) - */ - public void setParentElementName(String parentElementName) - { - this.parentElementName = parentElementName; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Entry#getEntryDetail() - */ - public Object getEntryDetail() - { - return this.entryDetail; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Entry#setEntryDetail(Object) - */ - public void setEntryDetail(Object entryDetail) - { - this.entryDetail = entryDetail; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Entry#getEntryContainer() - */ - public EntryContainer getEntryContainer() - { - return this.entryContainer; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Entry#setEntryContainer(org.wsi.test.report.EntryContainer) - */ - public void setEntryContainer(EntryContainer entryContainer) - { - this.entryContainer = entryContainer; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.EntryResult#addAssertionResult(AssertionResult) - */ - public void addAssertionResult(AssertionResult assertionResult) - { - super.addAssertionResult(assertionResult); - - if (this.entryContainer != null) - this.entryContainer.addAssertionResult(assertionResult); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Entry#getStartXMLString(String) - */ - public String getStartXMLString(String namespaceName, boolean showLogEntry, boolean envelopeArtifactType) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - // Create element - pw.print(" <" + nsName + ELEM_NAME + " "); - - if (this.entryType != null) - { - if (envelopeArtifactType) - { - // we use the same actual entry for both message and envelope artifacts - // we now need to output entry type names that actually pertain to the artifact type - pw.print( - WSIConstants.ATTR_TYPE + "=\"" + getCorrespondingEnvelopeEntryTypeName(this.entryType.getTypeName()) + "\" "); - } - else - { - pw.print( - WSIConstants.ATTR_TYPE + "=\"" + this.entryType.getTypeName() + "\" "); - } - } - - else if (this.artifactName != null) - { - pw.print(WSIConstants.ATTR_TYPE + "=\"[" + this.artifactName + "]\" "); - } - - if (this.referenceID != null) - pw.print(WSIConstants.ATTR_REFERENCE_ID + "=\"" + XMLUtils.xmlEscapedString(this.referenceID) + "\" "); - - - // If service name was set then add it - //if (parentElementName != null) { - // pw.print(" " + WSIConstants.ATTR_PARENT_ELEMENT_NAME + "=\"" + this.parentElementName + "\""); - //} - - // ADD: Need to check for config option that specifies - // that log entries should be added - - // If target is a log entry, then add reference to it - if ((entryType != null) && (entryType.getArtifactType().isLoggable()) && (showLogEntry)) - { - DocumentElement logEntry = (DocumentElement) entryDetail; - pw.println("value=\"" + logEntry.toXMLString(WSIConstants.NS_NAME_WSI_LOG) + "\" "); - } - - // End element - pw.println(">"); - - return sw.toString(); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Entry#getStartXMLString(String) - */ - public String getStartXMLString(String namespaceName, boolean showLogEntry) - { - return getStartXMLString(namespaceName, showLogEntry, false); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Entry#getEndXMLString(String) - */ - public String getEndXMLString(String namespaceName) - { - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - return " </" + nsName + ELEM_NAME + ">"; - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentElement#toXMLString(String) - */ - public String toXMLString(String namespaceName) - { - // Return string - return getStartXMLString("", false) + getEndXMLString(""); - } - - public String getCorrespondingEnvelopeEntryTypeName(String messageEntryTypeName) - { - String envelopeEntryTypeName = messageEntryTypeName; - if (messageEntryTypeName != null) - { - if (messageEntryTypeName.equals(MessageValidator.TYPE_MESSAGE_ANY)) - envelopeEntryTypeName = EnvelopeValidator.TYPE_ENVELOPE_ANY; - else if (messageEntryTypeName.equals(MessageValidator.TYPE_MESSAGE_REQUEST)) - envelopeEntryTypeName = EnvelopeValidator.TYPE_ENVELOPE_REQUEST; - else if (messageEntryTypeName.equals(MessageValidator.TYPE_MESSAGE_RESPONSE)) - envelopeEntryTypeName = EnvelopeValidator.TYPE_ENVELOPE_RESPONSE; - } - - return envelopeEntryTypeName; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/EntryResultImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/EntryResultImpl.java deleted file mode 100644 index 61ffb72d9..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/EntryResultImpl.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report.impl; - -import java.util.TreeMap; - -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.report.EntryResult; - -/** - * Result for a specific test assertion. - * - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ -public abstract class EntryResultImpl implements EntryResult -{ - /** - * Assertion result list. - */ - protected TreeMap assertionResultList = new TreeMap(); - - /* (non-Javadoc) - * @see org.wsi.test.report.EntryResult#addAssertionResult(org.wsi.test.report.AssertionResult) - */ - public void addAssertionResult(AssertionResult assertionResult) - { - this.assertionResultList.put( - assertionResult.getAssertion().getId(), - assertionResult); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.EntryResult#getAssertionResultList() - */ - public TreeMap getAssertionResultList() - { - return assertionResultList; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.EntryResult#getAssertionResult(String) - */ - public AssertionResult getAssertionResult(String assertionId) - { - return (AssertionResult) assertionResultList.get(assertionId); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/FailureDetailImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/FailureDetailImpl.java deleted file mode 100644 index dc7dc5143..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/FailureDetailImpl.java +++ /dev/null @@ -1,151 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report.impl; - -import java.io.PrintWriter; -import java.io.StringWriter; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.report.FailureDetail; -import org.eclipse.wst.wsi.internal.core.xml.dom.ElementLocation; - -import com.ibm.wsdl.util.xml.DOMUtils; - -/** - * This class will ... - * - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ -public class FailureDetailImpl implements FailureDetail -{ - protected String failureMessage = null; - protected String referenceType = null; - protected String referenceID = null; - protected ElementLocation elementLocation = null; - - /* (non-Javadoc) - * @see org.wsi.test.report.FailureDetail#getFailureMessage() - */ - public String getFailureMessage() - { - return this.failureMessage; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.FailureDetail#setFailureMessage(String) - */ - public void setFailureMessage(String failureMessage) - { - this.failureMessage = failureMessage; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.FailureDetail#getReferenceType() - */ - public String getReferenceType() - { - return this.referenceType; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.FailureDetail#setReferenceType(String) - */ - public void setReferenceType(String referenceType) - { - this.referenceType = referenceType; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.FailureDetail#getReferenceID() - */ - public String getReferenceID() - { - return this.referenceID; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.FailureDetail#setReferenceIDn(String) - */ - public void setReferenceIDn(String referenceID) - { - this.referenceID = referenceID; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.FailureDetail#getElementLocation() - */ - public ElementLocation getElementLocation() - { - return this.elementLocation; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.FailureDetail#setElementLocation(ElementLocation) - */ - public void setElementLocation(ElementLocation elementLocation) - { - this.elementLocation = elementLocation; - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentElement#toXMLString(String) - */ - public String toXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - // Create element - pw.print(" <" + nsName + ELEM_NAME + " xml:lang=\"en\" "); - - if (this.referenceType != null) - pw.print( - WSIConstants.ATTR_REFERENCE_TYPE + "=\"" + this.referenceType + "\" "); - - if (this.referenceID != null) - pw.print( - WSIConstants.ATTR_REFERENCE_ID + "=\"" + this.referenceID + "\" "); - - // ADD: Need to use a different namespace - /* - if (this.elementLocation != null) { - String nsNameExt = "reportext"; - pw.print("xmlns:" + nsNameExt + "=\"" + WSIConstants.NS_URI_WSI_REPORT + "/ext/\""); - pw.print(nsNameExt + ":" + WSIConstants.ATTR_LINE_NUMBER + "=\"" + this.elementLocation.getLineNumber() + "\" "); - pw.print(nsNameExt + ":" + WSIConstants.ATTR_COLUMN_NUMBER + "=\"" + this.elementLocation.getColumnNumber() + "\" "); - } - */ - - // Close start element - pw.print(">"); - - if (this.failureMessage != null) - pw.println(DOMUtils.cleanString(this.failureMessage)); - - if (this.elementLocation != null) - { - pw.println(" "); - pw.print(this.elementLocation.toString()); - } - - // End the element - pw.println(" </" + nsName + ELEM_NAME + ">"); - - // Return string - return sw.toString(); - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/PrereqFailedListImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/PrereqFailedListImpl.java deleted file mode 100644 index eb1de2051..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/PrereqFailedListImpl.java +++ /dev/null @@ -1,76 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report.impl; - -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.Iterator; -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.report.PrereqFailedList; - -/** - * This interface is used to maintain and access the Prerequisite Failed List. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class PrereqFailedListImpl implements PrereqFailedList -{ - /** - * List of test assertion IDs. - */ - protected Vector idList = new Vector(); - - /* (non-Javadoc) - * @see org.wsi.test.report.PrereqFailedList#addTestAssertionID(java.lang.String) - */ - public void addTestAssertionID(String assertionID) - { - idList.add(assertionID); - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentElement#toXMLString(String) - */ - public String toXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - if (this.idList.size() > 0) - { - // Create element - pw.println(" <" + nsName + ELEM_NAME + ">"); - - // Include each test assertion ID - Iterator iterator = idList.iterator(); - while (iterator.hasNext()) - { - pw.print( - " <" + nsName + WSIConstants.ELEM_TEST_ASSERTION_ID + ">"); - pw.print((String) iterator.next()); - pw.println("</" + nsName + WSIConstants.ELEM_TEST_ASSERTION_ID + ">"); - } - - // End element - pw.println(" </" + nsName + ELEM_NAME + ">"); - } - - return sw.toString(); - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/ReportArtifactImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/ReportArtifactImpl.java deleted file mode 100644 index 44299b8fc..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/ReportArtifactImpl.java +++ /dev/null @@ -1,115 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report.impl; - -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.TreeMap; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.report.Entry; -import org.eclipse.wst.wsi.internal.core.report.ReportArtifact; -import org.eclipse.wst.wsi.internal.core.util.ArtifactType; - -/** - * This class contains a report artifact. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class ReportArtifactImpl implements ReportArtifact -{ - /** - * Artifact type. - */ - protected ArtifactType artifactType = null; - - /** - * Entries. - */ - protected TreeMap entryList = new TreeMap(); - - /* (non-Javadoc) - * @see org.wsi.test.report.ReportArtifact#getType() - */ - public ArtifactType getType() - { - return this.artifactType; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.ReportArtifact#setType(ArtifactType) - */ - public void setType(ArtifactType artifactType) - { - this.artifactType = artifactType; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.ReportArtifact#addEntry(Entry) - */ - public void addEntry(Entry entry) - { - // Add entry - if (entry.getEntryType() != null) - this.entryList.put(entry.getEntryType().getTypeName(), entry); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.ReportArtifact#getEntryList() - */ - public TreeMap getEntryList() - { - return this.entryList; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.ReportArtifact#getStartXMLString(String) - */ - public String getStartXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - // Create element - pw.print(" <" + nsName + ELEM_NAME + " "); - pw.print( - WSIConstants.ATTR_TYPE + "=\"" + this.artifactType.getTypeName() + "\">"); - - return sw.toString(); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.ReportArtifact#getEndXMLString(String) - */ - public String getEndXMLString(String namespaceName) - { - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - return " </" + nsName + ELEM_NAME + ">"; - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentElement#toXMLString(String) - */ - public String toXMLString(String namespaceName) - { - // Return string - return getStartXMLString("") + getEndXMLString(""); - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/ReportImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/ReportImpl.java deleted file mode 100644 index 7db12f01c..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/ReportImpl.java +++ /dev/null @@ -1,514 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report.impl; - -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.List; -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.log.Log; -import org.eclipse.wst.wsi.internal.core.report.ArtifactReference; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.report.Entry; -import org.eclipse.wst.wsi.internal.core.report.EntryContainer; -import org.eclipse.wst.wsi.internal.core.report.FailureDetail; -import org.eclipse.wst.wsi.internal.core.report.Report; -import org.eclipse.wst.wsi.internal.core.report.ReportArtifact; -import org.eclipse.wst.wsi.internal.core.report.ReportContext; -import org.eclipse.wst.wsi.internal.core.util.TestUtils; -import org.eclipse.wst.wsi.internal.core.util.Utils; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; - -/** - * WS-I conformance test report. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class ReportImpl implements Report -{ - /** - * Report filename. - */ - protected String filename = null; - - /** - * Report context. - */ - protected ReportContext reportContext = null; - - /** - * Log file. - */ - protected Log log = null; - - /** - * Summary all passed flag. - */ - protected boolean allPassed = true; - - /** - * Test coverage. - */ - //protected TestCoverage testCoverage; - - /** - * Artifact list. - */ - protected Vector artifactList = new Vector(); - - /** - * Entry list. - */ - protected Vector entryList = new Vector(); - - /** - * Current artifact. - */ - protected ReportArtifact currentArtifact = null; - - /** - * Current entry. - */ - protected Entry currentEntry = null; - - /** - * Prereq type. - */ - protected String prereqType; - - /** - * Create a new conformance report. - */ - public ReportImpl() - { - } - - /* (non-Javadoc) - * @see org.wsi.test.document.WSIDocument#getLocation() - */ - public String getLocation() - { - // Get report URI - //return reportURI; - return this.filename; - } - - /* (non-Javadoc) - * @see org.wsi.test.document.WSIDocument#setLocation(java.lang.String) - */ - public void setLocation(String reportURI) - { - this.filename = reportURI; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Report#getReportContext() - */ - public ReportContext getReportContext() - { - return this.reportContext; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Report#setReportContext(org.wsi.test.report.ReportContext) - */ - public void setReportContext(ReportContext reportContext) - { - // Save input references - this.reportContext = reportContext; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Report#getCurrentArtifact() - */ - public ReportArtifact getCurrentArtifact() - { - // Return artifact - return this.currentArtifact; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#setCurrentArtifact(org.wsi.test.report.ReportArtifact) - */ - public void setCurrentArtifact(ReportArtifact artifact) throws WSIException - { - // Save reference to artifact - artifactList.add(artifact); - - // Set as current artifact - this.currentArtifact = artifact; - - // Set default prereq processing - this.prereqType = PREREQ_TYPE_ENTRY; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#endCurrentArtifact() - */ - public void endCurrentArtifact() throws WSIException - { - // Remove current artifact - this.currentArtifact = null; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#addArtifactReference(org.wsi.test.report.ArtifactReference) - */ - public void addArtifactReference(ArtifactReference artifactReference) - throws WSIException - { - // ADD: How should this be saved? Should it be added to the current artifact? - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Report#getCurrentEntry() - */ - public Entry getCurrentEntry() - { - // Return entry - return this.currentEntry; - } - /* (non-Javadoc) - * @see org.wsi.test.report.Report#getCurrentEntry() - */ - public void setCurrentEnvelopeEntry(Entry entry) throws WSIException - { - - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#setCurrentEntry(org.wsi.test.report.Entry) - */ - public void setCurrentEntry(Entry entry) throws WSIException - { - // Save reference to entry - entryList.add(entry); - - // Set as current entry - this.currentEntry = entry; - } - - /** - * Method getEntries. - * @return entry list. - */ - public List getEntries() - { - return entryList; - } - - /** - * Method getArtifacts. - * @return artifacts. - */ - public List getArtifacts() - { - return artifactList; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#endCurrentEntry() - */ - public void endCurrentEntry() throws WSIException - { - // Remove current entry - this.currentEntry = null; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#addAssertionResult(org.wsi.test.report.AssertionResult) - */ - public void addAssertionResult(AssertionResult assertionResult) - { - // ADD: Need to keep just a summary - - // Add result to current entry - if (currentEntry != null) - { - currentEntry.addAssertionResult(assertionResult); - } - - // If the result was not passed, then set summary flag - if (assertionResult.getResult().equals(AssertionResult.RESULT_FAILED)) - { - allPassed = false; - } - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#getAssertionResult(java.lang.String) - */ - public AssertionResult getAssertionResult(String assertionId) - { - AssertionResult result = null; - - // Determine where to get the assertion result from - if (this.prereqType.equals(PREREQ_TYPE_ENTRY)) - result = currentEntry.getAssertionResult(assertionId); - else - result = currentEntry.getEntryContainer().getAssertionResult(assertionId); - - // the assertion result is not found at the current entry, going through all the entries - if (result == null) - { - for (int i = 0; i < entryList.size(); i ++) - { - Entry entry = (Entry) entryList.get(i); - if ((result = entry.getAssertionResult(assertionId)) != null) - break; - } - } - return result; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#createAssertionResult() - */ - public AssertionResult createAssertionResult() - { - AssertionResult assertionResult = new AssertionResultImpl(); - assertionResult.setAssertionResultsOption( - reportContext - .getAnalyzer() - .getAnalyzerConfig() - .getAssertionResultsOption()); - return assertionResult; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#createEntry() - */ - public Entry createEntry() - { - Entry entry = new EntryImpl(); - //entry.setAssertionResultsOption(reportContext.getAnalyzer().getAnalyzerConfig().getAssertionResultsOption()); - return entry; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#createEntryContainer() - */ - public EntryContainer createEntryContainer() - { - EntryContainer entryContainer = new EntryContainerImpl(); - return entryContainer; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#createArtifact() - */ - public ReportArtifact createArtifact() - { - ReportArtifact reportArtifact = new ReportArtifactImpl(); - return reportArtifact; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#createFailureDetail() - */ - public FailureDetail createFailureDetail() - { - FailureDetail failureDetail = new FailureDetailImpl(); - return failureDetail; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Report#getSummaryResult() - */ - public String getSummaryResult() - { - return ( - allPassed - ? AssertionResult.RESULT_PASSED - : AssertionResult.RESULT_FAILED); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#setPrereqType(java.lang.String) - */ - public void setPrereqType(String prereqType) - { - this.prereqType = prereqType; - } - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - public String toString() - { - // ADD: - return "Report: "; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Report#getStartXMLString(java.lang.String) - */ - public String getStartXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - // Create report element - pw.println(WSIConstants.XML_DECL); - pw.println( - reportContext - .getAnalyzer() - .getAnalyzerConfig() - .getAddStyleSheet() - .getStyleSheetString()); - - // Add XML comment - String comment; - if ((comment = TestUtils.getXMLComment()) != null) - pw.print(comment); - - // report - pw.print( - "<" - + nsName - + ELEM_NAME - + " " - + WSIConstants.ATTR_NAME - + "=\"" - + reportContext.getReportTitle() - + "\""); - pw.println( - " " - + WSIConstants.ATTR_TIMESTAMP - + "=\"" - + Utils.getTimestamp() - + "\""); - pw.println(" xmlns=\"" + WSIConstants.NS_URI_WSI_REPORT + "\""); - pw.println( - " xmlns:" - + WSIConstants.NS_NAME_WSI_REPORT - + "=\"" - + WSIConstants.NS_URI_WSI_REPORT - + "\""); - pw.println( - " xmlns:" - + WSIConstants.NS_NAME_WSI_LOG - + "=\"" - + WSIConstants.NS_URI_WSI_LOG - + "\""); - //pw.println(" xmlns:" + WSIConstants.NS_NAME_WSI_COMMON + "=\"" + WSIConstants.NS_URI_WSI_COMMON + "\""); - pw.println( - " xmlns:" - + WSIConstants.NS_NAME_WSI_ANALYZER_CONFIG - + "=\"" - + WSIConstants.NS_URI_WSI_ANALYZER_CONFIG - + "\""); - pw.println( - " xmlns:" - + WSIConstants.NS_NAME_WSI_MONITOR_CONFIG - + "=\"" - + WSIConstants.NS_URI_WSI_MONITOR_CONFIG - + "\""); - pw.println( - " xmlns:" - + WSIConstants.NS_NAME_WSI_ASSERTIONS - + "=\"" - + WSIConstants.NS_URI_WSI_ASSERTIONS - + "\""); - pw.println( - " xmlns:" - + WSIConstants.NS_NAME_XSI - + "=\"" - + WSIConstants.NS_URI_XSI - + "\">"); - - // Add analyzer tool info - pw.print(reportContext.getAnalyzer().toXMLString(nsName)); - - // Return XML string - return sw.toString(); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Report#getEndXMLString(java.lang.String) - */ - public String getEndXMLString(String namespaceName) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - // Build summary - pw.print(" <" + nsName + WSIConstants.ELEM_SUMMARY + " "); - pw.println(WSIConstants.ATTR_RESULT + "=\"" + getSummaryResult() + "\">"); - - // ADD: Detail summary - /* - pw.print(" <" + nsName + WSIConstants.ELEM_ARTIFACT_SUMMARY + " "); - pw.println(WSIConstants.ATTR_RESULT + "=\"xxxx\">"); - - pw.println(" </" + nsName + WSIConstants.ELEM_ARTIFACT_SUMMARY + ">"); - */ - - // End element - pw.println(" </" + nsName + WSIConstants.ELEM_SUMMARY + ">"); - - // End report element - pw.println("</" + nsName + ELEM_NAME + ">"); - - // Return XML string - return sw.toString(); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Report#getErrorXMLString(java.lang.String, java.lang.String) - */ - public String getErrorXMLString(String namespaceName, String errorDetail) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String nsName = namespaceName; - if ((!nsName.equals("") && (!nsName.endsWith(":")))) - nsName += ":"; - - // Build analyzer failure - pw.println(" <" + nsName + WSIConstants.ELEM_ANALYZER_FAILURE + ">"); - - // Add error detail - pw.print(" <" + nsName + WSIConstants.ELEM_FAILURE_DETAIL + ">"); - pw.print(XMLUtils.xmlEscapedString(errorDetail)); - pw.println(" </" + nsName + WSIConstants.ELEM_FAILURE_DETAIL + ">"); - - // End report element - pw.println("</" + nsName + WSIConstants.ELEM_ANALYZER_FAILURE + ">"); - - // End report element - pw.println("</" + nsName + ELEM_NAME + ">"); - - // Return XML string - return sw.toString(); - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentElement#toXMLString(java.lang.String) - */ - public String toXMLString(String namespaceName) - { - return getStartXMLString(namespaceName) + getEndXMLString(namespaceName); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/ReportWriterImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/ReportWriterImpl.java deleted file mode 100644 index 73eeb3525..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/report/impl/ReportWriterImpl.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.report.impl; - -import java.io.PrintWriter; -import java.io.Writer; - -import org.eclipse.wst.wsi.internal.core.document.impl.DocumentWriterImpl; -import org.eclipse.wst.wsi.internal.core.report.Report; -import org.eclipse.wst.wsi.internal.core.report.ReportWriter; - -/** - * Defines the interface used to write the Conformance XML documents. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class ReportWriterImpl - extends DocumentWriterImpl - implements ReportWriter -{ - /** - * Report writer. - */ - public ReportWriterImpl() - { - } - - /** - * Write the entire contents of the document using the writer - * that was previously set using the setWriter method. - */ - public void write(Report report) throws IllegalStateException - { - // If writer was not set previously, then throw exception - if (writer == null) - { - throw new IllegalStateException("Report writer must be set before writing report."); - } - - // Write report - write(report, this.writer); - } - - /** - * Write the entire contents of the document. - */ - public void write(Report report, Writer writer) - { - // Create print writer - new PrintWriter(writer); - - // ADD: Write out complete report - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/toolinfo.properties b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/toolinfo.properties deleted file mode 100644 index a1304c5b9..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/toolinfo.properties +++ /dev/null @@ -1,18 +0,0 @@ -# /** -# * <copyright> -# * -# * Copyright (c) 2002-2003 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 - Initial API and implementation -# * </copyright> -# */ - -wsi.tool.version=1.0.0 -wsi.tool.release.date=2005-04-15 -wsi.tool.implementer=Eclipse.org Organization -wsi.tool.location=http://www.eclipse.org/wst diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/ArtifactType.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/ArtifactType.java deleted file mode 100644 index 09667b368..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/ArtifactType.java +++ /dev/null @@ -1,214 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.util; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.eclipse.wst.wsi.internal.WSITestToolsPlugin; - -/** - * This class ... - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class ArtifactType -{ - /** - * This type. - */ - private String type; - - private static Map typeMap; - private static List loggableArtifactTypes; - - /** - * ReportArtifact types. - */ - /** @deprecated -- use EnvelopeValidator.TYPE_ENVELOPE **/ - public static final String TYPE_ENVELOPE = "envelope"; - /** @deprecated -- use MessageValidator.TYPE_MESSAGE **/ - public static final String TYPE_MESSAGE = "message"; - /** @deprecated -- use WSDLValidator.TYPE_DESCRIPTION **/ - public static final String TYPE_DESCRIPTION = "description"; - /** @deprecated -- use UDDIValidator.TYPE_DISCOVERY **/ - public static final String TYPE_DISCOVERY = "discovery"; - - /** - * ReportArtifact types. - */ - /** @deprecated -- use getArtifactType(String typeName) to access ArtifactType **/ - public static final ArtifactType ARTIFACT_TYPE_ENVELOPE = - new ArtifactType(TYPE_ENVELOPE); - /** @deprecated -- use getArtifactType(String typeName) to access ArtifactType **/ - public static final ArtifactType ARTIFACT_TYPE_MESSAGE = - new ArtifactType(TYPE_MESSAGE); - /** @deprecated -- use getArtifactType(String typeName) to access ArtifactType **/ - public static final ArtifactType ARTIFACT_TYPE_DESCRIPTION = - new ArtifactType(TYPE_DESCRIPTION); - /** @deprecated -- use getArtifactType(String typeName) to access ArtifactType **/ - public static final ArtifactType ARTIFACT_TYPE_DISCOVERY = - new ArtifactType(TYPE_DISCOVERY); - - /** - * Create artifact type. - */ - private ArtifactType(String type) - { - this.type = type; - } - - /** Returns true if this artifact can be output to the report. */ - public boolean isLoggable() - { - if (loggableArtifactTypes == null) - { - String artifactArray[] = WSITestToolsPlugin.getPlugin().getAllReportArtifactTypes(); - loggableArtifactTypes = new ArrayList(artifactArray.length); - for (int i = 0; i < artifactArray.length; i++) - loggableArtifactTypes.add(artifactArray[i]); - } - return loggableArtifactTypes.contains(type); - } - - /** - * Is artifact type envelope. - * @return true if artifact type envelope. - * @deprecated -- an artifactType is no longer restricted to envelope, - * message, description or discovery. - */ - public boolean isEnvelope() - { - return type.equals(TYPE_ENVELOPE); - } - - /** - * Is artifact type messages. - * @return true if artifact type messages. - * @deprecated -- an artifactType is no longer restricted to envelope, - * message, description or discovery. - */ - public boolean isMessages() - { - return type.equals(TYPE_MESSAGE); - } - - /** - * Is artifact type description. - * @return true if artifact type description. - * @deprecated -- an artifactType is no longer restricted to envelope, - * message, description or discovery. - */ - public boolean isDescription() - { - return type.equals(TYPE_DESCRIPTION); - } - - /** - * Is artifact type discovery. - * @return true if artifact type discovery. - * @deprecated -- an artifactType is no longer restricted to envelope, - * message, description or discovery. - */ - public boolean isDiscovery() - { - return type.equals(TYPE_DISCOVERY); - } - - /** - * Get artifact type. - * @return artifact type. - */ - public String getTypeName() - { - return type; - } - - /** - * Instantiates a new artifact type and adds it to the registry map - * @param name - the artifact name (matches artifact type attribute from TAD) - */ - public static void registerArtifactType(String name) { - if (typeMap == null) - typeMap = new HashMap(); - typeMap.put(name, new ArtifactType(name)); - } - - /** - * Create artifact type. - * @param typeName artifact type name. - * @return newly created artifact type. - * @throws RuntimeException if artifact type name is invalid or inappropriate. - */ - public static final ArtifactType getArtifactType(String typeName) - throws RuntimeException - { - if (typeMap == null) { - String types[] = WSITestToolsPlugin.getPlugin().getArtifactTypes(); - for (int i = 0; i < types.length; i++) - registerArtifactType(types[i]); - } - - if (typeMap.containsKey(typeName)) - return (ArtifactType) typeMap.get(typeName); - else { - throw new RuntimeException( - "Could not create new artifact type using invalid type name: " - + typeName + "."); - } - } - - /** - * Create artifact type. - * @param typeName artifact type name. - * @return newly created artifact type. - * @throws RuntimeException if artifact type name is invalid or inappropriate. - * @deprecated -- use getArtifactType(String typeName) - */ - public static final ArtifactType newArtifactType(String typeName) - throws RuntimeException - { - ArtifactType artifactType = null; - - if (typeName.equals(TYPE_DESCRIPTION)) - { - artifactType = ARTIFACT_TYPE_DESCRIPTION; - } - - else if (typeName.equals(TYPE_MESSAGE)) - { - artifactType = ARTIFACT_TYPE_MESSAGE; - } - - else if (typeName.equals(TYPE_ENVELOPE)) - { - artifactType = ARTIFACT_TYPE_ENVELOPE; - } - - else if (typeName.equals(TYPE_DISCOVERY)) - { - artifactType = ARTIFACT_TYPE_DISCOVERY; - } - - else - { - throw new RuntimeException( - "Could not create new artifact type using invalid type name: " - + typeName - + "."); - } - - return artifactType; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/BasicRules.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/BasicRules.java deleted file mode 100644 index d232b0e4b..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/BasicRules.java +++ /dev/null @@ -1,477 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.util; - -/** - * This class validates basic constructs of RFC 2616. - * - * @author Volodin - */ -public class BasicRules -{ - - public static final char CR = 13; - public static final char LF = 10; - public static final char SP = 32; - public static final char HT = 9; - public static final char DQ = 34; - public static final String CRLF = "" + CR + LF; - - public static final char[] SEPARATORS = - { - '(', - ')', - '<', - '>', - '@', - ',', - ';', - ':', - '\\', - '\"', - '/', - '[', - ']', - '?', - '=', - '{', - '}', - SP, - HT }; - - /** - * Checking rule. - * OCTET = <any 8-bit sequence of data> - * @param ch character. - * @return boolean true if ch is conform to rule, false otherwise. - */ - public static boolean isOCTET(char ch) - { - return true; - } - - /** - * Checking rule: - * CHAR = <any US-ASCII character (octets 0 - 127)>. - * @param ch character. - * @return boolean true if ch is conform to rule, false otherwise. - */ - public static boolean isCHAR(char ch) - { - return (ch >= 0 && ch <= 127) ? true : false; - } - - /** - * Checking rule: - * UPALPHA = <any US-ASCII uppercase letter "A".."Z">. - * @param ch character. - * @return boolean true if ch is conform to rule, false otherwise. - */ - public static boolean isUPALPHA(char ch) - { - return (ch >= 'A' && ch <= 'Z') ? true : false; - } - - /** - * Checking rule: - * LOALPHA = <any US-ASCII lowercase letter "a".."z">. - * @param ch character. - * @return boolean true if ch is conform to rule, false otherwise. - */ - public static boolean isLOALPHA(char ch) - { - return (ch >= 'a' && ch <= 'z') ? true : false; - } - - /** - * Checking rule: - * ALPHA = UPALPHA | LOALPHA. - * @param ch character. - * @return boolean true if ch is conform to rule, false otherwise. - */ - public static boolean isALPHA(char ch) - { - return (isLOALPHA(ch) || isUPALPHA(ch)) ? true : false; - } - - /** - * Checking rule: - * DIGIT = <any US-ASCII digit "0".."9">. - * @param ch character. - * @return boolean true if ch is conform to rule, false otherwise. - */ - public static boolean isDIGIT(char ch) - { - return (ch >= '0' && ch <= '9') ? true : false; - } - - /** - * Checking rule: - * CTL = <any US-ASCII control character (octets 0 - 31) and DEL (127)>. - * @param ch character. - * @return boolean true if ch is conform to rule, false otherwise. - */ - public static boolean isCTL(char ch) - { - return ((ch >= 0 && ch <= 31) || ch == 127) ? true : false; - } - - /** - * Checking rule: - * CR = <US-ASCII CR, carriage return (13)>. - * @param ch character. - * @return boolean true if ch is conform to rule, false otherwise. - */ - public static boolean isCR(char ch) - { - return (ch == CR) ? true : false; - } - - /** - * Checking rule: - * LF = <US-ASCII LF, linefeed (10)>. - * @param ch character - * @return boolean true if ch is conform to rule, false otherwise - */ - public static boolean isLF(char ch) - { - return (ch == LF) ? true : false; - } - - /** - * Checking rule: - * SP = <US-ASCII SP, space (32)>. - * @param ch character. - * @return boolean true if ch is conform to rule, false otherwise. - */ - public static boolean isSP(char ch) - { - return (ch == SP) ? true : false; - } - - /** - * Checking rule: - * HT = <US-ASCII HT, horizontal-tab (9)>. - * @param ch character - * @return boolean true if ch is conform to rule, false otherwise - */ - public static boolean isHT(char ch) - { - return (ch == HT) ? true : false; - } - - /** - * Checking rule: - * <"> = <US-ASCII double-quote mark (34)>. - * @param ch character. - * @return boolean true if ch is conform to rule, false otherwise. - */ - public static boolean isDoubleQuote(char ch) - { - return (ch == DQ) ? true : false; - } - - /** - * Checking rule: - * CRLF = CR LF. - * @param str string. - * @return boolean true if ch is conform to rule, false otherwise. - */ - public static boolean isCRLF(String str) - { - return CRLF.equals(str); - } - - /** - * Checking rule: - * LWS = [CRLF] 1*( SP | HT ). - * @param str string. - * @return boolean true if str is conform to rule, false otherwise. - */ - public static boolean isLWS(String str) - { - - int index = getLastIndexLWS(str, 0); - if (index == -1 || index != str.length()) - return false; - - return true; - } - - /** - * Gets last index of the LWS string. - * @param str string. - * @param startIndex start index. - * @return int an index of the first symbol which isn't LWS. - */ - public static int getLastIndexLWS(String str, int startIndex) - { - int index = str.indexOf(CRLF, startIndex); - if (index == -1) - index = startIndex; - else if (index == startIndex) - index += CRLF.length(); - else - return -1; - - if (!isSP(str.charAt(index)) && isHT(str.charAt(index))) - return -1; - - index++; - for (; index < str.length(); index++) - if (!isSP(str.charAt(index)) && isHT(str.charAt(index))) - return index; - return index; - } - - /** - * Gets last index of the TEXT string. - * TEXT = <any OCTET except CTLs, but including LWS> - * @param str string. - * @param startIndex start index. - * @return int an index of the first symbol which isn't TEXT. - */ - public static int getLastTEXT(String str, int startIndex) - { - int index; - for (index = startIndex; index < str.length(); index++) - { - if (!isOCTET(str.charAt(index))) - return index; - if (isCTL(str.charAt(index))) - { - int lastLWS = getLastIndexLWS(str, index); - if (lastLWS == -1) - return index; - index = lastLWS - 1; - } - } - return index; - } - - /** - * Checking rule: - * HEX = "A" | "B" | "C" | "D" | "E" | "F" | "a" | "b" | "c" | "d" | "e" | "f" | DIGIT. - * @param ch character. - * @return boolean true if ch is conform to rule, false otherwise. - */ - public static boolean isHEX(char ch) - { - return ( - (ch >= 'A' && ch <= 'F') || (ch >= 'a' && ch <= 'f') || isDIGIT(ch)) - ? true - : false; - } - - /** - * Checking rule: - * token = 1*<any CHAR except CTLs or separators>. - * @param str string. - * @return boolean true if str is conform to rule, false otherwise. - */ - public static boolean isToken(String str) - { - if (str.length() == 0) - return false; - - for (int index = 0; index < str.length(); index++) - { - char ch = str.charAt(index); - if (!isCHAR(ch) || isSEPARATOR(ch) || isCTL(ch)) - return false; - - } - - return true; - } - - /** - * Gets last index of the "token" string. - * @param str string. - * @param startIndex start index. - * @return int an index of the first symbol which isn't "token". - */ - public static int getLastToken(String str, int startIndex) - { - int index = startIndex; - for (; index < str.length(); index++) - { - char ch = str.charAt(index); - if (!isCHAR(ch) || isSEPARATOR(ch) || isCTL(ch)) - return index; - - } - return index; - } - - /** - * Checking rule: - * separators = "(" | ")" | "<" | ">" | "@" - * | "," | ";" | ":" | "\" | <"> - * | "/" | "[" | "]" | "?" | "=" - * | "{" | "}" | SP | HT. - * @param ch character. - * @return boolean true if ch is conform to rule, false otherwise. - */ - public static boolean isSEPARATOR(char ch) - { - for (int index = 0; index < SEPARATORS.length; index++) - { - if (ch == SEPARATORS[index]) - return true; - } - return false; - } - - /** - * Gets last index of the "comment" string. - * comment = "(" *( ctext | quoted-pair | comment ) ")". - * @param str string. - * @param startIndex start index. - * @return int an index of the first symbol which isn't "comment". - */ - public static int getLastComment(String str, int startIndex) - { - - int index = startIndex; - if (str.length() <= startIndex) - return startIndex; - if (str.charAt(index) != '(') - return startIndex; - - boolean bExit = false; - boolean bQuotedPair = false; - int idx = startIndex + 1; - while (bExit == false) - { - while (bQuotedPair == false) - { - idx = getLastCtext(str, idx); - if (idx == str.length()) - return idx; - if (!isQuotedPair(str, idx - 1)) - bQuotedPair = true; - else - idx++; - } - if (str.charAt(idx) == '(') - { - getLastComment(str, idx); - } - else if (str.charAt(idx) == ')') - { - return idx + 1; - } - } - - return idx; - } - - /** - * Gets last index of the "ctext" string. - * ctext = <any TEXT excluding "(" and ")"> - * @param str string. - * @param startIndex start index. - * @return int an index of the first symbol which isn't "ctext". - */ - private static int getLastCtext(String str, int startIndex) - { - int idx = getLastTEXT(str, startIndex); - int iBracket = startIndex; - for (; iBracket < idx; iBracket++) - { - if (str.charAt(iBracket) == '(' || str.charAt(iBracket) == ')') - break; - } - if (iBracket < idx) - idx = iBracket; - return idx; - } - - /** - * Gets last index of the "qdtext" string. - * qdtext = <any TEXT except <">> - * @param str string. - * @param startIndex start index. - * @return int an index of the first symbol which isn't "qdtext". - */ - private static int getLastQdtext(String str, int startIndex) - { - int idx = getLastTEXT(str, startIndex); - int iBracket = startIndex; - for (; iBracket < idx; iBracket++) - { - if (str.charAt(iBracket) == '\"') - break; - } - if (iBracket < idx) - idx = iBracket; - return idx; - } - - /** - * Checking rule: - * quoted-pair = "\" CHAR. - * @param str string. - * @param startIndex start index. - * @return boolean true if str is conform to rule, false otherwise. - */ - public static boolean isQuotedPair(String str, int startIndex) - { - if (str.length() >= startIndex + 2 - && str.charAt(startIndex) == '\\' - && isCHAR(str.charAt(startIndex + 1))) - return true; - else - return false; - } - - /** - * Gets last index of the "quoted-string" string. - * quoted-string = ( <"> *(qdtext | quoted-pair ) <"> ) - * @param str string. - * @param startIndex start index. - * @return int an index of the first symbol which isn't "quoted-string". - */ - public static int getLastQuotedString(String str, int startIndex) - { - int index = startIndex; - - // if end if the string - if (startIndex == str.length()) - return startIndex; - // if the begin is not '"' - if (str.charAt(index) != DQ) - return startIndex; - - index++; - while (true) - { - index = getLastQdtext(str, index); - if (index == str.length()) - return startIndex; - if (isQuotedPair(str, index - 1)) - { - index++; - if (index == str.length()) - return startIndex; - } - else - break; - } - // if the end is not '"' - if (str.charAt(index) != DQ) - return startIndex; - - index++; - return index; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/EntryType.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/EntryType.java deleted file mode 100644 index b21a36f81..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/EntryType.java +++ /dev/null @@ -1,296 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.util; - -import java.util.TreeMap; -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.WSITestToolsPlugin; -import org.eclipse.wst.wsi.internal.core.profile.validator.BaseValidator; - -/** - * This class ... - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class EntryType -{ - /** - * ReportArtifact type. - */ - private ArtifactType artifactType; - - /** - * This type. - */ - private String typeName; - - /** - * Entry types accessible by type name. - */ - protected static TreeMap entryTypeMap; - - /** - * Entry type names accessible by artifact. - */ - protected static final TreeMap entryTypeNameMap = new TreeMap(); - - /** - * Envelope entry types. - */ - /** @deprecated -- use EnvelopeValidator.TYPE_ENVELOPE_REQUEST */ - public static final String TYPE_ENVELOPE_REQUEST = "requestEnvelope"; - /** @deprecated -- use EnvelopeValidator.TYPE_ENVELOPE_RESPONSE */ - public static final String TYPE_ENVELOPE_RESPONSE = "responseEnvelope"; - /** @deprecated -- use EnvelopeValidator.TYPE_ENVELOPE_ANYT */ - public static final String TYPE_ENVELOPE_ANY = "anyEnvelope"; - - /** - * Message entry types. - */ - /** @deprecated -- use MessageValidator.TYPE_MESSAGE_REQUEST */ - public static final String TYPE_MESSAGE_REQUEST = "requestMessage"; - /** @deprecated -- use MessageValidator.TYPE_MESSAGE_RESPONSE */ - public static final String TYPE_MESSAGE_RESPONSE = "responseMessage"; - /** @deprecated -- use MessageValidator.TYPE_MESSAGE_ANY */ - public static final String TYPE_MESSAGE_ANY = "anyMessage"; - - /** - * MIME entry types. - */ - /** @deprecated -- use MessageValidator.TYPE_MIME_PART */ - public static final String TYPE_MIME_PART = "part"; - /** @deprecated -- use MessageValidator.TYPE_MIME_ROOT_PART */ - public static final String TYPE_MIME_ROOT_PART = "root-part"; - - /** - * Description entry types. - */ - /** @deprecated -- use WSDLValidator.TYPE_DESCRIPTION_DEFINITIONS */ - public static final String TYPE_DESCRIPTION_DEFINITIONS = "definitions"; - /** @deprecated -- use WSDLValidator.TYPE_DESCRIPTION_IMPORT */ - public static final String TYPE_DESCRIPTION_IMPORT = "import"; - /** @deprecated -- use WSDLValidator.TYPE_DESCRIPTION_TYPES */ - public static final String TYPE_DESCRIPTION_TYPES = "types"; - /** @deprecated -- use WSDLValidator.TYPE_DESCRIPTION_MESSAGE */ - public static final String TYPE_DESCRIPTION_MESSAGE = "message"; - /** @deprecated -- use WSDLValidator.TYPE_DESCRIPTION_OPERATION */ - public static final String TYPE_DESCRIPTION_OPERATION = "operation"; - /** @deprecated -- use WSDLValidator.TYPE_DESCRIPTION_PORTTYPE */ - public static final String TYPE_DESCRIPTION_PORTTYPE = "portType"; - /** @deprecated -- use WSDLValidator.TYPE_DESCRIPTION_BINDING */ - public static final String TYPE_DESCRIPTION_BINDING = "binding"; - /** @deprecated -- use WSDLValidator.TYPE_DESCRIPTION_PORT */ - public static final String TYPE_DESCRIPTION_PORT = "port"; - - /** - * Discovery entry types. - */ - /** @deprecated -- use UDDIValidator.TYPE_DISCOVERY_BINDINGTEMPLATE */ - public static final String TYPE_DISCOVERY_BINDINGTEMPLATE = "bindingTemplate"; - /** @deprecated -- use UDDIValidator.TYPE_DISCOVERY_TMODEL */ - public static final String TYPE_DISCOVERY_TMODEL = "tModel"; - - /** - * Envelope entry types. - */ - /** @deprecated -- use getEntryType(String typeName) to access EntryType. */ - public static final EntryType ENTRY_TYPE_REQUESTENV = getEntryType(TYPE_ENVELOPE_REQUEST); - /** @deprecated -- use getEntryType(String typeName) to access EntryType. */ - public static final EntryType ENTRY_TYPE_RESPONSEENV = getEntryType(TYPE_ENVELOPE_RESPONSE); - - /** - * Message entry types. - */ - /** @deprecated -- use getEntryType(String typeName) to access EntryType. */ - public static final EntryType ENTRY_TYPE_REQUEST = getEntryType(TYPE_MESSAGE_REQUEST); - /** @deprecated -- use getEntryType(String typeName) to access EntryType. */ - public static final EntryType ENTRY_TYPE_RESPONSE = getEntryType(TYPE_MESSAGE_RESPONSE); - // public static final EntryType ENTRY_TYPE_ANYENTRY = - // new EntryType(ArtifactType.ARTIFACT_TYPE_MESSAGES, TYPE_MESSAGE_ANYENTRY); - - /** - * Description entry types. - */ - /** @deprecated -- use getEntryType(String typeName) to access EntryType. */ - public static final EntryType ENTRY_TYPE_DEFINITIONS = getEntryType(TYPE_DESCRIPTION_DEFINITIONS); - /** @deprecated -- use getEntryType(String typeName) to access EntryType. */ - public static final EntryType ENTRY_TYPE_IMPORT = getEntryType(TYPE_DESCRIPTION_IMPORT); - /** @deprecated -- use getEntryType(String typeName) to access EntryType. */ - public static final EntryType ENTRY_TYPE_TYPES = getEntryType(TYPE_DESCRIPTION_TYPES); - /** @deprecated -- use getEntryType(String typeName) to access EntryType. */ - public static final EntryType ENTRY_TYPE_MESSAGE = getEntryType(TYPE_DESCRIPTION_MESSAGE); - /** @deprecated -- use getEntryType(String typeName) to access EntryType. */ - public static final EntryType ENTRY_TYPE_OPERATION = getEntryType(TYPE_DESCRIPTION_OPERATION); - /** @deprecated -- use getEntryType(String typeName) to access EntryType. */ - public static final EntryType ENTRY_TYPE_PORTTYPE = getEntryType(TYPE_DESCRIPTION_PORTTYPE); - /** @deprecated -- use getEntryType(String typeName) to access EntryType. */ - public static final EntryType ENTRY_TYPE_BINDING = getEntryType(TYPE_DESCRIPTION_BINDING); - /** @deprecated -- use getEntryType(String typeName) to access EntryType. */ - public static final EntryType ENTRY_TYPE_PORT = getEntryType(TYPE_DESCRIPTION_PORT); - - /** - * Discovery entry types. - */ - /** @deprecated -- use getEntryType(String typeName) to access EntryType. */ - public static final EntryType ENTRY_TYPE_BINDINGTEMPLATE = getEntryType(TYPE_DISCOVERY_BINDINGTEMPLATE); - /** @deprecated -- use getEntryType(String typeName) to access EntryType. */ - public static final EntryType ENTRY_TYPE_TMODEL = getEntryType(TYPE_DISCOVERY_TMODEL); - - /** - * Create entry type. - */ - private EntryType(ArtifactType artifactType, String typeName) - { - this.artifactType = artifactType; - this.typeName = typeName; - } - - /** - * Is entry type equal to specified type. - * @param typeName entry type name. - * @return true if entry type equal to specified type. - */ - public boolean isType(String typeName) - { - return this.typeName.equals(typeName); - } - - /** - * Is entry type equal to specified type. - * @param entryType entry type. - * @return true if entry type equal to specified type. - */ - public boolean isType(EntryType entryType) - { - return typeName.equals(entryType.getTypeName()); - } - - /** - * Get artifact type. - * @return artifact type. - */ - public ArtifactType getArtifactType() - { - return artifactType; - } - - /** - * Get entry type name. - * @return entry type name. - */ - public String getTypeName() - { - return typeName; - } - - /** - * Is valid entry type. - * @param typeName entry type name. - * @return true if entry type name is valid. - */ - public static final boolean isValidEntryType(String typeName) - { - return (entryTypeMap.get(typeName) == null ? false : true); - } - - /** - * Create entry type. - * @param typeName entry type name. - * @return entry type. - * @throws RuntimeException if entry type name is invalid or inappropriate. - */ - public static final EntryType getEntryType(String typeName) - throws RuntimeException - { - if (entryTypeMap == null) { - BaseValidator validators[] = WSITestToolsPlugin.getPlugin() - .getBaseValidators(); - for (int i = 0; i < validators.length; i++) { - String entryTypes[] = validators[i].getEntryTypes(); - for (int j = 0; j < entryTypes.length; j++) - registerEntryType(ArtifactType.getArtifactType( - validators[i].getArtifactType()), entryTypes[j]); - } - } - // Get the entry type by type name - EntryType entryType = (EntryType) entryTypeMap.get(typeName); - - if (entryType == null) - { - throw new RuntimeException( - "Could not get entry type because type name is invalid: " - + typeName - + "."); - } - - return entryType; - } - - /** - * Get list of entry type names for a specified artifact type name. - * @param artifactTypeName artifact type name. - * @return list of entry type names for a specified artifact type name. - * @throws RuntimeException if entry type name is invalid or inappropriate. - */ - public static final Vector getEntryTypeNameList(String artifactTypeName) - throws RuntimeException - { - // Get list - Vector entryTypeNameList = (Vector) entryTypeNameMap.get(artifactTypeName); - - // If the list was not found, then throw an exception - if (entryTypeNameList == null) - { - throw new RuntimeException( - "Could not get entry type name list because artifact type name is invalid: " - + artifactTypeName - + "."); - } - - return entryTypeNameList; - } - - /** - * Get list of type names for a specified artifact type name. - */ - public static final EntryType registerEntryType( - ArtifactType artifactType, - String typeName) - { - EntryType entryType = null; - - // Create entry type - entryType = new EntryType(artifactType, typeName); - - if (entryTypeMap == null) { - entryTypeMap = new TreeMap(); - } - // Add to entry type map - entryTypeMap.put(typeName, entryType); - - // Get the entry type name vector for the artifact type - Vector entryTypeNameList = - (Vector) entryTypeNameMap.get(artifactType.getTypeName()); - - // Lazy initialize - if (entryTypeNameList == null) { - entryTypeNameList = new Vector(); - entryTypeNameMap.put(artifactType.getTypeName(), entryTypeNameList); - } - - // Add the type name to the list - entryTypeNameList.add(typeName); - - return entryType; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/ErrorList.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/ErrorList.java deleted file mode 100644 index e9597f4ef..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/ErrorList.java +++ /dev/null @@ -1,156 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.util; - -import java.text.FieldPosition; -import java.text.MessageFormat; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Set; - -import javax.xml.namespace.QName; - -/** - * The class accumulates all error strings into string buffer. - * - * @author Kulik - */ -public final class ErrorList -{ - private Set errors = new HashSet(); - private MessageFormat format = new MessageFormat("{0}:{1}"); - private FieldPosition pos = new FieldPosition(0); - - /** - * Default constructor. - * @see java.lang.Object#Object() - */ - public ErrorList() - { - } - - /** - * Construct error list using contents of a list. - * @param list a List object. - * @see java.lang.Object#Object() - */ - public ErrorList(List list) - { - add(list); - } - - /** - * Constructor with the specified message format. - * @param f a message format. - */ - public ErrorList(MessageFormat f) - { - if (f != null) - format = f; - } - - /** - * Add list. - * @param list list of errors. - */ - public void add(List list) - { - Iterator iterator = list.iterator(); - while (iterator.hasNext()) - { - add((String) iterator.next()); - } - } - - /** - * Adds error description into the list. - * @param s1 a string. - * @param s2 a string. - */ - public void add(String s1, String s2) - { - errors.add(new Pair(s1, s2)); - } - - /** - * Adds error description into the list. - * @param q a QName object. - * @param s a string. - */ - public void add(QName q, String s) - { - errors.add(new Pair(NullUtil.toString(q), s)); - } - - /** - * Adds error description into the list. - * @param q1 a QName object. - * @param q2 a string. - */ - public void add(QName q1, QName q2) - { - errors.add(new Pair(NullUtil.toString(q1), NullUtil.toString(q2))); - } - - /** - * Adds error description into the list... - * @param q a QName object. - */ - public void add(QName q) - { - errors.add(new Pair(NullUtil.toString(q), null)); - } - - /** - * Adds error description into the list. - * @param s a string. - */ - public void add(String s) - { - errors.add(new Pair(s, null)); - } - - /** - * Returns the error list string representation. - * @return the error list string representation. - * @see java.lang.Object#toString() - */ - public String toString() - { - StringBuffer buf = new StringBuffer(); - - Iterator it = errors.iterator(); - while (it.hasNext()) - { - Pair p = (Pair) it.next(); - if (p.getFirst() != null && p.getSecond() != null) - format.format(new Object[] { p.getFirst(), p.getSecond()}, buf, pos); - else if (p.getFirst() != null) - buf.append(p.getFirst()); - else - buf.append(p.getSecond()); - if (it.hasNext()) - buf.append(",\n"); - } - - return buf.toString(); - } - - /** - * Indicates whether error list is empty or not. - * @return true if error list is empty. - */ - public boolean isEmpty() - { - return errors.size() == 0; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/HTTPConstants.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/HTTPConstants.java deleted file mode 100644 index 34b053339..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/HTTPConstants.java +++ /dev/null @@ -1,600 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.util; - -import java.util.Arrays; -import java.util.List; - -/** - * A set of HTTP values that are defined by Network Working Group. - * http://www.ietf.org/ - * - * @version 1.0 - * @author Ilya Kanonirov (kio@isg.axmor.com) - */ -public class HTTPConstants { - // The standardized HTTP Header field-names - // http://www.mnot.net/drafts/draft-nottingham-http-header-reg-00.txt - - // Hypertext Transfer Protocol -- HTTP/1.1 (obsoletes RFC2068) - public static final String HEADER_ACCEPT = "Accept"; - public static final String HEADER_ACCEPT_CHARSET = "Accept-Charset"; - public static final String HEADER_ACCEPT_ENCODING = "Accept-Encoding"; - public static final String HEADER_ACCEPT_LANGUAGE = "Accept-Language"; - public static final String HEADER_ACCEPT_RANGES = "Accept-Ranges"; - public static final String HEADER_AGE = "Age"; - public static final String HEADER_ALLOW = "Allow"; - public static final String HEADER_AUTHORIZATION = "Authorization"; - public static final String HEADER_CACHE_CONTROL = "Cache-Control"; - public static final String HEADER_CONNECT = "Connect"; - public static final String HEADER_CONTENT_ENCODING = "Content-Encoding"; - public static final String HEADER_CONTENT_LANGUAGE = "Content-Language"; - public static final String HEADER_CONTENT_LENGTH = "Content-Length"; - public static final String HEADER_CONTENT_LOCATION = "Content-Location"; - public static final String HEADER_CONTENT_MD5 = "Content-MD5"; - public static final String HEADER_CONTENT_RANGE = "Content-Range"; - public static final String HEADER_CONTENT_TYPE = "Content-Type"; - public static final String HEADER_DATE = "Date"; - public static final String HEADER_ETAG = "ETag"; - public static final String HEADER_EXPECT = "Expect"; - public static final String HEADER_EXPIRES = "Expires"; - public static final String HEADER_FROM = "From"; - public static final String HEADER_HOST = "Host"; - public static final String HEADER_IF_MATCH = "If-Match"; - public static final String HEADER_IF_MODIFIED_SINCE = "If-Modified-Since"; - public static final String HEADER_IF_NONE_MATCH = "If-None-Match"; - public static final String HEADER_IF_RANGE = "If-Range"; - public static final String HEADER_IF_UNMODIFIED_SINCE = "If-Unmodified-Since"; - public static final String HEADER_LAST_MODIFIED = "Last-Modified"; - public static final String HEADER_LOCATION = "Location"; - public static final String HEADER_MAX_FORWARDS = "Max-Forwards"; - public static final String HEADER_PRAGMA = "Pragma"; - public static final String HEADER_PROXY_AUTHENTICATE = "Proxy-Authenticate"; - public static final String HEADER_PROXY_AUTHORIZATION = "Proxy-Authorization"; - public static final String HEADER_RANGE = "Range"; - public static final String HEADER_REFERER = "Referer"; - public static final String HEADER_RETRY_AFTER = "Retry-After"; - public static final String HEADER_SERVER = "Server"; - public static final String HEADER_TE = "TE"; - public static final String HEADER_TRAILER = "Trailer"; - public static final String HEADER_TRANSFER_ENCODING = "Transfer-Encoding"; - public static final String HEADER_UPGRADE = "Upgrade"; - public static final String HEADER_USER_AGENT = "User-Agent"; - public static final String HEADER_VARY = "Vary"; - public static final String HEADER_VIA = "Via"; - public static final String HEADER_WARNING = "Warning"; - public static final String HEADER_WWW_AUTHENTICATE = "WWW-Authenticate"; - public static final String HEADER_MIME_VERSION = "MIME-Version"; - public static final String HEADER_CONTENT_DISPOSITION = "Content-Disposition"; - - // HTTP Authentication: Basic and Digest Access Authentication - public static final String HEADER_AUTHENTICATION_INFO = "Authentication-Info"; - - // HTTP State Management Mechanism - public static final String HEADER_SET_COOKIE = "Set-Cookie"; - - // HTTP State Management Mechanism (obsoletes RFC2109) - public static final String HEADER_COOKIE = "Cookie"; - public static final String HEADER_COOKIE2 = "Cookie2"; - public static final String HEADER_SET_COOKIE2 = "Set-Cookie2"; - - // Web Distributed Authoring and Versioning - public static final String HEADER_DAV = "DAV"; - public static final String HEADER_DEPTH = "Depth"; - public static final String HEADER_DESTINATION = "Destination"; - public static final String HEADER_IF = "If"; - public static final String HEADER_LOCK_TOKEN = "Lock-Token"; - public static final String HEADER_OVERWRITE = "Overwrite"; - public static final String HEADER_STATUS_URI = "Status-URI"; - public static final String HEADER_TIMEOUT = "Timeout"; - - // Hypertext Transfer Protocol -- HTTP/1.1 (Proposed Standard - these field-names are now considered obsolete) - public static final String HEADER_CONTENT_BASE = "Content-Base"; - public static final String HEADER_PUBLIC = "Public"; - public static final String HEADER_CONTENT_VERSION = "Content-Version"; - public static final String HEADER_DERIVED_FROM = "Derived-From"; - public static final String HEADER_LINK = "Link"; - public static final String HEADER_URI = "URI"; - public static final String HEADER_KEEP_ALIVE = "Keep-Alive"; - - // Delta Encoding in HTTP - public static final String HEADER_A_IM = "A-IM"; - public static final String HEADER_DELTA_BASE = "Delta-Base"; - public static final String HEADER_IM = "IM"; - - // Instance Digests in HTTP - public static final String HEADER_DIGEST = "Digest"; - public static final String HEADER_WANT_DIGEST = "Want-Digest"; - - // Simple Hit-Metering and Usage-Limiting for HTTP - public static final String HEADER_METER = "Meter"; - - // The Known Non-Standardized HTTP Header field-names - - // Transparent Content Negotiation in HTTP - public static final String HEADER_ACCEPT_FEATURES = "Accept-Features"; - public static final String HEADER_ALTERNATES = "Alternates"; - public static final String HEADER_NEGOTIATE = "Negotiate"; - public static final String HEADER_TCN = "TCN"; - public static final String HEADER_VARIANT_VARY = "Variant-Vary"; - - // The Safe Response Header Field - public static final String HEADER_SAFE = "Safe"; - - // Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0) - public static final String HEADER_ACCEPT_ADDITIONS = "Accept-Additions"; - - // The Secure HyperText Transfer Protocol - public static final String HEADER_CONTENT_PRIVACY_DOMAIN = "Content-Privacy-Domain"; - public static final String HEADER_MAC_INFO = "MAC-Info"; - public static final String HEADER_PREARRANGED_KEY_INFO = "Prearranged-Key-Info"; - - // An HTTP Extension Framework - public static final String HEADER_C_EXT = "C-Ext"; - public static final String HEADER_C_MAN = "C-Man"; - public static final String HEADER_C_OPT = "C-Opt"; - public static final String HEADER_EXT = "Ext"; - public static final String HEADER_MAN = "Man"; - public static final String HEADER_OPT = "Opt"; - - // PICS Label Distribution Label Syntax and Communication Protocols - public static final String HEADER_PICS_LABEL = "PICS-Label"; - - // Platform For Privacy Preferences 1.0 - public static final String HEADER_P3P = "P3P"; - - // PEP - an Extension Mechanism for HTTP - public static final String HEADER_C_PEP = "C-PEP"; - public static final String HEADER_C_PEP_INFO = "C-PEP-Info"; - public static final String HEADER_PEP = "PEP"; - public static final String HEADER_PEP_INFO = "Pep-Info"; - - // The HTTP Distribution and Replication Protocol - public static final String HEADER_CONTENT_ID = "Content-ID"; - public static final String HEADER_DIFFERENTIAL_ID = "Differential-ID"; - - // ESI Architecture - public static final String HEADER_SURROGATE_CAPABILITY = "Surrogate-Capability"; - public static final String HEADER_SURROGATE_CONTROL = "Surrogate-Control"; - - // Selecting Payment Mechanisms Over HTTP - public static final String HEADER_PROTOCOL = "Protocol"; - public static final String HEADER_PROTOCOL_INFO = "Protocol-Info"; - public static final String HEADER_PROTOCOL_QUERY = "Protocol-Query"; - public static final String HEADER_PROTOCOL_REQUEST = "Protocol-Request"; - - // Implementation of OPS Over HTTP - public static final String HEADER_GETPROFILE = "GetProfile"; - public static final String HEADER_PROFILEOBJECT = "ProfileObject"; - public static final String HEADER_SETPROFILE = "SetProfile"; - - // Notification for Proxy Caches - public static final String HEADER_PROXY_FEATURES = "Proxy-Features"; - public static final String HEADER_PROXY_INSTRUCTION = "Proxy-Instruction"; - - // Object Header lines in HTTP - public static final String HEADER_CONTENT_TRANSFER_ENCODING = "Content-Transfer-Encoding"; - public static final String HEADER_COST = "Cost"; - public static final String HEADER_MESSAGE_ID = "Message-ID"; - public static final String HEADER_TITLE = "Title"; - public static final String HEADER_VERSION = "Version"; - - // A Proposed Extension Mechanism for HTTP - public static final String HEADER_EXTENSION = "Extension"; - - // WIRE - W3 Identifier Resolution Extensions - public static final String HEADER_OPTIONAL = "Optional"; - public static final String HEADER_RESOLUTION_HINT = "Resolution-Hint"; - - // Duplicate Suppression in HTTP - public static final String HEADER_SUBOK = "SubOK"; - public static final String HEADER_SUBST = "Subst"; - - // Specification of HTTP/1.1 OPTIONS messages - public static final String HEADER_COMPLIANCE = "Compliance"; - public static final String HEADER_NON_COMPLIANCE = "Non-Compliance"; - - // Widely-used undocumented headers - public static final String HEADER_REQUEST_RANGE = "Request-Range"; - public static final String HEADER_UA_COLOR = "UA-Color"; - public static final String HEADER_UA_CPU = "UA-CPU"; - public static final String HEADER_UA_OS = "UA-OS"; - public static final String HEADER_UA_PIXELS = "UA-Pixels"; - - // Implementation errors - public static final String HEADER_REFERRER = "Referrer"; - - // Private features - public static final String HEADER_COPYRIGHT = "Copyright"; - public static final String HEADER_CONTENT = "Content"; - public static final String HEADER_AUTHOR = "Author"; - public static final String HEADER_CONTACT = "Contact"; - public static final String HEADER_KEYWORDS = "Keywords"; - public static final String HEADER_GENERATOR = "Generator"; - public static final String HEADER_DESCRIPTION = "Description"; - public static final String HEADER_COMMAND = "Command"; - public static final String HEADER_SESSION = "Session"; - public static final String HEADER_TYPE = "Type"; - public static final String HEADER_MESSAGE = "Message"; - - // Abandoned proposals - public static final String HEADER_UNLESS_MODIFIED_SINCE = "Unless-Modified-Since"; - - /** - * Returns all the standardized HTTP header names presented as List - * @return The list of standardized HTTP header names - */ - public static List getStandardizedHeaderNames() { - return Arrays.asList(new Object[] { - HEADER_ACCEPT.toUpperCase(), - HEADER_ACCEPT_CHARSET.toUpperCase(), - HEADER_ACCEPT_ENCODING.toUpperCase(), - HEADER_ACCEPT_LANGUAGE.toUpperCase(), - HEADER_ACCEPT_RANGES.toUpperCase(), - HEADER_AGE.toUpperCase(), - HEADER_ALLOW.toUpperCase(), - HEADER_AUTHORIZATION.toUpperCase(), - HEADER_CACHE_CONTROL.toUpperCase(), - HEADER_CONNECT.toUpperCase(), - HEADER_CONTENT_ENCODING.toUpperCase(), - HEADER_CONTENT_LANGUAGE.toUpperCase(), - HEADER_CONTENT_LENGTH.toUpperCase(), - HEADER_CONTENT_LOCATION.toUpperCase(), - HEADER_CONTENT_MD5.toUpperCase(), - HEADER_CONTENT_RANGE.toUpperCase(), - HEADER_CONTENT_TYPE.toUpperCase(), - HEADER_DATE.toUpperCase(), - HEADER_ETAG.toUpperCase(), - HEADER_EXPECT.toUpperCase(), - HEADER_EXPIRES.toUpperCase(), - HEADER_FROM.toUpperCase(), - HEADER_HOST.toUpperCase(), - HEADER_IF_MATCH.toUpperCase(), - HEADER_IF_MODIFIED_SINCE.toUpperCase(), - HEADER_IF_NONE_MATCH.toUpperCase(), - HEADER_IF_RANGE.toUpperCase(), - HEADER_IF_UNMODIFIED_SINCE.toUpperCase(), - HEADER_LAST_MODIFIED.toUpperCase(), - HEADER_LOCATION.toUpperCase(), - HEADER_MAX_FORWARDS.toUpperCase(), - HEADER_PRAGMA.toUpperCase(), - HEADER_PROXY_AUTHENTICATE.toUpperCase(), - HEADER_PROXY_AUTHORIZATION.toUpperCase(), - HEADER_RANGE.toUpperCase(), - HEADER_REFERER.toUpperCase(), - HEADER_RETRY_AFTER.toUpperCase(), - HEADER_SERVER.toUpperCase(), - HEADER_TE.toUpperCase(), - HEADER_TRAILER.toUpperCase(), - HEADER_TRANSFER_ENCODING.toUpperCase(), - HEADER_UPGRADE.toUpperCase(), - HEADER_USER_AGENT.toUpperCase(), - HEADER_VARY.toUpperCase(), - HEADER_VIA.toUpperCase(), - HEADER_WARNING.toUpperCase(), - HEADER_WWW_AUTHENTICATE.toUpperCase(), - HEADER_MIME_VERSION.toUpperCase(), - HEADER_CONTENT_DISPOSITION.toUpperCase(), - - HEADER_AUTHENTICATION_INFO.toUpperCase(), - - HEADER_SET_COOKIE.toUpperCase(), - - HEADER_COOKIE.toUpperCase(), - HEADER_COOKIE2.toUpperCase(), - HEADER_SET_COOKIE2.toUpperCase(), - - HEADER_DAV.toUpperCase(), - HEADER_DEPTH.toUpperCase(), - HEADER_DESTINATION.toUpperCase(), - HEADER_IF.toUpperCase(), - HEADER_LOCK_TOKEN.toUpperCase(), - HEADER_OVERWRITE.toUpperCase(), - HEADER_STATUS_URI.toUpperCase(), - HEADER_TIMEOUT.toUpperCase(), - - HEADER_CONTENT_BASE.toUpperCase(), - HEADER_PUBLIC.toUpperCase(), - HEADER_CONTENT_VERSION.toUpperCase(), - HEADER_DERIVED_FROM.toUpperCase(), - HEADER_LINK.toUpperCase(), - HEADER_URI.toUpperCase(), - HEADER_KEEP_ALIVE.toUpperCase(), - - HEADER_A_IM.toUpperCase(), - HEADER_DELTA_BASE.toUpperCase(), - HEADER_IM.toUpperCase(), - - HEADER_DIGEST.toUpperCase(), - HEADER_WANT_DIGEST.toUpperCase(), - - HEADER_METER.toUpperCase() - }); - } - - /** - * Returns all the non-standardized HTTP header names presented as List - * @return The list of non-standardized HTTP header names - */ - public static List getNonStandardizedHeaderNames() { - return Arrays.asList(new Object[] { - HEADER_ACCEPT_FEATURES.toUpperCase(), - HEADER_ALTERNATES.toUpperCase(), - HEADER_NEGOTIATE.toUpperCase(), - HEADER_TCN.toUpperCase(), - HEADER_VARIANT_VARY.toUpperCase(), - - HEADER_SAFE.toUpperCase(), - - HEADER_ACCEPT_ADDITIONS.toUpperCase(), - - HEADER_CONTENT_PRIVACY_DOMAIN.toUpperCase(), - HEADER_MAC_INFO.toUpperCase(), - HEADER_PREARRANGED_KEY_INFO.toUpperCase(), - - HEADER_C_EXT.toUpperCase(), - HEADER_C_MAN.toUpperCase(), - HEADER_C_OPT.toUpperCase(), - HEADER_EXT.toUpperCase(), - HEADER_MAN.toUpperCase(), - HEADER_OPT.toUpperCase(), - - HEADER_PICS_LABEL.toUpperCase(), - HEADER_PROTOCOL.toUpperCase(), - HEADER_PROTOCOL_REQUEST.toUpperCase(), - - HEADER_P3P.toUpperCase(), - - HEADER_C_PEP.toUpperCase(), - HEADER_C_PEP_INFO.toUpperCase(), - HEADER_PEP.toUpperCase(), - HEADER_PEP_INFO.toUpperCase(), - - HEADER_CONTENT_ID.toUpperCase(), - HEADER_DIFFERENTIAL_ID.toUpperCase(), - - HEADER_SURROGATE_CAPABILITY.toUpperCase(), - HEADER_SURROGATE_CONTROL.toUpperCase(), - - HEADER_PROTOCOL.toUpperCase(), - HEADER_PROTOCOL_INFO.toUpperCase(), - HEADER_PROTOCOL_QUERY.toUpperCase(), - HEADER_PROTOCOL_REQUEST.toUpperCase(), - - HEADER_GETPROFILE.toUpperCase(), - HEADER_PROFILEOBJECT.toUpperCase(), - HEADER_SETPROFILE.toUpperCase(), - - HEADER_PROXY_FEATURES.toUpperCase(), - HEADER_PROXY_INSTRUCTION.toUpperCase(), - - HEADER_CONTENT_TRANSFER_ENCODING.toUpperCase(), - HEADER_COST.toUpperCase(), - HEADER_MESSAGE_ID.toUpperCase(), - HEADER_TITLE.toUpperCase(), - HEADER_VERSION.toUpperCase(), - - HEADER_EXTENSION.toUpperCase(), - - HEADER_OPTIONAL.toUpperCase(), - HEADER_RESOLUTION_HINT.toUpperCase(), - - HEADER_SUBOK.toUpperCase(), - HEADER_SUBST.toUpperCase(), - - HEADER_COMPLIANCE.toUpperCase(), - HEADER_NON_COMPLIANCE.toUpperCase(), - - HEADER_REQUEST_RANGE.toUpperCase(), - HEADER_UA_COLOR.toUpperCase(), - HEADER_UA_CPU.toUpperCase(), - HEADER_UA_OS.toUpperCase(), - HEADER_UA_PIXELS.toUpperCase(), - - HEADER_REFERRER.toUpperCase(), - - HEADER_COPYRIGHT.toUpperCase(), - HEADER_CONTENT.toUpperCase(), - HEADER_AUTHOR.toUpperCase(), - HEADER_CONTACT.toUpperCase(), - HEADER_KEYWORDS.toUpperCase(), - HEADER_GENERATOR.toUpperCase(), - HEADER_DESCRIPTION.toUpperCase(), - HEADER_COMMAND.toUpperCase(), - HEADER_SESSION.toUpperCase(), - HEADER_TYPE.toUpperCase(), - HEADER_MESSAGE.toUpperCase(), - - HEADER_UNLESS_MODIFIED_SINCE.toUpperCase() - }); - } - - /** - * Returns all known HTTP header names presented as List - * @return The list of all known HTTP header names - */ - public static List getAllKnownHeaderNames() { - return Arrays.asList(new Object[] { - HEADER_ACCEPT.toUpperCase(), - HEADER_ACCEPT_CHARSET.toUpperCase(), - HEADER_ACCEPT_ENCODING.toUpperCase(), - HEADER_ACCEPT_LANGUAGE.toUpperCase(), - HEADER_ACCEPT_RANGES.toUpperCase(), - HEADER_AGE.toUpperCase(), - HEADER_ALLOW.toUpperCase(), - HEADER_AUTHORIZATION.toUpperCase(), - HEADER_CACHE_CONTROL.toUpperCase(), - HEADER_CONNECT.toUpperCase(), - HEADER_CONTENT_ENCODING.toUpperCase(), - HEADER_CONTENT_LANGUAGE.toUpperCase(), - HEADER_CONTENT_LENGTH.toUpperCase(), - HEADER_CONTENT_LOCATION.toUpperCase(), - HEADER_CONTENT_MD5.toUpperCase(), - HEADER_CONTENT_RANGE.toUpperCase(), - HEADER_CONTENT_TYPE.toUpperCase(), - HEADER_DATE.toUpperCase(), - HEADER_ETAG.toUpperCase(), - HEADER_EXPECT.toUpperCase(), - HEADER_EXPIRES.toUpperCase(), - HEADER_FROM.toUpperCase(), - HEADER_HOST.toUpperCase(), - HEADER_IF_MATCH.toUpperCase(), - HEADER_IF_MODIFIED_SINCE.toUpperCase(), - HEADER_IF_NONE_MATCH.toUpperCase(), - HEADER_IF_RANGE.toUpperCase(), - HEADER_IF_UNMODIFIED_SINCE.toUpperCase(), - HEADER_LAST_MODIFIED.toUpperCase(), - HEADER_LOCATION.toUpperCase(), - HEADER_MAX_FORWARDS.toUpperCase(), - HEADER_PRAGMA.toUpperCase(), - HEADER_PROXY_AUTHENTICATE.toUpperCase(), - HEADER_PROXY_AUTHORIZATION.toUpperCase(), - HEADER_RANGE.toUpperCase(), - HEADER_REFERER.toUpperCase(), - HEADER_RETRY_AFTER.toUpperCase(), - HEADER_SERVER.toUpperCase(), - HEADER_TE.toUpperCase(), - HEADER_TRAILER.toUpperCase(), - HEADER_TRANSFER_ENCODING.toUpperCase(), - HEADER_UPGRADE.toUpperCase(), - HEADER_USER_AGENT.toUpperCase(), - HEADER_VARY.toUpperCase(), - HEADER_VIA.toUpperCase(), - HEADER_WARNING.toUpperCase(), - HEADER_WWW_AUTHENTICATE.toUpperCase(), - HEADER_MIME_VERSION.toUpperCase(), - HEADER_CONTENT_DISPOSITION.toUpperCase(), - - HEADER_AUTHENTICATION_INFO.toUpperCase(), - - HEADER_SET_COOKIE.toUpperCase(), - - HEADER_COOKIE.toUpperCase(), - HEADER_COOKIE2.toUpperCase(), - HEADER_SET_COOKIE2.toUpperCase(), - - HEADER_DAV.toUpperCase(), - HEADER_DEPTH.toUpperCase(), - HEADER_DESTINATION.toUpperCase(), - HEADER_IF.toUpperCase(), - HEADER_LOCK_TOKEN.toUpperCase(), - HEADER_OVERWRITE.toUpperCase(), - HEADER_STATUS_URI.toUpperCase(), - HEADER_TIMEOUT.toUpperCase(), - - HEADER_CONTENT_BASE.toUpperCase(), - HEADER_PUBLIC.toUpperCase(), - HEADER_CONTENT_VERSION.toUpperCase(), - HEADER_DERIVED_FROM.toUpperCase(), - HEADER_LINK.toUpperCase(), - HEADER_URI.toUpperCase(), - HEADER_KEEP_ALIVE.toUpperCase(), - - HEADER_A_IM.toUpperCase(), - HEADER_DELTA_BASE.toUpperCase(), - HEADER_IM.toUpperCase(), - - HEADER_DIGEST.toUpperCase(), - HEADER_WANT_DIGEST.toUpperCase(), - - HEADER_METER.toUpperCase(), - - HEADER_ACCEPT_FEATURES.toUpperCase(), - HEADER_ALTERNATES.toUpperCase(), - HEADER_NEGOTIATE.toUpperCase(), - HEADER_TCN.toUpperCase(), - HEADER_VARIANT_VARY.toUpperCase(), - - HEADER_SAFE.toUpperCase(), - - HEADER_ACCEPT_ADDITIONS.toUpperCase(), - - HEADER_CONTENT_PRIVACY_DOMAIN.toUpperCase(), - HEADER_MAC_INFO.toUpperCase(), - HEADER_PREARRANGED_KEY_INFO.toUpperCase(), - - HEADER_C_EXT.toUpperCase(), - HEADER_C_MAN.toUpperCase(), - HEADER_C_OPT.toUpperCase(), - HEADER_EXT.toUpperCase(), - HEADER_MAN.toUpperCase(), - HEADER_OPT.toUpperCase(), - - HEADER_PICS_LABEL.toUpperCase(), - HEADER_PROTOCOL.toUpperCase(), - HEADER_PROTOCOL_REQUEST.toUpperCase(), - - HEADER_P3P.toUpperCase(), - - HEADER_C_PEP.toUpperCase(), - HEADER_C_PEP_INFO.toUpperCase(), - HEADER_PEP.toUpperCase(), - HEADER_PEP_INFO.toUpperCase(), - - HEADER_CONTENT_ID.toUpperCase(), - HEADER_DIFFERENTIAL_ID.toUpperCase(), - - HEADER_SURROGATE_CAPABILITY.toUpperCase(), - HEADER_SURROGATE_CONTROL.toUpperCase(), - - HEADER_PROTOCOL.toUpperCase(), - HEADER_PROTOCOL_INFO.toUpperCase(), - HEADER_PROTOCOL_QUERY.toUpperCase(), - HEADER_PROTOCOL_REQUEST.toUpperCase(), - - HEADER_GETPROFILE.toUpperCase(), - HEADER_PROFILEOBJECT.toUpperCase(), - HEADER_SETPROFILE.toUpperCase(), - - HEADER_PROXY_FEATURES.toUpperCase(), - HEADER_PROXY_INSTRUCTION.toUpperCase(), - - HEADER_CONTENT_TRANSFER_ENCODING.toUpperCase(), - HEADER_COST.toUpperCase(), - HEADER_MESSAGE_ID.toUpperCase(), - HEADER_TITLE.toUpperCase(), - HEADER_VERSION.toUpperCase(), - - HEADER_EXTENSION.toUpperCase(), - - HEADER_OPTIONAL.toUpperCase(), - HEADER_RESOLUTION_HINT.toUpperCase(), - - HEADER_SUBOK.toUpperCase(), - HEADER_SUBST.toUpperCase(), - - HEADER_COMPLIANCE.toUpperCase(), - HEADER_NON_COMPLIANCE.toUpperCase(), - - HEADER_REQUEST_RANGE.toUpperCase(), - HEADER_UA_COLOR.toUpperCase(), - HEADER_UA_CPU.toUpperCase(), - HEADER_UA_OS.toUpperCase(), - HEADER_UA_PIXELS.toUpperCase(), - - HEADER_REFERRER.toUpperCase(), - - HEADER_COPYRIGHT.toUpperCase(), - HEADER_CONTENT.toUpperCase(), - HEADER_AUTHOR.toUpperCase(), - HEADER_CONTACT.toUpperCase(), - HEADER_KEYWORDS.toUpperCase(), - HEADER_GENERATOR.toUpperCase(), - HEADER_DESCRIPTION.toUpperCase(), - HEADER_COMMAND.toUpperCase(), - HEADER_SESSION.toUpperCase(), - HEADER_TYPE.toUpperCase(), - HEADER_MESSAGE.toUpperCase(), - - HEADER_UNLESS_MODIFIED_SINCE.toUpperCase() - }); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/HTTPUtils.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/HTTPUtils.java deleted file mode 100644 index 1e6e44347..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/HTTPUtils.java +++ /dev/null @@ -1,182 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.util; - -import java.util.HashMap; -import java.util.Map; -import com.ibm.icu.util.StringTokenizer; - -import org.eclipse.wst.wsi.internal.core.WSIException; - -/** - * Set of HTTPL related utilities. - * - * @version 1.0.1 - * @author Peter Brittenham - */ - -public final class HTTPUtils -{ - - /** - * Find the URL string in a HTTP POST header. - * @param httpPostHeader a HTTP POST header. - * @return the URL string in a HTTP POST header. - */ - public static String getURLString(String httpPostHeader) - { - String urlString = null; - int start, end; - - // If POST, then continue - if (httpPostHeader.startsWith("POST") || httpPostHeader.startsWith("GET")) - { - // Start after first space - start = httpPostHeader.indexOf(' ') + 1; - - // Look for next non-space character - while (httpPostHeader.charAt(start) == ' ') - start++; - - // Find next space character - end = httpPostHeader.indexOf(' ', start); - - // Get URL string which is located in between start and end - urlString = httpPostHeader.substring(start, end); - } - - // Else throw exception - else - { - throw new IllegalArgumentException( - "HTTP header does not contain POST data (was: " + httpPostHeader + ")"); - } - - // Return URL string - return urlString; - } - /** - * Utility to present HTTP header information as attribute-value pairs, - * based on ':' as attribute-value separator. - * @param httpHeaderString an HTTP header string. - * @param separators attribute-value separator list. - * @return HTTP header information as attribute-value pairs. - * @throws WSIException if unable to create HTTP header information - * as attribute-value pairs. - */ - public static Map getHttpHeaderTokens(String httpHeaderString, String separators) - throws WSIException - { - StringTokenizer tokenizer = new StringTokenizer(httpHeaderString, "\n\r\f"); - Map map = new HashMap(); - String name = null; - while (tokenizer.hasMoreTokens()) - { - String line = tokenizer.nextToken(); - int index = line.indexOf(separators); - if (index > 0 && index < line.length() - 1) - { - name = line.substring(0, index).toUpperCase(); - map.put(name, line.substring(index + 1).trim()); - } - else - { - if ((name != null) && (line.length()>0) && Character.isWhitespace(line.charAt(0))) - map.put(name, map.get(name) + " " + line.trim()); - } - } - return map; - } - - /** - * Utility to take sub attribute value from HTTP header - * @param httpHeaderString an HTTP header string. - * @param attributeName attribute name. - * @param subAttributeName sub attribute name. - * @return sub attribute value from HTTP header. - * @throws WSIException if unable to get sub attribute value from HTTP header. - */ - public static String getHttpHeaderSubAttribute(String httpHeaderString, - String attributeName, String subAttributeName) - throws WSIException - { - // get attribute value - String value = - (String) getHttpHeaderTokens(httpHeaderString,":").get(attributeName.toUpperCase()); - if(value != null) - { - // search sub attribute token - int idxQ = value.toUpperCase().indexOf(subAttributeName.toUpperCase()+"=\""); - int idx = value.toUpperCase().indexOf(subAttributeName.toUpperCase()+"="); - // if attribute is quoted - if (idxQ != -1) - { - idxQ += (subAttributeName+"=\"").length(); - int eIdxQ = value.indexOf("\"", idxQ); - if (eIdxQ != -1) - { - return value.substring(idxQ, eIdxQ); - } - else - { - return null; - } - } - // if attribute do not quoted - else if (idx != -1) - { - idx += (subAttributeName+"=").length(); - int eIdx = -1; - // find end space separator - if ((eIdx = value.indexOf(" ", idx)) != -1) - { - return value.substring(idx, eIdx); - } - // find coma separator - else if ((eIdx = value.indexOf(";", idx)) != -1) - { - return value.substring(idx, eIdx); - } - // this is last attribute - else - { - return value.substring(idx); - } - } - // if attribute do not found - else - { - return null; - } - } - return value; - } - - /** - * Utility to take attribute value from HTTP header - * @param httpHeaderString an HTTP header string. - * @param attributeName attribute name. - * @return attribute value from HTTP header. - * @throws WSIException if unable to get attribute value from HTTP header. - */ - public static String getHttpHeaderAttribute(String httpHeaderString, - String attributeName) - throws WSIException - { - String attributeValue = - (String) getHttpHeaderTokens(httpHeaderString,":").get(attributeName.toUpperCase()); - // get first token - if((attributeValue != null) && (attributeValue.indexOf(";") != -1)) { - attributeValue = attributeValue.substring(0, attributeValue.indexOf(";")); - } - return attributeValue; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/HttpHeadersValidator.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/HttpHeadersValidator.java deleted file mode 100644 index a76a499bd..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/HttpHeadersValidator.java +++ /dev/null @@ -1,1721 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.util; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; -import java.text.ParseException; -import java.util.Locale; -import com.ibm.icu.util.StringTokenizer; - -import sun.net.www.MessageHeader; - -import com.ibm.icu.text.SimpleDateFormat; - -/** - * This class checks HTTP request headers about RFC 2616. - * - * @author Volodin - */ -public class HttpHeadersValidator -{ - - private static final String HEADER_ALLOW = "Allow"; - private static final String HEADER_CONTENT_TYPE = "Content-Type"; - private static final String HEADER_CONTENT_ENCODING = "Content-Encoding"; - private static final String HEADER_CONTENT_LANGUAGE = "Content-Language"; - private static final String HEADER_CONTENT_LENGHT = "Content-Length"; - private static final String HEADER_CONTENT_LOCATION = "Content-Location"; - private static final String HEADER_CONTENT_RANGE = "Content-Range"; - private static final String HEADER_EXPIRES = "Expires"; - private static final String HEADER_LAST_MODIFIED = "Last-Modified"; - private static final String HEADER_CACHE_CONTROL = "Cache-Control"; - private static final String HEADER_CONNECTION = "Connection"; - private static final String HEADER_DATE = "Date"; - private static final String HEADER_PRAGMA = "Pragma"; - private static final String HEADER_TRAILER = "Trailer"; - private static final String HEADER_TRANSFER_ENCODING = "Transfer-Encoding"; - - private static final String HEADER_UPGRADE = "Upgrade"; - private static final String HEADER_VIA = "Via"; - private static final String HEADER_WARNING = "Warning"; - - private static final String HEADER_ACCEPT = "Accept"; - private static final String HEADER_ACCEPT_CHARSET = "Accept-Charset"; - private static final String HEADER_ACCEPT_ENCODING = "Accept-Encoding"; - private static final String HEADER_ACCEPT_LANGUAGE = "Accept-Language"; - private static final String HEADER_AUTHORIZATION = "Authorization"; - private static final String HEADER_EXPECT = "Expect"; - private static final String HEADER_FROM = "From"; - private static final String HEADER_HOST = "Host"; - private static final String HEADER_IF_MATCH = "If-Match"; - private static final String HEADER_IF_MODIFIED_SINCE = "If-Modified-Since"; - private static final String HEADER_IF_NONE_MATCH = "If-None-Match"; - private static final String HEADER_IF_RANGE = "If-Range"; - private static final String HEADER_IF_UNMODIFIED_SINCE = - "If-Unmodified-Since"; - private static final String HEADER_MAX_FORWARDS = "Max-Forwards"; - private static final String HEADER_PROXY_AUTHORIZATION = - "Proxy-Authorization"; - private static final String HEADER_RANGE = "Range"; - private static final String HEADER_REFERER = "Referer"; - private static final String HEADER_TE = "TE"; - private static final String HEADER_USER_AGENT = "User-Agent"; - - /** - * This class checks e-mail string about RFC 822. - */ - public static class MailboxValidator - { - private static final char[] SPECIAL = - { '(', ')', '<', '>', '@', ',', ';', ':', '\\', '\"', '.', '[', ']' }; - - /** - * Validates e-mail string. - * @param mailbox e-mail string - * @return boolean true if e-mail string is conform to RFC 822, false otherwise. - */ - - public static boolean validateMailbox(String mailbox) - { - - if (!isFullAddr(mailbox) && !isShortAddr(mailbox)) - return false; - - return true; - } - - /** - * Method isSimpleAddr. - * @param mailbox - * @return boolean - */ - private static boolean isShortAddr(String mailbox) - { - int indexAt = mailbox.indexOf('@'); - if (indexAt == -1) - return false; - - if (!isLocalPart(mailbox.substring(0, indexAt)) - || !isDomain(mailbox.substring(indexAt + 1))) - return false; - - return true; - } - - /** - * Method isDomaim. - * @param string - * return boolean - */ - private static boolean isDomain(String string) - { - if (string.trim().length() == 0) - return false; - StringTokenizer st = new StringTokenizer(string, "."); - while (st.hasMoreTokens()) - { - String subDomain = st.nextToken(); - if (!isAtom(subDomain) && !isDomainLiteral(subDomain)) - return false; - - } - return true; - } - - /** - * Method isDomainLiteral. - * @param subDomain - * @return boolean - */ - private static boolean isDomainLiteral(String subDomain) - { - if (getLastDomainLiteral(subDomain, 0) == subDomain.length()) - { - return true; - } - else - { - return false; - } - } - - private static int getLastDomainLiteral(String str, int startIndex) - { - - int index = startIndex; - //int newIndex = 0; - - // if end if the string - if (startIndex == str.length()) - return startIndex; - // if the begin is not '[' - if (str.charAt(index) != '[') - return startIndex; - - index++; - while (true) - { - index = getLastDtext(str, index); - if (index == str.length()) - return startIndex; - if (BasicRules.isQuotedPair(str, index - 1)) - { - index++; - if (index == str.length()) - return startIndex; - } - else - break; - } - // if the end is not ']' - if (str.charAt(index) != ']') - return startIndex; - - index++; - return index; - } - - private static int getLastDtext(String str, int startIndex) - { - if (str.length() == startIndex) - return startIndex; - int i = 0; - for (; i < str.length(); i++) - { - char ch = str.charAt(i); - i = BasicRules.getLastIndexLWS(str, i); - if (!BasicRules.isCHAR(ch) - || str.charAt(i) == '[' - || str.charAt(i) == ']' - || str.charAt(i) == '\\' - || str.charAt(i) == BasicRules.CR) - { - return i + 1; - } - } - return i + 1; - } - - /** - * Method isLocalPart. - * @param string - * @return boolean - */ - private static boolean isLocalPart(String string) - { - if (string.trim().length() == 0) - return false; - StringTokenizer st = new StringTokenizer(string, "."); - while (st.hasMoreTokens()) - { - if (!isWord(st.nextToken())) - return false; - } - return true; - } - - /** - * Method isWord. - * @param string - * @return boolean - */ - private static boolean isWord(String string) - { - if (!isAtom(string) && !isQuotedString(string)) - return false; - return true; - } - - /** - * Method isAtom. - * @param string - * @return boolean - */ - private static boolean isAtom(String string) - { - if (string.length() == 0) - return false; - for (int i = 0; i < string.length(); i++) - { - if (!BasicRules.isCHAR(string.charAt(i)) - || isSpecial(string.charAt(i)) - || string.charAt(i) == ' ' - || BasicRules.isCTL(string.charAt(i))) - { - return false; - } - } - return true; - } - - /** - * Method isSpecial. - * @param c - * @return boolean - */ - private static boolean isSpecial(char ch) - { - for (int index = 0; index < SPECIAL.length; index++) - { - if (ch == SPECIAL[index]) - return true; - } - return false; - } - - /** - * Method isFullAddr. - * @param mailbox - * @return boolean - */ - private static boolean isFullAddr(String mailbox) - { - if (mailbox.length() == 0) - return false; - int idxLT = mailbox.indexOf('<'); - if (idxLT == -1) - return false; - - //is phrase - String phrase = mailbox.substring(0, idxLT); - StringTokenizer st = new StringTokenizer(phrase, " "); - if (st.countTokens() == 0) - return false; - while (st.hasMoreTokens()) - { - if (!isWord(st.nextToken())) - return false; - } - if (phrase.charAt(phrase.length() - 1) != BasicRules.SP) - { - return false; - } - - //is route-addr - String routeAddr = mailbox.substring(idxLT + 1); - // is route - int idxTwoSpot = routeAddr.indexOf(':'); - if (idxTwoSpot != -1) - { - StringTokenizer stRouteAddr = - new StringTokenizer(routeAddr.substring(0, idxTwoSpot), ","); - if (!stRouteAddr.hasMoreTokens()) - return false; - while (stRouteAddr.hasMoreTokens()) - { - if (!isDomain(stRouteAddr.nextToken())) - return false; - } - } - - //is addr spec - int idxGT = routeAddr.indexOf('>'); - if (idxGT == -1 || idxGT != (routeAddr.length() - 1)) - return false; - - if (!isShortAddr(routeAddr.substring(idxTwoSpot + 1, idxGT))) - return false; - - return true; - } - - } - - /** - * Validates HTTP request headers. - * @param headers HTTP request headers - * @return boolean true if all HTTP headers string is conform to RFC 2616, false otherwise. - */ - - public static boolean validateHttpRequestHeaders(String headers) - { - - MessageHeader mh = new MessageHeader(); - try - { - mh.parseHeader(new ByteArrayInputStream(headers.getBytes())); - } - catch (IOException e) - { - return false; - } - - String header = null; - String value = null; - - header = mh.getKey(0); - if (header != null) - return false; - - value = mh.getValue(0); - if (value == null) - return false; - - //method - StringTokenizer st = new StringTokenizer(value, " "); - if (!st.hasMoreElements()) - return false; - String str = st.nextToken(); - if (!isToken(str)) - return false; - - if (!st.hasMoreElements()) - return false; - str = st.nextToken(); - if (!isURI(str) && !str.equals("*")) - return false; - - if (!st.hasMoreElements()) - return false; - str = st.nextToken(); - if (!isHTTPVersion(str)) - return false; - - int i = 1; - try - { - while ((header = mh.getKey(i)) != null) - { - value = mh.getValue(i); - i++; - - // is message-header token - if (!isToken(header)) - return false; - - //---- entity-headers - - if (header.equals(HEADER_ALLOW)) - { - if (!isValidAllow(value)) - return false; - else - continue; - } - - if (header.equals(HEADER_CONTENT_TYPE)) - { - if (!isMediaType(value)) - return false; - else - continue; - } - if (header.equals(HEADER_CONTENT_ENCODING)) - { - if (!isToken(value)) - return false; - else - continue; - } - if (header.equals(HEADER_CONTENT_LANGUAGE)) - { - if (!isLanguageTag(value)) - return false; - else - continue; - } - if (header.equals(HEADER_CONTENT_LENGHT)) - { - if (!isDidgit(value)) - return false; - else - continue; - } - if (header.equals(HEADER_CONTENT_LOCATION)) - { - if (!isURI(value)) - return false; - else - continue; - } - - if (header.equals(HEADER_CONTENT_RANGE)) - { - if (!isValidContentRange(value)) - return false; - else - continue; - } - - if (header.equals(HEADER_EXPIRES) - || header.equals(HEADER_LAST_MODIFIED)) - { - if (!isHTTPDate(value)) - return false; - else - continue; - } - - //---- general-headers - if (header.equals(HEADER_CACHE_CONTROL)) - { - if (!isValidCacheControl(value)) - return false; - - continue; - //return true; - } - - if (header.equals(HEADER_CONNECTION)) - { - if (!isToken(value)) - return false; - else - continue; - } - - if (header.equals(HEADER_DATE)) - { - if (!isHTTPDate(value)) - return false; - else - continue; - } - - if (header.equals(HEADER_PRAGMA)) - { - if (!isPragmaDerective(value)) - return false; - else - continue; - } - - if (header.equals(HEADER_TRAILER)) - { - if (!isToken(value)) - return false; - else - continue; - } - - if (header.equals(HEADER_TRANSFER_ENCODING)) - { - if (!isTransferCoding(value)) - return false; - else - continue; - } - - if (header.equals(HEADER_UPGRADE)) - { - if (!isValidUpgrade(value)) - return false; - else - continue; - } - - if (header.equals(HEADER_VIA)) - { - if (!isValidVia(value)) - return false; - else - continue; - } - - if (header.equals(HEADER_WARNING)) - { - if (!isValidWarning(value)) - return false; - else - continue; - } - - if (header.equals(HEADER_ACCEPT)) - { - if (!isValidAccept(value)) - return false; - else - continue; - } - - if (header.equals(HEADER_ACCEPT_CHARSET)) - { - if (!isValidAcceptCharSet(value)) - return false; - else - continue; - } - - if (header.equals(HEADER_ACCEPT_ENCODING)) - { - if (!isValidAcceptEncoding(value)) - return false; - else - continue; - } - - if (header.equals(HEADER_ACCEPT_LANGUAGE)) - { - if (!isValidAcceptLanguage(value)) - return false; - else - continue; - } - - if (header.equals(HEADER_AUTHORIZATION) - || header.equals(HEADER_PROXY_AUTHORIZATION)) - { - if (!isCredentials(value)) - return false; - else - continue; - } - if (header.equals(HEADER_EXPECT)) - { - if (!isExpectation(value)) - return false; - else - continue; - } - - if (header.equals(HEADER_FROM)) - { - if (!MailboxValidator.validateMailbox(value)) - return false; - else - continue; - } - - if (header.equals(HEADER_IF_MATCH) - || header.equals(HEADER_IF_NONE_MATCH)) - { - if (!isValidIfMatch(value)) - return false; - else - continue; - } - if (header.equals(HEADER_IF_RANGE)) - { - if (!isEntityTag(value) && !isHTTPDate(value)) - return false; - else - continue; - } - - //--- - if (header.equals(HEADER_IF_MODIFIED_SINCE)) - { - if (!isHTTPDate(value)) - return false; - else - continue; - } - if (header.equals(HEADER_IF_UNMODIFIED_SINCE)) - { - if (!isHTTPDate(value)) - return false; - else - continue; - } - if (header.equals(HEADER_MAX_FORWARDS)) - { - if (!isDidgit(value)) - return false; - else - continue; - } - - if (header.equals(HEADER_USER_AGENT)) - { - if (!isValidUserAgent(value)) - return false; - else - continue; - } - - if (header.equals(HEADER_TE)) - { - if (!isValidTE(value)) - return false; - else - continue; - } - - if (header.equals(HEADER_RANGE)) - { - if (!isRange(value)) - return false; - else - continue; - } - if (header.equals(HEADER_HOST)) - { - if (!isHost(value)) - return false; - else - continue; - } - if (header.equals(HEADER_REFERER)) - { - if (!isURI(value)) - return false; - else - continue; - } - - } - } - catch (Exception e) - { - return false; - } - return true; - } - - /** - * Method isValidIfMatch. - * @param value - * @return boolean - */ - private static boolean isValidIfMatch(String value) - { - if (value.trim().length() == 0) - return true; - if ("*".equals(value.trim())) - return true; - - StringTokenizer st = new StringTokenizer(value, ","); - while (st.hasMoreElements()) - { - String str = st.nextToken().trim(); - if (!isEntityTag(str)) - return false; - - } - - return true; - } - - /** - * Method isValidUpgrade. - * @param value - * @return boolean - */ - private static boolean isValidUpgrade(String value) - { - if (value.trim().length() == 0) - return false; - StringTokenizer st = new StringTokenizer(value, ","); - while (st.hasMoreElements()) - { - String str = st.nextToken().trim(); - if (!isProduct(str)) - return false; - - } - return true; - } - - /** - * Method isValidCacheControl. - * @param value - * @return boolean - */ - private static boolean isValidCacheControl(String value) - { - - if (value.trim().length() == 0) - return false; - - StringTokenizer st = new StringTokenizer(value, ","); - while (st.hasMoreElements()) - { - String str = st.nextToken().trim(); - int index = str.indexOf('='); - if (index == -1) - { - - } - else - { - if (!isToken(str.substring(0, index))) - return false; - String strAfterEq = str.substring(index + 1); - if (!isToken(strAfterEq) && !isQuotedString(strAfterEq)) - { - return false; - } - } - } - - return true; - } - - /** - * Method isHTTPVersion. - * @param str - * @return boolean - */ - private static boolean isHTTPVersion(String str) - { - if (!str.startsWith("HTTP/")) - return false; - int idx = "HTTP/".length(); - - int idx2 = str.indexOf("."); - - // 1*DIGIT - String s = str.substring(idx, idx2); - if (!isDidgit(s)) - return false; - - s = str.substring(idx2 + 1); - if (!isDidgit(s)) - return false; - - return true; - } - - /** - * Method isValidWarning. - * @param value - * @return boolean - */ - private static boolean isValidWarning(String value) - { - if (value.length() == 0) - return false; - value = value.trim(); - StringTokenizer st = new StringTokenizer(value, " "); - String str = st.nextToken(); - - if (str.length() > 3 || !isDidgit(str)) - return false; - - if (!st.hasMoreTokens()) - return false; - str = st.nextToken(); - if (!isHost(str) && !isToken(str)) - return false; - - //if(!st.hasMoreTokens()) return false; - str = st.nextToken("").trim(); - //??? - - int lastQuotedString = BasicRules.getLastQuotedString(str, 0); - if (lastQuotedString == str.length()) - { - return true; - } - else - { - String data = str.substring(lastQuotedString); - if (data.charAt(data.length()) != '\"') - return false; - if (str.charAt(0) != '\"') - return false; - if (!isHTTPDate(str.substring(1, data.length() - 1))) - return false; - } - - return true; - } - - /** - * Method isValidVia. - * @param value - * @return boolean - */ - private static boolean isValidVia(String value) - { - if (value.trim().length() == 0) - return false; - - StringTokenizer st = new StringTokenizer(value, ","); - while (st.hasMoreElements()) - { - - String str = st.nextToken().trim(); - - StringTokenizer st2 = new StringTokenizer(str, " "); - - // protocol/version - str = st2.nextToken(); - int idx = str.indexOf("/"); - if (idx == -1) - { - if (!isToken(str)) - return false; - } - else - { - if (!isToken(str.substring(0, idx)) - || !isToken(str.substring(idx + 1))) - return false; - } - - //host - str = st2.nextToken(); - if (!isHost(str) && !isToken(str)) - return false; - - //comment - if (st2.hasMoreTokens()) - { - str = st2.nextToken(""); - if (!isComment(str.trim())) - return false; - } - } - return true; - } - - /** - * Method isHost. - * @param value - * @return boolean - */ - private static boolean isHost(String value) - { - - try - { - new URL("http://" + value); - } - catch (MalformedURLException e) - { - return false; - } - return true; - } - - /** - * Method isValidAllow. - * @param value - * @return boolean - */ - private static boolean isValidAllow(String value) - { - if (value.trim().length() == 0) - return true; - - StringTokenizer st = new StringTokenizer(value, ","); - while (st.hasMoreElements()) - { - String str = st.nextToken().trim(); - if (!isToken(str)) - return false; - } - return true; - } - - /** - * Method isValidContentRange. - * @param value - * @return boolean - */ - private static boolean isValidContentRange(String value) - { - if (value.length() == 0) - return false; - if (!value.startsWith("bytes")) - return false; - String str = value.substring("bytes".length()).trim(); - - int idx = str.indexOf("/"); - if (idx == -1) - return false; - - String byteRange = str.substring(0, idx); - int idx2 = byteRange.indexOf("-"); - if (idx2 == -1) - { - if (!byteRange.equals("*")) - return false; - } - else - { - if (!isDidgit(byteRange.substring(0, idx2)) - || !isDidgit(byteRange.substring(idx2 + 1))) - return false; - } - - if (!isDidgit(str.substring(idx + 1)) - && !str.substring(idx + 1).equals("*")) - return false; - - return true; - } - - /** - * Method isRange. - * @param value - * @return boolean - */ - private static boolean isRange(String value) - { - if (value.length() == 0) - return false; - if (!value.startsWith("bytes=")) - return false; - String strByteRange = value.substring("bytes=".length()); - - StringTokenizer st = new StringTokenizer(strByteRange, ","); - while (st.hasMoreElements()) - { - String str = st.nextToken(); - int idx = str.indexOf("-"); - if (idx == -1) - return false; - if (idx == 0) - { - if (!isDidgit(str.substring(1))) - return false; - } - else - { - if (idx == (str.length() - 1)) - { - if (!isDidgit(str.substring(0, str.length() - 1))) - return false; - } - else - { - if (!isDidgit(str.substring(0, idx)) - || !isDidgit(str.substring(idx + 1))) - return false; - } - - } - - } - return true; - } - - /** - * Method isValidTE. - * @param value - * @return boolean - */ - private static boolean isValidTE(String value) - { - if (value.trim().length() == 0) - return true; - - StringTokenizer st = new StringTokenizer(value, ","); - while (st.hasMoreElements()) - { - String str = st.nextToken().trim(); - if (st.equals("trailers")) - return true; - - int idx = str.indexOf(";"); - if (idx == -1) - { - if (!isLanguageRange(str)) - return false; - } - else - { - String _1 = str.substring(0, idx).trim(); - String _2 = str.substring(idx + 1).trim(); - if (!isLanguageRange(_1)) - return false; - if (!isQAndQValue(_2)) - return false; - } - - } - - return true; - } - - /** - * Method isValidUserAgent. - * @param value - * @return boolean - */ - private static boolean isValidUserAgent(String value) - { - if (value.length() == 0) - return false; - StringTokenizer st = new StringTokenizer(value, " "); - while (st.hasMoreElements()) - { - String str = st.nextToken(); - if (!isProduct(str) && !isComment(str)) - return false; - - } - - return true; - } - - /** - * Method isComment. - * @param str - * @return boolean - */ - private static boolean isComment(String str) - { - if (BasicRules.getLastComment(str, 0) != str.length()) - return false; - return true; - } - - /** - * Method isValidAcceptLanguage. - * @param value - * @return boolean - */ - private static boolean isValidAcceptLanguage(String value) - { - if (value.trim().length() == 0) - return false; - - StringTokenizer st = new StringTokenizer(value, ","); - while (st.hasMoreElements()) - { - String str = st.nextToken().trim(); - int idx = str.indexOf(";"); - if (idx == -1) - { - if (!isToken(str)) - return false; - } - else - { - String _1 = str.substring(0, idx).trim(); - String _2 = str.substring(idx + 1).trim(); - if (!isToken(_1)) - return false; - if (!isAcceptParams(_2)) - return false; - } - - } - - return true; - } - - /** - * Method isLanguageRange. - * @param str - * @return boolean - */ - private static boolean isLanguageRange(String str) - { - if (str.trim().equals("*")) - return true; - StringTokenizer st = new StringTokenizer(str, "-"); - while (st.hasMoreElements()) - { - if (!is8ALPHA(st.nextToken())) - return false; - } - return true; - } - - /** - * Method isValidAcceptEncoding. - * @param value - * @return boolean - */ - private static boolean isValidAcceptEncoding(String value) - { - if (value.trim().length() == 0) - return false; - - StringTokenizer st = new StringTokenizer(value, ","); - while (st.hasMoreElements()) - { - String str = st.nextToken().trim(); - int idx = str.indexOf(";"); - if (idx == -1) - { - if (!isToken(str) && !str.equals("*")) - return false; - } - else - { - String _1 = str.substring(0, idx).trim(); - String _2 = str.substring(idx + 1).trim(); - - if ((!isToken(_1) && !_1.equals("*"))) - return false; - if (!isQAndQValue(_2)) - return false; - } - - } - - return true; - } - - /** - * Method isValidAcceptCharSet. - * @param value - * @return boolean - */ - private static boolean isValidAcceptCharSet(String value) - { - if (value.trim().length() == 0) - return false; - - StringTokenizer st = new StringTokenizer(value, ","); - while (st.hasMoreElements()) - { - String str = st.nextToken().trim(); - int idx = str.indexOf(";"); - if (idx == -1) - { - if (!isToken(str) && !str.equals("*")) - return false; - } - else - { - String _1 = str.substring(0, idx).trim(); - String _2 = str.substring(idx + 1).trim(); - - if ((!isToken(_1) && !_1.equals("*"))) - return false; - if (!isQAndQValue(_2)) - return false; - } - - } - - return true; - } - - /** - * Method isValidAccept. - * @param value - * @return boolean - */ - private static boolean isValidAccept(String value) - { - if (value.trim().length() == 0) - return true; - - StringTokenizer st = new StringTokenizer(value, ","); - while (st.hasMoreElements()) - { - String str = st.nextToken().trim(); - int idx = str.indexOf(";"); - if (idx == -1) - { - if (!isMediaRange(str)) - return false; - } - else - { - if (!isMediaRange(str.substring(0, idx).trim()) - || !isAcceptParams(str.substring(idx + 1).trim())) - return false; - - } - - } - return true; - } - - /** - * Method isAcceptParams. - * @param string - * @return boolean - */ - private static boolean isAcceptParams(String string) - { - if (string.trim().length() == 0) - return false; - - StringTokenizer st = new StringTokenizer(string, ";"); - String str = st.nextToken(); - - int idx = str.indexOf("="); - if (idx == -1) - { - if (str.equals("q") || !isToken(str)) - return false; - } - else - { - if (str.substring(0, idx).equals("q")) - { - if (!isQValue(str.substring(idx + 1))) - return false; - } - else - { - if (!isParameterWithoutValue(str)) - return false; - } - } - - while (st.hasMoreElements()) - { - str = st.nextToken(); - if (!isParameterWithoutValue(str)) - return false; - } - return true; - } - - /** - * Method isQAndQValue. - * @param str - * @return boolean - */ - private static boolean isQAndQValue(String str) - { - str = str.trim(); - if (!str.trim().startsWith("q=")) - return false; - if (!isQValue(str.substring("q=".length()))) - return false; - return true; - } - - /** - * Method isQValue. - * @param string - * @return boolean - */ - private static boolean isQValue(String string) - { - if (string.trim().length() == 0) - return false; - - int idx = string.indexOf("."); - if (idx == -1) - { - if (!"0".equals(string) && !"1".equals(string)) - return false; - } - else - { - String strDig = string.substring(idx + 1); - if (strDig.length() > 3) - return false; - - if (string.substring(0, idx).equals("0")) - { - if (!isDidgit(strDig)) - return false; - - } - else - { - if (!string.substring(0, idx).equals("1")) - return false; - - for (int i = 0; i < strDig.length(); i++) - { - if (strDig.charAt(i) != '0') - return false; - } - } - - } - return true; - } - - /** - * Method isMediaRange. - * @param str - * @return boolean - */ - private static boolean isMediaRange(String str) - { - if (str.trim().length() == 0) - return false; - - int idx = str.indexOf("/"); - if (idx == -1) - return false; - - if (!isToken(str.substring(0, idx)) && !str.substring(0, idx).equals("*")) - return false; - if (!isToken(str.substring(idx + 1)) - && !str.substring(idx + 1).equals("*")) - return false; - - return true; - } - - /** - * Method isEntityTag. - * @param value - * @return boolean - */ - private static boolean isEntityTag(String value) - { - - int idx = 0; - if (value.startsWith("W/")) - idx = 2; - if (!isQuotedString(value.substring(idx))) - return false; - return true; - } - - /** - * Method isExpectation. - * @param value - * @return boolean - */ - private static boolean isExpectation(String value) - { - if (value.equals("100-continue")) - return true; - - StringTokenizer st = new StringTokenizer(value, ";"); - while (st.hasMoreElements()) - { - if (!isParameterWithoutValue(st.nextToken())) - return false; - } - - return true; - } - - /** - * Method isCredentials. - * @param value - * @return boolean - */ - private static boolean isCredentials(String value) - { - StringTokenizer st = new StringTokenizer(value, " "); - if (!isToken(st.nextToken())) - return false; - - while (st.hasMoreElements()) - { - String param = st.nextToken(","); - if (!isParameter(param)) - return false; - } - return true; - } - - /** - * Method isProduct. - * @param value - * @return boolean - */ - private static boolean isProduct(String value) - { - int idx = value.indexOf("/"); - if (idx == -1) - { - if (!isToken(value)) - return false; - } - else - { - if (!isToken(value.substring(0, idx)) - || !isToken(value.substring(idx + 1))) - return false; - } - return true; - } - - /** - * Method isTransferCoding. - * @param value - * @return boolean - */ - private static boolean isTransferCoding(String value) - { - if (value.equals("chunked")) - { - return true; - } - else - { - StringTokenizer st = new StringTokenizer(value, ";"); - if (!isToken(st.nextToken())) - return false; - - while (st.hasMoreElements()) - { - if (!isParameter(st.nextToken())) - return false; - } - - } - - return true; - } - - /** - * Method isParameter. - * @param string - * @return boolean - */ - private static boolean isParameter(String string) - { - - // check parameter - int idx = string.indexOf("="); - if (!isToken(string.substring(0, idx))) - return false; - - String parValue = string.substring(idx + 1); - if (!isToken(parValue) && !isQuotedString(parValue)) - return false; - - return true; - } - - /** - * Method isParameterWithoutValue. - * @param string - * @return boolean - */ - private static boolean isParameterWithoutValue(String string) - { - - // check parameter - int idx = string.indexOf("="); - if (idx != -1) - { - if (!isToken(string.substring(0, idx))) - return false; - String parValue = string.substring(idx + 1); - if (!isToken(parValue) && !isQuotedString(parValue)) - return false; - - } - else - { - if (!isToken(string)) - return false; - } - - return true; - } - - /** - * Method isPragmaDerective. - * @param value - * @return boolean - */ - private static boolean isPragmaDerective(String value) - { - if (value.equals("no-cache")) - return true; - else - { - int idx = value.indexOf("="); - if (idx == -1) - { - if (isToken(value)) - return true; - } - else - { - String str = value.substring(idx + 1); - if (isToken(value.substring(0, idx)) - && (isToken(str) || isQuotedString(str))) - return true; - } - } - return true; - } - - /** - * Method isHTTPDate. - * @param value - * @return boolean - */ - private static boolean isHTTPDate(String value) - { - - String rfc1123_date = "EEE, dd MMM yyyy hh:mm:ss 'GMT'"; - String rfc850_date = "EEEE, dd-MMM-yy hh:mm:ss 'GMT'"; - String asctime_date = "EEE MMM d hh:mm:ss yyyy"; - - try - { - SimpleDateFormat sdf = new SimpleDateFormat(rfc1123_date, Locale.US); - if (sdf.parse(value) != null) - return true; - } - catch (ParseException e) - { - } - - try - { - SimpleDateFormat sdf = new SimpleDateFormat(rfc850_date, Locale.US); - if (sdf.parse(value) != null) - return true; - } - catch (ParseException e) - { - } - - try - { - SimpleDateFormat sdf = new SimpleDateFormat(asctime_date, Locale.US); - if (sdf.parse(value) != null) - return true; - } - catch (ParseException e) - { - } - - return false; - - } - - /** - * Method isURI. - * @param value - * @return boolean - */ - private static boolean isURI(String value) - { - try - { - new URL(value); - } - catch (MalformedURLException e) - { - try - { - new URL("http://localhost" + value); - } - catch (MalformedURLException e2) - { - return false; - } - } - - return true; - } - - /** - * Method isLanguageTag. - * @param value - * @return boolean - */ - private static boolean isLanguageTag(String value) - { - int idx = value.indexOf("-"); - if (idx == -1) - { - return is8ALPHA(value); - } - else - { - if (!is8ALPHA(value.substring(0, idx)) - || !is8ALPHA(value.substring(idx + 1))) - return false; - else - return true; - - } - } - - /** - * Method is8ALPHA. - * @param string - * @return boolean - */ - private static boolean is8ALPHA(String string) - { - if (string.length() > 8 || !isALPHA(string)) - return false; - else - return true; - } - - /** - * Method isALPHA. - * @param string - * @return boolean - */ - private static boolean isALPHA(String string) - { - for (int i = 0; i < string.length(); i++) - { - if (!BasicRules.isCHAR(string.charAt(i))) - return false; - } - - return true; - } - - /** - * Method isDidgit. - * @param value - * @return boolean - */ - private static boolean isDidgit(String value) - { - if (value.length() == 0) - return false; - char[] chs = value.toCharArray(); - for (int i = 0; i < chs.length; i++) - { - if (chs[i] < '0' || chs[i] > '9') - return false; - } - - return true; - } - - /** - * Method isMediaType. - * @param value - * @return boolean - */ - private static boolean isMediaType(String value) - { - StringTokenizer st = new StringTokenizer(value, ";"); - String mediaType = st.nextToken(); - - int idx = mediaType.indexOf("/"); - if (!isToken(mediaType.substring(0, idx)) - || !isToken(mediaType.substring(idx + 1))) - { - return false; - } - - while (st.hasMoreElements()) - { - if (!isParameter(st.nextToken(";").trim())) - return false; - } - return true; - } - - /** - * Method isQuotedString. - * @param parValue - * @return boolean - */ - private static boolean isQuotedString(String parValue) - { - if (BasicRules.getLastQuotedString(parValue, 0) != parValue.length()) - { - return false; - } - return true; - } - - /** - * Method isToken. - * @param value - * @return boolean - */ - private static boolean isToken(String value) - { - return BasicRules.isToken(value); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/JavaEncoding.properties b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/JavaEncoding.properties deleted file mode 100644 index 42935366a..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/JavaEncoding.properties +++ /dev/null @@ -1,31 +0,0 @@ -# /** -# * <copyright> -# * -# * Copyright (c) 2002-2003 IBM Corporation, Beacon Information Technology Inc. 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 - Initial API and implementation -# * BeaconIT - Initial API and implementation -# * </copyright> -# */ -## I18N: 2003.02.26 modified by K.Nakagome@BeaconIT -## Property file used to get JavaVM supported character encoding. - -ISO8859_1=ISO8859_1 -ISO8859-1=ISO8859_1 -utf8=UTF8 -utf-8=UTF8 -UTF-8=UTF8 -utf16=UTF-16 -utf-16=UTF-16 -UTF16=UTF-16 - -## -Shift_JIS=Windows-31J - -MS932=Windows-31J -#SJIS=Shift_JIS
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/MIMEConstants.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/MIMEConstants.java deleted file mode 100644 index e94b4b4ac..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/MIMEConstants.java +++ /dev/null @@ -1,24 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.util; - -/** - * A set of HTTP values that are defined by Network Working Group. - * http://www.ietf.org/ - * - * @version 1.0 - * @author Ilya Kanonirov (kio@isg.axmor.com) - */ -public class MIMEConstants { - public static final String HEADER_CONTENT_ID = "Content-ID"; - public static final String HEADER_CONTENT_TRANSFER_ENCODING = "Content-Transfer-Encoding"; - public static final String HEADER_CONTENT_TYPE = "Content-Type"; -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/MIMEUtils.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/MIMEUtils.java deleted file mode 100644 index b9cd33098..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/MIMEUtils.java +++ /dev/null @@ -1,138 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.util; - -import java.util.HashMap; -import java.util.Map; -import com.ibm.icu.util.StringTokenizer; - -import org.eclipse.wst.wsi.internal.core.WSIException; - -/** - * Set of HTTPL related utilities. - * - * @version 1.0.1 - * @author Peter Brittenham - */ - -public final class MIMEUtils -{ - - /** - * Utility to present MIME header information as attribute-value pairs, - * based on ':' as attribute-value separator. - * @param mimeHeaderString an MIME header string. - * @param separators attribute-value separator list. - * @return MIME header information as attribute-value pairs. - * @throws WSIException if unable to create MIME header information - * as attribute-value pairs. - */ - public static Map getMimeHeaderTokens(String mimeHeaderString, String separators) - throws WSIException - { - StringTokenizer tokenizer = new StringTokenizer(mimeHeaderString, "\n\r\f"); - Map map = new HashMap(); - while (tokenizer.hasMoreTokens()) - { - String line = tokenizer.nextToken(); - int index = line.indexOf(separators); - if (index > 0 && index < line.length() - 1) - { - map.put(line.substring(0, index).toUpperCase(), line.substring(index + 1).trim()); - } - } - return map; - } - - /** - * Utility to take sub attribute value from MIME header - * @param mimeHeaderString an MIME header string. - * @param attributeName attribute name. - * @param subAttributeName sub attribute name. - * @return sub attribute value from MIME header. - * @throws WSIException if unable to get sub attribute value from MIME header. - */ - public static String getMimeHeaderSubAttribute(String mimeHeaderString, - String attributeName, String subAttributeName) - throws WSIException - { - // get attribute value - String value = - (String) getMimeHeaderTokens(mimeHeaderString,":").get(attributeName.toUpperCase()); - if(value != null) - { - // search sub attribute token - int idxQ = value.toUpperCase().indexOf(subAttributeName.toUpperCase()+"=\""); - int idx = value.toUpperCase().indexOf(subAttributeName.toUpperCase()+"="); - // if attribute is quoted - if (idxQ != -1) - { - idxQ += (subAttributeName+"=\"").length(); - int eIdxQ = value.indexOf("\"", idxQ); - if (eIdxQ != -1) - { - return value.substring(idxQ, eIdxQ); - } - else - { - return null; - } - } - // if attribute is not quoted - else if (idx != -1) - { - idx += (subAttributeName+"=").length(); - int eIdx = -1; - // find end space separator - if ((eIdx = value.indexOf(" ", idx)) != -1) - { - return value.substring(idx, eIdx); - } - // find coma separator - else if ((eIdx = value.indexOf(";", idx)) != -1) - { - return value.substring(idx, eIdx); - } - // this is last attribute - else - { - return value.substring(idx); - } - } - // if attribute do not found - else - { - return null; - } - } - return value; - } - - /** - * Utility to take attribute value from MIME header - * @param mimeHeaderString an MIME header string. - * @param attributeName attribute name. - * @return attribute value from MIME header. - * @throws WSIException if unable to get attribute value from MIME header. - */ - public static String getMimeHeaderAttribute(String mimeHeaderString, - String attributeName) - throws WSIException - { - String attributeValue = - (String) getMimeHeaderTokens(mimeHeaderString,":").get(attributeName.toUpperCase()); - // get first token - if((attributeValue != null) && (attributeValue.indexOf(";") != -1)) { - attributeValue = attributeValue.substring(0, attributeValue.indexOf(";")); - } - return attributeValue; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/MessageList.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/MessageList.java deleted file mode 100644 index 9028cc05f..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/MessageList.java +++ /dev/null @@ -1,164 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.util; - -import java.util.ResourceBundle; - -/** - * This class creates and maintains a message list. - * - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ -public class MessageList -{ - /** - * Message resource bundle. - */ - private ResourceBundle messageResourceBundle = null; - - /** - * Constructor for MessageList. - * @param resourceBundleName a resource bundle name. - */ - public MessageList(String resourceBundleName) - { - this.messageResourceBundle = ResourceBundle.getBundle(resourceBundleName); - } - - /** - * Get a message from the resource bundle. - * @param key a key. - * @param defaultMessage a default message. - * @return message from the resource bundle. - */ - public String getMessage(String key, String defaultMessage) - { - return getMessage(key, null, defaultMessage); - } - - /** - * Get a message from the resource bundle. - * @param key a key. - * @param messageData message data. - * @param defaultMessage a default message. - * @return message from the resource bundle. - */ - public String getMessage( - String key, - String messageData, - String defaultMessage) - { - String message = defaultMessage; - - try - { - // Get message - message = messageResourceBundle.getString(key); - } - - catch (Exception e) - { - // Ignore and just use default message - } - - if (messageData != null) - message += " " + messageData; - - // Return message - return message; - } - - /** - * Print a message from the resource bundle. - * @param key a key. - * @param defaultMessage a default message. - */ - public void printMessage(String key, String defaultMessage) - { - printMessage(key, null, defaultMessage); - } - - /** - * Print a message from the resource bundle. - * @param key a key. - * @param messageData message data. - * @param defaultMessage a default message. - */ - public void printMessage( - String key, - String messageData, - String defaultMessage) - { - // Print message - System.out.println(getMessage(key, messageData, defaultMessage)); - } - - /** - * Static get message. - * @param resourceBundleName resource bundle name. - * @param key a key. - * @param messageData message data. - * @param defaultMessage a default message. - * @return message. - */ - public static String getMessage( - String resourceBundleName, - String key, - String messageData, - String defaultMessage) - { - String message = defaultMessage; - ResourceBundle messageResourceBundle = null; - - try - { - // Get resource bundle - messageResourceBundle = ResourceBundle.getBundle(resourceBundleName); - - // Get message - message = messageResourceBundle.getString(key); - } - - catch (Exception e) - { - // Ignore and just use default message - } - - if (messageData != null) - message += " " + messageData; - - if (!message.endsWith(".")) - message += "."; - - // Return message - return message; - } - - /** - * Print message. - * @param resourceBundleName resource bundle name. - * @param key a key. - * @param messageData message data. - * @param defaultMessage a default message. - */ - public static void printMessage( - String resourceBundleName, - String key, - String messageData, - String defaultMessage) - { - // Print message - System.out.println( - getMessage(resourceBundleName, key, messageData, defaultMessage)); - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/NullUtil.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/NullUtil.java deleted file mode 100644 index 487cca321..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/NullUtil.java +++ /dev/null @@ -1,40 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.util; - -/** - * The utility class to automate null checking. - * - * @author Kulik - */ -public final class NullUtil -{ - /** - * The method checks objects on existence and compare with <code>equals</code> method. - * @param o1 first object. - * @param o2 second object. - * @return true if first object is equal to the second object. - */ - public static boolean equals(Object o1, Object o2) - { - return ((o1 == null && o2 == null) || (o1 != null && o1.equals(o2))); - } - - /** - * The method checks object on existence and returns its string representation with <code>toString()</code> method. - * @param o source object. - * @return string representation of object. - */ - public static String toString(Object o) - { - return (o == null) ? null : o.toString(); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/OperationSignature.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/OperationSignature.java deleted file mode 100644 index 639a3f209..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/OperationSignature.java +++ /dev/null @@ -1,788 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.util; - -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.BindingFault; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOperation; -import javax.wsdl.BindingOutput; -import javax.wsdl.Definition; -import javax.wsdl.Fault; -import javax.wsdl.Import; -import javax.wsdl.Input; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.Output; -import javax.wsdl.Part; -import javax.wsdl.Port; -import javax.wsdl.PortType; -import javax.wsdl.Service; -import javax.wsdl.Types; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.soap.SOAPBinding; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPFault; -import javax.wsdl.extensions.soap.SOAPHeader; -import javax.wsdl.extensions.soap.SOAPHeaderFault; -import javax.wsdl.extensions.soap.SOAPOperation; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLVisitor; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -/** - * The class implements mechanism for creating unique signature of operation. - * - * @author Kulik - */ -public final class OperationSignature -{ - // the flag indicates whether the messages is represented as document style - // vice versa is not generally true - private boolean isDocumentStyle = false; - private boolean isCreated = false; - private boolean isFault = false; - - protected List signature = new LinkedList(); - private Element firstBody = null; - - /** - * Class operates as container for matched operation. - * @author Kulik - */ - public final static class OperationMatch - { - final private String style; - final private BindingOperation operation; - final private List signature; - - /** - * Constructor. - * @param style operation style. - * @param signature a signature. - * @param operation a binding operation. - */ - protected OperationMatch( - String style, - List signature, - BindingOperation operation) - { - this.style = style; - this.signature = signature; - this.operation = operation; - } - /** - * Gets operation style. - * @return operation style. - */ - public String getOperationStyle() - { - return style; - } - /** - * Gets WSDL binding operation object. - * @return WSDL binding operation object. - */ - public BindingOperation getOperation() - { - return operation; - } - - /** - * Gets operation signature as list. - * @return operation signature as list. - */ - public List getSignature() - { - return signature; - } - } - - /** - * The class searches BindingOperation by the given OperationSigbnature. - * @author Kulik - */ - public final class Visitor implements WSDLVisitor - { - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Part, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Part obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Service, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Service obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Types, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Types obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Operation, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Operation obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Input, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Input obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Output, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Output obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Fault, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Fault obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Binding, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Binding obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.BindingOperation, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - BindingOperation obj, - Object parent, - WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.BindingInput, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - BindingInput obj, - Object parent, - WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.BindingOutput, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit( - BindingOutput obj, - Object parent, - WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(BindingFault, Object, WSDLTraversalContext) - */ - public void visit( - BindingFault obj, - Object parent, - WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(Import, Object, WSDLTraversalContext) - */ - public void visit(Import obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(Element, Object, WSDLTraversalContext) - */ - public void visit(Element obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(Message, Object, WSDLTraversalContext) - */ - public void visit(Message obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(Port, Object, WSDLTraversalContext) - */ - public void visit(Port obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(PortType, Object, WSDLTraversalContext) - */ - public void visit(PortType obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(Definition, Object, WSDLTraversalContext) - */ - public void visit(Definition obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(ExtensibilityElement, Object, WSDLTraversalContext) - */ - public void visit( - ExtensibilityElement obj, - Object parent, - WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(SOAPHeader, Object, WSDLTraversalContext) - */ - public void visit(SOAPHeader obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(SOAPHeaderFault, Object, WSDLTraversalContext) - */ - public void visit( - SOAPHeaderFault obj, - Object parent, - WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(SOAPFault, Object, WSDLTraversalContext) - */ - public void visit(SOAPFault obj, Object parent, WSDLTraversalContext ctx) - { - } - - private String requiredStyle = null; - private String soapAction = null; - private BindingOperation operation = null; - private TypesRegistry registry = null; - private boolean isSOAPActionRequired = false; - - /** - * Constructor. - */ - public Visitor() - { - super(); - // TODO Auto-generated constructor stub - } - - /** - * Constructor. - * @param requiredStyle required style. - * @param registry types registry. - */ - public Visitor(String requiredStyle, TypesRegistry registry) - { - this.requiredStyle = requiredStyle; - this.registry = registry; - } - - /** - * The method returns matched binding operation. - * @return BindingOperation - */ - public BindingOperation getMatchedOperation() - { - return operation; - } - - /** - * The method sets up required operation to be found. - * The possible values is rpc and document. - * @param requiredStyle operation style. - */ - public void setRequiredStyle(String requiredStyle) - { - this.requiredStyle = requiredStyle; - } - - /** - * The method indicates whether SOAP Action be included into operation. - * signature. - * @return true if SOAP Action isd required. - */ - public boolean isSOAPActionRequired() - { - return isSOAPActionRequired; - } - - /** - * Sets SOAP action to be included into signature. - */ - public void setSOAPActionRequired() - { - isSOAPActionRequired = true; - } - - /** - * internal method. - */ - public void visit( - SOAPBinding binding, - Object parent, - WSDLTraversalContext ctx) - { - String style = - (binding.getStyle() == null) - ? WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC - : binding.getStyle(); - ctx.addParameter("style", style); - } - - /** - * internal method. - */ - public void visit( - SOAPOperation operation, - Object parent, - WSDLTraversalContext ctx) - { - soapAction = null; - String style = operation.getStyle(); - if (style == null) - style = (String) ctx.getParameter("style"); - if (!requiredStyle.equals(style)) - ctx.cancelBindingOperationProcessing(); - else - //if (isSOAPActionRequired) - soapAction = operation.getSoapActionURI(); - } - - /** - * internal method. - */ - public void visit(SOAPBody body, Object parent, WSDLTraversalContext ctx) - { - // assert parent instanceof BindingInput - BindingOperation bop = ctx.getBindingOperation(); - if (bop.getOperation() == null - || bop.getOperation().getInput() == null - || bop.getOperation().getInput().getMessage() == null) - return; - - Message msg = bop.getOperation().getInput().getMessage(); - List parts = - WSDLUtil.getParts(bop.getOperation(), msg, body, requiredStyle); - - QName additionalName = null; - // if operation is rpc, add to parts qname qith function name - if (WSIConstants.ATTRVAL_SOAP_BIND_STYLE_RPC.equals(requiredStyle)) - { - // found out target namespace - String namespace = body.getNamespaceURI(); - if (namespace == null || namespace.length() == 0) - // !! ATTENTION - // namespace should be retrieved from service target nameapce - namespace = ctx.getBinding().getQName().getNamespaceURI(); - - // insert operation name as first signature part - additionalName = - new QName(namespace, ctx.getBindingOperation().getName()); - } - - OperationSignature op = - new OperationSignature(parts, null, registry, false); - - if (additionalName != null) - op.getSignature().add(0, additionalName); - //if (isSOAPActionRequired) - //if (soapAction != null) - if (isSOAPActionRequired && soapAction != null) - op.getSignature().add(0, soapAction); - if (op.getSignature().equals(signature)) - { - // required operation is found - operation = ctx.getBindingOperation(); - ctx.cancelBindingOperationProcessing(); - ctx.cancelBindingProcessing(); - } - - else - { - op = new OperationSignature(parts, null, registry, true); - if (additionalName != null) - op.getSignature().add(0, additionalName); - - //if (isSOAPActionRequired) - //if (soapAction != null) - if (isSOAPActionRequired && soapAction != null) - op.getSignature().add(0, soapAction); - - if (op.getSignature().equals(signature)) - { - // required operation is found - operation = ctx.getBindingOperation(); - ctx.cancelBindingOperationProcessing(); - ctx.cancelBindingProcessing(); - } - } - } - } - - /** - * The constructor creates OperationSignature for SOAP message. - * @param doc a Document object. - */ - public OperationSignature(Document doc) - { - Element body = - XMLUtils.findChildElement( - doc.getDocumentElement(), - WSITag.ELEM_SOAP_BODY); - processParts(body, false); - isDocumentStyle |= (signature.size() > 1); - } - - /** - * The constructor creates OperationSIgnature for - * list of <code>Part</code> objects and given WSDL document within these - * parts are defined. - * - * @param parts a list of Part objects. - * @param wsdlDocument a WSDL document. - * @param registry a types registry. - * @param partial a partial status. - */ - public OperationSignature( - List parts, - Document wsdlDocument, - TypesRegistry registry, - boolean partial) - { - if (parts != null) - { - Iterator it = parts.iterator(); - - while (it.hasNext()) - { - Part part = (Part) it.next(); - String localName = (partial) ? part.getName() : null; - QName typeName = part.getTypeName(); - QName elementName = part.getElementName(); - - String namespace = ""; - - // If type name is not null, then a type element was used so it should be an RPC style signature - if (typeName != null) - { - // Part wrappers do not have namespaces - namespace = ""; - - if (localName == null) - localName = typeName.getLocalPart(); - } - - // If element name is not null, then it should be a document style signature - else if (elementName != null) - { - namespace = elementName.getNamespaceURI(); - - if (localName == null) - localName = elementName.getLocalPart(); - } - - signature.add(new QName(namespace, localName)); - } - } - - isCreated = true; - } - - /** - * The method recreates OperationSignature with assumption that operation is - * RPC. - */ - public void createRPCSignature() - { - isCreated = false; - if (firstBody == null) - return; - processParts(firstBody, true); - isDocumentStyle = false; - } - - /** - * Internal method processes WSDL parts and creates operation signature. - * @param parent - */ - private void processParts(Node parent, boolean processWrapper) - { - if (parent != null) - { - Node n = parent.getFirstChild(); - - // variable indicates that first tag is processed - boolean isFirst = true; - // iterate all bodies - while (n != null) - { - if (Node.ELEMENT_NODE == n.getNodeType()) - { - if (isFirst && firstBody == null) - { - isFirst = false; - firstBody = (Element) n; - // check soapenv:fault - if (XMLUtils.equals(n, WSITag.ELEM_SOAP_FAULT)) - { - isFault = true; - isCreated = false; - return; - } - } - - String namespace = n.getNamespaceURI(); - String localName = n.getLocalName(); - - /*I have no idea why this code is in here since it makes no sense at all, so I am commenting it out - // try to get xsi:tag - if (XMLUtils.getAttribute((Element) n, WSITag.ATTR_XSI_TYPE) != null) { - // we suppose that RPC style does not use xsi:type attribute - isDocumentStyle = true; - Attr xsiType = XMLUtils.getAttribute((Element) n, WSITag.ATTR_XSI_TYPE); - - String xsiValue = xsiType.getNodeValue(); - int i = xsiValue.indexOf(':'); - if (i != -1) - { - namespace = XMLUtils.findNamespaceURI(n, xsiValue.substring(0, i)); - localName = xsiValue.substring(i+1); - } - } - */ - - // If this is rpc-literal and processing a part (not the wrapper), then the part should not have a namespace - // And if it does, then one of the test assertions will detect it - if (!isDocumentStyle && processWrapper) - { - namespace = ""; - } - - if (namespace == null || namespace.length() == 0) - { - if (isDocumentStyle) - { - //Element firstChild = null; - Node it = n.getFirstChild(); - while (it != null && !(it instanceof Element)) - it = it.getNextSibling(); - if (it != null) - namespace = it.getNamespaceURI(); - } - } - - // normalize namespaces. All empty namespaces -> null - if (namespace != null && namespace.length() == 0) - namespace = null; - - // put part into signature - signature.add(new QName(namespace, localName)); - } - - n = n.getNextSibling(); - } - } - else - { - isCreated = false; // not found ? - return; - } - - isCreated = true; - } - - /** - * Indicates whether operation has document style or RPC. - * @return true if operation has document style. - */ - public boolean isDocumentStyle() - { - return isDocumentStyle; - } - - /** - * Indicates whether WSDL fault parts should be included into signature or - * not. - * @return true if WSDL fault parts should be included into signature. - */ - public boolean isFault() - { - return isFault; - } - - /** - * Indicates that operation signature was created. - * @return true if operation signature was created. - */ - public boolean isCreated() - { - return isCreated; - } - - /** - * Gets operation signature created for SOAP message. - * @return operation signature created for SOAP message. - */ - public List getSignature() - { - return signature; - } - - /** - * @see java.lang.Object#hashCode() - */ - public int hashCode() - { - return signature.hashCode(); - } - - /** - * @see java.lang.Object#equals(Object) - */ - public boolean equals(Object o) - { - if (o instanceof OperationSignature) - return signature.equals(((OperationSignature) o).getSignature()); - return false; - } - - /** - * The method matches operation based on the given SOAP message request, - * WSDL binding, and soapAction. - * - * @param inputMessage an SOAP message request. - * @param soapAction a soap action. - * @param binding a WSDL binding. - * @param registry a types registry. - * @return OperationMatch object. - */ - public static OperationMatch matchOperation( - Document inputMessage, - String soapAction, - Binding binding, - TypesRegistry registry) - { - return matchOperation(inputMessage, soapAction, binding, registry, true); - } - - /** - * The method matches operation based on the given SOAP message request, - * WSDL binding, and soapAction. - * - * @param inputMessage SOAP message request. - * @param soapAction a soap action. - * @param binding a WSDL binding. - * @param registry a types registry. - * @param soapActionRequired must process the soapAction value even if it is null - * @return OperationMatch object. - */ - public static OperationMatch matchOperation( - Document inputMessage, - String soapAction, - Binding binding, - TypesRegistry registry, - boolean soapActionRequired) - { - // Parse request message - OperationSignature signature = new OperationSignature(inputMessage); - if (!signature.isCreated()) - return null; - - // first of all looking for document style - // because rpc style is subset of document style - OperationSignature.Visitor resolver = - signature.new Visitor(WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC, registry); - - // normalize SOAPAction - if (soapAction != null - && soapAction.length() > 1 - && soapAction.charAt(0) == '"' - && soapAction.charAt(soapAction.length() - 1) == '"') - soapAction = soapAction.substring(1, soapAction.length() - 1); - - // if soap action URI processing required - // if soap action URI processing required - // analyze SOAPAction after parts being processed - // put SOAPAction into signature - //if (soapAction != null && soapAction.length() > 0) { - if (soapAction != null) - { - signature.getSignature().add(0, soapAction); - } - - if (soapActionRequired) - resolver.setSOAPActionRequired(); - - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(resolver); - traversal.setVisitor(resolver); - traversal.visitSOAPBinding(true); - traversal.visitSOAPBody(true); - traversal.visitSOAPOperation(true); - - traversal.ignoreReferences(); - traversal.ignoreBindingOutput(); - traversal.traverse(binding); - - BindingOperation operation = resolver.getMatchedOperation(); - if (operation == null && !signature.isDocumentStyle()) - { - resolver.setRequiredStyle(WSIConstants.ATTRVAL_SOAP_BIND_STYLE_RPC); - signature.createRPCSignature(); - traversal.traverse(binding); - operation = resolver.getMatchedOperation(); - if (operation == null) - return null; - } - - return new OperationMatch( - resolver.requiredStyle, - signature.getSignature(), - resolver.getMatchedOperation()); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/Pair.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/Pair.java deleted file mode 100644 index 471a192d0..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/Pair.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.util; - -/** - * The class represents pair of values. - * - * @author Kulik - */ -public final class Pair -{ - final private Object first; - final private Object second; - - /** - * Constructor. - * @param first object - * @param second object. - */ - public Pair(Object first, Object second) - { - this.first = first; - this.second = second; - } - - /** - * Gets first object. - * @return Object - */ - public Object getFirst() - { - return first; - } - - /** - * Gets second object. - * @return Object - */ - public Object getSecond() - { - return second; - } - - /** - * @see java.lang.Object#equals(Object) - */ - public boolean equals(Object o) - { - if (o == null || !(o instanceof Pair)) - return false; - Pair p = (Pair) o; - return ( - NullUtil.equals(p.getFirst(), first) - && NullUtil.equals(p.getSecond(), second)); - } - - /** - * @see java.lang.Object#hashCode() - */ - public int hashCode() - { - int code = 0; - if (first != null) - code += first.hashCode(); - if (second != null) - code += second.hashCode(); - return code; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/SetCookie2Validator.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/SetCookie2Validator.java deleted file mode 100644 index 5982e3a85..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/SetCookie2Validator.java +++ /dev/null @@ -1,629 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.util; - -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Vector; - -/** - * This class checks the cookies conform to RFC2965. - * - * @author Baltak - */ -public class SetCookie2Validator -{ - - private Vector commentVect = new Vector(); - private Vector commentURLVect = new Vector(); - private Vector domainVect = new Vector(); - private Vector max_AgeVect = new Vector(); - private Vector pathVect = new Vector(); - private Vector portVect = new Vector(); - private Vector versionVect = new Vector(); - - private boolean path = false; - - /** - * Method resetFlags. - */ - private void resetPath() - { - path = false; - } - - /** - * Check if the string satisfy the "Set-Cookie2" header value. - * @param str String - * @return boolean - */ - public boolean isSetCookie2(String str) - { - - try - { - int index = 0; - int newIndex = 0; - while (true) - { - newIndex = getLastCookie(str, index); - if (index == newIndex) - return false; - // skip spaces - index = newIndex; - index = skipSpaces(str, index); - if (index == str.length()) - { - return true; - } - else - { - if (str.charAt(index) != ',') - return false; - index++; - // skip spaces - index = skipSpaces(str, index); - } - - } - } - catch (Throwable th) - { - return false; - } - - } - - /** - * Method getLastCookie. - * @param str - * @param startIndex - * @return int - */ - private int getLastCookie(String str, int startIndex) - { - - resetPath(); - - int index = startIndex; - // find token - int newIndex = BasicRules.getLastToken(str, index); - if (index == newIndex) - return startIndex; - - index = newIndex; - if (index == str.length()) - return startIndex; - - // if not '=' - error - if (str.charAt(index) != '=') - return startIndex; - - index++; - if (index == str.length()) - return startIndex; - - // get value - newIndex = getLastValue(str, index); - if (index == newIndex) - return startIndex; - - while (true) - { - index = newIndex; - if (index == str.length()) - return index; - - if (str.charAt(index) != ';') - return index; - index++; - // skip spaces - index = skipSpaces(str, index); - - if (index == str.length()) - return startIndex; - newIndex = getLastSetCookieAv(str, index); - if (index == newIndex) - return startIndex; - } - } - - /** - * Method getLastValue. - * @param str - * @param startIndex - * @return int - */ - private int getLastValue(String str, int startIndex) - { - - int index = BasicRules.getLastToken(str, startIndex); - if (index != startIndex) - return index; - index = BasicRules.getLastQuotedString(str, startIndex); - if (index != startIndex) - return index; - - return startIndex; - } - - /** - * Method getLastSetCookieAv. - * @param str - * @param startIndex - * @return int - */ - private int getLastSetCookieAv(String str, int startIndex) - { - - int index = startIndex; - int newIndex = 0; - - if (str.startsWith("Comment=", index)) - { - index += "Comment=".length(); - newIndex = getLastValue(str, index); - if (index == newIndex) - return startIndex; - // debug -> - String qqq = getValue(str, index, newIndex); - commentVect.add(qqq); - // debug <- - return newIndex; - } - else if (str.startsWith("CommentURL=", index)) - { - index += "CommentURL=".length(); - - if (str.charAt(index) != '\"') - return startIndex; - - newIndex = str.indexOf('\"', index + 1); - if (newIndex == -1) - return startIndex; - try - { - new URL(str.substring(index + 1, newIndex)); - } - catch (MalformedURLException mue) - { - return startIndex; - } - // debug -> - String qqq = getValue(str, index + 1, newIndex); - commentURLVect.add(qqq); - // debug <- - newIndex++; - return newIndex; - } - else if (str.startsWith("Discard", index)) - { - return startIndex + "Discard".length(); - } - else if (str.startsWith("Domain=", index)) - { - index += "Domain=".length(); - - newIndex = getLastValue(str, index); - if (index == newIndex) - return startIndex; - - // debug -> - String qqq = getValue(str, index, newIndex); - domainVect.add(qqq); - // debug <- - return newIndex; - } - else if (str.startsWith("Max-Age=", index)) - { - index += "Max-Age=".length(); - - newIndex = getLastValue(str, index); - if (index == newIndex) - return startIndex; - - String qqq = getValue(str, index, newIndex); - try - { - Integer.parseInt(qqq); - } - catch (NumberFormatException nfe) - { - return startIndex; - } - // debug -> - max_AgeVect.add(qqq); - // debug <- - return newIndex; - } - else if (str.startsWith("Path=", index)) - { - index += "Path=".length(); - - newIndex = getLastValue(str, index); - if (index == newIndex) - return startIndex; - - String qqq = getValue(str, index, newIndex); - if (path == false) - pathVect.add(qqq); - path = true; - return newIndex; - } - else if (str.startsWith("Port", index)) - { - index += "Port".length(); - if (str.charAt(index) != '=') - return index; - - index++; - if (str.charAt(index) != '\"') - return startIndex; - - index++; - newIndex = getLastPortList(str, index); - if (index == newIndex) - return startIndex; - - // debug -> - String qqq = getValue(str, index, newIndex); - portVect.add(qqq); - // debug <- - - index = newIndex; - if (str.charAt(index) != '\"') - return startIndex; - index++; - return index; - - } - else if (str.startsWith("Secure", index)) - { - return startIndex + "Secure".length(); - } - else if (str.startsWith("Version=", index)) - { - index += "Version=".length(); - - newIndex = getLastDIGIT(str, index); - if (index == newIndex) - return startIndex; - - // debug -> - String qqq = getValue(str, index, newIndex); - versionVect.add(qqq); - // debug <- - return newIndex; - } - else - { - return startIndex; - } - } - - /** - * Method getLastPortList. - * @param str - * @param startIndex - * @return int - */ - private int getLastPortList(String str, int startIndex) - { - int index = startIndex; - int newIndex = 0; - - while (true) - { - newIndex = getLastDIGIT(str, index); - if (index == newIndex) - return startIndex; - - index = newIndex; - if (str.charAt(index) != ',') - return index; - index++; - } - } - - /** - * Method getLastDIGIT. - * @param str - * @param startIndex - * @return int - */ - private int getLastDIGIT(String str, int startIndex) - { - int index = startIndex; - for (; index < str.length(); index++) - { - if (!BasicRules.isDIGIT(str.charAt(index))) - return index; - } - return index; - } - - /** - * Check if the string satisfy the "Cookie" header value. - * @param str String - * @return boolean - */ - public boolean isCookie(String str) - { - int index = 0; - int newIndex = 0; - - try - { - newIndex = getLastVersion(str, index); - if (index == newIndex) - return false; - - index = newIndex; - index = skipSpaces(str, index); - if (str.charAt(index) != ';' && str.charAt(index) != ',') - return false; - - index++; - index = skipSpaces(str, index); - - while (true) - { - newIndex = getLastCookiesValue(str, index); - if (index == newIndex) - return false; - - index = newIndex; - if (index == str.length()) - return true; - - if (str.charAt(index) != ';' && str.charAt(index) != ',') - return false; - index++; - index = skipSpaces(str, index); - } - } - catch (Throwable th) - { - return false; - } - } - - /** - * Method getLastVersion. - * @param str - * @param startIndex - * @return int - */ - private int getLastVersion(String str, int startIndex) - { - int index = startIndex; - int newIndex = 0; - if (!str.startsWith("$Version=")) - return startIndex; - index += "$Version=".length(); - newIndex = getLastValue(str, index); - if (index == newIndex) - return startIndex; - - return newIndex; - } - - /** - * Method getLastCookiesValue. - * @param str - * @param startIndex - * @return int - */ - private int getLastCookiesValue(String str, int startIndex) - { - int index = startIndex; - int newIndex = 0; - int oldIndex = 0; - - // find token - newIndex = BasicRules.getLastToken(str, index); - if (index == newIndex) - return startIndex; - - index = newIndex; - if (index == str.length()) - return startIndex; - - // if not '=' - error - if (str.charAt(index) != '=') - return startIndex; - - index++; - if (index == str.length()) - return startIndex; - - // get value - newIndex = getLastValue(str, index); - if (index == newIndex) - return startIndex; - - index = newIndex; - if (index == str.length()) - return index; - - if (str.charAt(index) != ';') - return index; - - // process [";" path] [";" domain] [";" port] - oldIndex = index; - index++; - if (index == str.length()) - return startIndex; - - index = skipSpaces(str, index); - if (index == str.length()) - return startIndex; - - // process path - newIndex = getLastPath(str, index); - if (index != newIndex) - { - index = newIndex; - if (index == str.length()) - return index; - - if (str.charAt(index) != ';') - return index; - - oldIndex = index; - index++; - if (index == str.length()) - return startIndex; - - index = skipSpaces(str, index); - if (index == str.length()) - return startIndex; - - } - - // process domain - newIndex = getLastDomain(str, index); - if (index != newIndex) - { - index = newIndex; - if (index == str.length()) - return index; - - if (str.charAt(index) != ';') - return index; - - oldIndex = index; - index++; - if (index == str.length()) - return startIndex; - - index = skipSpaces(str, index); - if (index == str.length()) - return startIndex; - - } - - // process port - newIndex = getLastPort(str, index); - if (index != newIndex) - return newIndex; - else - return oldIndex; - } - - /** - * Method getLastPath. - * @param str - * @param startIndex - * @return int - */ - private int getLastPath(String str, int startIndex) - { - int index = startIndex; - int newIndex = 0; - - if (!str.startsWith("$Path=", index)) - return startIndex; - index += "$Path=".length(); - newIndex = getLastValue(str, index); - if (index == newIndex) - return startIndex; - - return newIndex; - } - - /** - * Method getLastDomain. - * @param str - * @param startIndex - * @return int - */ - private int getLastDomain(String str, int startIndex) - { - int index = startIndex; - int newIndex = 0; - - if (!str.startsWith("$Domain=", index)) - return startIndex; - index += "$Domain=".length(); - newIndex = getLastValue(str, index); - if (index == newIndex) - return startIndex; - - return newIndex; - } - - /** - * Method getLastPort. - * @param str - * @param startIndex - * @return int - */ - private int getLastPort(String str, int startIndex) - { - int index = startIndex; - int newIndex = 0; - - if (!str.startsWith("$Port", index)) - return startIndex; - - index += "$Port".length(); - if (str.charAt(index) != '=') - return index; - - index++; - if (str.charAt(index) != '\"') - return startIndex; - - index++; - newIndex = getLastPortList(str, index); - if (index == newIndex) - return startIndex; - - index = newIndex; - if (str.charAt(index) != '\"') - return startIndex; - index++; - return index; - } - - /** - * Method skipSpaces. - * @param str - * @param index - * @return int - */ - private int skipSpaces(String str, int index) - { - for (; index < str.length(); index++) - if (!BasicRules.isSP(str.charAt(index))) - break; - return index; - } - - /** - * Method getValue. - * @param str - * @param beg - * @param end - * @return String - */ - private String getValue(String str, int beg, int end) - { - String qqq = null; - if (str.charAt(beg) == '\"') - qqq = str.substring(beg + 1, end - 1); - else - qqq = str.substring(beg, end); - return qqq; - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/StringTokenizer.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/StringTokenizer.java deleted file mode 100644 index 5c9539814..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/StringTokenizer.java +++ /dev/null @@ -1,212 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - ********************************************************************************/ -package org.eclipse.wst.wsi.internal.core.util; - -/** - * String tokenizer. - * - * @author: Kulik - */ -final public class StringTokenizer -{ - private char[] spaceDel; - private char[] del; - private char[] allDel; - - /** - * Enumeration of strings. - * @author Kulik - */ - private class StringTokenizerEnumeration implements java.util.Enumeration - { - private final char[] str; - private final int size; - private int index; - - /** - * Constructor. - * @param s - */ - StringTokenizerEnumeration(char[] s) - { - str = s; - size = str.length; - index = 0; - - // skip space delimiters - while (index < size && contain(str[index], spaceDel)) - index++; - } - - /** - * @see java.util.Enumeration#hasMoreElements() - */ - public boolean hasMoreElements() - { - return (index < size); - } - - /** - * @see java.util.Enumeration#nextElement() - */ - public Object nextElement() - { - if (index >= size) - throw new java.util.NoSuchElementException( - "StringTokenizer enumeration"); - - // skip delimiters - int begStr = index; - if (index < size && contain(str[index], del)) - index++; - - // skip word - if (begStr == index) - while (index < size && !contain(str[index], allDel)) - index++; - - int endStr = index; - - // skip space delimiters - while (index < size && contain(str[index], spaceDel)) - index++; - - return String.copyValueOf(str, begStr, endStr - begStr); - } - - /** - * @see java.lang.Object#toString() - */ - public String toString() - { - int i = index; - String s = (String) nextElement(); - index = i; - return s; - } - } - - /** - * StringTokenizer constructor. - * @param spaceDelimiters the set of delimiters to be ignored - * @param delimiters the set of delimiters to be remained. - */ - public StringTokenizer(char[] spaceDelimiters, char[] delimiters) - { - super(); - - if (spaceDelimiters != null) - { - spaceDel = new char[spaceDelimiters.length]; - System.arraycopy(spaceDelimiters, 0, spaceDel, 0, spaceDelimiters.length); - sort(spaceDel); - } - else - spaceDel = null; - - if (delimiters != null) - { - del = new char[delimiters.length]; - System.arraycopy(delimiters, 0, del, 0, delimiters.length); - sort(del); - } - else - del = null; - - if (del != null && spaceDel != null) - { - allDel = new char[del.length + spaceDel.length]; - System.arraycopy(del, 0, allDel, 0, del.length); - System.arraycopy(spaceDel, 0, allDel, del.length, spaceDel.length); - } - else if (del != null) - allDel = del; - else - allDel = spaceDel; - - sort(allDel); - } - /** - * Parses string. - * @return java.util.Enumeration - * @param s java.lang.String - */ - public java.util.Enumeration parse(String s) - { - if (s == null) - throw new IllegalArgumentException("StringTokenizer : String cannot be NULL"); - - return new StringTokenizerEnumeration(s.toCharArray()); - } - - /** - * Binary search. - * @return boolean - * @param c char - */ - private static boolean contain(char c, char[] a) - { - if (a == null) - return false; - - int l = 0, r = a.length - 1, center; - while (l < r) - { - center = (l + r) / 2; - if (c > a[center]) - l = center + 1; - else - r = center; - } - - return a[l] == c; - } - /** - * Heap sort - * @param c char[] - */ - static private void sort(char[] c) - { - if (c != null) - { - int j, k; - char ci; - - // push heap - for (int i = 1; i < c.length; i++) - { - j = ((k = i) - 1) / 2; - ci = c[i]; - while (k > 0 && c[j] < ci) - { - c[k] = c[j]; - j = ((k = j) - 1) / 2; - } - c[k] = ci; - } - - // pop heap - for (int i = c.length - 1; i > 0; i--) - { - j = 2; - k = 0; - ci = c[0]; - while (j <= i) - { - c[k] = (c[j - 1] > c[j]) ? c[--j] : c[j]; - j = ((k = j) + 1) * 2; - } - c[k] = c[i]; - c[i] = ci; - } - } - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/TestUtils.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/TestUtils.java deleted file mode 100644 index b47c1d184..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/TestUtils.java +++ /dev/null @@ -1,192 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.util; - -import java.io.BufferedReader; -import java.io.InputStreamReader; - -import org.eclipse.wst.wsi.internal.core.ToolInfo; -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.common.AddStyleSheet; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Element; - -/** - * Test Utility class. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public final class TestUtils -{ - /** - * Format a style sheet declaration from the addStyleSheet element. - * @param element an Element object. - * @param addStyleSheet an addStyleSheet element. - * @param defaultHref default href. - */ - public static final void parseAddStyleSheet( - Element element, - AddStyleSheet addStyleSheet, - String defaultHref) - { - addStyleSheet.setHref( - XMLUtils.getAttributeValue(element, WSIConstants.ATTR_HREF, defaultHref)); - addStyleSheet.setType( - XMLUtils.getAttributeValue( - element, - WSIConstants.ATTR_TYPE, - WSIConstants.DEFAULT_XSL_TYPE)); - addStyleSheet.setTitle( - XMLUtils.getAttributeValue(element, WSIConstants.ATTR_TITLE)); - addStyleSheet.setMedia( - XMLUtils.getAttributeValue(element, WSIConstants.ATTR_MEDIA)); - addStyleSheet.setCharset( - XMLUtils.getAttributeValue(element, WSIConstants.ATTR_CHARSET)); - addStyleSheet.setAlternate( - XMLUtils.getAttributeValue(element, WSIConstants.ATTR_ALTERNATE)); - } - - /** - * Display tool name and copyright notice. - * @param toolInfo a ToolInfo object. - */ - public static void printToolInfo(ToolInfo toolInfo) - { - System.out.println( - "Conformance " - + toolInfo.getName() - + " Tool" - + ", Version: " - + toolInfo.getVersion() - + ", Release Date: " - + toolInfo.getReleaseDate()); - // System.out.println(WSIConstants.COPYRIGHT); - // System.out.println(" "); - } - - /** - * Get XML comment used in log and report file. - * @return XML comment used in log and report file. - */ - public static String getXMLComment() - { - String comment = null; - String readLine = null; - - try - { - // Add required comments (copyright, etc.) - BufferedReader bufferedReader = - new BufferedReader( - new InputStreamReader( - Utils.getInputStream(WSIConstants.COMMENTS_FILE))); - - // Initialize string to empty string - comment = ""; - - while (bufferedReader.ready()) - { - if ((readLine = bufferedReader.readLine()) != null) - comment += readLine + WSIConstants.LINE_SEPARATOR; - } - } - - catch (Exception e) - { - // Ignore exception and just return null - } - - return comment; - } - - /** - * Get schema location for XML schema. - * @return schema location for XML schema. - */ - public static String getXMLSchemaLocation() - { - return getSchemaLocation( - WSIProperties.PROP_XML_SCHEMA, - WSIProperties.DEF_XML_SCHEMA); - } - - /** - * Get SOAP schema location. - * @return SOAP schema location. - */ - public static String getSOAPSchemaLocation() - { - return getSchemaLocation( - WSIProperties.PROP_SOAP_SCHEMA, - WSIProperties.DEF_SOAP_SCHEMA); - } - - /** - * Get WSDL schema location. - * @return WSDL schema location. - */ - public static String getWSDLSchemaLocation() - { - return getSchemaLocation( - WSIProperties.PROP_WSDL_SCHEMA, - WSIProperties.DEF_WSDL_SCHEMA); - } - - /** - * Get WSDL SOAP schema location. - * @return WSDL SOAP schema location. - */ - public static String getWSDLSOAPSchemaLocation() - { - return getSchemaLocation( - WSIProperties.PROP_WSDL_SOAP_SCHEMA, - WSIProperties.DEF_WSDL_SOAP_SCHEMA); - } - /** - * Get WSDL schema location. - * @return WSDL schema location. - */ - private static String getSchemaLocation( - String propertyName, - String defaultValue) - { - //String schemaLocation = null; - - // Get the wsi.home system property - //String wsiHome = System.getProperty(WSIProperties.PROP_WSI_HOME); - //String fileLocation = WSIProperties.getProperty(propertyName, defaultValue); - // - // If the file location is specified in the wsi.properties file then build location - //if (fileLocation != null) - //{ - // If wsi.home is set, then use it - // if (wsiHome != null) - // { - // schemaLocation = wsiHome; - // } - // if (schemaLocation == null) - // { - // schemaLocation = fileLocation; - // } - // else - // { - // if (!schemaLocation.endsWith("/")) - // { - // schemaLocation += "/"; - // } - // - // schemaLocation += fileLocation; - // } - // } - return defaultValue; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/TypesRegistry.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/TypesRegistry.java deleted file mode 100644 index 832145f98..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/TypesRegistry.java +++ /dev/null @@ -1,581 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 2009 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.util; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.wsdl.Binding; -import javax.wsdl.BindingFault; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOperation; -import javax.wsdl.BindingOutput; -import javax.wsdl.Definition; -import javax.wsdl.Fault; -import javax.wsdl.Import; -import javax.wsdl.Input; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.Output; -import javax.wsdl.Part; -import javax.wsdl.Port; -import javax.wsdl.PortType; -import javax.wsdl.Service; -import javax.wsdl.Types; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.schema.Schema; -import javax.wsdl.extensions.soap.SOAPBinding; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPFault; -import javax.wsdl.extensions.soap.SOAPHeader; -import javax.wsdl.extensions.soap.SOAPHeaderFault; -import javax.wsdl.extensions.soap.SOAPOperation; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.validator.BaseValidator; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLVisitor; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - - -/** - * The class extracts XSD schema information from the given WSDL. - * - * @author Kulik - */ -public final class TypesRegistry implements WSITag, WSDLVisitor -{ - List schemaProcessedList = new ArrayList(); - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Part, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Part obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Service, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Service obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(Types, Object, - * WSDLTraversalContext) - */ - public void visit(Types obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(Operation, Object, - * WSDLTraversalContext) - */ - public void visit(Operation obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(Input, Object, - * WSDLTraversalContext) - */ - public void visit(Input obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(Output, Object, - * WSDLTraversalContext) - */ - public void visit(Output obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(Fault, Object, - * WSDLTraversalContext) - */ - public void visit(Fault obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(Binding, Object, - * WSDLTraversalContext) - */ - public void visit(Binding obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(BindingOperation, Object, - * WSDLTraversalContext) - */ - public void visit( - BindingOperation obj, - Object parent, - WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(BindingInput, Object, - * WSDLTraversalContext) - */ - public void visit(BindingInput obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(BindingOutput, Object, - * WSDLTraversalContext) - */ - public void visit(BindingOutput obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(BindingFault, Object, - * WSDLTraversalContext) - */ - public void visit(BindingFault obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(Element, Object, - * WSDLTraversalContext) - */ - public void visit(Element obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(Message, Object, - * WSDLTraversalContext) - */ - public void visit(Message obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(Port, Object, - * WSDLTraversalContext) - */ - public void visit(Port obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(PortType, Object, - * WSDLTraversalContext) - */ - public void visit(PortType obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(Definition, Object, - * WSDLTraversalContext) - */ - public void visit(Definition obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(ExtensibilityElement, - * Object, WSDLTraversalContext) - */ - public void visit( - ExtensibilityElement obj, - Object parent, - WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(SOAPBinding, Object, - * WSDLTraversalContext) - */ - public void visit(SOAPBinding obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(SOAPBody, Object, - * WSDLTraversalContext) - */ - public void visit(SOAPBody obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(SOAPHeader, Object, - * WSDLTraversalContext) - */ - public void visit(SOAPHeader obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(SOAPHeaderFault, Object, - * WSDLTraversalContext) - */ - public void visit( - SOAPHeaderFault obj, - Object parent, - WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(SOAPFault, Object, - * WSDLTraversalContext) - */ - public void visit(SOAPFault obj, Object parent, WSDLTraversalContext ctx) - { - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(SOAPOperation, Object, - * WSDLTraversalContext) - */ - public void visit(SOAPOperation obj, Object parent, WSDLTraversalContext ctx) - { - } - - private Map element2Type = new HashMap(); - private Set extendsArray = new HashSet(); - private Set usesWsdlArrayType = new HashSet(); - - protected BaseValidator baseValidator = null; - - /** - * Constructor creates the types registry. by the given WSDL definition - * object. - * - * @param def a WSDL definition. - * @param baseValidator a base validator. - */ - public TypesRegistry(Definition def, BaseValidator baseValidator) - { - this.baseValidator = baseValidator; - if (def == null) - throw new IllegalArgumentException("Definition can not be null"); - - WSDLTraversal traversal = new WSDLTraversal(); - //VisitorAdaptor.adapt(this); - traversal.setVisitor(this); - traversal.visitImport(true); - - processTypes(def.getTypes(), def.getDocumentBaseURI()); - traversal.traverse(def); - } - - /** - * Constructor creates the types registry by given WSDL types object and - * location context URI. - * @param types WSDL types object. - * @param context location context URI. - * @param baseValidator a base validator. - */ - public TypesRegistry( - Types types, - String context, - BaseValidator baseValidator) - { - this.baseValidator = baseValidator; - processTypes(types, context); - } - - /** - * The method returns type's qname by given element's qname. - * @param elementName a qualified element name. - * @return type's qname by given element's qname. - */ - public QName getType(QName elementName) - { - return (QName) element2Type.get(elementName); - } - - /** - * The method returns set of types which is array attribute. - * @return set of types which is array attribute. - */ - public Set getArrayTypes() - { - Set s = new HashSet(); - s.addAll((Collection) usesWsdlArrayType); - s.addAll((Collection) extendsArray); - return s; - } - - /** - * The method returns set of elements defined in types element. - * @return set of elements defined in types element. - */ - public Set getElementList() - { - return this.element2Type.keySet(); - } - - /** - * The method returns true if the given type declares wsdl:arrayType - * attribute within declaration. - * @param type a type. - * @return true if the given type declares wsdl:arrayType - * attribute within declaration. - */ - public boolean isUsesWSDLArrayType(QName type) - { - return usesWsdlArrayType.contains(type); - } - - /** - * The method returns true if given type extends soapenc:Array type. - * @param type a type. - * @return true if given type extends soapenc:Array type. - */ - public boolean isExtendsArray(QName type) - { - return extendsArray.contains(type); - } - - /* (non-Javadoc) - * @see org.wsi.wsdl.traversal.WSDLVisitor#visit(javax.wsdl.Import, java.lang.Object, org.wsi.wsdl.traversal.WSDLTraversalContext) - */ - public void visit(Import im, Object parent, WSDLTraversalContext ctx) - { - if (im.getDefinition() != null) - processWSDL(im.getDefinition()); - } - - /** - * Internal method processes WSDL definition. - * @param def a WSDL definition. - */ - private void processWSDL(Definition def) - { - if (def.getTypes() != null) - processTypes(def.getTypes(), def.getDocumentBaseURI()); - } - - /** - * Internal method processes WSDL types. - * @param types WSDL types. - * @param context a context. - */ - private void processTypes(Types types, String context) - { - if (types == null) - return; - List exts = types.getExtensibilityElements(); - if (exts != null) - { - Iterator it = exts.iterator(); - while (it.hasNext()) - { - ExtensibilityElement el = (ExtensibilityElement) it.next(); - if (el instanceof Schema) - searchForSchema( - ((Schema) el).getElement(), - context); - } - } - } - - /** - * Internal method searches XSD schema declaration and XSD import - * statements. - * @param n - * @param context - */ - private void searchForSchema(Node n, String context) - { - while (n != null) - { - // searches for xsd:import element - if (Node.ELEMENT_NODE == n.getNodeType()) - { - // if xsd:schema element is found -> process schema - if (XMLUtils.equals(n, ELEM_XSD_SCHEMA)) - processSchema(n, context, new ArrayList()); - } - n = n.getNextSibling(); - } - } - - /** - * Internal method loads XSD schema by using schema location and - * location context. - * @param importNode - * @param context - */ - private void loadSchema(Node importNode, String context, List processedSchemas) - { - Element im = (Element) importNode; - Attr schemaLocation = XMLUtils.getAttribute(im, ATTR_XSD_SCHEMALOCATION); - - // try to parse imported XSD - if (schemaLocation != null && schemaLocation.getValue() != null) - try - { - String urlString = XMLUtils.createURLString(schemaLocation.getValue(), context); - if (!schemaProcessedList.contains(urlString)) - { - // if any error or root element is not XSD schema -> error - Document schema = - baseValidator.parseXMLDocumentURL( - schemaLocation.getValue(), - context, - null); - schemaProcessedList.add(urlString); - if (XMLUtils.equals(schema.getDocumentElement(), ELEM_XSD_SCHEMA)) - processSchema( - schema.getDocumentElement(), - urlString, processedSchemas); - } - } - catch (Throwable t) - { - //t.printStackTrace(); - // nothing. it's not a schema - } - } - - /** - * Internal method processes XSD schema and retrieves types declaration from - * it. - * @param schema - * @param context - */ - private void processSchema(Node schema, String context, List processedSchemas) - { - if ((schema != null) && (!processedSchemas.contains(schema))) - { - processedSchemas.add(schema); - Attr a = XMLUtils.getAttribute((Element) schema, ATTR_XSD_TARGETNAMESPACE); - String targetNamespace = (a != null) ? a.getValue() : ""; - // iterate schema - Node n = schema.getFirstChild(); - // !! we suppose that xsd:import element is occured only within xsd:schema element - while (n != null) - { - if (Node.ELEMENT_NODE == n.getNodeType()) - { - if (XMLUtils.equals(n, ELEM_XSD_ELEMENT)) - { - Element el = (Element) n; - a = XMLUtils.getAttribute(el, ATTR_XSD_NAME); - QName element = - new QName(targetNamespace, (a != null) ? a.getValue() : ""); - - a = XMLUtils.getAttribute(el, ATTR_XSD_TYPE); - QName type = null; - if (a != null) - { - String t = a.getValue(); - // if type contains ':', it means that it contains qname - int i = t.indexOf(':'); - if (i != -1) - { - String prefix = t.substring(0, i); - String nsURI = XMLUtils.findNamespaceURI(n, prefix); - type = new QName(nsURI, t.substring(i + 1)); - } - else - type = new QName(targetNamespace, t); - } - else - { - // suppose that element directly contains type declaration - type = element; - checkType(n, type); - } - - element2Type.put(element, type); - } - else if (XMLUtils.equals(n, ELEM_XSD_IMPORT)) - loadSchema(n, context, processedSchemas); - else if (XMLUtils.equals(n, ELEM_XSD_INCLUDE)) - loadSchema(n, context, processedSchemas); - else if (XMLUtils.equals(n, ELEM_XSD_COMPLEXTYPE)) - { - Element el = (Element) n; - a = XMLUtils.getAttribute(el, ATTR_XSD_NAME); - QName type = - new QName(targetNamespace, (a != null) ? a.getValue() : ""); - checkType(n, type); - } - - } - - n = n.getNextSibling(); - } - } - } - - /** - * Internal method checks whether specified type has WSDL array type - * attribute in the XSD declaration. - * @param n - * @param name - */ - private void checkType(Node n, QName name) - { - while (n != null) - { - if (Node.ELEMENT_NODE == n.getNodeType()) - { - // check such sentence - // xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="tns:MyArray2Type[]"/> - if (XMLUtils.equals(n, ELEM_XSD_ATTRIBUTE)) - { - Attr a = XMLUtils.getAttribute((Element) n, ATTR_WSDL_ARRAYTYPE); - if (a != null) - usesWsdlArrayType.add(name); - } - - // retrieve base attribute may be from restriction or extension - Attr a = XMLUtils.getAttribute((Element) n, ATTR_XSD_BASE); - if (a != null) - { - String base = a.getValue(); - int i = base.indexOf(":"); - if (i != -1) - { - String prefix = base.substring(0, i); - String local = base.substring(i + 1); - String namespace = XMLUtils.findNamespaceURI(n, prefix); - if (SOAPENC_ARRAY.equals(new QName(namespace, local))) - extendsArray.add(name); - } - } - checkType(n.getFirstChild(), name); - } - n = n.getNextSibling(); - } - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/UDDIUtils.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/UDDIUtils.java deleted file mode 100644 index e92e065d8..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/UDDIUtils.java +++ /dev/null @@ -1,543 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.util; - -import java.util.Hashtable; -import java.util.Iterator; -import java.util.Vector; - -import javax.wsdl.Binding; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.wsdl.WSDLDocument; -import org.uddi4j.UDDIException; -import org.uddi4j.client.UDDIProxy; -import org.uddi4j.datatype.binding.BindingTemplate; -import org.uddi4j.datatype.binding.TModelInstanceInfo; -import org.uddi4j.datatype.business.BusinessEntity; -import org.uddi4j.datatype.service.BusinessService; -import org.uddi4j.datatype.tmodel.TModel; -import org.uddi4j.response.BusinessDetail; -import org.uddi4j.response.ServiceDetail; -import org.uddi4j.response.TModelDetail; -import org.uddi4j.response.TModelInfo; -import org.uddi4j.response.TModelList; -import org.uddi4j.transport.TransportException; -import org.uddi4j.util.CategoryBag; -import org.uddi4j.util.FindQualifier; -import org.uddi4j.util.FindQualifiers; -import org.uddi4j.util.KeyedReference; - -/** - * This class provide some service functions used by UDDIValidator. - * - * @version 1.0.1 - * @author Peter Brittenham - */ -public final class UDDIUtils -{ - static public final FindQualifiers EXACT_NAME_MATCH_QUALIFIER; - static { - Vector vector = new Vector(); - EXACT_NAME_MATCH_QUALIFIER = new FindQualifiers(); - vector.add(new FindQualifier(FindQualifier.exactNameMatch)); - vector.add(new FindQualifier(FindQualifier.sortByNameAsc)); - EXACT_NAME_MATCH_QUALIFIER.setFindQualifierVector(vector); - } - - static final String WS_I_CONFORMANCE_TMODEL_NAME = - "ws-i-org:conformsTo:2002_12"; - - static private Hashtable wsiConformanceTable = new Hashtable(); - - /** - * Gets a business service by key. - * @param proxy a UDDI proxy. - * @param key a key to a business service. - * @return a business service specified by the given key. - * @throws TransportException if error originating within the SOAP transport. - * @throws UDDIException if the return value of a UDDI API cannot indicate an error condition. - */ - public static BusinessService getBusinessServiceByKey( - UDDIProxy proxy, - String key) - throws TransportException, UDDIException - { - BusinessService result = null; - - ServiceDetail sd = proxy.get_serviceDetail(key); - - if (sd != null) - { - Vector v = sd.getBusinessServiceVector(); - - if (v != null && v.size() > 0) - { - result = (BusinessService) v.firstElement(); - } - } - - return result; - } - - /** - * Gets business entity by key. - * @param proxy a UDDI proxy. - * @param key a key to a business entiy. - * @return a business entity specified by the given key. - * @throws TransportException if error originating within the SOAP transport. - * @throws UDDIException if the return value of a UDDI API cannot indicate - * an error condition. - */ - public static BusinessEntity getBusinessByKey(UDDIProxy proxy, String key) - throws TransportException, UDDIException - { - BusinessEntity result = null; - - BusinessDetail bd = proxy.get_businessDetail(key); - - if (bd != null) - { - Vector v = bd.getBusinessEntityVector(); - - if (v != null && v.size() > 0) - { - result = (BusinessEntity) v.firstElement(); - } - } - - return result; - } - - /** - * Gets a tModel by key. - * @param proxy a UDDI proxy. - * @param key a key to a tModel. - * @return a tModel specified by the given key. - * @throws TransportException if error originating within the SOAP transport. - * @throws UDDIException if the return value of a UDDI API cannot indicate - * an error condition. - */ - public static TModel getTModelByKey(UDDIProxy proxy, String key) - { - TModel result = null; - - try - { - TModelDetail bd = proxy.get_tModelDetail(key); - - if (bd != null) - { - Vector v = bd.getTModelVector(); - - if (v != null && v.size() > 0) - { - result = (TModel) v.firstElement(); - } - } - } - catch (Throwable e) - { - } - - return result; - } - - /** - * Gets key of the WSI Conformance tModel. - * @param proxy a UDDI proxy. - * @return the key of the WSI Conformance tModel. - */ - public static String getWSIConformanceTModelKey(UDDIProxy proxy) - { - if (proxy == null) - throw new IllegalArgumentException("UDDI proxy cannot be null."); - - String result = null; - - if (wsiConformanceTable.containsKey(proxy)) - { - result = wsiConformanceTable.get(proxy).toString(); - } - else - { - result = getTModelKeyByName(proxy, WS_I_CONFORMANCE_TMODEL_NAME); - - if (result == null) - { - throw new IllegalStateException("WS-I conformance taxonomy tModel was not found"); - } - - wsiConformanceTable.put(proxy, result); - } - - return result; - } - - /** - * Gets a tModel key by tModel name. - * @param proxy a UDDI proxy. - * @param name a tModel name. - * @return a tModel key specified by the given tModel name. - */ - public static String getTModelKeyByName(UDDIProxy proxy, String name) - { - String result = null; - try - { - TModelList list = - proxy.find_tModel(name, null, null, EXACT_NAME_MATCH_QUALIFIER, 1); - TModelInfo info = - (TModelInfo) list.getTModelInfos().getTModelInfoVector().firstElement(); - result = info.getTModelKey(); - } - catch (Throwable e) - { - } - - return result; - } - - /** - * Get string representation of bindingTemplate. - * @param bindingTemplate a BindingTemplate object. - * @return a string representation of bindingTemplate. - */ - public static String bindingTemplateToString(BindingTemplate bindingTemplate) - { - String returnString = ""; - - if (bindingTemplate == null) - returnString = "null"; - - else - { - returnString = - "accessPoint: " - + (bindingTemplate.getAccessPoint() == null - ? "null" - : bindingTemplate.getAccessPoint().getText()); - - if (bindingTemplate.getTModelInstanceDetails() == null - || bindingTemplate - .getTModelInstanceDetails() - .getTModelInstanceInfoVector() - == null) - { - returnString += ", [no tModel reference]"; - } - - else - { - Iterator iterator = - bindingTemplate - .getTModelInstanceDetails() - .getTModelInstanceInfoVector() - .iterator(); - - int infoCount = 1; - TModelInstanceInfo info; - while (iterator.hasNext()) - { - info = (TModelInstanceInfo) iterator.next(); - returnString += ", [" - + infoCount++ - + "] tModelKey: " - + info.getTModelKey(); - } - } - } - - return returnString; - } - - /** - * Get string representation of tModel. - * @param tModel a TModel object. - * @return a string representation of tModel. - */ - public static String tModelToString(TModel tModel) - { - String returnString = ""; - - if (tModel == null) - returnString = "null"; - - else - { - returnString = - "name: " - + tModel.getNameString() - + ", categoryBag: " - + (tModel.getCategoryBag() == null - ? "null" - : categoryBagToString(tModel.getCategoryBag())) - + ", overviewURL: " - + (tModel.getOverviewDoc() == null - ? "null" - : tModel.getOverviewDoc().getOverviewURLString()); - } - - return returnString; - } - - /** - * Get string representation of categoryBag. - * @param categoryBag a CategoryBag object. - * @return a tring representation of categoryBag. - */ - public static String categoryBagToString(CategoryBag categoryBag) - { - String returnString = ""; - - if (categoryBag == null) - { - returnString += "null"; - } - - else - { - returnString += "KeyedReferenceList: "; - - Vector krList = null; - if ((krList = categoryBag.getKeyedReferenceVector()) == null) - { - returnString += "null"; - } - - else if (krList.size() == 0) - { - returnString += "empty"; - } - - else - { - KeyedReference kr = null; - Iterator iterator = krList.iterator(); - while (iterator.hasNext()) - { - kr = (KeyedReference) iterator.next(); - returnString += "tModelKey: " - + kr.getTModelKey() - + ", keyName: " - + kr.getKeyName() - + ", keyValue: " - + kr.getKeyValue(); - } - } - } - - return returnString; - } - - /** - * Find the wsdlSpec tModel associated with a binding. - */ - public static TModel findTModel( - UDDIProxy uddiProxy, - BindingTemplate bindingTemplate, - boolean verboseOption) - throws WSIException - { - TModel tModel = null; - - // Get the list of tModel references associated with this bindingTemplate - Iterator iterator = - bindingTemplate - .getTModelInstanceDetails() - .getTModelInstanceInfoVector() - .iterator(); - - // Process each tModel reference - Vector tModelKeyList = new Vector(); - while (iterator.hasNext()) - { - // Get tModelInstanceInfo - TModelInstanceInfo tModelInstanceInfo = - (TModelInstanceInfo) iterator.next(); - - // Add key to list - tModelKeyList.add(tModelInstanceInfo.getTModelKey()); - } - - // Get the tModels associated with the bindingTemplate - if (tModelKeyList.size() > 0) - { - try - { - // Get the tModel details - TModelDetail tModelDetail = uddiProxy.get_tModelDetail(tModelKeyList); - - // Get the list of tModels - Iterator tModelIterator = tModelDetail.getTModelVector().iterator(); - - //boolean tModelFound = false; - TModel nextTModel = null; - - // Go through the list of tModels - while ((tModelIterator.hasNext()) && (tModel == null)) - { - // Get next tModel in list - nextTModel = (TModel) tModelIterator.next(); - - if (verboseOption) - { - System.err.println( - " TModel referenced from bindingTemplate - " - + UDDIUtils.tModelToString(nextTModel)); - } - - // If this is a wsdlSpec tModel, then this is the tModel we want - if (isWsdlSpec(nextTModel)) - tModel = nextTModel; - } - } - - catch (Exception e) - { - // Throw WSIException - throw new WSIException("Could not get tModel details.", e); - } - } - - else - { - // Throw exception - //throw new WSIException("UDDI bindingTemplate did not contain any tModel references."); - } - - return tModel; - } - - /** - * Determine if this is a wsdlSpec tModel. - */ - public static boolean isWsdlSpec(TModel tModel) - { - boolean tModelFound = false; - CategoryBag categoryBag = null; - Iterator categoryBagIterator = null; - - // Determine if the catetgoryBag contains wsdlSpec - if ((categoryBag = tModel.getCategoryBag()) != null) - { - // Get the list of keyed references - categoryBagIterator = categoryBag.getKeyedReferenceVector().iterator(); - - KeyedReference keyedReference = null; - - // Go through the list of keyed references - while (categoryBagIterator.hasNext() && !(tModelFound)) - { - // Get next keyed reference - keyedReference = (KeyedReference) categoryBagIterator.next(); - - // If this is a types taxonomy tModel and the value is wsdlSpec, then this is the tModel we want - // REMOVE: It is not necessary to check the key name - //if (keyedReference.getTModelKey().equalsIgnoreCase(TModel.TYPES_TMODEL_KEY) && - // "wsdlSpec".equals(keyedReference.getKeyValue()) && - // ("types".equals(keyedReference.getKeyName()) || - // "uddi-org:types".equals(keyedReference.getKeyName()))) { - // tModelFound = true; - //} - if (keyedReference - .getTModelKey() - .equalsIgnoreCase(TModel.TYPES_TMODEL_KEY) - && "wsdlSpec".equals(keyedReference.getKeyValue())) - { - tModelFound = true; - } - } - } - - return tModelFound; - } - /** - * Get an OverviewURL from tModel. - */ - public static String getOverviewURL(TModel tModel) - { - if (tModel != null - && tModel.getOverviewDoc() != null - && tModel.getOverviewDoc().getOverviewURL() != null) - { - return tModel.getOverviewDoc().getOverviewURL().getText(); - } - return null; - } - - - /** - * Get WSDL document. - */ - public static String getWSDLLocation(String wsdlLocation) - { - int index; - - // Check if the overviewURL contains a fragment identifier - if ((index = wsdlLocation.indexOf("#")) > -1) - { - wsdlLocation = wsdlLocation.substring(0, index); - } - return wsdlLocation; - } - /** - * Get WSDL binding from the overviewURL in the tModel. - */ - public static Binding getBinding(String overviewURL, WSDLDocument wsdlDocument) - { - int index; - int nameIndex; - - Binding[] bindings = wsdlDocument.getBindings(); - if (bindings == null || bindings.length == 0) - return null; - - if (overviewURL != null) - { - // Check if the overviewURL contains a fragment identifier - if ((index = overviewURL.indexOf("#")) > -1) - { - // TEMP: Need to use a real XPath evaluator like Xalan - String nameAttribute = "@name="; - - // Locate name reference - if ((nameIndex = - overviewURL.substring(index + 1).indexOf(nameAttribute)) - > -1) - { - // Get the next character which should be a quote - int firstQuoteIndex = index + 1 + nameIndex + nameAttribute.length(); - String quote = - overviewURL.substring(firstQuoteIndex, firstQuoteIndex + 1); - - // Get the part of the URL which should contain the binding name - String urlPart = overviewURL.substring(firstQuoteIndex + 1); - - // Find the next quote - int nextQuoteIndex; - if ((nextQuoteIndex = urlPart.indexOf(quote)) > -1) - { - String bindingName = urlPart.substring(0, nextQuoteIndex); - //look for binding with the specified name - for (int i = 0; i < bindings.length; i++) - { - if (bindingName.equals(bindings[i].getQName().getLocalPart())) - return bindings[i]; - } - } - } - } - } - - return bindings[0]; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/Utils.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/Utils.java deleted file mode 100644 index 0d11650d2..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/Utils.java +++ /dev/null @@ -1,1447 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 2002, 2008 IBM Corporation, Beacon Information Technology Inc. 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 - Initial API and implementation - * BeaconIT - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.util; - -import java.io.BufferedInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.io.UnsupportedEncodingException; -import java.net.ConnectException; -import java.net.InetAddress; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.ResourceBundle; -import java.util.Vector; - -import org.apache.commons.codec.binary.Base64; -import org.eclipse.wst.wsi.internal.WSITestToolsPlugin; -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.analyzer.config.AnalyzerConfig; -import org.eclipse.wst.wsi.internal.core.log.MimePart; -import org.eclipse.wst.wsi.internal.core.log.MimeParts; -import org.eclipse.wst.wsi.internal.core.log.impl.MimePartImpl; -import org.eclipse.wst.wsi.internal.core.log.impl.MimePartsImpl; -import org.eclipse.wst.wsi.internal.core.profile.ProfileAssertions; -import org.eclipse.wst.wsi.internal.core.report.Reporter; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; - -import com.ibm.icu.text.SimpleDateFormat; -import com.ibm.icu.util.StringTokenizer; -import com.ibm.icu.util.TimeZone; - -/** - * General set of utilities. - */ -public final class Utils -{ - public static final byte CR = (byte) '\r'; - public static final byte LF = (byte) '\n'; - - - private static Map validProfileTADVersions; - - /** - * Common timestamp format. - */ - // public static final SimpleDateFormat timestampFormat = new SimpleDateFormat ("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); - public static final SimpleDateFormat timestampFormat = - new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS"); - - /** - * Basic date format. - */ - public static final SimpleDateFormat dateFormat = - new SimpleDateFormat("yyyy-MM-dd"); - - /** - * Wrapper method for error logging; - * for now it just goes to stderr. - * @param inError an error message. - */ - public final static void logError(String inError) - { - System.err.println("Error: " + inError); - } - - /** - * Get exception information as a string. - * @param throwable a Throwable object. - * @return exception information as a string. - */ - public final static String getExceptionDetails(Throwable throwable) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - pw.println("Exception: "); - throwable.printStackTrace(pw); - - return sw.toString(); - } - - /** - * Get current date and time as a timestamp. - * @return urrent date and time as a timestamp. - */ - public static String getTimestamp() - { - // Use GMT timezone - //timestampFormat.setTimeZone(TimeZone.getTimeZone("GMT")); - timestampFormat.setTimeZone(TimeZone.getDefault()); - - // Return timestamp - return timestampFormat.format(new Date()); - } - - /** - * Get current date for default time zone. - * @return current date for default time zone. - */ - public static String getDate() - { - // Use GMT timezone - dateFormat.setTimeZone(TimeZone.getDefault()); - - // Return date - return dateFormat.format(new Date()); - } - - /** - * Get HTTP status code. - * @param httpHeaders HTTP headers. - * @return HTTP status code. - * @throws WSIException if the status code in http headers was not found. - */ - public static String getHTTPStatusCode(String httpHeaders) - throws WSIException - { - String statusCode = null; - - if (httpHeaders.startsWith("HTTP")) - { - // Get location of status code - int index = httpHeaders.indexOf(" "); - int index2 = httpHeaders.indexOf(" ", index + 1); - - if ((index == -1) || (index2 == -1)) - { - throw new WSIException( - "Could not find status code in http headers: [" + httpHeaders + "]."); - } - - else - { - statusCode = httpHeaders.substring(index + 1, index2); - } - } - - else - { - throw new WSIException( - "Could not find status code in http headers: [" + httpHeaders + "]."); - } - - // Return status code - return statusCode; - } - - /** - * Get HTTP headers from a full message. - * @param fullMessage a message. - * @return HTTP headers from a full message. - */ - public static String getHTTPHeaders(String fullMessage) - { - //String httpHeaders = null; - - // Try looking for the double newline - int index = fullMessage.indexOf("\r\n\r\n"); - if (index != -1) - { - index += 4; - } - else - { - // check for case "\r\r...\r\n\r\r...\n" - // Note the index that is returned points to the first character - // immediatedly following the first occurence of the CRLFCRLF. - index = getFirstCRLFCRLF(fullMessage); - if (index == -1) - { - logError( - "Unable to parse HTTP message to find headers. Full message: " - + fullMessage); - return "x-WSI-Test-Tool-Error: Couldn't find headers. Full message: [" - + fullMessage - + "]."; - } - } - - // Return HTTP headers - return fullMessage.substring(0, index); - } - - /** - * Get SOAP message from a full message. - * @param fullMessage a message. - * @return SOAP message from a full message. - */ - public static String getContent(String fullMessage) - { - String message = ""; - - // Find start of message - int index = fullMessage.indexOf("\r\n\r\n"); - if (index != -1) - { - index += 4; - } - else - { - // check for case "\r\r...\r\n\r\r...\n" - // Note the index that is returned points to the first character - // immediatedly following the first occurence of the CRLFCRLF. - index = getFirstCRLFCRLF(fullMessage); - } - - if (index < 0) - { - // If we couldn't find the end of the HTTP headers or the start of the message, then show error - logError( - "Unable to parse message to get content. Full message: " - + fullMessage); - message = - "x-WSI-Test-Tool-Error: Couldn't find message content. Full message: [" - + fullMessage - + "]."; - } - // If the index is greater than the length, then there is no message content - else if (index >= fullMessage.length()) - { - message = ""; - } - - // Else get the message content - else - { - message = fullMessage.substring(index); - } - - // Return SOAP message - return message; - } - - /** - * Get HTTP headers from a full message. - * @param fullMessage a message. - * @return HTTP headers from a full message. - */ - public static byte[] getHTTPHeaders(byte[] fullMessage) - { - //String httpHeaders = null; - int index = getFirstCRLFCRLF(fullMessage, 0); - if (index == -1) - { - logError( - "Unable to parse HTTP message to find headers. Full message: " - + fullMessage); - return ("x-WSI-Test-Tool-Error: Couldn't find headers. Full message: [" - + fullMessage + "].").getBytes(); - } - - // Return HTTP headers - byte[] b = new byte[index]; - System.arraycopy(fullMessage, 0, b, 0, index); - - return b; - } - - /** - * Get HTTP headers from a full message. - * @param fullMessage a message. - * @return HTTP headers from a full message. - */ - public static String getHTTPHeadersAsString(byte[] fullMessage, String encoding) - { - //String httpHeaders = null; - int index = getFirstCRLFCRLF(fullMessage, 0); - if (index == -1) - { - logError( - "Unable to parse HTTP message to find headers. Full message: " - + fullMessage); - return "x-WSI-Test-Tool-Error: Couldn't find headers. Full message: [" - + fullMessage + "]."; - } - - // Return HTTP headers - try - { - return new String(fullMessage, 0, index, encoding); - } - catch (UnsupportedEncodingException e) - { - logError( - "Unsupported Encoding: " + encoding + ". Full message: " - + fullMessage); - return "x-WSI-Test-Tool-Error: Unsupported Encoding \"" + encoding + "\". Full message: [" - + fullMessage + "]."; - } - } - - /** - * Get SOAP message from a full message. - * @param fullMessage a message. - * @return SOAP message from a full message. - */ - public static String getContentAsString(byte[] message) - { - String content = ""; - //String httpHeaders = null; - int index = getFirstCRLFCRLF(message, 0); - - // If we couldn't find the end of the HTTP headers or the start of the message, then show error - if (index < 0) - { - logError( - "Unable to parse message to get content. Full message: " - + message); - content = - "x-WSI-Test-Tool-Error: Couldn't find message content. Full message: [" - + message.toString() - + "]."; - } - - // Else get the message content - else if (index < message.length) - { - try - { - content = new String(message, index, message.length - index); - } - catch (Exception e) - { - logError( - "Unable to parse message to get content. Full message: " - + message); - content = - "x-WSI-Test-Tool-Error: Couldn't find message content. Full message: [" - + message.toString() - + "]."; - } - } - - // Return SOAP message - return content; - } - - /** - * Get SOAP message from a full message. - * @param fullMessage a message. - * @return SOAP message from a full message. - */ - public static byte[] getContent(byte[] message) - { - byte[] content = new byte [0]; - - //String httpHeaders = null; - int index = getFirstCRLFCRLF(message, 0); - - // If we couldn't find the end of the HTTP headers or the start of the message, then show error - if (index < 0) - { - logError( - "Unable to parse message to get content. Full message: " - + message); - message = - ("x-WSI-Test-Tool-Error: Couldn't find message content. Full message: [" - + message.toString() - + "].").getBytes(); - } - - // If the index is greater than the length, then there is no message content - //else if (index >= fullMessage.length()) - //{ - // message = ""; - //} - - // Else get the message content - else if (index < message.length) - { - byte[] b = new byte[message.length - index]; - System.arraycopy(message, index, b, 0, message.length - index); - - content = b; - } - - // Return SOAP message - return content; - } - - - /** - * Returns the first location of a CRLF. - * - * @return int - */ - public static int getFirstCRLF(byte[] buffer, int index) - { - int size = buffer.length; - int i = index; - while (i < size - 1) { - if (buffer[i] == CR && buffer[i+1] == LF) - return i; - i++; - } - return -1; - } - - /** - * Returns the first location of a CRLF followed imediately by another CRLF. - * - * @return int - */ - public static int getFirstCRLFCRLF(byte[] buffer, int index) - { - int size = buffer.length; - int i = index; - while (i < size - 3) - { - if (buffer[i] == CR && buffer[i+1] == LF && buffer[i+2] == CR) - { - if (buffer[i+3] == LF) - { - return i+4; - } - else - { - int j = i + 3; - while (j < buffer.length && buffer[j] == CR) - { - j++; - } - if (j < buffer.length && buffer[j] == LF) - { - return j + 1; - } - } - } - i++; - } - return -1; - } - - /** - * Returns the first location of a CRLF followed imediately by another CRLF. - * - * @return int - */ - public static int getFirstCRLFCRLF(String buffer) - { - int index = buffer.indexOf("\r\n\r"); - if (index != -1) - { - int i = index +3; - while (i < buffer.length() && buffer.startsWith("\r", i)) - i++; - - if (i < buffer.length() && buffer.startsWith("\n", i)) - return i+1; - else - return getFirstCRLFCRLF(buffer.substring(index + 3)); - } - else - { - return -1; - } - } - - /** - * Returns the list of indices which marks the separation of parts. - */ - public static int[] getBoundaryIndices(byte[] message, String boundaryStr) - { - int[] indices = new int[256]; - int indicesIndex = 0; - try - { - byte[] boundary = ("\r\n--" + boundaryStr).getBytes("US-ASCII"); - - int index = 0; - int start = 0; - while (index != -1) - { - index = indexOf(message, boundary, start); - - if (index != -1) - { - start = index + boundary.length; - indices[indicesIndex] = index; - indicesIndex++; - } - } - int[] b = new int[indicesIndex]; - System.arraycopy(indices, 0, b, 0, indicesIndex); - indices = b; - } - catch (Exception e) - {} - return indices; - } - - /** - * Returns the index of the first occurrence of key in the buffer. - */ - public static int indexOf(byte[] buffer, byte[] key, int start) - { - int bufferLen = buffer.length; - int keyLen = key.length; - int i,j,k = 0; - - if (keyLen > bufferLen - start) - { - return -1; - } - - for (k = start + keyLen - 1; k < bufferLen; k++) - { - for (j = keyLen - 1, i = k; (j >= 0) && (buffer[i] == key[j]); j--) - { - i--; - } - - if (j == (-1)) { - return i + 1; - } - } - - return -1; - } - /** - * Get contents of a resource and return as a input stream. - * - * @param resourceName the name of the resource to get and return as - * an input stream. - * @return contents of a resource as an input stream. - * @throws IOException if the resource could not be located. - */ - public static InputStream getInputStream(String resourceName) - throws IOException - { - InputStream is = null; - - // If resource reference is a URL, then input stream from URL - try - { - // Try to create URL - URL urlResource = new URL(resourceName); - - // If successful, then get URL input stream - is = getInputStream(urlResource); - } - - // Else try to read resource directly - catch (MalformedURLException mue) - { - boolean bTryClassLoader = false; - - try - { - // Open file input stream - is = new BufferedInputStream(new FileInputStream(resourceName)); - } - catch (FileNotFoundException fnfe) - { - // Set try class loader flag - bTryClassLoader = true; - } - catch (SecurityException se) - { - // Set try class loader flag - bTryClassLoader = true; - } - catch (Exception e) - { - // DEBUG: - System.out.println("Exception in getInputStream :" + e.toString()); - } - - // If try class loader, then use it to get input stream - if (bTryClassLoader) - { - // Use class loader to load resource - is = ClassLoader.getSystemResourceAsStream(resourceName); - } - } - - // If the input stream is null, then throw FileNotFoundException - if (is == null) - { - //try this - is = - Thread.currentThread().getContextClassLoader().getResourceAsStream( - resourceName); - } - - // If the input stream is null, then throw FileNotFoundException - if (is == null) - { - //try this - URL aURL = - Thread.currentThread().getContextClassLoader().getResource( - resourceName); - if (aURL != null) - is = getInputStream(aURL); - } - - if (is == null) - // Throw execption - throw new FileNotFoundException( - "Could not locate resource file: " + resourceName); - - // Return input stream - return is; - } - - /** - * Get the input stream from a URL. - * @param urlFile the URL to get the input stream from. - * @return the input stream corresponding to the given URL. - * @throws IOException if attempt to open the file denoted by URL has failed. - * @throws ConnectException if trouble connecting to URL. - */ - public static InputStream getInputStream(URL urlFile) - throws IOException, ConnectException - { - InputStream is = null; - - // ADD: how are URLs that are password protected handled???? - - try - { - // Open file input stream - is = new BufferedInputStream(urlFile.openStream()); - } - - catch (ConnectException e) - { - // Re-throw this excpetion with additional information - throw new java.net.ConnectException( - "Could not connect to URL: " + urlFile.toExternalForm() + "."); - } - - // Return input stream - return is; - } - - /** - * Get contents of a resource and return as a input stream. - * @param fileLocation the location of the file. - * @return contents of a resource as a input stream. - */ - public static boolean fileExists(String fileLocation) - { - boolean fileExists = false; - - // If resource reference is a URL, then input stream from URL - try - { - // Try to create URL - URL url = new URL(fileLocation); - - // If successful, then try to open connection - url.openStream(); - fileExists = true; - } - - // Else try to read resource directly - catch (MalformedURLException mue) - { - try - { - File file = new File(fileLocation); - - fileExists = file.exists(); - } - - catch (Exception e2) - { - fileExists = false; - } - } - - catch (FileNotFoundException fnfe) - { - fileExists = false; - } - - catch (Exception e) - { - fileExists = false; - } - - // Return file exists indicator - return fileExists; - } - - /** - * Get local host name. - * @return the local host name. - */ - public static String getLocalHostName() - { - String sLocalHostName; - - try - { - // Get local host name - sLocalHostName = InetAddress.getLocalHost().getHostName(); - } - catch (Exception e) - { - // Set default local host name - sLocalHostName = "127.0.0.1"; - } - - // Return local host name - return sLocalHostName; - } - - /** - * Build a URL string from hostname, port and URN. - * - * @param hostname the hostname. - * @param port the port. - * @param urn the URN. - * @return formatted URL string. - */ - public static String formatURL(String hostname, String port, String urn) - { - // Build URN - String formatURN = urn; - - // If URN doesn't start with "/", then add it - if (!(formatURN.startsWith("/"))) - { - // Add "/" to beginning of the string - formatURN = "/" + urn; - } - - // Return URL string - return "http://" + hostname + ":" + port + formatURN; - } - - /** - * This method will replace all of the occurances of a string - * with a substitution string. - * - * @param sText String to udpate. - * @param sFind String to find. - * @param sReplace String to use for substitution. - * @return updated string. - */ - public static String replaceString( - String sText, - String sFind, - String sReplace) - { - int iPrevIndex = 0; - - int iFindLen = sFind.length(); - int iReplaceLen = sReplace.length(); - - String sUpdatedText = sText; - - // Replace all occurances of the find string - for (int iIndex = sUpdatedText.indexOf(sFind); - iIndex < (sUpdatedText.length() - 1) && iIndex != -1; - iIndex = sUpdatedText.indexOf(sFind, iPrevIndex + iReplaceLen)) - { - // Set updated text from the front portion + replacement text + back portion - sUpdatedText = - sUpdatedText.substring(0, iIndex) - + sReplace - + sUpdatedText.substring(iIndex + iFindLen); - - // Set the previous index field - iPrevIndex = iIndex; - } - - // Return updated text string - return sUpdatedText; - } - - /** - * Convert string to hex string. - * @param data a String object. - * @return hex string. - */ - public static String toHexString(String data) - { - char[] HEX_CHARS = - { - '0', - '1', - '2', - '3', - '4', - '5', - '6', - '7', - '8', - '9', - 'A', - 'B', - 'C', - 'D', - 'E', - 'F' }; - - // Get string as byte array - byte[] byteData = data.getBytes(); - - // Get length - int length = byteData.length; - - // Create Char buffer - char[] charBuffer = new char[length * 2]; - - int next; - for (int byteCnt = 0, charCnt = 0; byteCnt < length;) - { - next = byteData[byteCnt++]; - charBuffer[charCnt++] = HEX_CHARS[(next >>> 4) & 0x0F]; - charBuffer[charCnt++] = HEX_CHARS[next & 0x0F]; - } - - return new String(charBuffer); - } - - /** - * Convert byte buffer to hex string. - * @param data a byte array. - * @return hex string. - */ - public static String toHexString(byte[] byteData) - { - char[] HEX_CHARS = - { - '0', - '1', - '2', - '3', - '4', - '5', - '6', - '7', - '8', - '9', - 'A', - 'B', - 'C', - 'D', - 'E', - 'F' }; - - - // Get length - int length = byteData.length; - - // Create Char buffer - char[] charBuffer = new char[length * 2]; - - int next; - for (int byteCnt = 0, charCnt = 0; byteCnt < length;) - { - next = byteData[byteCnt++]; - charBuffer[charCnt++] = HEX_CHARS[(next >>> 4) & 0x0F]; - charBuffer[charCnt++] = HEX_CHARS[next & 0x0F]; - } - - return new String(charBuffer); - } - - // I18N: 2003.02.26 modified by K.Nakagome@BeaconIT - /** - * Get MIME charset from a HTTP headers. - * @param httpHeaders String of HTTP header. - * @return the MIME charset string. - * @author K.Nakagome@BeaconIT Japan SIG - */ - public static String getHTTPCharset(String httpHeaders) - { - String mimeCharset = null; - - mimeCharset = httpHeaders.toUpperCase(); - int[] index = { -1, -1, -1 }; - int indexS = mimeCharset.indexOf("CHARSET"); - int indexE = Integer.MAX_VALUE; - if (indexS < 17) - { - return ""; - } - indexS = mimeCharset.indexOf("=", indexS + 7); - if (indexS == -1) - { - return ""; - } - indexS++; - index[0] = mimeCharset.indexOf("'", indexS); - index[1] = mimeCharset.indexOf("\r\n", indexS); - index[2] = mimeCharset.indexOf("\"", indexS); - for (int i = 0; i < 3; i++) - { - if (index[i] != -1 & indexE > index[i]) - { - indexE = index[i]; - } - } - - if (indexE != Integer.MAX_VALUE) - { - mimeCharset = httpHeaders.substring(indexS, indexE); - mimeCharset.trim(); - } - else - { - mimeCharset = ""; - } - return mimeCharset; - } - - /** - * Checks to see if the message is a simple SOAP message or whether it is a SOAP messagwe with attachments. - */ - public static boolean isMultipartRelatedMessage(String httpHeaders) - { - boolean result = false; - try - { - // check header for mime version and boundary - String contentType = HTTPUtils.getHttpHeaderAttribute(httpHeaders, HTTPConstants.HEADER_CONTENT_TYPE); - if (contentType == null) - { - // there is no contentType, check if there is a boundary attribute - String boundary = Utils.getHttpHeaderSubAttribute(httpHeaders, HTTPConstants.HEADER_CONTENT_TYPE, "boundary"); - if ((boundary != null) && (!boundary.equals(""))) - result = true; - } - else - { - result = contentType.equalsIgnoreCase("multipart/related"); - } - } - catch (WSIException e) - { - result = false; - } - return result; - } - - public static String getHttpHeaderAttribute(String httpHeaders, String attributeName) - { String result = null; - try - { - result = HTTPUtils.getHttpHeaderAttribute(httpHeaders, attributeName); - } - catch (WSIException e) - { - result = null; - } - return result; - } - - public static String getHttpHeaderSubAttribute(String httpHeaders, String attributeName, String subAttributeName) - { String result = null; - try - { - result = HTTPUtils.getHttpHeaderSubAttribute(httpHeaders, attributeName, subAttributeName); - } - catch (WSIException e) - { - result = null; - } - return result; - } - - public static String getMimeHeaderAttribute(String mimeHeaders, String attributeName) - { String result = null; - try - { - result = MIMEUtils.getMimeHeaderAttribute(mimeHeaders, attributeName); - } - catch (WSIException e) - { - result = null; - } - return result; - } - - public static String getMimeHeaderSubAttribute(String mimeHeaders, String attributeName, String subAttributeName) - { String result = null; - try - { - result = MIMEUtils.getMimeHeaderSubAttribute(mimeHeaders, attributeName, subAttributeName); - } - catch (WSIException e) - { - result = null; - } - return result; - } - // I18N: 2003.02.26 modified by K.Nakagome@BeaconIT - /** - * Get XML encoding from a SOAP Messages. - * @param message SOAP Message String. - * @return character encoding of XML. - * @author K.Nakagome@BeaconIT Japan SIG - */ - public static String getXMLEncoding(String message) - { - String xmlDef = null; - - int indexS = message.indexOf("<?xml"); - int indexE = -1; - if (indexS != -1) - { - indexE = message.indexOf("?>", indexS); - if (indexE > indexS) - { - xmlDef = message.substring(indexS, indexE); - } - } - - if (xmlDef != null) - { - indexS = xmlDef.indexOf("encoding"); - if (indexS == -1) - { - xmlDef = ""; - } - else - { - xmlDef = xmlDef.substring(indexS + 8); - xmlDef = xmlDef.trim(); - } - } - else - { - return ""; - } - - if (xmlDef.length() > 3) - { - indexS = xmlDef.indexOf("="); - if (indexS == 0) - { - xmlDef = xmlDef.substring(1); - } - else - { - return ""; - } - } - - if (xmlDef.length() > 3) - { - String end = "\""; - indexS = xmlDef.indexOf(end); - if (indexS != 0) - { - indexS = xmlDef.indexOf((end = "'")); - } - if (indexS == 0) - { - indexE = xmlDef.indexOf(end, 3); - if (indexE != -1) - { - xmlDef = xmlDef.substring(1, indexE); - } - else - { - xmlDef = ""; - } - } - else - { - xmlDef = ""; - } - } - return xmlDef; - } - - // I18N: 2003.02.26 modified by K.Nakagome@BeaconIT - private static ResourceBundle javaEncodingResource = null; - private static final String JAVA_ENCODING_RESOURCE = - "org.wsi.test.util.JavaEncoding"; - private static final String JAVA_ENCODING_DEFAULT = "UTF-8"; - - // I18N: 2003.02.26 modified by K.Nakagome@BeaconIT - /** - * Get Java VM supported character encoding. - * - * @param mimeEncoding string of MIME(IANA) character encoding. - * @return string of character encoding supported by Java VM. - * @author K.Nakagome@BeaconIT Japan SIG - */ - public static String getJavaEncoding(String mimeEncoding) - { - if (mimeEncoding == null || mimeEncoding.length() == 0) - { - return JAVA_ENCODING_DEFAULT; - } - try - { - if (javaEncodingResource == null) - { - javaEncodingResource = ResourceBundle.getBundle(JAVA_ENCODING_RESOURCE); - } - return javaEncodingResource.getString(mimeEncoding); - } - catch (Throwable t) - { - return mimeEncoding; - } - } - - /** - * Convert an array to a Vector. - * - * @param array the array to be converted . - * @return converted Vector (null if array is null, empty if empty). - * @author Graham Turrell IBM - */ - public static Vector arrayToVector(Object[] array) - { - if (array == null) - return null; - Vector v = new Vector(array.length); - for (int i = 0; i < array.length; i++) - v.add(array[i]); - return v; - } - - /** - * Designates legal versions for the profile test assertion document - * @param name - the TAD name - * @param version - the legal version - */ - public static void registerValidProfileTADVersion(String name, String version) - { - if (validProfileTADVersions == null) - validProfileTADVersions = new HashMap(); - validProfileTADVersions.put(name, version); - } - - /** - * Checks to ensure that version of the profile test assertion - * document is supported in this version of the test tools. - * @param profileAssertions - a profile TAD. - * @return true if the version of the profile test assertion - * docuement is supported in this version of the test tools. - */ - public static boolean isValidProfileTADVersion(ProfileAssertions profileAssertions) - { - - String name = profileAssertions.getTADName(); - String version = profileAssertions.getTADVersion(); - - if (validProfileTADVersions == null) { - String versions[][] = WSITestToolsPlugin.getPlugin().getAllTADVersions(); - for (int i = 0; i < versions.length; i++) - registerValidProfileTADVersion(versions[i][0], versions[i][1]); - } - - if (validProfileTADVersions.containsKey(name)) - return checkVersionNumber((String) validProfileTADVersions.get(name), - version); - else - return false; - } - - /** - * Checks to ensure that version number of the actual profile test assertion - * document is supported in this version of the test tools. - * @param supportedVersion - supported version number of profile TAD. - * @param actualVersion - actual version number of profile TAD. - * @return true if the version number of the actual profile test assertion - * document is supported in this version of the test tools. - */ - private static boolean checkVersionNumber( - String supportedVersion, - String actualVersion) - { - boolean validVersion = true; - - try - { - StringTokenizer supportedVersionTokenizer = - new StringTokenizer(supportedVersion, "."); - StringTokenizer actualVersionTokenizer = - new StringTokenizer(actualVersion, "."); - - while (supportedVersionTokenizer.hasMoreTokens() && validVersion) - { - int supportedVersionToken = - Integer.parseInt(supportedVersionTokenizer.nextToken()); - if (actualVersionTokenizer.hasMoreTokens()) - { - int actualVersionToken = - Integer.parseInt(actualVersionTokenizer.nextToken()); - if (supportedVersionToken > actualVersionToken) break; - else validVersion = (supportedVersionToken >= actualVersionToken); - } - } - } - catch (Exception e) - { - validVersion = false; - } - return validVersion; - } - - /** - * Identifies the root part in the list using the "start" attribute. - * If the "start" attribute does not exist then the first part is designated the root. - */ - public static MimePart findRootPart(String httpHeaders, Collection parts) - { - MimePart root = null; - String start = Utils.getHttpHeaderSubAttribute(httpHeaders, HTTPConstants.HEADER_CONTENT_TYPE, "start"); - if (!parts.isEmpty()) - { - // default to the first part in the collection - root = (MimePart)parts.iterator().next(); - - if ((start != null) && (!start.equals(""))) - { - Iterator i = parts.iterator(); - boolean rootNotFound = true; - while (i.hasNext() && rootNotFound) - { - MimePart part = (MimePart)i.next(); - String headers = part.getHeaders(); - if (headers != null) - { - String contentId = Utils.getMimeHeaderAttribute(headers, MIMEConstants.HEADER_CONTENT_ID); - if (start.equals(contentId)) - { - root = part; - rootNotFound = false; - } - } - } - } - } - return root; - } - - /** - * Decodes the given encoded string. - */ - public static byte[] decodeBase64(String str) - { - try - { - Base64 decoder = new Base64(); - return decoder.decode(str.getBytes()); - } - catch (Exception e) - { - return new byte[0]; - } - } - - /** - * Encodes the given byte array. - */ - public static String encodeBase64(byte[] buffer) - { - Base64 encoder = new Base64(); - return new String(encoder.encode(buffer)); - } - - public static MimeParts parseMultipartRelatedMessage(String message, String httpHeaders, String encoding) - { - byte[] buffer = null; - try - { - buffer = message.getBytes(encoding); - } - catch (Exception e) - { - return null; - } - return parseMultipartRelatedMessage(buffer, httpHeaders, encoding); - } - public static MimeParts parseMultipartRelatedMessage(byte[] message, String httpHeaders, String encoding) - { - MimeParts mimeParts = new MimePartsImpl(); - String boundary = Utils.getHttpHeaderSubAttribute(httpHeaders, HTTPConstants.HEADER_CONTENT_TYPE, "boundary"); - ArrayList parts = new ArrayList(); - - if (boundary == null) - { - // assume it is a simple SOAP message - return null; - } - else - { - String start = Utils.getHttpHeaderSubAttribute(httpHeaders, HTTPConstants.HEADER_CONTENT_TYPE, "start"); - int[] indices = Utils.getBoundaryIndices(message, boundary); - boolean rootNotFound = true; - - for (int i= indices.length - 2; i>=0; i--) - { - try - { - MimePart part = new MimePartImpl(); - int index = Utils.getFirstCRLFCRLF(message, indices[i]); - if ((index > indices[i]) && (index < indices[i+1])) - { - // the boundary string & mime headers (include the trailing CRLF CRLF) - String str = new String(message, indices[i], (index - indices[i]), "US-ASCII"); - String delimiter = str.substring(0, str.indexOf("\r\n", 2) + 2); - - if (i == indices.length -2) - { - String endDelimiter = new String(message, indices[i + 1], message.length - indices[i + 1], "US-ASCII"); - int j = str.indexOf("\r\n", 2); - if (j != -1) - endDelimiter = str.substring(0, str.indexOf("\r\n", 2) + 2); - part.setBoundaryStrings(new String[]{delimiter, endDelimiter}); - } - else - part.setBoundaryStrings(new String[]{delimiter}); - - // the headers - String headers = str.substring(delimiter.length()); - if (headers.startsWith("\r\n")) - { - // no headers present - part.setHeaders(""); - } - else - { - part.setHeaders(headers); - } - - // the content - String contentId = Utils.getMimeHeaderAttribute(headers, MIMEConstants.HEADER_CONTENT_ID); - int size = indices[i+1] - (index); - byte[] content = new byte[size]; - System.arraycopy(message, index, content, 0, size); - - if ((rootNotFound && (i == 0)) || - ((start != null) && (!start.equals("")) && (start.equals(contentId)))) - { - // root part -- do not encode - part.setContent(new String(content, encoding)); - mimeParts.setRootPart(part); - } - else - { - String transferEncoding = Utils.getMimeHeaderAttribute(headers, MIMEConstants.HEADER_CONTENT_TRANSFER_ENCODING); - - if ((transferEncoding != null) && transferEncoding.equalsIgnoreCase("base64")) - part.setContent(new String(content, encoding)); - else - part.setContent(Utils.encodeBase64(content)); - } - parts.add(part); - } - } - catch (Exception e) - { - return null; - } - } - int size = parts.size(); - for (int i = size-1; i>=0; i--) - mimeParts.addPart((MimePart)parts.get(i)); - } - return mimeParts; - } - - public static String toXMLString(MimeParts mimeParts) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - // Add message content with attachments element - pw.print("<" + WSIConstants.ELEM_MESSAGE_CONTENT_WITH_ATTACHMENTS); - pw.print(">"); - - Collection partList = mimeParts.getParts(); - if (!partList.isEmpty()) - { - Iterator iMimeParts = partList.iterator(); - while (iMimeParts.hasNext()) - { - MimePart mimePart = (MimePart)iMimeParts.next(); - pw.print(mimePart.toXMLString("")); - } - } - - // Add end message element - pw.println("</" + WSIConstants.ELEM_MESSAGE_CONTENT_WITH_ATTACHMENTS + ">"); - // Return string - return sw.toString(); - } - - public static void main (String[] args) - { - try - { - FileInputStream inputStream = new FileInputStream("d:\\b.xml"); - int i = inputStream.available(); - byte[] buffer = new byte[i]; - inputStream.read(buffer); - String message = new String(buffer); - message = XMLUtils.xmlRemoveEscapedString(message); - String headers = Utils.getHTTPHeaders(message); - MimeParts parts = Utils.parseMultipartRelatedMessage(message, headers, Utils.JAVA_ENCODING_DEFAULT); - System.out.println(Utils.toXMLString(parts)); - } - catch (Exception e){} - } - - public static AnalyzerConfig getAnalyzerConfig(Reporter reporter) - { - AnalyzerConfig result = null; - if (reporter != null) - { - try - { - result = reporter.getReport().getReportContext().getAnalyzer().getAnalyzerConfig(); - } - catch (Exception e) - { - result = null; - } - } - return result; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/WSDLUtil.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/WSDLUtil.java deleted file mode 100644 index 50de6c311..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/WSDLUtil.java +++ /dev/null @@ -1,160 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.util; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.Definition; -import javax.wsdl.Import; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.Part; -import javax.wsdl.PortType; -import javax.wsdl.Service; -import javax.wsdl.extensions.soap.SOAPBody; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; - -/** - * The utility class to automate WSDL processing. - * - * @author Kulik - */ -public final class WSDLUtil -{ - - /** - * The method extracts list of parts for the given soapbind:body, - * binding operation, message, and style. - * - * @param op an operation. - * @param m a message. - * @param body a SOAP body. - * @param style an operation style. - * @return list of parts for the given soapbind:body, - * binding operation, message, and style. - */ - static public List getParts( - Operation op, - Message m, - SOAPBody body, - String style) - { - // if null, get parts from message - if (body.getParts() == null) - // if rpc style is used, try to use partOrder attribute from operation - if (WSIConstants.ATTRVAL_SOAP_BIND_STYLE_RPC.equals(style)) - return m.getOrderedParts(op.getParameterOrdering()); - else - return m.getOrderedParts(null); - else - // converse parts name to parts objects - return m.getOrderedParts(body.getParts()); - } - - /** - * The method iterates all imports from the given definition and expands all - * imported messages, service, portTypes, and bindings to the definition. - * - * @param def a WSDL definition. - */ - static public void expandDefinition(Definition def) - { - if (def != null && def.getImports() != null) - { - Iterator it = def.getImports().values().iterator(); - while (it.hasNext()) - { - List v = (List) it.next(); - if (v != null) - { - Iterator it2 = v.iterator(); - while (it2.hasNext()) - expandDefinition(def, (Import) it2.next(), new ArrayList()); - } - } - } - } - - /** - * The internal method to expand definition. - * @param target WSDL definition. - * @param im internal method. - */ - static private void expandDefinition(Definition target, Import im, List processedDefinitions) - { - if (im != null) - { - Definition d = im.getDefinition(); - if ((d != null) && (!processedDefinitions.contains(d))) - { - processedDefinitions.add(d); - - if (d.getMessages() != null) - { - Iterator it = d.getMessages().values().iterator(); - while (it.hasNext()) - target.addMessage((Message) it.next()); - } - if (d.getPortTypes() != null) - { - Iterator it = d.getPortTypes().values().iterator(); - while (it.hasNext()) - target.addPortType((PortType) it.next()); - } - if (d.getBindings() != null) - { - Iterator it = d.getBindings().values().iterator(); - while (it.hasNext()) - target.addBinding((Binding) it.next()); - } - if (d.getServices() != null) - { - Iterator it = d.getServices().values().iterator(); - while (it.hasNext()) - target.addService((Service) it.next()); - } - - Iterator it = d.getImports().values().iterator(); - while (it.hasNext()) - { - List v = (List) it.next(); - if (v != null) - { - Iterator it2 = v.iterator(); - while (it2.hasNext()) - expandDefinition(target, (Import) it2.next(), processedDefinitions); - } - } - } - } - } - - /** - * The method extracts part from the message. - * - * @param message a SOAP message. - * @param part a part name. - * @return part from the specified message. - */ - static public Part getPart(Message message, String part) - { - Part mesPart = null; - if (part == null) - mesPart = (Part) message.getOrderedParts(null).get(0); - else - mesPart = message.getPart(part); - return mesPart; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/WSIProperties.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/WSIProperties.java deleted file mode 100644 index ba1403362..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/WSIProperties.java +++ /dev/null @@ -1,347 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.util; - -import java.util.Enumeration; -import java.util.MissingResourceException; -import java.util.Properties; -import java.util.ResourceBundle; - -import org.uddi4j.transport.TransportFactory; - -/** - * The WSI properties can be defined in one of three locations. - * - * 1. The wsi.properties file which can be located anywhere in the classpath. - * 2. The system property settings. - * 3. The thread local property settings. - * - * The properties are set based on this ordering. For example, the properties - * from the wsi.properties file will be replaced by properties from the system - * property settings, which will be replaced by the thread local property settings. - * - * The properties that are used to define the implementation classes can be - * specified as system properties or as properties that are set in a thread - * local variable. System properties should be used if only one implementation - * is needed per JVM. If two or more implementations are needed per JVM, then - * the properties should be set using the thread local variable. - * - * @version 1.0.1 - * @author: Peter Brittenham - */ -public final class WSIProperties -{ - /** - * Properties object. - */ - protected static Properties wsiProperties = new Properties(); - - /** - * Default ProfileValidatorFactory class name. - */ - public static final String DEF_VALIDATOR_FACTORY = - "org.eclipse.wst.wsi.internal.core.profile.validator.impl.ProfileValidatorFactoryImpl"; - - /** - * Property that contains ProfileValidatorFactory class name. - */ - public static final String PROP_VALIDATOR_FACTORY = - "wsi.profile.validator.factory"; - - /** - * Default document factory class name. - */ - public static final String DEF_DOCUMENT_FACTORY = - "org.eclipse.wst.wsi.internal.core.document.impl.DocumentFactoryImpl"; - - /** - * Property that contains document factory class name. - */ - public static final String PROP_DOCUMENT_FACTORY = "wsi.document.factory"; - - /** - * Default JAXP XML parser document factory builder. - */ - public static final String DEF_JAXP_DOCUMENT_FACTORY = - "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"; - - /** - * Property that contains JAXP XML parser document factory builder. - */ - public static final String PROP_JAXP_DOCUMENT_FACTORY = - "javax.xml.parsers.DocumentBuilderFactory"; - - /** - * Default WSDL schema location. - */ - public static final String DEF_WSDL_SCHEMA = "http://schemas.xmlsoap.org/wsdl/"; - - /** - * Property that contains WSDL schema location. - */ - public static final String PROP_WSDL_SCHEMA = "wsi.analyzer.wsdl.schema"; - - /** - * Default WSDL SOAP schema location. - */ - public static final String DEF_WSDL_SOAP_SCHEMA = - "http://schemas.xmlsoap.org/wsdl/soap/"; - - /** - * Property that contains WSDL SOAP schema location. - */ - public static final String PROP_WSDL_SOAP_SCHEMA = - "wsi.analyzer.wsdlsoap.schema"; - - /** - * Default WSDL MIME schema location. - */ - public static final String DEF_WSDL_MIME_SCHEMA = - "http://schemas.xmlsoap.org/wsdl/mime/"; - - /** - * Property that contains WSDL SOAP schema location. - */ - public static final String PROP_WSDL_MIME_SCHEMA = - "wsi.analyzer.wsdlmime.schema"; - - /** - * Default SOAP schema location. - */ - public static final String DEF_SOAP_SCHEMA = - "http://schemas.xmlsoap.org/soap/envelope/"; - - /** - * Property that contains SOAP schema location. - */ - public static final String PROP_SOAP_SCHEMA = "wsi.analyzer.soap.schema"; - - /** - * Default SOAP schema location. - */ - public static final String DEF_XML_SCHEMA = "http://www.w3.org/2001/XMLSchema.xsd"; - - /** - * Property that contains SOAP schema location. - */ - public static final String PROP_XML_SCHEMA = "wsi.analyzer.xmlschema.schema"; - - /** - * Property which contains WSI_HOME value. - */ - public static final String PROP_WSI_HOME = "wsi.home"; - - /** - * Property file name. - */ - protected static final String PROP_FILENAME = "org.eclipse.wst.wsi.internal.core.util.wsi"; - - /** - * Thread local variable. - */ - private static ThreadLocal threadLocal = new ThreadLocal(); - - // Load profiles file - static { - loadPropertiesFile(); - } - - /** - * Load properties from wsi.properties file. - */ - private static void loadPropertiesFile() - { - try - { - // Try to load properties from wsi.properties - //InputStream is = Utils.getInputStream(PROP_FILENAME); - - // Load properties from file - //wsiPropertiesFile.load(is); - - ResourceBundle resourceBundle = ResourceBundle.getBundle(PROP_FILENAME); - - String nextKey; - Enumeration enumeration = resourceBundle.getKeys(); - while (enumeration.hasMoreElements()) - { - nextKey = (String) enumeration.nextElement(); - wsiProperties.put(nextKey, resourceBundle.getString(nextKey)); - } - } - - catch (MissingResourceException mre) - { - // DEBUG: - System.err.println( - "WARNING: Could not read " - + PROP_FILENAME - + ". " - + "Verify that it is in the CLASSPATH."); - - // Set up default values - wsiProperties.put(PROP_VALIDATOR_FACTORY, DEF_VALIDATOR_FACTORY); - wsiProperties.put(PROP_DOCUMENT_FACTORY, DEF_DOCUMENT_FACTORY); - wsiProperties.put(PROP_JAXP_DOCUMENT_FACTORY, DEF_JAXP_DOCUMENT_FACTORY); - wsiProperties.put( - TransportFactory.PROPERTY_NAME, - "org.uddi4j.transport.ApacheAxisTransport"); - } - } - - /** - * Do not allow this object to be instantiated. - */ - private WSIProperties() - { - } - - /** - * Get properties that were set for this thread only. - * @return the properties that were set for this thread only. - * - * @see #setThreadLocalProperties - */ - public static Properties getThreadLocalProperties() - { - // Return properties - return (Properties) threadLocal.get(); - } - - /** - * Set properties for this thread only. - * @param props a Properties object. - * - * @see #getThreadLocalProperties - */ - public static void setThreadLocalProperties(Properties props) - { - // Save the properties as thread local variables - threadLocal.set(props); - } - - /** - * Get the property value given the property name. - * @param propertyName a property name. - * @return the corresponding property value. If not found return null. - */ - public static String getProperty(String propertyName) - { - String propertyValue = null; - Properties threadLocalProps = null; - - // 1. Look in thread local properties first - if ((threadLocalProps = getThreadLocalProperties()) != null) - { - propertyValue = threadLocalProps.getProperty(propertyName); - } - - // 2. Next look in system properties - if (propertyValue == null) - { - propertyValue = System.getProperty(propertyName); - } - - // 3. Last look in the properties file - if (propertyValue == null) - { - propertyValue = wsiProperties.getProperty(propertyName); - } - - // Return property value - return propertyValue; - } - - /** - * Get the property value given the property name. - * @param propertyName a property name. - * @param defaultValue a default value for the property. - * @return the corresponding property value. If not found return the default value. - */ - public static String getProperty(String propertyName, String defaultValue) - { - String propertyValue = null; - - // If the propertyValue was not found, then return default value - if ((propertyValue = getProperty(propertyName)) == null) - { - propertyValue = defaultValue; - } - - // Return property value - return propertyValue; - } - - /** - * This method is used to unit test this class. - * @param args the arguments for main. - */ - public static void main(String[] args) - { - try - { - // Set property for this thread - Properties props = new Properties(); - props.setProperty(PROP_VALIDATOR_FACTORY, "main"); - WSIProperties.setThreadLocalProperties(props); - - // Start four threads to verify that the multithreaded use of tread local vars works - for (int i = 0; i < 5; i++) - { - // Create new thread - (new Thread(new ThreadTest("test" + i))).start(); - - try - { - // Sleep - Thread.sleep(200); - - // Display properties, which should be main - System.out.println( - "PROP_VALIDATOR_FACTORY: " - + WSIProperties.getProperty(PROP_VALIDATOR_FACTORY)); - } - - catch (Exception e) - { - } - } - } - - catch (Exception e) - { - // e.printStackTrace(); - } - } - - /** - * Inner class used for unit test. - */ - static private class ThreadTest extends Thread - { - String name; - - ThreadTest(String name) - { - this.name = name; - } - - public void run() - { - Properties props = new Properties(); - props.setProperty(PROP_VALIDATOR_FACTORY, name); - WSIProperties.setThreadLocalProperties(props); - System.out.println( - "PROP_VALIDATOR_FACTORY: " - + WSIProperties.getProperty(PROP_VALIDATOR_FACTORY)); - } - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/XMLInfo.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/XMLInfo.java deleted file mode 100644 index b92119912..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/XMLInfo.java +++ /dev/null @@ -1,27 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.util; - -/** - * This class ... - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public interface XMLInfo -{ - /** - * Get addtional tool environment information as an XML string. - * @param namespaceName a namespace prefix. - * @return addtional tool environment information as an XML string. - */ - public String toXMLString(String namespaceName); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/wsi.properties b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/wsi.properties deleted file mode 100644 index bfe48da10..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/util/wsi.properties +++ /dev/null @@ -1,46 +0,0 @@ -# /** -# * <copyright> -# * -# * Copyright (c) 2002-2003 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 - Initial API and implementation -# * </copyright> -# */ -# -# Property file used to set parameters for Conformance Tools - -# ----------------------------------------------------------------------- -# Document factory. -# ----------------------------------------------------------------------- -wsi.document.factory=org.eclipse.wst.wsi.internal.core.document.impl.DocumentFactoryImpl - -# ----------------------------------------------------------------------- -# Profile validation factory. -# ----------------------------------------------------------------------- -wsi.profile.validator.factory=org.eclipse.wst.wsi.internal.core.profile.validator.impl.ProfileValidatorFactoryImpl - -# ----------------------------------------------------------------------- -# Reference to JAXP document builder -# ----------------------------------------------------------------------- -javax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl -#javax.xml.parsers.DocumentBuilderFactory=org.eclipe.wst.wsi.internal.core.xml.jaxp.DocumentBuilderFactoryImpl - -# ----------------------------------------------------------------------- -# Transport class used by UDDI4J -# ----------------------------------------------------------------------- -org.uddi4j.TransportClassName=org.uddi4j.transport.ApacheAxisTransport - - -# ----------------------------------------------------------------------- -# Location of XML schema documents relative to the plugin directory -# ----------------------------------------------------------------------- -wsi.analyzer.xmlschema.schema=http://www.w3.org/2001/XMLSchema.xsd -wsi.analyzer.soap.schema=http://schemas.xmlsoap.org/soap/envelope/ -wsi.analyzer.wsdl.schema=http://schemas.xmlsoap.org/wsdl/ -wsi.analyzer.wsdlsoap.schema=wsi.analyzer.wsdlsoap.schema -wsi.analyzer.wsdlmime.schema=http://schemas.xmlsoap.org/wsdl/mime/ diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/WSDLDocument.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/WSDLDocument.java deleted file mode 100644 index 050292a7e..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/WSDLDocument.java +++ /dev/null @@ -1,323 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.wsdl; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import javax.wsdl.Binding; -import javax.wsdl.Definition; -import javax.wsdl.PortType; -import javax.wsdl.Service; -import javax.wsdl.WSDLException; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.xml.WSDLReader; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.wsdl.xsd.InlineSchemaValidator; -import org.eclipse.wst.wsi.internal.core.xml.XMLTags; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Document; - -/** - * This class provides a interface to a single WSDL document. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class WSDLDocument -{ - /** - * WSDL document location. - */ - protected String fileName = null; - - /** - * Definition element. - */ - protected Definition definitions = null; - - /** - * Document element - */ - protected Document document = null; - - /** - * WSDL element list with line and column numbers. - */ - protected WSDLElementList wsdlElementList = null; - - /** - * Map of targetNamespaces to the corresponding org.apache.xerces.xs.XSModel of schema elements. - */ - private Map schemas = new HashMap(); - - /** - * List of schemas validation errors. - */ - private List schemasValidationErrors = new ArrayList(); - - /** - * Read WSDL document from the specified file. - * @param fileName WSDL document location. - * @throws WSDLException if problem reading WSDL document. - */ - public WSDLDocument(String fileName) throws WSDLException - { - this.fileName = fileName; - ClassLoader currentLoader = Thread.currentThread().getContextClassLoader(); - - try - { - Thread.currentThread().setContextClassLoader(WSDLDocument.class.getClassLoader()); - - // Get the WSDLReader - WSDLReader wsdlReader = new WSDLReaderImpl(); - - // Set features - wsdlReader.setFeature(com.ibm.wsdl.Constants.FEATURE_VERBOSE, false); - // DEBUG: - //wsdlReader.setFeature(com.ibm.wsdl.Constants.FEATURE_VERBOSE, true); - wsdlReader.setFeature( - com.ibm.wsdl.Constants.FEATURE_IMPORT_DOCUMENTS, - true); - // DEBUG: - //wsdlReader.setFeature(com.ibm.wsdl.Constants.FEATURE_IMPORT_DOCUMENTS,true); - - // Parse the WSDL document - document = XMLUtils.parseXMLDocument(fileName); - this.definitions = wsdlReader.readWSDL(fileName, document); - - // Since inline schema validator is used by several assertions, validate all - // schemas right after WSDL validation - validateSchemas(); - - // Get the line and column number references - this.wsdlElementList = ((WSDLReaderImpl) wsdlReader).getElementList(); - - // DEBUG: - //System.err.println(wsdlElementList.toString()); - } - catch (Exception cce) - { - // Set element list to null - this.wsdlElementList = null; - } - finally - { - Thread.currentThread().setContextClassLoader(currentLoader); - } - } - - /** - * Create WSDL document from existing Definition object. - * - * @param fileName WSDL document location. - * @param definitions Definition object. - */ - public WSDLDocument(String fileName, Definition definitions) - { - this.fileName = fileName; - this.definitions = definitions; - this.document = null; - schemas.clear(); - schemasValidationErrors.clear(); - } - - /** - * Get the WSDL document location. - * @return he WSDL document location. - */ - public String getLocation() - { - // Return the document location - return this.fileName; - } - - /** - * Get the document element of the WSDL document. - * @return the document element - */ - public Document getDocument() - { - if (document == null && definitions != null) - { - try - { - document = XMLUtils.parseXMLDocument(definitions.getDocumentBaseURI()); - } - catch (IOException ioe) - { - } - catch (WSIException wsie) - { - } - } - return document; - } - - /** - * Get the definition element of the WSDL document. - * @return the definition element - */ - public Definition getDefinitions() - { - // Return the definition element - return definitions; - } - - /** - * Get all the portType elements from the WSDL document. - * @return the list of portType elements. - */ - public PortType[] getPortTypes() - { - // Generate an array of PortTypes from the PortType map for this Definition - return (PortType[]) definitions.getPortTypes().values().toArray( - new PortType[0]); - } - - /** - * Get all the binding elements from the WSDL document. - * @return the list of binding elements. - */ - public Binding[] getBindings() - { - // Generate an array of Bindings from the Binding map for this Definition - return (Binding[]) definitions.getBindings().values().toArray( - new Binding[0]); - } - - /** - * Get all the service elements from the WSDL document. - * @return the list of service elements. - */ - public Service[] getServices() - { - // Generate an array of Services from the Service map for this Definition - return (Service[]) definitions.getServices().values().toArray( - new Service[0]); - } - - /* Return string representation of this object. - * @see java.lang.Object#toString() - */ - public String toString() - { - // Return string - return (definitions == null) - ? "WSDL definition element not found." - : definitions.toString(); - } - - /** - * Get the element list. - * @return the element list. - */ - public WSDLElementList getElementList() - { - return this.wsdlElementList; - } - - /** - * Returns a schemas map. - * @return a map of targetNamespace attribute values of the schema elements - * to the corresponding org.apache.xerces.xs.XSModel object of that schema. - */ - public Map getSchemas() - { - return schemas; - } - - /** - * Returns a list of schemas validation errors caused by the validateSchemas() procedure. - * @return a list of schemas validation errors. - */ - public List getSchemasValidationErrors() - { - return schemasValidationErrors; - } - - /** - * The method invokes the inline schema validator which validates every schema element of the WSDL. - */ - private void validateSchemas() - { - schemas.clear(); - schemasValidationErrors.clear(); - - /* INLINE SCHEMA VALIDATOR */ - if (definitions != null - && definitions.getTypes() != null - && definitions.getTypes().getExtensibilityElements() != null) - { - InlineSchemaValidator schemaValidator = new InlineSchemaValidator(); - - // Collecting schema's parent elements - List parents = new ArrayList(2); - parents.add(definitions.getTypes()); - parents.add(definitions); - // Going through all the ExtensibilityElementS of wsdl:types - // since they are potential schemas - // See Java APIs for WSDL V1.0 (JSR110), section 4 - Iterator i = this.definitions.getTypes().getExtensibilityElements().iterator(); - while (i.hasNext()) - { - ExtensibilityElement extEl = (ExtensibilityElement) i.next(); - if (extEl.getElementType().equals(XMLTags.ELEM_XSD_SCHEMA)) - { - Map map = null; - try - { - // Validating schema element - map = schemaValidator.validate(extEl, parents, fileName); - } - catch (Exception e) - { - // Adding an exception to the errors list - schemasValidationErrors.add(e.getMessage()); - } - - if (map != null) - { - // Adding returned XSModel to schemas map - schemas.putAll(map); - } - } - } - } - } - - /** - * Command line interface. - * @param args from command line. - */ - public static void main(String[] args) - { - try - { - WSDLDocument wsdlDocument = new WSDLDocument(args[0]); - System.out.println(wsdlDocument.toString()); - } - - catch (Exception e) - { - e.toString(); - e.printStackTrace(); - } - - System.exit(0); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/WSDLElementList.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/WSDLElementList.java deleted file mode 100644 index 75a77d895..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/WSDLElementList.java +++ /dev/null @@ -1,99 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.wsdl; - -import java.util.HashMap; -import java.util.Iterator; - -import org.eclipse.wst.wsi.internal.core.xml.dom.ElementLocation; - -/** - * This class maintains a WSDL element list. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class WSDLElementList -{ - /** - * List of WSDL elements with their location. - */ - HashMap wsdlElementList = new HashMap(); - - /** - * WSDL element locator. - */ - public WSDLElementList() - { - } - - /** - * Add element with location information. - * @param wsdlElement a WSDL element artifact. - * @param elementLocation the location information for the element. - */ - public void addElement(Object wsdlElement, ElementLocation elementLocation) - { - this.wsdlElementList.put(wsdlElement, elementLocation); - } - - /** - * Get element location. - * @param wsdlElement a WSDL element artifact. - * @return the location information for the element. - */ - public ElementLocation getElementLocation(Object wsdlElement) - { - return (ElementLocation) this.wsdlElementList.get(wsdlElement); - } - - /* Return string representation of this object. - * @see java.lang.Object#toString() - */ - public String toString() - { - String string = "WSDLElementList: \n"; - - // Get list entries (values?) - Iterator iterator = this.wsdlElementList.keySet().iterator(); - - // Add each entry in the list to the string - ElementLocation wsdlElementLocation; - while (iterator.hasNext()) - { - Object wsdlElement = iterator.next(); - - if (wsdlElement != null) - { - string += " " + wsdlElement.getClass().getName() + ": "; - if ((wsdlElementLocation = - (ElementLocation) wsdlElementList.get(wsdlElement)) - == null) - { - string += "null\n"; - } - - else - { - string += " " - + wsdlElement.getClass().getName() - + ": " - + wsdlElementLocation.getLineNumber() - + ", " - + wsdlElementLocation.getColumnNumber() - + "\n"; - } - } - } - - return string; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/WSDLReaderImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/WSDLReaderImpl.java deleted file mode 100644 index c56c4c8f4..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/WSDLReaderImpl.java +++ /dev/null @@ -1,813 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 2009 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.wsdl; - -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.util.Iterator; -import java.util.Map; - -import javax.wsdl.Binding; -import javax.wsdl.BindingFault; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOperation; -import javax.wsdl.BindingOutput; -import javax.wsdl.Definition; -import javax.wsdl.Fault; -import javax.wsdl.Import; -import javax.wsdl.Input; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.Output; -import javax.wsdl.Part; -import javax.wsdl.Port; -import javax.wsdl.PortType; -import javax.wsdl.Service; -import javax.wsdl.Types; -import javax.wsdl.WSDLException; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.factory.WSDLFactory; -import javax.xml.namespace.QName; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; - -import org.apache.xerces.dom.ElementImpl; -import org.eclipse.wst.wsi.internal.core.xml.dom.ElementLocation; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.xml.sax.InputSource; - -import com.ibm.wsdl.Constants; -import com.ibm.wsdl.extensions.schema.SchemaConstants; -import com.ibm.wsdl.util.StringUtils; -import com.ibm.wsdl.util.xml.DOMUtils; -import com.ibm.wsdl.util.xml.QNameUtils; -import com.ibm.wsdl.util.xml.XPathUtils; - -/** - * This class is a specialization of com.ibm.wsdl.xml.WSDLReaderImpl in WSDL4J. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class WSDLReaderImpl extends com.ibm.wsdl.xml.WSDLReaderImpl -{ - // WSDL element list. - protected WSDLElementList wsdlElementList = new WSDLElementList(); - - /* (non-Javadoc) - * @see com.ibm.wsdl.xml.WSDLReaderImpl#parseDefinitions(java.lang.String, org.w3c.dom.Element, java.util.Map) - */ - protected Definition parseDefinitions( - String documentBaseURI, - Element defEl, - Map importedDefs) - throws WSDLException - { - Definition def = null; - ClassLoader currentLoader = Thread.currentThread().getContextClassLoader(); - try - { - Thread.currentThread().setContextClassLoader(WSDLReaderImpl.class.getClassLoader()); - - def = - super.parseDefinitions(documentBaseURI, defEl, importedDefs); - - // Try to add element to list - addElementToList(defEl, def); - - - } -catch (Exception e) - { - } - finally - { - Thread.currentThread().setContextClassLoader(currentLoader); - } - return def; - } - - /* (non-Javadoc) - * @see com.ibm.wsdl.xml.WSDLReaderImpl#parseImport(org.w3c.dom.Element, javax.wsdl.Definition, java.util.Map) - */ - protected Import parseImport(Element element, Definition definition, Map map) - throws WSDLException - { - /*boolean wasEx = false; - if (def.getDocumentBaseURI()!=null){ - File f = new File(def.getDocumentBaseURI()); - if (f.getParent()!=null && importEl.getAttribute("location")!=null){ - f = new File(f.getParent()+"/"+importEl.getAttribute("location")); - - } - } else wasEx = false; - - Import importDef = super.parseImport(importEl, def, importedDefs); - - // Try to add element to list - addElementToList(importEl, importDef); - - return importDef;*/ - - /*Import import1 = definition.createImport(); - String s = DOMUtils.getAttribute(element, "namespace"); - String s1 = DOMUtils.getAttribute(element, "location"); - if (s != null) - import1.setNamespaceURI(s); - if (s1 != null) { - if (importDocuments) { - String s2 = definition.getDocumentBaseURI(); - try { - - URL url1 = s2 == null ? null : StringUtils.getURL(null, s2); - URL url = StringUtils.getURL(url1, s1); - InputStream inputstream = - StringUtils.getContentAsInputStream(url); - inputstream.close(); - } catch (IOException ex) { - //import1.setLocationURI(null); - addElementToList(element, import1); - return import1; - } catch (Throwable ex) { - throw new WSDLException( - "OTHER_ERROR", - "Unable to resolve imported document at '" + s1 + "'.", - ex); - } - - } - } - Import importDef = super.parseImport(element, definition, map); - addElementToList(element, importDef);*/ - Import import1 = definition.createImport(); - String s = DOMUtils.getAttribute(element, "namespace"); - String s1 = DOMUtils.getAttribute(element, "location"); - if (s != null) - import1.setNamespaceURI(s); - // ADD: check "location" attribute for empty - // string to prevent self-defenition assigning - if ((s1 != null) && (s1.length() > 0)) - { - import1.setLocationURI(s1); - if (importDocuments) - try - { - String s2 = definition.getDocumentBaseURI(); - Definition definition1 = null; - InputStream inputstream = null; - InputSource inputsource = null; - URL url = null; - if (loc != null) - { - inputsource = loc.getImportInputSource(s2, s1); - String s3 = loc.getLatestImportURI(); - definition1 = (Definition) map.get(s3); - } - else - { - URL url1 = s2 == null ? null : StringUtils.getURL(null, s2); - url = StringUtils.getURL(url1, s1); - definition1 = (Definition) map.get(url.toString()); - if (definition1 == null) - { - try - { - - inputstream = url.openStream(); - } - catch (IOException ex) - { - //import1.setLocationURI(null); - addElementToList(element, import1); - return import1; - } - if (inputstream != null) - inputsource = new InputSource(inputstream); - } - } - if (definition1 == null) - { - if (inputsource == null) - throw new WSDLException( - "OTHER_ERROR", - "Unable to locate imported document at '" - + s1 - + "'" - + (s2 != null ? ", relative to '" + s2 + "'." : ".")); - Document document = null; - try - { - document = getDocument(inputsource, s1); - } - catch (WSDLException ex) - { - addElementToList(element, import1); - return import1; - } - if (inputstream != null) - inputstream.close(); - Element element2 = document.getDocumentElement(); - if (QNameUtils.matches(Constants.Q_ELEM_DEFINITIONS, element2)) - { - //if (verbose) - // System.out.println( - // "Retrieving document at '" - // + s1 - // + "'" - // + (s2 != null ? ", relative to '" + s2 + "'." : ".")); - String s4 = - loc == null - ? url == null - ? s1 - : url.toString() : loc.getLatestImportURI(); - definition1 = readWSDL(s4, element2, map); - } - else - { - QName qname = QNameUtils.newQName(element2); - if (SchemaConstants.XSD_QNAME_LIST.contains(qname)) - { - WSDLFactory wsdlfactory = - factoryImplName == null - ? WSDLFactory.newInstance() - : WSDLFactory.newInstance(factoryImplName); - definition1 = wsdlfactory.newDefinition(); - if (extReg != null) - definition1.setExtensionRegistry(extReg); - String s5 = - loc == null - ? url == null - ? s1 - : url.toString() : loc.getLatestImportURI(); - definition1.setDocumentBaseURI(s5); - /* Don't add types element since it doesn't exist. Adding it causes problems - * since it will add a types element for processing that does not exist. - Types types = definition1.createTypes(); - UnknownExtensibilityElement unknownextensibilityelement = - new UnknownExtensibilityElement(); - unknownextensibilityelement.setElement(element2); - types.addExtensibilityElement( - unknownextensibilityelement); - definition1.setTypes(types); - */ - } - } - } - if (definition1 != null) - import1.setDefinition(definition1); - } - catch (WSDLException wsdlexception) - { - wsdlexception.setLocation(XPathUtils.getXPathExprFromNode(element)); - throw wsdlexception; - } - catch (Throwable throwable) - { - throw new WSDLException( - "OTHER_ERROR", - "Unable to resolve imported document at '" + s1 + "'.", - throwable); - } - } - for (Element element1 = DOMUtils.getFirstChildElement(element); - element1 != null; - element1 = DOMUtils.getNextSiblingElement(element1)) - if (QNameUtils.matches(Constants.Q_ELEM_DOCUMENTATION, element1)) - import1.setDocumentationElement(element1); - else - DOMUtils.throwWSDLException(element1); - - return import1; - - } - - /* (non-Javadoc) - * @see com.ibm.wsdl.xml.WSDLReaderImpl#parseTypes(org.w3c.dom.Element, javax.wsdl.Definition) - */ - protected Types parseTypes(Element typesEl, Definition def) - throws WSDLException - { - Types types = super.parseTypes(typesEl, def); - - // Try to add element to list - addElementToList(typesEl, types); - - return types; - } - - /* (non-Javadoc) - * @see com.ibm.wsdl.xml.WSDLReaderImpl#parseBinding(org.w3c.dom.Element, javax.wsdl.Definition) - */ - protected Binding parseBinding(Element bindingEl, Definition def) - throws WSDLException - { - Binding binding = super.parseBinding(bindingEl, def); - - // Try to add element to list - addElementToList(bindingEl, binding); - - return binding; - } - - /* (non-Javadoc) - * @see com.ibm.wsdl.xml.WSDLReaderImpl#parseBindingOperation(org.w3c.dom.Element, javax.wsdl.PortType, javax.wsdl.Definition) - */ - protected BindingOperation parseBindingOperation( - Element bindingOperationEl, - PortType portType, - Definition def) - throws WSDLException - { - BindingOperation bindingOperation = null; - - // The follow try-catch was added to detect when a duplicate operation name was detected - try - { - bindingOperation = - super.parseBindingOperation(bindingOperationEl, portType, def); - } - - catch (IllegalArgumentException iae) - { - if (iae.getMessage().startsWith("Duplicate")) - { - bindingOperation = - parseBindingOperationWithDuplicateNames( - bindingOperationEl, - portType, - def); - } - - else - { - throw iae; - } - } - - // Try to add element to list - if (bindingOperation != null) - { - addElementToList(bindingOperationEl, bindingOperation); - } - - return bindingOperation; - } - - /* (non-Javadoc) - * @see com.ibm.wsdl.xml.WSDLReaderImpl#parseBindingInput(org.w3c.dom.Element, javax.wsdl.Definition) - */ - protected BindingInput parseBindingInput( - Element bindingInputEl, - Definition def) - throws WSDLException - { - BindingInput bindingInput = super.parseBindingInput(bindingInputEl, def); - - // Try to add element to list - addElementToList(bindingInputEl, bindingInput); - - return bindingInput; - } - - /* (non-Javadoc) - * @see com.ibm.wsdl.xml.WSDLReaderImpl#parseBindingOutput(org.w3c.dom.Element, javax.wsdl.Definition) - */ - protected BindingOutput parseBindingOutput( - Element bindingOutputEl, - Definition def) - throws WSDLException - { - BindingOutput bindingOutput = - super.parseBindingOutput(bindingOutputEl, def); - - // Try to add element to list - addElementToList(bindingOutputEl, bindingOutput); - - return bindingOutput; - } - - /* (non-Javadoc) - * @see com.ibm.wsdl.xml.WSDLReaderImpl#parseBindingFault(org.w3c.dom.Element, javax.wsdl.Definition) - */ - protected BindingFault parseBindingFault( - Element bindingFaultEl, - Definition def) - throws WSDLException - { - BindingFault bindingFault = super.parseBindingFault(bindingFaultEl, def); - - // Try to add element to list - addElementToList(bindingFaultEl, bindingFault); - - return bindingFault; - } - - /* (non-Javadoc) - * @see com.ibm.wsdl.xml.WSDLReaderImpl#parseMessage(org.w3c.dom.Element, javax.wsdl.Definition) - */ - protected Message parseMessage(Element msgEl, Definition def) - throws WSDLException - { - Message msg = super.parseMessage(msgEl, def); - - // Try to add element to list - addElementToList(msgEl, msg); - - return msg; - } - - /* (non-Javadoc) - * @see com.ibm.wsdl.xml.WSDLReaderImpl#parsePart(org.w3c.dom.Element, javax.wsdl.Definition) - */ - protected Part parsePart(Element partEl, Definition def) throws WSDLException - { - //Part part = super.parsePart(partEl, def); - - Part part = def.createPart(); - String name = DOMUtils.getAttribute(partEl, Constants.ATTR_NAME); - - // WS-I: The try-catch was added for WSI2416 - QName elementName; - - try - { - elementName = - DOMUtils.getQualifiedAttributeValue( - partEl, - Constants.ATTR_ELEMENT, - Constants.ELEM_MESSAGE, - false, - def); - } - - catch (WSDLException we) - { - String prefixedValue = - DOMUtils.getAttribute(partEl, Constants.ATTR_ELEMENT); - int index = prefixedValue.indexOf(':'); - String localPart = prefixedValue.substring(index + 1); - - elementName = new QName(localPart); - } - - QName typeName = - DOMUtils.getQualifiedAttributeValue( - partEl, - Constants.ATTR_TYPE, - Constants.ELEM_MESSAGE, - false, - def); - - if (name != null) - { - part.setName(name); - } - - if (elementName != null) - { - part.setElementName(elementName); - } - - if (typeName != null) - { - part.setTypeName(typeName); - } - - Element tempEl = DOMUtils.getFirstChildElement(partEl); - - while (tempEl != null) - { - if (QNameUtils.matches(Constants.Q_ELEM_DOCUMENTATION, tempEl)) - { - part.setDocumentationElement(tempEl); - } - else - { - DOMUtils.throwWSDLException(tempEl); - } - - tempEl = DOMUtils.getNextSiblingElement(tempEl); - } - - parseExtensibilityAttributes(partEl, Part.class, part, def); -// Map extensionAttributes = part.getExtensionAttributes(); -// extensionAttributes.putAll(getPartAttributes(partEl, def)); - - // Need to do something here to locate part definition. - - // Try to add element to list - addElementToList(partEl, part); - - return part; - } - - /* (non-Javadoc) - * @see com.ibm.wsdl.xml.WSDLReaderImpl#parsePortType(org.w3c.dom.Element, javax.wsdl.Definition) - */ - protected PortType parsePortType(Element portTypeEl, Definition def) - throws WSDLException - { - PortType portType = super.parsePortType(portTypeEl, def); - - // Try to add element to list - addElementToList(portTypeEl, portType); - - return portType; - } - - /* (non-Javadoc) - * @see com.ibm.wsdl.xml.WSDLReaderImpl#parseOperation(org.w3c.dom.Element, javax.wsdl.PortType, javax.wsdl.Definition) - */ - protected Operation parseOperation( - Element opEl, - PortType portType, - Definition def) - throws WSDLException - { - Operation op = super.parseOperation(opEl, portType, def); - - // Try to add element to list - addElementToList(opEl, op); - - return op; - } - - /* (non-Javadoc) - * @see com.ibm.wsdl.xml.WSDLReaderImpl#parseService(org.w3c.dom.Element, javax.wsdl.Definition) - */ - protected Service parseService(Element serviceEl, Definition def) - throws WSDLException - { - Service service = super.parseService(serviceEl, def); - - // Try to add element to list - addElementToList(serviceEl, service); - - return service; - } - - /* (non-Javadoc) - * @see com.ibm.wsdl.xml.WSDLReaderImpl#parsePort(org.w3c.dom.Element, javax.wsdl.Definition) - */ - protected Port parsePort(Element portEl, Definition def) throws WSDLException - { - Port port = super.parsePort(portEl, def); - - // Try to add element to list - addElementToList(portEl, port); - - return port; - } - - /* (non-Javadoc) - * @see com.ibm.wsdl.xml.WSDLReaderImpl#parseExtensibilityElement(java.lang.Class, org.w3c.dom.Element, javax.wsdl.Definition) - */ - protected ExtensibilityElement parseExtensibilityElement( - Class parentType, - Element el, - Definition def) - throws WSDLException - { - ExtensibilityElement extElement = - super.parseExtensibilityElement(parentType, el, def); - - // Try to add element to list - addElementToList(el, extElement); - - return extElement; - } - - /* (non-Javadoc) - * @see com.ibm.wsdl.xml.WSDLReaderImpl#parseInput(org.w3c.dom.Element, javax.wsdl.Definition) - */ - protected Input parseInput(Element inputEl, Definition def) - throws WSDLException - { - Input input = super.parseInput(inputEl, def); - - // Try to add element to list - addElementToList(inputEl, input); - - return input; - } - - /* (non-Javadoc) - * @see com.ibm.wsdl.xml.WSDLReaderImpl#parseOutput(org.w3c.dom.Element, javax.wsdl.Definition) - */ - protected Output parseOutput(Element outputEl, Definition def) - throws WSDLException - { - Output output = super.parseOutput(outputEl, def); - - // Try to add element to list - addElementToList(outputEl, output); - - return output; - } - - /* (non-Javadoc) - * @see com.ibm.wsdl.xml.WSDLReaderImpl#parseFault(org.w3c.dom.Element, javax.wsdl.Definition) - */ - protected Fault parseFault(Element faultEl, Definition def) - throws WSDLException - { - Fault fault = super.parseFault(faultEl, def); - - // Try to add element to list - addElementToList(faultEl, fault); - - return fault; - } - - /* (non-Javadoc) - * @see com.ibm.wsdl.xml.WSDLReaderImpl#getDocument(org.xml.sax.InputSource, java.lang.String) - */ - protected Document getDocument(InputSource inputSource, String desc) - throws WSDLException - { - ClassLoader currentLoader = Thread.currentThread().getContextClassLoader(); - try - { - Thread.currentThread().setContextClassLoader(WSDLReaderImpl.class.getClassLoader()); - - //DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - DocumentBuilderFactory factory = - new org.eclipse.wst.wsi.internal.core.xml.jaxp.DocumentBuilderFactoryImpl(); - - factory.setNamespaceAware(true); - factory.setValidating(false); - - DocumentBuilder builder = factory.newDocumentBuilder(); - Document doc = builder.parse(inputSource); - - return doc; - } - catch (Throwable t) - { - throw new WSDLException( - WSDLException.PARSER_ERROR, - "Problem parsing '" + desc + "'.", - t); - } - finally - { - Thread.currentThread().setContextClassLoader(currentLoader); - } - } - - /** - * Get element list. - * @return the element list. - */ - public WSDLElementList getElementList() - { - return this.wsdlElementList; - } - - /** - * Add WSDL element to element list. - */ - private void addElementToList(Element element, Object wsdlElement) - { - ElementLocation elementLocation = null; - - try - { - // See if the element object is an instanceof org.apache.xerces.dom.ElementImpl - ElementImpl elementImpl = (ElementImpl) element; - - // If it is, then get the element location information - elementLocation = - (ElementLocation) elementImpl.getUserData(); - - // Add it to the list - this.wsdlElementList.addElement(wsdlElement, elementLocation); - } - - catch (ClassCastException cce) - { - // ADD: Should we add the element with a null or zero location? - } - } - - /** - * This method is used when a WSDL document contains duplicate operation names. - * It is the same as the original parseBindingOperation method, except that it will - * just find the first operation that matches instead of throwing an exception. - */ - private BindingOperation parseBindingOperationWithDuplicateNames( - Element bindingOperationEl, - PortType portType, - Definition def) - throws WSDLException - { - BindingOperation bindingOperation = def.createBindingOperation(); - String name = - DOMUtils.getAttribute(bindingOperationEl, Constants.ATTR_NAME); - - if (name != null) - { - bindingOperation.setName(name); - } - - Element tempEl = DOMUtils.getFirstChildElement(bindingOperationEl); - - while (tempEl != null) - { - if (QNameUtils.matches(Constants.Q_ELEM_DOCUMENTATION, tempEl)) - { - bindingOperation.setDocumentationElement(tempEl); - } - else if (QNameUtils.matches(Constants.Q_ELEM_INPUT, tempEl)) - { - bindingOperation.setBindingInput(parseBindingInput(tempEl, def)); - } - else if (QNameUtils.matches(Constants.Q_ELEM_OUTPUT, tempEl)) - { - bindingOperation.setBindingOutput(parseBindingOutput(tempEl, def)); - } - else if (QNameUtils.matches(Constants.Q_ELEM_FAULT, tempEl)) - { - bindingOperation.addBindingFault(parseBindingFault(tempEl, def)); - } - else - { - bindingOperation.addExtensibilityElement( - parseExtensibilityElement(BindingOperation.class, tempEl, def)); - } - - tempEl = DOMUtils.getNextSiblingElement(tempEl); - } - - if (portType != null) - { - BindingInput bindingInput = bindingOperation.getBindingInput(); - BindingOutput bindingOutput = bindingOperation.getBindingOutput(); - String inputName = (bindingInput != null ? bindingInput.getName() : null); - String outputName = - (bindingOutput != null ? bindingOutput.getName() : null); - - //Operation op = portType.getOperation(name, inputName, outputName); - // Get all operations, and then find the first one that matches - Operation op = null, checkOperation; - Iterator iterator = portType.getOperations().iterator(); - while (iterator.hasNext() && op == null) - { - // Get the next operation - checkOperation = (Operation) iterator.next(); - - // Get the operation name, input name, and output name - String checkName = checkOperation.getName(); - String checkInputName = - (checkOperation.getInput() == null - ? null - : checkOperation.getInput().getName()); - String checkOutputName = - (checkOperation.getOutput() == null - ? null - : checkOperation.getOutput().getName()); - - // If the names match, then that operation - if ((checkName != null && checkName.equals(name)) - && ((checkInputName != null && checkInputName.equals(inputName)) - || (checkInputName == null && inputName == null)) - && ((checkOutputName != null && checkOutputName.equals(outputName)) - || (checkOutputName == null && outputName == null))) - { - op = checkOperation; - } - } - - if (op == null) - { - op = def.createOperation(); - op.setName(name); - portType.addOperation(op); - } - - bindingOperation.setOperation(op); - } - - return bindingOperation; - } - - protected ExtensibilityElement parseSchema(Class ccc, Element elem, Definition def) throws WSDLException -{ - ExtensibilityElement extElem = null; - extElem = super.parseSchema(ccc, elem, def); - - // Try to add element to list - addElementToList(elem, extElem); - return extElem; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/WSDLUtils.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/WSDLUtils.java deleted file mode 100644 index 3a7b61b69..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/WSDLUtils.java +++ /dev/null @@ -1,411 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.wsdl; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.BindingOperation; -import javax.wsdl.Definition; -import javax.wsdl.Fault; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.PortType; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.soap.SOAPBinding; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPHeader; -import javax.wsdl.extensions.soap.SOAPHeaderFault; -import javax.wsdl.extensions.soap.SOAPOperation; -import javax.xml.namespace.QName; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; - -/** - * Set of XML related utilities. - * - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ -public final class WSDLUtils -{ - - /** - * Method isRpcLiteral. - * @param bindingStyle a binding style. - * @param operation a WSDL binding operation artifact. - * @return true if binding is rpc literal. - */ - public static boolean isRpcLiteral( - String bindingStyle, - BindingOperation operation) - { - return checkStyleAndUse( - WSIConstants.ATTRVAL_SOAP_BIND_STYLE_RPC, - WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT, - bindingStyle, - operation); - } - - /** - * Method isDocLiteral. - * @param bindingStyle the binding style. - * @param operation a WSDL binding operation. - * @return true if binding is document literal. - */ - public static boolean isDocLiteral( - String bindingStyle, - BindingOperation operation) - { - return checkStyleAndUse( - WSIConstants.ATTRVAL_SOAP_BIND_STYLE_DOC, - WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT, - bindingStyle, - operation); - } - - /** - * Method checkStyleAndUse. - */ - private static boolean checkStyleAndUse( - String checkStyle, - String checkUse, - String bindingStyle, - BindingOperation bindingOperation) - { - boolean styleFound = false; - boolean styleAndUseFound = false; - - // Find the soapbind:operation element - SOAPOperation soapOperation = getSoapOperation(bindingOperation); - - // If there are no ext elements, then check against binding style - if ((soapOperation == null) || (soapOperation.getStyle() == null)) - { - if (checkStyle.equals(bindingStyle)) - styleFound = true; - } - - else - { - if (checkStyle.equals(soapOperation.getStyle())) - styleFound = true; - } - - // If style found then check use - if (styleFound) - { - // Find the soapbind:body element - SOAPBody soapBody = getInputSoapBody(bindingOperation); - - // If there are no soapbind:body, then check against default use value - if ((soapBody == null) || (soapBody.getUse() == null)) - { - if (checkUse.equals(WSIConstants.ATTRVAL_SOAP_BODY_USE_LIT)) - styleAndUseFound = true; - } - - else - { - if (checkUse.equals(soapBody.getUse())) - styleAndUseFound = true; - } - } - - return styleAndUseFound; - } - - /** - * Get soapbind:binding. - * @param binding a Binding object. - * @return soapbind:binding. - */ - public static SOAPBinding getSoapBinding(Binding binding) - { - SOAPBinding soapBinding = null; - - List extElements = null; - - // Find the soapbind:operation element - if ((extElements = binding.getExtensibilityElements()) != null) - { - for (Iterator iterator = extElements.iterator(); - iterator.hasNext() && (soapBinding == null); - ) - { - Object obj = iterator.next(); - - if (obj instanceof SOAPBinding) - { - soapBinding = (SOAPBinding) obj; - } - } - } - - return soapBinding; - } - - /** - * Get soapbind:operation. - * @param bindingOperation a BindingOperation object. - * @return soapbind:operation. - */ - public static SOAPOperation getSoapOperation(BindingOperation bindingOperation) - { - SOAPOperation soapOperation = null; - - List extElements = null; - - // Find the soapbind:operation element - if ((extElements = bindingOperation.getExtensibilityElements()) != null) - { - for (Iterator iterator = extElements.iterator(); - iterator.hasNext() && (soapOperation == null); - ) - { - Object obj = iterator.next(); - - if (obj instanceof SOAPOperation) - { - soapOperation = (SOAPOperation) obj; - } - } - } - - return soapOperation; - } - - /** - * Get soapbind:body from input element. - * @param bindingOperation the BindingOperation object. - * @return soapbind:body from input element. - */ - public static SOAPBody getInputSoapBody(BindingOperation bindingOperation) - { - SOAPBody soapBody = null; - - List extElements = null; - - // Find the soapbind:body element - if ((extElements = - bindingOperation.getBindingInput().getExtensibilityElements()) - != null) - { - for (Iterator iterator = extElements.iterator(); - iterator.hasNext() && (soapBody == null); - ) - { - Object obj = iterator.next(); - - if (obj instanceof SOAPBody) - { - soapBody = (SOAPBody) obj; - } - } - } - - return soapBody; - } - - /** - * Find messages referenced by a header or headerfault. - * @param definition a Definition object. - * @param binding a Binding object. - * @return messages referenced by a header or headerfault. - */ - public static HashSet findMessages(Definition definition, Binding binding) - { - BindingOperation bindingOperation; - - HashSet tempMessages, bindingMessages = new HashSet(); - - HashSet portTypeMessages = findMessages(binding.getPortType()); - - // Process each operation - Iterator iterator = binding.getBindingOperations().iterator(); - while (iterator.hasNext()) - { - bindingOperation = (BindingOperation) iterator.next(); - - // Process the input and then the output - if (bindingOperation.getBindingInput() != null) - { - tempMessages = - findMessages( - bindingOperation - .getBindingInput() - .getExtensibilityElements() - .iterator(), - portTypeMessages, - definition); - - // Add messages to binding message set - bindingMessages.addAll(tempMessages); - } - - // Process output - if (bindingOperation.getBindingOutput() != null) - { - tempMessages = - findMessages( - bindingOperation - .getBindingOutput() - .getExtensibilityElements() - .iterator(), - portTypeMessages, - definition); - - // Add messages to binding message set - bindingMessages.addAll(tempMessages); - } - } - - return bindingMessages; - } - - /** - * Find the messages that are referenced by a header or headerfault. - * @param portType a PortType object. - * @return he messages that are referenced by a header or headerfault. - */ - public static HashSet findMessages(PortType portType) - { - HashSet messageSet = new HashSet(); - Operation operation; - - Iterator iterator = portType.getOperations().iterator(); - while (iterator.hasNext()) - { - // Get next operation to process - operation = (Operation) iterator.next(); - - // Get input and output message - if (operation.getInput() != null) - messageSet.add(operation.getInput().getMessage()); - if (operation.getOutput() != null) - messageSet.add(operation.getOutput().getMessage()); - - // Process any faults - Iterator faults = operation.getFaults().values().iterator(); - while (faults.hasNext()) - { - messageSet.add(((Fault) faults.next()).getMessage()); - } - } - - return messageSet; - } - - /** - * Find the messages that are referenced by a header or headerfault. - * @param extElementList a list of external elements. - * @param messageSet a set of messages. - * @param definition a Definition object. - * @return the messages that are referenced by a header or headerfault. - */ - protected static HashSet findMessages( - Iterator extElementList, - HashSet messageSet, - Definition definition) - { - HashSet returnSet = new HashSet(); - ExtensibilityElement extElement; - Message saveMessage = null; - - while (extElementList.hasNext()) - { - // Get ext. element - extElement = (ExtensibilityElement) extElementList.next(); - - QName messageQName; - Message message; - - // If this is a soap:header element, then check for message reference - if (extElement instanceof SOAPHeader) - { - SOAPHeader soapHeader = (SOAPHeader) extElement; - if ((messageQName = soapHeader.getMessage()) != null) - { - // If message not found, then create a dummy message element - if ((message = definition.getMessage(messageQName)) == null) - { - message = definition.createMessage(); - message.setQName(messageQName); - message.setUndefined(true); - } - - if (!messageSet.contains(message)) - { - returnSet.add(message); - saveMessage = message; - } - } - - // Process any header faults within this header - Iterator headerFaultList = soapHeader.getSOAPHeaderFaults().iterator(); - while (headerFaultList.hasNext()) - { - // Get soap header fault - SOAPHeaderFault soapHeaderFault = - (SOAPHeaderFault) headerFaultList.next(); - if ((messageQName = soapHeaderFault.getMessage()) != null) - { - // If message not found, then create a dummy message element - if ((message = definition.getMessage(messageQName)) == null) - { - message = definition.createMessage(); - message.setQName(messageQName); - message.setUndefined(true); - } - - // If message not in message set and return set, then add it - if (!messageSet.contains(message) - && ((saveMessage == null) - || (saveMessage != null - && !saveMessage.getQName().equals(message.getQName())))) - returnSet.add(message); - } - } - } - } - - return returnSet; - } - - public static boolean isSOAP12WSDL(WSDLDocument wsdlDocument) - { - boolean result = false; - if (wsdlDocument != null) - { - Binding[] bindings = wsdlDocument.getBindings(); - List extensibilityElementList = new ArrayList(); - if (bindings != null) - { - for (int i = 0; i < bindings.length; i++) - extensibilityElementList.addAll(bindings[i].getExtensibilityElements()); - Iterator iterator = extensibilityElementList.iterator(); - while (iterator.hasNext()) - { - ExtensibilityElement e = (ExtensibilityElement) iterator.next(); - if (WSIConstants.NS_URI_WSDL_SOAP12.equals(e.getElementType().getNamespaceURI())) - { - result = true; - break; - } - } - } - } - return result; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/traversal/VisitorAdaptor.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/traversal/VisitorAdaptor.java deleted file mode 100644 index 8b909382a..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/traversal/VisitorAdaptor.java +++ /dev/null @@ -1,201 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.wsdl.traversal; - -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.Method; -import java.lang.reflect.Proxy; -import java.util.HashMap; -import java.util.Map; - -import javax.wsdl.Binding; -import javax.wsdl.BindingFault; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOperation; -import javax.wsdl.BindingOutput; -import javax.wsdl.Definition; -import javax.wsdl.Fault; -import javax.wsdl.Import; -import javax.wsdl.Input; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.Output; -import javax.wsdl.Part; -import javax.wsdl.Port; -import javax.wsdl.PortType; -import javax.wsdl.Service; -import javax.wsdl.Types; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.soap.SOAPBinding; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPFault; -import javax.wsdl.extensions.soap.SOAPHeader; -import javax.wsdl.extensions.soap.SOAPHeaderFault; -import javax.wsdl.extensions.soap.SOAPOperation; - -import org.w3c.dom.Element; - -/** - * The class adapts the given object with the implemented - * <code>WSDLVisitor</code> methods. - * - * @author Kulik - */ -public class VisitorAdaptor implements InvocationHandler -{ - - // optimization hint - static final private Class[] visitorClass = new Class[] { WSDLVisitor.class }; - - /** - * The array is used for determination of actual javax.wsdl class - */ - private static Class[] wsdl = - new Class[] { - Part.class, - Service.class, - Types.class, - Operation.class, - Input.class, - Output.class, - Fault.class, - Binding.class, - BindingOperation.class, - BindingInput.class, - BindingOutput.class, - BindingFault.class, - Import.class, - Element.class, - Message.class, - Port.class, - PortType.class, - Definition.class, - ExtensibilityElement.class, - SOAPBinding.class, - SOAPBody.class, - SOAPHeader.class, - SOAPHeaderFault.class, - SOAPFault.class, - SOAPOperation.class }; - - final private Object visitor; - - private Map methods = new HashMap(); - - /** - * Constructor. - * @param o a visitor object. - */ - private VisitorAdaptor(Object o) - { - this.visitor = o; - } - - /** - * Adds method to method binding. - * @param wsdlMethod a WSDL method. - * @param targetMethod a target method. - */ - private void addMethodBinding(Method wsdlMethod, Method targetMethod) - { - methods.put(wsdlMethod, targetMethod); - } - - /** - * The method proxies all "visit(XXX)" methods to the corresponding - * "visit(XXX)" methods of the target visitor object. - * @see java.lang.reflect.InvocationHandler#invoke(Object, Method, Object[]) - */ - public Object invoke(Object proxy, Method m, Object[] params) - { - try - { - Method target = (Method) methods.get(m); - // assert target != null - return target.invoke(visitor, params); - } - catch (Throwable t) - { - t.printStackTrace(); - } - return null; - } - - /** - * The method extract the short class name. - * @param c a class. - * @return the short class name. - */ - static private String getName(Class c) - { - if (c != null) - { - String name = c.getName(); - return name.substring(name.lastIndexOf(".") + 1); - } - return null; - } - - /** - * The method generates proxy for the given visitor. - * Proxy redirects all visit(XXX) callback to the implemented in visitor - * object. - * @param visitor a vistor object. - * @return a proxy for the given visitor. - */ - public static WSDLTraversal adapt(Object visitor) - { - WSDLTraversal traversal = new WSDLTraversal(); - - if (visitor == null) - throw new IllegalArgumentException("Visitor object can not be NULL"); - - VisitorAdaptor adaptor = new VisitorAdaptor(visitor); - - // check whether methods are implemented - // get real class of the object - Class c = visitor.getClass(); - // iterates through wsdl artifacts and looking for - // void visit(XXX) implemented methods. - for (int i = 0; i < wsdl.length; i++) - try - { - // if method is not found the exception will be thrown - Method m = - c.getMethod( - "visit", - new Class[] { wsdl[i], Object.class, WSDLTraversalContext.class }); - // register binding WSDLVisitor method -> target visitor method - adaptor.addMethodBinding( - WSDLVisitor.class.getMethod( - "visit", - new Class[] { wsdl[i], Object.class, WSDLTraversalContext.class }), - m); - // register visitXXX in WSDLTraversalBuilder - m = - WSDLTraversal.class.getMethod( - "visit" + getName(wsdl[i]), - new Class[] { boolean.class }); - m.invoke(traversal, new Object[] { Boolean.TRUE }); - } - catch (Exception e) - { - } - - // construct the WSDLVisitor by using java.lang.reflect.Proxy - ClassLoader loader = Thread.currentThread().getContextClassLoader(); - WSDLVisitor wsdlVisitor = - (WSDLVisitor) Proxy.newProxyInstance(loader, visitorClass, adaptor); - // traverse WSDL document - traversal.setVisitor(wsdlVisitor); - return traversal; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/traversal/WSDLTraversal.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/traversal/WSDLTraversal.java deleted file mode 100644 index 1abc2b592..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/traversal/WSDLTraversal.java +++ /dev/null @@ -1,3290 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.wsdl.traversal; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Vector; - -import javax.wsdl.Binding; -import javax.wsdl.BindingFault; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOperation; -import javax.wsdl.BindingOutput; -import javax.wsdl.Definition; -import javax.wsdl.Fault; -import javax.wsdl.Import; -import javax.wsdl.Input; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.Output; -import javax.wsdl.Part; -import javax.wsdl.Port; -import javax.wsdl.PortType; -import javax.wsdl.Service; -import javax.wsdl.Types; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.soap.SOAPBinding; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPFault; -import javax.wsdl.extensions.soap.SOAPHeader; -import javax.wsdl.extensions.soap.SOAPHeaderFault; -import javax.wsdl.extensions.soap.SOAPOperation; - -import org.w3c.dom.Element; - -/** - * The class implements plain traverse over WSDL artifacts. - * WSDLTraversal is context-driven traversal. - * - * @author Andrey Kulik - */ -public class WSDLTraversal -{ - - /** - * Current WSDL visitor (callback). - */ - private WSDLVisitor visitor; - - /** - * Flags which specify whether traversal will travers from one WSDL artifact - * to another. - */ - private boolean traverseBinding2BindingOperation = true; - private boolean traverseBinding2Element = true; - private boolean traverseBinding2ExtensibilityElement = true; - private boolean traverseBinding2PortType = true; // reference - private boolean traverseBindingFault2Element = true; - private boolean traverseBindingFault2ExtensibilityElement = true; - private boolean traverseBindingInput2Element = true; - private boolean traverseBindingInput2ExtensibilityElement = true; - private boolean traverseBindingOperation2BindingFault = true; - private boolean traverseBindingOperation2BindingInput = true; - private boolean traverseBindingOperation2BindingOutput = true; - private boolean traverseBindingOperation2Element = true; - private boolean traverseBindingOperation2ExtensibilityElement = true; - private boolean traverseBindingOperation2Operation = true; // reference - private boolean traverseBindingOutput2Element = true; - private boolean traverseBindingOutput2ExtensibilityElement = true; - private boolean traverseDefinition2Binding = true; - private boolean traverseDefinition2Element = true; - private boolean traverseDefinition2ExtensibilityElement = true; - private boolean traverseDefinition2Import = true; - private boolean traverseDefinition2Message = true; - private boolean traverseDefinition2PortType = true; - private boolean traverseDefinition2Service = true; - private boolean traverseDefinition2Types = true; - private boolean traverseFault2Element = true; - private boolean traverseFault2Message = true; // reference - private boolean traverseImport2Definition = true; - private boolean traverseImport2Element = true; - private boolean traverseInput2Element = true; - private boolean traverseInput2Message = true; // reference - private boolean traverseMessage2Element = true; - private boolean traverseMessage2Part = true; - private boolean traverseOperation2Element = true; - private boolean traverseOperation2Fault = true; - private boolean traverseOperation2Input = true; - private boolean traverseOperation2Output = true; - private boolean traverseOutput2Element = true; - private boolean traverseOutput2Message = true; // reference - private boolean traversePart2Element = true; - private boolean traversePort2Binding = true; // reference - private boolean traversePort2Element = true; - private boolean traversePort2ExtensibilityElement = true; - private boolean traversePortType2Element = true; - private boolean traversePortType2Operation = true; - private boolean traverseService2Element = true; - private boolean traverseService2ExtensibilityElement = true; - private boolean traverseService2Port = true; - private boolean traverseTypes2Element = true; - private boolean traverseTypes2ExtensibilityElement = true; - //private boolean traverseSOAPBody2Part = true; - private boolean traverseSOAPHeader2SOAPHeaderFault = true; - private boolean traverseBinding2SOAPBinding = true; - private boolean traverseBindingOperation2SOAPOperation = true; - private boolean traverseBindingInput2SOAPHeader = true; - private boolean traverseBindingInput2SOAPBody = true; - private boolean traverseBindingOutput2SOAPHeader = true; - private boolean traverseBindingOutput2SOAPBody = true; - private boolean traverseBindingFault2SOAPFault = true; - - /** - * Flags which specify whether traversal will visit corresponding WSDL - * artifact. - */ - private boolean visitBinding = false; - private boolean visitBindingFault = false; - private boolean visitBindingInput = false; - private boolean visitBindingOperation = false; - private boolean visitBindingOutput = false; - private boolean visitDefinition = false; - private boolean visitElement = false; - private boolean visitExtensibilityElement = false; - private boolean visitFault = false; - private boolean visitImport = false; - private boolean visitInput = false; - private boolean visitMessage = false; - private boolean visitOperation = false; - private boolean visitOutput = false; - private boolean visitPart = false; - private boolean visitPort = false; - private boolean visitPortType = false; - private boolean visitService = false; - private boolean visitTypes = false; - private boolean visitSOAPBinding = false; - private boolean visitSOAPBody = false; - private boolean visitSOAPFault = false; - private boolean visitSOAPHeader = false; - private boolean visitSOAPHeaderFault = false; - private boolean visitSOAPOperation = false; - - List alreadyTraversedDefinitions; - /** - * Default constructor. - * @see java.lang.Object#Object() - */ - public WSDLTraversal() - { - alreadyTraversedDefinitions = new ArrayList(); - } - - /** - * The method specifies that traversal will ignore indirect references between - * WSDL artifacts. For example: - * <ol> - * <li>binding to port type</li> - * <li>binding operation to operation</li> - * <li>fault to message</li> - * <li>input to message</li> - * <li>output to message</li> - * <li>port to binding</li> - * </ol> - */ - public void ignoreReferences() - { - ignoreBinding2PortType(); - ignoreBindingOperation2Operation(); - ignoreFault2Message(); - ignoreInput2Message(); - ignoreOutput2Message(); - ignorePort2Binding(); - //ignoreSOAPBody2Part(); - } - - /** - * The method sets visitor. - * @param visitor a WSDL visitor. - */ - public void setVisitor(WSDLVisitor visitor) - { - this.visitor = visitor; - } - - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return the traversal. - */ - public WSDLTraversal ignoreBinding2SOAPBinding() - { - traverseBinding2SOAPBinding = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBindingOperation2SOAPOperation() - { - traverseBindingOperation2SOAPOperation = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBindingInput2SOAPHeader() - { - traverseBindingInput2SOAPHeader = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBindingInput2SOAPBody() - { - traverseBindingInput2SOAPBody = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBindingOutput2SOAPHeader() - { - traverseBindingOutput2SOAPHeader = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBindingOutput2SOAPBody() - { - traverseBindingOutput2SOAPBody = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBindingFault2SOAPFault() - { - traverseBindingFault2SOAPFault = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreSOAPHeader2SOAPHeaderFault() - { - traverseSOAPHeader2SOAPHeaderFault = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBinding2BindingOperation() - { - traverseBinding2BindingOperation = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBinding2Element() - { - traverseBinding2Element = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBinding2ExtensibilityElement() - { - traverseBinding2ExtensibilityElement = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBinding2PortType() - { - traverseBinding2PortType = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBindingFault2Element() - { - traverseBindingFault2Element = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBindingFault2ExtensibilityElement() - { - traverseBindingFault2ExtensibilityElement = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBindingInput2Element() - { - traverseBindingInput2Element = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBindingInput2ExtensibilityElement() - { - traverseBindingInput2ExtensibilityElement = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBindingOperation2BindingFault() - { - traverseBindingOperation2BindingFault = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBindingOperation2BindingInput() - { - traverseBindingOperation2BindingInput = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBindingOperation2BindingOutput() - { - traverseBindingOperation2BindingOutput = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBindingOperation2Element() - { - traverseBindingOperation2Element = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBindingOperation2ExtensibilityElement() - { - traverseBindingOperation2ExtensibilityElement = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBindingOperation2Operation() - { - traverseBindingOperation2Operation = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBindingOutput2Element() - { - traverseBindingOutput2Element = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBindingOutput2ExtensibilityElement() - { - traverseBindingOutput2ExtensibilityElement = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreDefinition2Binding() - { - traverseDefinition2Binding = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreDefinition2Element() - { - traverseDefinition2Element = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreDefinition2ExtensibilityElement() - { - traverseDefinition2ExtensibilityElement = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreDefinition2Import() - { - traverseDefinition2Import = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreDefinition2Message() - { - traverseDefinition2Message = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreDefinition2PortType() - { - traverseDefinition2PortType = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreDefinition2Service() - { - traverseDefinition2Service = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreDefinition2Types() - { - traverseDefinition2Types = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreFault2Element() - { - traverseFault2Element = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreFault2Message() - { - traverseFault2Message = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreImport2Definition() - { - traverseImport2Definition = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreImport2Element() - { - traverseImport2Element = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreInput2Element() - { - traverseInput2Element = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreInput2Message() - { - traverseInput2Message = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreMessage2Element() - { - traverseMessage2Element = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreMessage2Part() - { - traverseMessage2Part = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreOperation2Element() - { - traverseOperation2Element = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreOperation2Fault() - { - traverseOperation2Fault = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreOperation2Input() - { - traverseOperation2Input = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreOperation2Output() - { - traverseOperation2Output = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreOutput2Element() - { - traverseOutput2Element = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreOutput2Message() - { - traverseOutput2Message = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignorePart2Element() - { - traversePart2Element = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignorePort2Binding() - { - traversePort2Binding = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignorePort2Element() - { - traversePort2Element = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignorePort2ExtensibilityElement() - { - traversePort2ExtensibilityElement = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignorePortType2Element() - { - traversePortType2Element = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignorePortType2Operation() - { - traversePortType2Operation = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreService2Element() - { - traverseService2Element = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreService2ExtensibilityElement() - { - traverseService2ExtensibilityElement = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreService2Port() - { - traverseService2Port = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreTypes2Element() - { - traverseTypes2Element = false; - return this; - } - /** - * Instructs traversal to ignore reference between WSDL elements... - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreTypes2ExtensibilityElement() - { - traverseTypes2ExtensibilityElement = false; - return this; - } - - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitSOAPBinding(boolean value) - { - visitSOAPBinding = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitSOAPBody(boolean value) - { - visitSOAPBody = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitSOAPFault(boolean value) - { - visitSOAPFault = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitSOAPHeader(boolean value) - { - visitSOAPHeader = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitSOAPHeaderFault(boolean value) - { - visitSOAPHeaderFault = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitSOAPOperation(boolean value) - { - visitSOAPOperation = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitBinding(boolean value) - { - visitBinding = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitBindingFault(boolean value) - { - visitBindingFault = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitBindingInput(boolean value) - { - visitBindingInput = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitBindingOperation(boolean value) - { - visitBindingOperation = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitBindingOutput(boolean value) - { - visitBindingOutput = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitDefinition(boolean value) - { - visitDefinition = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitElement(boolean value) - { - visitElement = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitExtensibilityElement(boolean value) - { - visitExtensibilityElement = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitFault(boolean value) - { - visitFault = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitImport(boolean value) - { - visitImport = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitInput(boolean value) - { - visitInput = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitMessage(boolean value) - { - visitMessage = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitOperation(boolean value) - { - visitOperation = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitOutput(boolean value) - { - visitOutput = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitPart(boolean value) - { - visitPart = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitPort(boolean value) - { - visitPort = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitPortType(boolean value) - { - visitPortType = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitService(boolean value) - { - visitService = value; - return this; - } - /** - * Instructs traversal to visit or not the corresponding WSDL element. - * @param value true if the WSDL element should be visited, otherwise - false. - * @return a WSDLTraversal object. - */ - public WSDLTraversal visitTypes(boolean value) - { - visitTypes = value; - return this; - } - - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBinding() - { - traverseDefinition2Binding = false; - traversePort2Binding = false; - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBindingFault() - { - traverseBindingOperation2BindingFault = false; - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBindingInput() - { - traverseBindingOperation2BindingInput = false; - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBindingOperation() - { - traverseBinding2BindingOperation = false; - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreBindingOutput() - { - traverseBindingOperation2BindingOutput = false; - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreDefinition() - { - traverseImport2Definition = false; - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreElement() - { - traverseBinding2Element = false; - traverseBindingFault2Element = false; - traverseBindingInput2Element = false; - traverseBindingOperation2Element = false; - traverseBindingOutput2Element = false; - traverseDefinition2Element = false; - traversePort2Element = false; - traverseService2Element = false; - traverseFault2Element = false; - traverseOutput2Element = false; - traverseImport2Element = false; - traverseInput2Element = false; - traverseOperation2Element = false; - traverseMessage2Element = false; - traversePart2Element = false; - traversePortType2Element = false; - traverseTypes2Element = false; - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreExtensibilityElement() - { - traverseService2ExtensibilityElement = false; - traversePort2ExtensibilityElement = false; - traverseDefinition2ExtensibilityElement = false; - traverseBindingOutput2ExtensibilityElement = false; - traverseBinding2ExtensibilityElement = false; - traverseBindingFault2ExtensibilityElement = false; - traverseBindingInput2ExtensibilityElement = false; - traverseBindingOperation2ExtensibilityElement = false; - traverseTypes2ExtensibilityElement = false; - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreSOAPBinding() - { - traverseBinding2SOAPBinding = false; - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreSOAPOperation() - { - traverseBindingOperation2SOAPOperation = false; - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreSOAPBody() - { - traverseBindingInput2SOAPBody = false; - traverseBindingOutput2SOAPBody = false; - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreSOAPHeader() - { - traverseBindingInput2SOAPHeader = false; - traverseBindingOutput2SOAPHeader = false; - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreSOAPHeaderFault() - { - traverseSOAPHeader2SOAPHeaderFault = false; - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreSOAPFault() - { - traverseBindingFault2SOAPFault = false; - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreFault() - { - traverseOperation2Fault = false; - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreImport() - { - traverseImport2Definition = false; // fix - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreInput() - { - traverseOperation2Input = false; - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreMessage() - { - traverseFault2Message = false; - traverseDefinition2Message = false; - traverseInput2Message = false; - traverseOutput2Message = false; - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreOperation() - { - traverseBindingOperation2Operation = false; - traversePortType2Operation = false; - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreOutput() - { - traverseOperation2Output = false; - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignorePart() - { - traverseMessage2Part = false; - //traverseSOAPBody2Part = false; - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignorePort() - { - traverseService2Port = false; - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignorePortType() - { - traverseBinding2PortType = false; - traverseDefinition2PortType = false; - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreService() - { - traverseDefinition2Service = false; - return this; - } - /** - * Instructs traversal to ignore all references to the corresponding WSDL - * element. - * @return a WSDLTraversal object. - */ - public WSDLTraversal ignoreTypes() - { - traverseDefinition2Types = false; - return this; - } - - /** - * The method adjusts traveseXXX variables according to the visitXXX variables - */ - private void adjust() - { - adjustPart(); - adjustService(); - adjustTypes(); - adjustOperation(); - adjustInput(); - adjustOutput(); - adjustFault(); - adjustBinding(); - adjustBindingOperation(); - adjustBindingInput(); - adjustBindingOutput(); - adjustBindingFault(); - adjustImport(); - adjustElement(); - adjustMessage(); - adjustPort(); - adjustPortType(); - adjustDefinition(); - adjustExtensibilityElement(); - adjustSOAPBinding(); - adjustSOAPBody(); - adjustSOAPHeader(); - adjustSOAPHeaderFault(); - adjustSOAPFault(); - adjustSOAPOperation(); - } - - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustExtensibilityElement() - { - boolean value = visitExtensibilityElement; - if (!value) - ignoreExtensibilityElement(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustPart() - { - boolean value = visitPart || (traversePart2Element && adjustElement()); - if (!value) - ignorePart(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustSOAPHeader() - { - boolean value = - visitSOAPHeader - || (traverseSOAPHeader2SOAPHeaderFault && adjustSOAPHeaderFault()); - if (!value) - ignoreSOAPHeader(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustBindingOutput() - { - boolean value = - visitBindingOutput - || (traverseBindingOutput2Element && adjustElement()) - || (traverseBindingOutput2ExtensibilityElement - && adjustExtensibilityElement()) - || (traverseBindingOutput2SOAPBody - && adjustSOAPBody() - || (traverseBindingOutput2SOAPHeader && adjustSOAPHeader())); - if (!value) - ignoreBindingOutput(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustElement() - { - boolean value = visitElement; - if (!value) - ignoreElement(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustTypes() - { - boolean value = - visitTypes - || (traverseTypes2Element && adjustElement()) - || (traverseTypes2ExtensibilityElement && adjustExtensibilityElement()); - if (!value) - ignoreTypes(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustSOAPBinding() - { - boolean value = visitSOAPBinding; - if (!value) - ignoreSOAPBinding(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustPort() - { - boolean value = - visitPort - || (traversePort2Element && adjustElement()) - || (traversePort2ExtensibilityElement && adjustExtensibilityElement()) - || (traversePort2Binding && adjustBinding()); - if (!value) - ignorePort(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustOperation() - { - boolean value = - visitOperation - || (traverseOperation2Element && adjustElement()) - || (traverseOperation2Input && adjustInput()) - || (traverseOperation2Output && adjustOutput()) - || (traverseOperation2Fault && adjustFault()); - if (!value) - ignoreOperation(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustBindingOperation() - { - boolean value = - visitBindingOperation - || (traverseBindingOperation2Element && adjustElement()) - || (traverseBindingOperation2BindingFault && adjustBindingFault()) - || (traverseBindingOperation2BindingOutput && adjustBindingOutput()) - || (traverseBindingOperation2Operation && adjustOperation()) - || (traverseBindingOperation2BindingInput && adjustBindingInput()) - || (traverseBindingOperation2ExtensibilityElement - && adjustExtensibilityElement()) - || (traverseBindingOperation2SOAPOperation && adjustSOAPOperation()); - if (!value) - ignoreBindingOperation(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustInput() - { - boolean value = - visitInput - || (traverseInput2Element && adjustElement()) - || (traverseInput2Message && adjustMessage()); - if (!value) - ignoreInput(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustBinding() - { - boolean value = - visitBinding - || (traverseBinding2Element && adjustElement()) - || (traverseBinding2BindingOperation && adjustBindingOperation()) - || (traverseBinding2ExtensibilityElement && adjustExtensibilityElement()) - || (traverseBinding2PortType && adjustPortType()) - || (traverseBinding2SOAPBinding && adjustSOAPBinding()); - if (!value) - ignoreBinding(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustSOAPBody() - { - boolean value = visitSOAPBody; - /* || - (traverseSOAPBody2Part && adjustPart());*/ - if (!value) - ignoreSOAPBody(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustSOAPHeaderFault() - { - boolean value = visitSOAPHeaderFault; - if (!value) - ignoreSOAPHeaderFault(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustBindingInput() - { - boolean value = - visitBindingInput - || (traverseBindingInput2Element && adjustElement()) - || (traverseBindingInput2ExtensibilityElement - && adjustExtensibilityElement()) - || (traverseBindingInput2SOAPBody - && adjustSOAPBody() - || (traverseBindingInput2SOAPHeader && adjustSOAPHeader())); - if (!value) - ignoreBindingInput(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustOutput() - { - boolean value = - visitOutput - || (traverseOutput2Element && adjustElement()) - || (traverseOutput2Message && adjustMessage()); - if (!value) - ignoreOutput(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustBindingFault() - { - boolean value = - visitBindingFault - || (traverseBindingFault2Element && adjustElement()) - || (traverseBindingFault2ExtensibilityElement - && adjustExtensibilityElement()) - || (traverseBindingFault2SOAPFault && adjustSOAPFault()); - if (!value) - ignoreBindingFault(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustSOAPOperation() - { - boolean value = visitSOAPOperation; - if (!value) - ignoreSOAPOperation(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustDefinition() - { - boolean value = - visitDefinition - || (traverseDefinition2Element && adjustElement()) - || (traverseDefinition2Import && adjustImport()) - || (traverseDefinition2Types && adjustTypes()) - || (traverseDefinition2Message && adjustMessage()) - || (traverseDefinition2ExtensibilityElement - && adjustExtensibilityElement()) - || (traverseDefinition2PortType && adjustPortType()) - || (traverseDefinition2Binding && adjustBinding()) - || (traverseDefinition2Service && adjustService()); - if (!value) - ignoreDefinition(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustSOAPFault() - { - boolean value = visitSOAPFault; - if (!value) - ignoreSOAPFault(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustImport() - { - boolean value = visitImport || (traverseImport2Definition - /* && adjustDefinition()*/ - ) - || // avoid cycling problem. Thus, you should call ignoreImport manually - (traverseImport2Element && adjustElement()); - if (!value) - ignoreImport(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustFault() - { - boolean value = - visitFault - || (traverseFault2Element && adjustElement()) - || (traverseFault2Message && adjustMessage()); - if (!value) - ignoreFault(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustPortType() - { - boolean value = - visitPortType - || (traversePortType2Element && adjustElement()) - || (traversePortType2Operation && adjustOperation()); - if (!value) - ignorePortType(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustService() - { - boolean value = - visitService - || (traverseService2Element && adjustElement()) - || (traverseService2ExtensibilityElement && adjustExtensibilityElement()) - || (traverseService2Port && adjustPort()); - if (!value) - ignoreService(); - return value; - } - /** - * The method adjusts traversal ignore flags according to the - * corresponding visit flags. - * @return boolean - */ - private boolean adjustMessage() - { - boolean value = - visitMessage - || (traverseMessage2Element && adjustElement()) - || (traverseMessage2Part && adjustPart()); - if (!value) - ignoreMessage(); - return value; - } - - /** - * The method traverses given WSDL extensibility element according to the - * settings in the traversal context. - * - * @param objExtensibilityElement a WSDL extensibility element artifact. - * @param parent parent of the WSDL extensibility element artifact. - * @param ctx the traversal contex. - */ - private void traverse( - ExtensibilityElement objExtensibilityElement, - Object parent, - WSDLTraversalContext ctx) - { - ctx.resumeExtensibilityElementProcessing(); - ctx.setExtensibilityElement(objExtensibilityElement); - if (visitExtensibilityElement) - visitor.visit(objExtensibilityElement, parent, ctx); - } - - /** - * The method traverses given WSDL part artifact according to the settings in - * the traversal context. - * - * @param objPart the WSDL part artifact. - * @param parent parent of the WSDL part artifact. - * @param ctx the traversal contex. - */ - private void traverse(Part objPart, Object parent, WSDLTraversalContext ctx) - { - ctx.resumePartProcessing(); - ctx.setPart(objPart); - if (visitPart) - { - visitor.visit(objPart, parent, ctx); - if (!ctx.processPart()) - return; - } - if (objPart == null) - return; - if (traversePart2Element) - traverse(objPart.getDocumentationElement(), objPart, ctx); - } - - /** - * The method traverses given WSDL SOAP header artifact according to the - * settings in the traversal context. - * - * @param objSOAPHeader a WSDL SOAP header artifact. - * @param parent parent of the WSDL SOAP header artifact. - * @param ctx the traversal contex. - */ - private void traverse( - SOAPHeader objSOAPHeader, - Object parent, - WSDLTraversalContext ctx) - { - ctx.resumeSOAPHeaderProcessing(); - ctx.setSOAPHeader(objSOAPHeader); - if (visitSOAPHeader) - { - visitor.visit(objSOAPHeader, parent, ctx); - if (!ctx.processSOAPHeader()) - return; - } - if (objSOAPHeader == null) - return; - if (traverseSOAPHeader2SOAPHeaderFault - && objSOAPHeader.getSOAPHeaderFaults() != null) - { - Iterator it = objSOAPHeader.getSOAPHeaderFaults().iterator(); - while (it.hasNext()) - { - traverse((SOAPHeaderFault) it.next(), objSOAPHeader, ctx); - if (!ctx.processSOAPHeader()) - return; - } - } - } - - /** - * The method traverses given WSDL element artifact according to the settings in - * the traversal context. - * - * @param objElement a WSDL element artifact. - * @param parent parent of the WSDL element artifact. - * @param ctx the traversal contex. - */ - private void traverse( - Element objElement, - Object parent, - WSDLTraversalContext ctx) - { - ctx.setElement(objElement); - if (visitElement) - visitor.visit(objElement, parent, ctx); - } - - /** - * The method traverses given WSDL types artifact according to the settings in - * the traversal context. - * - * @param objTypes a WSDL types artifact. - * @param parent parent of the WSDL types artifact. - * @param ctx the traversal contex. - */ - private void traverse( - Types objTypes, - Object parent, - WSDLTraversalContext ctx) - { - ctx.resumeTypesProcessing(); - ctx.setTypes(objTypes); - if (visitTypes) - { - visitor.visit(objTypes, parent, ctx); - if (!ctx.processTypes()) - return; - } - if (objTypes == null) - return; - if (traverseTypes2Element) - { - traverse(objTypes.getDocumentationElement(), objTypes, ctx); - if (!ctx.processTypes()) - return; - } - if (traverseTypes2ExtensibilityElement - && objTypes.getExtensibilityElements() != null) - { - Iterator it = objTypes.getExtensibilityElements().iterator(); - while (it.hasNext()) - { - traverse((ExtensibilityElement) it.next(), objTypes, ctx); - if (!ctx.processTypes()) - return; - } - } - } - - /** - * The method traverses given WSDL SOAP binding artifact according to the - * settings in the traversal context. - * - * @param objSOAPBinding a WSDL SOAP binding artifact. - * @param parent parent of the WSDL SOAP binding artifact. - * @param ctx the traversal contex. - */ - private void traverse( - SOAPBinding objSOAPBinding, - Object parent, - WSDLTraversalContext ctx) - { - ctx.setSOAPBinding(objSOAPBinding); - if (visitSOAPBinding) - visitor.visit(objSOAPBinding, parent, ctx); - } - - /** - * The method traverses given WSDL definition artifact according to the - * settings in the traversal context. - * - * @param objDefinition a WSDL definition artifact. - * @param parent parent of the WSDL definition artifact. - * @param ctx the traversal contex. - */ - private void traverse( - Definition objDefinition, - Object parent, - WSDLTraversalContext ctx) - { - if ((objDefinition == null) || (this.alreadyTraversedDefinitions.contains(objDefinition))) - { - return; - } - this.alreadyTraversedDefinitions.add(objDefinition); - ctx.resumeDefinitionProcessing(); - ctx.setDefinition(objDefinition); - - if (visitDefinition) - { - visitor.visit(objDefinition, parent, ctx); - if (!ctx.processDefinition()) - return; - } - if (traverseDefinition2Import && objDefinition.getImports() != null) - { - Iterator it = objDefinition.getImports().values().iterator(); - while (it.hasNext()) - { - Vector v = (Vector) it.next(); - if (v != null) - { - Iterator it2 = v.iterator(); - while (it2.hasNext()) - { - traverse((Import) it2.next(), objDefinition, ctx); - if (!ctx.processDefinition()) - return; - } - } - } - } - if (traverseDefinition2Element) - { - traverse(objDefinition.getDocumentationElement(), objDefinition, ctx); - if (!ctx.processDefinition()) - return; - } - if (traverseDefinition2Types) - { - traverse(objDefinition.getTypes(), objDefinition, ctx); - if (!ctx.processDefinition()) - return; - } - if (traverseDefinition2Message && objDefinition.getMessages() != null) - { - Iterator it = objDefinition.getMessages().values().iterator(); - while (it.hasNext()) - { - traverse((Message) it.next(), objDefinition, ctx); - if (!ctx.processDefinition()) - return; - } - } - if (traverseDefinition2PortType && objDefinition.getPortTypes() != null) - { - Iterator it = objDefinition.getPortTypes().values().iterator(); - while (it.hasNext()) - { - traverse((PortType) it.next(), objDefinition, ctx); - if (!ctx.processDefinition()) - return; - } - } - if (traverseDefinition2Binding && objDefinition.getBindings() != null) - { - Iterator it = objDefinition.getBindings().values().iterator(); - while (it.hasNext()) - { - traverse((Binding) it.next(), objDefinition, ctx); - if (!ctx.processDefinition()) - return; - } - } - if (traverseDefinition2Service && objDefinition.getServices() != null) - { - Iterator it = objDefinition.getServices().values().iterator(); - while (it.hasNext()) - { - traverse((Service) it.next(), objDefinition, ctx); - if (!ctx.processDefinition()) - return; - } - } - if (traverseDefinition2ExtensibilityElement - && objDefinition.getExtensibilityElements() != null) - { - Iterator it = objDefinition.getExtensibilityElements().iterator(); - while (it.hasNext()) - { - traverse((ExtensibilityElement) it.next(), objDefinition, ctx); - if (!ctx.processDefinition()) - return; - } - } - } - - /** - * The method traverses given WSDL port artifact according to the settings in - * the traversal context. - * - * @param objPort a WSDL port artifact. - * @param parent parent of the WSDL port artifact. - * @param ctx the traversal contex. - */ - private void traverse(Port objPort, Object parent, WSDLTraversalContext ctx) - { - ctx.resumePortProcessing(); - ctx.setPort(objPort); - if (visitPort) - { - visitor.visit(objPort, parent, ctx); - if (!ctx.processPort()) - return; - } - if (objPort == null) - return; - if (traversePort2Element) - { - traverse(objPort.getDocumentationElement(), objPort, ctx); - if (!ctx.processPort()) - return; - } - if (traversePort2Binding) - { - traverse(objPort.getBinding(), objPort, ctx); - if (!ctx.processPort()) - return; - } - if (traversePort2ExtensibilityElement - && objPort.getExtensibilityElements() != null) - { - Iterator it = objPort.getExtensibilityElements().iterator(); - while (it.hasNext()) - { - traverse((ExtensibilityElement) it.next(), objPort, ctx); - if (!ctx.processPort()) - return; - } - } - } - - /** - * The method traverses given WSDL operation artifact according to the settings in - * the traversal context. - * - * @param objOperation a WSDL operation artifact. - * @param parent parent of the WSDL operation artifactt. - * @param ctx the traversal contex. - */ - private void traverse( - Operation objOperation, - Object parent, - WSDLTraversalContext ctx) - { - ctx.resumeOperationProcessing(); - ctx.setOperation(objOperation); - if (visitOperation) - { - visitor.visit(objOperation, parent, ctx); - if (!ctx.processOperation()) - return; - } - if (objOperation == null) - return; - if (traverseOperation2Element) - { - traverse(objOperation.getDocumentationElement(), objOperation, ctx); - if (!ctx.processOperation()) - return; - } - if (traverseOperation2Input) - { - traverse(objOperation.getInput(), objOperation, ctx); - if (!ctx.processOperation()) - return; - } - if (traverseOperation2Output) - { - traverse(objOperation.getOutput(), objOperation, ctx); - if (!ctx.processOperation()) - return; - } - if (traverseOperation2Fault && objOperation.getFaults() != null) - { - Iterator it = objOperation.getFaults().values().iterator(); - while (it.hasNext()) - { - traverse((Fault) it.next(), objOperation, ctx); - if (!ctx.processOperation()) - return; - } - } - } - - /** - * The method traverses given WSDL input artifact according to the settings in - * the traversal context. - * - * @param objInput a WSDL input artifact. - * @param parent parent of the WSDL input artifact. - * @param ctx the traversal contex. - */ - private void traverse( - Input objInput, - Object parent, - WSDLTraversalContext ctx) - { - ctx.resumeInputProcessing(); - ctx.setInput(objInput); - if (visitInput) - { - visitor.visit(objInput, parent, ctx); - if (!ctx.processInput()) - return; - } - if (objInput == null) - return; - if (traverseInput2Element) - { - traverse(objInput.getDocumentationElement(), objInput, ctx); - if (!ctx.processInput()) - return; - } - if (traverseInput2Message) - traverse(objInput.getMessage(), objInput, ctx); - } - - /** - * The method traverses given WSDL SOAP body artifact according to the - * settings in the traversal context. - * - * @param objSOAPBody a WSDL SOAP body artifact. - * @param parent parent of the WSDL SOAP body artifact. - * @param ctx the traversal contex. - */ - private void traverse( - SOAPBody objSOAPBody, - Object parent, - WSDLTraversalContext ctx) - { - // ctx.resumeSOAPBodyProcessing(); - ctx.setSOAPBody(objSOAPBody); - if (visitSOAPBody) - // { - visitor.visit(objSOAPBody, parent, ctx); - /* if (!ctx.processSOAPBody()) - return; - } - if (objSOAPBody == null) - return; - if (traverseSOAPBody2Part && objSOAPBody.getParts() != null) { - if (ctx) - Iterator it = objSOAPBody.getParts().iterator(); - while (it.hasNext()) { - - traverse((Part)it.next(), objSOAPBody, ctx); - if (!ctx.processSOAPBody()) - return; - } - } - */ - } - - /** - * The method traverses given WSDL SOAP header fault artifact according to - * the settings in the traversal context. - * - * @param objSOAPHeaderFault a WSDL SOAP header fault artifact. - * @param parent parent of the WSDL SOAP header fault artifact. - * @param ctx the traversal contex. - */ - private void traverse( - SOAPHeaderFault objSOAPHeaderFault, - Object parent, - WSDLTraversalContext ctx) - { - ctx.setSOAPHeaderFault(objSOAPHeaderFault); - if (visitSOAPHeaderFault) - visitor.visit(objSOAPHeaderFault, parent, ctx); - } - - /** - * The method traverses given WSDL output artifact according to the settings in - * the traversal context. - * - * @param objOutput a WSDL output artifact. - * @param parent parent of the WSDL output artifact. - * @param ctx the traversal contex. - * @param parent - * @param ctx - */ - private void traverse( - Output objOutput, - Object parent, - WSDLTraversalContext ctx) - { - ctx.resumeOutputProcessing(); - ctx.setOutput(objOutput); - if (visitOutput) - { - visitor.visit(objOutput, parent, ctx); - if (!ctx.processOutput()) - return; - } - if (objOutput == null) - return; - if (traverseOutput2Element) - { - traverse(objOutput.getDocumentationElement(), objOutput, ctx); - if (!ctx.processOutput()) - return; - } - if (traverseOutput2Message) - traverse(objOutput.getMessage(), objOutput, ctx); - } - - /** - * The method traverses given WSDL binding fault artifact according to the - * settings in the traversal context. - * - * @param objBindingFault a WSDL binding fault artifact. - * @param parent parent of the WSDL binding fault artifact. - * @param ctx the traversal contex. - */ - private void traverse( - BindingFault objBindingFault, - Object parent, - WSDLTraversalContext ctx) - { - ctx.resumeBindingFaultProcessing(); - ctx.setBindingFault(objBindingFault); - if (visitBindingFault) - { - visitor.visit(objBindingFault, parent, ctx); - if (!ctx.processBindingFault()) - return; - } - if (objBindingFault == null) - return; - if (traverseBindingFault2Element) - { - traverse(objBindingFault.getDocumentationElement(), objBindingFault, ctx); - if (!ctx.processBindingFault()) - return; - } - if (traverseBindingFault2SOAPFault - && objBindingFault.getExtensibilityElements() != null) - { - Iterator it = objBindingFault.getExtensibilityElements().iterator(); - while (it.hasNext()) - { - Object o = it.next(); - if (o instanceof SOAPFault) - traverse((SOAPFault) o, objBindingFault, ctx); - if (!ctx.processBindingFault()) - return; - } - } - if (traverseBindingFault2ExtensibilityElement - && objBindingFault.getExtensibilityElements() != null) - { - Iterator it = objBindingFault.getExtensibilityElements().iterator(); - while (it.hasNext()) - { - traverse((ExtensibilityElement) it.next(), objBindingFault, ctx); - if (!ctx.processBindingFault()) - return; - } - } - } - - /** - * The method traverses given WSDL SOAP operation artifact according to - * the settings in the traversal context. - * - * @param objSOAPOperation a WSDL SOAP operation artifact. - * @param parent parent of the WSDL SOAP operation artifact. - * @param ctx the traversal contex. - */ - private void traverse( - SOAPOperation objSOAPOperation, - Object parent, - WSDLTraversalContext ctx) - { - ctx.setSOAPOperation(objSOAPOperation); - if (visitSOAPOperation) - visitor.visit(objSOAPOperation, parent, ctx); - } - - /** - * The method traverses given WSDL binding input artifact according to - * the settings in the traversal context. - * - * @param objBindingInput a WSDL binding input artifact. - * @param parent parent of the WSDL binding input artifact. - * @param ctx the traversal contex. - */ - private void traverse( - BindingInput objBindingInput, - Object parent, - WSDLTraversalContext ctx) - { - ctx.resumeBindingInputProcessing(); - ctx.setBindingInput(objBindingInput); - if (visitBindingInput) - { - visitor.visit(objBindingInput, parent, ctx); - if (!ctx.processBindingInput()) - return; - } - if (objBindingInput == null) - return; - if (traverseBindingInput2Element) - { - traverse(objBindingInput.getDocumentationElement(), objBindingInput, ctx); - if (!ctx.processBindingInput()) - return; - } - if ((traverseBindingInput2SOAPBody || traverseBindingInput2SOAPHeader) - && objBindingInput.getExtensibilityElements() != null) - { - Iterator it = objBindingInput.getExtensibilityElements().iterator(); - while (it.hasNext()) - { - Object o = it.next(); - if (traverseBindingInput2SOAPBody && (o instanceof SOAPBody)) - traverse((SOAPBody) o, objBindingInput, ctx); - else if (traverseBindingInput2SOAPHeader && (o instanceof SOAPHeader)) - traverse((SOAPHeader) o, objBindingInput, ctx); - if (!ctx.processBindingInput()) - return; - } - } - if (traverseBindingInput2ExtensibilityElement - && objBindingInput.getExtensibilityElements() != null) - { - Iterator it = objBindingInput.getExtensibilityElements().iterator(); - while (it.hasNext()) - { - traverse((ExtensibilityElement) it.next(), objBindingInput, ctx); - if (!ctx.processBindingInput()) - return; - } - } - } - - /** - * The method traverses given WSDL binding operation artifact according to - * the settings in the traversal context. - * - * @param objBindingOperation a WSDL binding operation artifact. - * @param parent parent of the WSDL binding operation artifact. - * @param ctx the traversal contex. - */ - private void traverse( - BindingOperation objBindingOperation, - Object parent, - WSDLTraversalContext ctx) - { - ctx.resumeBindingOperationProcessing(); - ctx.setBindingOperation(objBindingOperation); - if (visitBindingOperation) - { - visitor.visit(objBindingOperation, parent, ctx); - if (!ctx.processBindingOperation()) - return; - } - if (objBindingOperation == null) - return; - if (traverseBindingOperation2Element) - { - traverse( - objBindingOperation.getDocumentationElement(), - objBindingOperation, - ctx); - if (!ctx.processBindingOperation()) - return; - } - if (traverseBindingOperation2SOAPOperation - && objBindingOperation.getExtensibilityElements() != null) - { - Iterator it = objBindingOperation.getExtensibilityElements().iterator(); - while (it.hasNext()) - { - Object o = it.next(); - if (o instanceof SOAPOperation) - traverse((SOAPOperation) o, objBindingOperation, ctx); - if (!ctx.processBindingOperation()) - return; - } - } - if (traverseBindingOperation2ExtensibilityElement - && objBindingOperation.getExtensibilityElements() != null) - { - Iterator it = objBindingOperation.getExtensibilityElements().iterator(); - while (it.hasNext()) - { - traverse((ExtensibilityElement) it.next(), objBindingOperation, ctx); - if (!ctx.processBindingOperation()) - return; - } - } - if (traverseBindingOperation2Operation) - { - traverse(objBindingOperation.getOperation(), objBindingOperation, ctx); - if (!ctx.processBindingOperation()) - return; - } - if (traverseBindingOperation2BindingInput) - { - traverse(objBindingOperation.getBindingInput(), objBindingOperation, ctx); - if (!ctx.processBindingOperation()) - return; - } - if (traverseBindingOperation2BindingOutput) - { - traverse( - objBindingOperation.getBindingOutput(), - objBindingOperation, - ctx); - if (!ctx.processBindingOperation()) - return; - } - if (traverseBindingOperation2BindingFault - && objBindingOperation.getBindingFaults() != null) - { - Iterator it = objBindingOperation.getBindingFaults().values().iterator(); - while (it.hasNext()) - { - traverse((BindingFault) it.next(), objBindingOperation, ctx); - if (!ctx.processBindingOperation()) - return; - } - } - } - - /** - * The method traverses given WSDL SOAP fault artifact according to the - * settings in the traversal context. - * - * @param objSOAPFault a WSDL SOAP fault artifact. - * @param parent parent of the WSDL SOAP fault artifact. - * @param ctx the traversal contex. - */ - private void traverse( - SOAPFault objSOAPFault, - Object parent, - WSDLTraversalContext ctx) - { - ctx.setSOAPFault(objSOAPFault); - if (visitSOAPFault) - visitor.visit(objSOAPFault, parent, ctx); - } - - /** - * The method traverses given WSDL binding artifact according to the settings in - * the traversal context. - * - * @param objBinding a WSDL binding artifact. - * @param parent parent of the WSDL binding artifact. - * @param ctx the traversal contex. - */ - private void traverse( - Binding objBinding, - Object parent, - WSDLTraversalContext ctx) - { - ctx.resumeBindingProcessing(); - ctx.setBinding(objBinding); - if (visitBinding) - { - visitor.visit(objBinding, parent, ctx); - if (!ctx.processBinding()) - return; - } - if (objBinding == null) - return; - if (traverseBinding2Element) - { - traverse(objBinding.getDocumentationElement(), objBinding, ctx); - if (!ctx.processBinding()) - return; - } - if (traverseBinding2SOAPBinding - && objBinding.getExtensibilityElements() != null) - { - Iterator it = objBinding.getExtensibilityElements().iterator(); - while (it.hasNext()) - { - Object o = it.next(); - if (o instanceof SOAPBinding) - traverse((SOAPBinding) o, objBinding, ctx); - if (!ctx.processBinding()) - return; - } - } - if (traverseBinding2PortType) - { - traverse(objBinding.getPortType(), objBinding, ctx); - if (!ctx.processBinding()) - return; - } - if (traverseBinding2BindingOperation - && objBinding.getBindingOperations() != null) - { - Iterator it = objBinding.getBindingOperations().iterator(); - while (it.hasNext()) - { - traverse((BindingOperation) it.next(), objBinding, ctx); - if (!ctx.processBinding()) - return; - } - } - if (traverseBinding2ExtensibilityElement - && objBinding.getExtensibilityElements() != null) - { - Iterator it = objBinding.getExtensibilityElements().iterator(); - while (it.hasNext()) - { - traverse((ExtensibilityElement) it.next(), objBinding, ctx); - if (!ctx.processBinding()) - return; - } - } - } - - /** - * The method traverses given WSDL fault artifact according to the settings in - * the traversal context. - * - * @param objFault a WSDL fault artifact. - * @param parent parent of the WSDL fault artifact. - * @param ctx the traversal contex. - */ - private void traverse( - Fault objFault, - Object parent, - WSDLTraversalContext ctx) - { - ctx.resumeFaultProcessing(); - ctx.setFault(objFault); - if (visitFault) - { - visitor.visit(objFault, parent, ctx); - if (!ctx.processFault()) - return; - } - if (objFault == null) - return; - if (traverseFault2Element) - { - traverse(objFault.getDocumentationElement(), objFault, ctx); - if (!ctx.processFault()) - return; - } - if (traverseFault2Message) - traverse(objFault.getMessage(), objFault, ctx); - } - - /** - * The method traverses given WSDL service artifact according to the settings in - * the traversal context. - * - * @param objService a WSDL service artifact. - * @param parent parent of the WSDL service artifact. - * @param ctx the traversal contex. - */ - private void traverse( - Service objService, - Object parent, - WSDLTraversalContext ctx) - { - ctx.resumeServiceProcessing(); - ctx.setService(objService); - if (visitService) - { - visitor.visit(objService, parent, ctx); - if (!ctx.processService()) - return; - } - if (objService == null) - return; - if (traverseService2Element) - { - traverse(objService.getDocumentationElement(), objService, ctx); - if (!ctx.processService()) - return; - } - if (traverseService2ExtensibilityElement - && objService.getExtensibilityElements() != null) - { - Iterator it = objService.getExtensibilityElements().iterator(); - while (it.hasNext()) - { - traverse((ExtensibilityElement) it.next(), objService, ctx); - if (!ctx.processService()) - return; - } - } - if (traverseService2Port && objService.getPorts() != null) - { - Iterator it = objService.getPorts().values().iterator(); - while (it.hasNext()) - { - traverse((Port) it.next(), objService, ctx); - if (!ctx.processService()) - return; - } - } - } - - /** - * The method traverses given WSDL import artifact according to the settings in - * the traversal context. - * - * @param objImport a WSDL import artifact. - * @param parent parent of the WSDL import artifact. - * @param ctx the traversal contex. - */ - private void traverse( - Import objImport, - Object parent, - WSDLTraversalContext ctx) - { - ctx.resumeImportProcessing(); - ctx.setImport(objImport); - if (visitImport) - { - visitor.visit(objImport, parent, ctx); - if (!ctx.processImport()) - return; - } - if (objImport == null) - return; - if (traverseImport2Element) - { - traverse(objImport.getDocumentationElement(), objImport, ctx); - if (!ctx.processImport()) - return; - } - if (traverseImport2Definition) - { - try - { - Definition definition = objImport.getDefinition(); - if ((definition != null) && (!alreadyTraversedDefinitions.contains(definition))) - { - alreadyTraversedDefinitions.add(definition); - traverse(objImport.getDefinition(), objImport, ctx); - } - } - catch (Exception e){} - } - } - - /** - * The method traverses given WSDL binding output artifact according to the - * settings in the traversal context. - * - * @param objBindingOutput a WSDL binding output artifact. - * @param parent parent of the WSDL binding output artifact. - * @param ctx the traversal contex. - */ - private void traverse( - BindingOutput objBindingOutput, - Object parent, - WSDLTraversalContext ctx) - { - ctx.resumeBindingOutputProcessing(); - ctx.setBindingOutput(objBindingOutput); - if (visitBindingOutput) - { - visitor.visit(objBindingOutput, parent, ctx); - if (!ctx.processBindingOutput()) - return; - } - if (objBindingOutput == null) - return; - if (traverseBindingOutput2Element) - { - traverse( - objBindingOutput.getDocumentationElement(), - objBindingOutput, - ctx); - if (!ctx.processBindingOutput()) - return; - } - if ((traverseBindingOutput2SOAPBody || traverseBindingOutput2SOAPHeader) - && objBindingOutput.getExtensibilityElements() != null) - { - Iterator it = objBindingOutput.getExtensibilityElements().iterator(); - while (it.hasNext()) - { - Object o = it.next(); - if (traverseBindingOutput2SOAPBody && (o instanceof SOAPBody)) - traverse((SOAPBody) o, objBindingOutput, ctx); - else if (traverseBindingOutput2SOAPHeader && (o instanceof SOAPHeader)) - traverse((SOAPHeader) o, objBindingOutput, ctx); - if (!ctx.processBindingOutput()) - return; - } - } - if (traverseBindingOutput2ExtensibilityElement - && objBindingOutput.getExtensibilityElements() != null) - { - Iterator it = objBindingOutput.getExtensibilityElements().iterator(); - while (it.hasNext()) - { - traverse((ExtensibilityElement) it.next(), objBindingOutput, ctx); - if (!ctx.processBindingOutput()) - return; - } - } - } - - /** - * The method traverses given WSDL port type artifact according to the settings in - * the traversal context. - * - * @param objPortType a WSDL port type artifact. - * @param parent parent of the WSDL port type. - * @param ctx the traversal contex. - */ - private void traverse( - PortType objPortType, - Object parent, - WSDLTraversalContext ctx) - { - ctx.resumePortTypeProcessing(); - ctx.setPortType(objPortType); - if (visitPortType) - { - visitor.visit(objPortType, parent, ctx); - if (!ctx.processPortType()) - return; - } - if (objPortType == null) - return; - if (traversePortType2Element) - { - traverse(objPortType.getDocumentationElement(), objPortType, ctx); - if (!ctx.processPortType()) - return; - } - if (traversePortType2Operation && objPortType.getOperations() != null) - { - Iterator it = objPortType.getOperations().iterator(); - while (it.hasNext()) - { - traverse((Operation) it.next(), objPortType, ctx); - if (!ctx.processPortType()) - return; - } - } - } - - /** - * The method traverses given WSDL message artifact according to the settings in - * the traversal context. - * - * @param objMessage a WSDL message. - * @param parent parent of the WSDL message. - * @param ctx the traversal contex. - */ - private void traverse( - Message objMessage, - Object parent, - WSDLTraversalContext ctx) - { - ctx.resumeMessageProcessing(); - ctx.setMessage(objMessage); - if (visitMessage) - { - visitor.visit(objMessage, parent, ctx); - if (!ctx.processMessage()) - return; - } - if (objMessage == null) - return; - if (traverseMessage2Element) - { - traverse(objMessage.getDocumentationElement(), objMessage, ctx); - if (!ctx.processMessage()) - return; - } - if (traverseMessage2Part && objMessage.getParts() != null) - { - Iterator it = objMessage.getParts().values().iterator(); - while (it.hasNext()) - { - traverse((Part) it.next(), objMessage, ctx); - if (!ctx.processMessage()) - return; - } - } - } - - /** - * The method traverses given WSDL part artifact according to the settings. - * @param a a WSDL part artifact. - */ - public void traverse(Part a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL service artifact according to the settings. - * @param a a WSDL service artifact. - */ - public void traverse(Service a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL types artifact according to the settings. - * @param a WSDL types artifact. - */ - public void traverse(Types a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL operation artifact according to the settings. - * @param a a WSDL operation artifact. - */ - public void traverse(Operation a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL input artifact according to the settings. - * @param a a WSDL input artifact. - */ - public void traverse(Input a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL output artifact according to the settings. - * @param a a WSDL output artifact. - */ - public void traverse(Output a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL fault artifact according to the settings. - * @param a a WSDL fault artifact. - */ - public void traverse(Fault a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL binding artifact according to the settings. - * @param a a WSDL binding artifact. - */ - public void traverse(Binding a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL binding operation artifact according to the - * settings. - * @param a a WSDL binding operation artifact. - */ - public void traverse(BindingOperation a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL binding input artifact according to - * the settings. - * @param a a WSDL binding input artifact. - */ - public void traverse(BindingInput a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL binding output artifact according to - * the settings. - * @param a a WSDL binding output artifact. - */ - public void traverse(BindingOutput a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL binding fault artifact according to - * the settings. - * @param a a WSDL binding fault artifact. - */ - public void traverse(BindingFault a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL import artifact according to the settings. - * @param a a WSDL import artifact. - */ - public void traverse(Import a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL element artifact according to the settings. - * @param a a WSDL element artifact. - */ - public void traverse(Element a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL message artifact according to the settings. - * @param a a WSDL message artifact. - */ - public void traverse(Message a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL port artifact according to the settings. - * @param a a WSDL port artifact. - */ - public void traverse(Port a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL port type artifact according to the settings. - * @param a a WSDL port type artifact. - */ - public void traverse(PortType a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL definition artifact according to the settings. - * @param a a WSDL definition artifact. - */ - public void traverse(Definition a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL extensibility elment artifact according - * to the settings. - * @param a a WSDL extensibility element artifact. - */ - public void traverse(ExtensibilityElement a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL SOAP binding artifact according to - * the settings. - * @param a a WSDL SOAP binding artifact. - */ - public void traverse(SOAPBinding a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL SOAP body artifact according to the settings. - * @param a a WSDL SOAP body artifact. - */ - public void traverse(SOAPBody a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL SOAP header artifact according to the settings. - * @param a a WSDL SOAP header artifact. - */ - public void traverse(SOAPHeader a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL SOAP header fault artifact according to - * the settings. - * @param a a WSDL SOAP header fault artifact. - */ - public void traverse(SOAPHeaderFault a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL SOAP fault artifact according to the settings. - * @param a a WSDL SOAP fault artifact. - */ - public void traverse(SOAPFault a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - /** - * The method traverses given WSDL SOAP operation artifact according to - * the settings. - * @param a a WSDL SOAP operation artifact. - */ - public void traverse(SOAPOperation a) - { - adjust(); - traverse(a, null, new WSDLTraversalContext(this)); - } - - /** - * The method traverses given WSDL part artifact according to the settings. - * @param a a WSDL part artifact. - * @param params a Map object representing settings. - */ - public void traverse(Part a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL service artifact according to the settings. - * @param a a WSDL service artifact. - * @param params a Map object representing settings. - */ - public void traverse(Service a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL types artifact according to the settings. - * @param a a WSDL types artifact. - * @param params a Map object representing settings. - */ - public void traverse(Types a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL operation artifact according to the settings. - * @param a a WSDL operation artifact. - * @param params a Map object representing settings. - */ - public void traverse(Operation a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL input artifact according to the settings. - * @param a a WSDL input artifact. - * @param params a Map object representing settings. - */ - public void traverse(Input a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL output artifact according to the settings. - * @param a a WSDL output artifact. - * @param params a Map object representing settings. - */ - public void traverse(Output a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL fault artifact according to the settings. - * @param a a WSDL fault artifact. - * @param params a Map object representing settings. - */ - public void traverse(Fault a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL binding artifact according to the settings. - * @param a a WSDL binding artifact. - * @param params a Map object representing settings. - */ - public void traverse(Binding a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL binding operation artifact according - * to the settings. - * @param a a WSDL binding operation artifact. - * @param params a Map object representing settings. - */ - public void traverse(BindingOperation a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL binding input artifact according - * to the settings. - * @param a a WSDL binding input artifact. - * @param params a Map object representing settings. - */ - public void traverse(BindingInput a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL binding output artifact according to - * the settings. - * @param a a WSDL binding output artifact. - * @param params a Map object representing settings. - */ - public void traverse(BindingOutput a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL binding fault artifact according to - * the settings. - * @param a a WSDL binding fault artifact. - * @param params a Map object representing settings. - */ - public void traverse(BindingFault a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL import artifact according to the settings. - * @param a a WSDL import artifact. - * @param params a Map object representing settings. - */ - public void traverse(Import a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL element artifact according to the settings. - * @param a a WSDL element artifact. - * @param params a Map object representing settings. - */ - public void traverse(Element a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL message artifact according to the settings. - * @param a a WSDL message. - * @param params a Map object representing settings. - */ - public void traverse(Message a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL port artifact according to the settings. - * @param a a WSDL port. - * @param params a Map object representing settings. - */ - public void traverse(Port a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL port type artifact according to the settings. - * @param a a WSDL port type artifact. - * @param params a Map object representing settings. - */ - public void traverse(PortType a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL definition artifact according to the settings. - * @param a a WSDL definition artifact. - * @param params a Map object representing settings. - */ - public void traverse(Definition a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL extensibility element artifact according to the settings. - * @param a a WSDL extensibility element artifact. - * @param params a Map object representing settings. - */ - public void traverse(ExtensibilityElement a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL SOAP binding artifact according to the settings. - * @param a a WSDL SOAP binding artifact. - * @param params a Map object representing settings. - */ - public void traverse(SOAPBinding a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL SOAP body artifact according to the settings. - * @param a a WSDL SOAP body artifact. - * @param params a Map object representing settings. - */ - public void traverse(SOAPBody a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL SOAP header artifact according to the settings. - * @param a a WSDL SOAP header artifact. - * @param params a Map object representing settings. - */ - public void traverse(SOAPHeader a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL hearder fault artifact according to the settings. - * @param a a WSDL SOAP header fault artifact. - * @param params a Map object representing settings. - */ - public void traverse(SOAPHeaderFault a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL SOAP fault artifact according to the settings. - * @param a a WSDL SOAP fault artifact. - * @param params a Map object representing settings. - */ - public void traverse(SOAPFault a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } - /** - * The method traverses given WSDL SOAP operation artifact according to the settings. - * @param a a WSDL SOAP operation artifact. - * @param params a Map object representing settings. - */ - public void traverse(SOAPOperation a, Map params) - { - adjust(); - WSDLTraversalContext ctx = new WSDLTraversalContext(this); - if (params != null) - ctx.params.putAll(params); - traverse(a, null, ctx); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/traversal/WSDLTraversalContext.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/traversal/WSDLTraversalContext.java deleted file mode 100644 index cd4dbe78f..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/traversal/WSDLTraversalContext.java +++ /dev/null @@ -1,1126 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.wsdl.traversal; - -import java.util.Map; -import java.util.TreeMap; - -import javax.wsdl.Binding; -import javax.wsdl.BindingFault; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOperation; -import javax.wsdl.BindingOutput; -import javax.wsdl.Definition; -import javax.wsdl.Fault; -import javax.wsdl.Import; -import javax.wsdl.Input; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.Output; -import javax.wsdl.Part; -import javax.wsdl.Port; -import javax.wsdl.PortType; -import javax.wsdl.Service; -import javax.wsdl.Types; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.soap.SOAPBinding; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPFault; -import javax.wsdl.extensions.soap.SOAPHeader; -import javax.wsdl.extensions.soap.SOAPHeaderFault; -import javax.wsdl.extensions.soap.SOAPOperation; - -import org.w3c.dom.Element; - -/** - * The class represents runtime context for the traversal process. - * Context stores artifacts being processed. - * - * @author Andrey Kulik - */ -public class WSDLTraversalContext -{ - /** - * Flags which indicate whether corresponding WSDL element should be processed - * or not. - */ - private boolean processPart = true; - private boolean processService = true; - private boolean processTypes = true; - private boolean processOperation = true; - private boolean processInput = true; - private boolean processOutput = true; - private boolean processFault = true; - private boolean processBinding = true; - private boolean processBindingOperation = true; - private boolean processBindingInput = true; - private boolean processBindingOutput = true; - private boolean processBindingFault = true; - private boolean processImport = true; - private boolean processElement = true; - private boolean processMessage = true; - private boolean processPort = true; - private boolean processPortType = true; - private boolean processDefinition = true; - private boolean processExtensibilityElement = true; - private boolean processSOAPBinding = true; - private boolean processSOAPHeader = true; - private boolean processSOAPHeaderFault = true; - private boolean processSOAPFault = true; - private boolean processSOAPOperation = true; - - /** - * Last processed WSDL elements. - */ - private Part activePart = null; - private Service activeService = null; - private Types activeTypes = null; - private Operation activeOperation = null; - private Input activeInput = null; - private Output activeOutput = null; - private Fault activeFault = null; - private Binding activeBinding = null; - private BindingOperation activeBindingOperation = null; - private BindingInput activeBindingInput = null; - private BindingOutput activeBindingOutput = null; - private BindingFault activeBindingFault = null; - private Import activeImport = null; - private Element activeElement = null; - private Message activeMessage = null; - private Port activePort = null; - private PortType activePortType = null; - private Definition activeDefinition = null; - private ExtensibilityElement activeExtensibilityElement = null; - private SOAPBinding activeSOAPBinding = null; - private SOAPBody activeSOAPBody = null; - private SOAPHeader activeSOAPHeader = null; - private SOAPHeaderFault activeSOAPHeaderFault = null; - private SOAPFault activeSOAPFault = null; - private SOAPOperation activeSOAPOperation = null; - - /** - * Parameters map - */ - Map params = new TreeMap(); - - /** - * Active traversal. - */ - final private WSDLTraversal traversal; - - /** - * The default constructor. - * @param traversal - */ - WSDLTraversalContext(WSDLTraversal traversal) - { - this.traversal = traversal; - } - - /** - * Gets the active traversal. - * @return tha active traversal. - */ - public WSDLTraversal getTraversal() - { - return traversal; - } - - /** - * Gets parameter from context by the given key. - * @param key a key value. - * @return a parameter corresponding to the given key. - */ - public Object getParameter(Object key) - { - return params.get(key); - } - - /** - * Adds parameter into context with the given key. - * @param key the key. - * @param value the value. - */ - public void addParameter(Object key, Object value) - { - params.put(key, value); - } - - /** - * Removes the parameter from context by the given key. - * @param key a key value. - */ - public void removeParameter(Object key) - { - params.remove(key); - } - - /** - * Cancels processing of the corresponding WSDL part. - */ - public void cancelPartProcessing() - { - processPart = false; - } - /** - * Cancels processing of the corresponding WSDL service. - */ - public void cancelServiceProcessing() - { - processService = false; - } - /** - * Cancels processing of the corresponding WSDL types. - */ - public void cancelTypesProcessing() - { - processTypes = false; - } - /** - * Cancels processing of the corresponding WSDL operation. - */ - public void cancelOperationProcessing() - { - processOperation = false; - } - /** - * Cancels processing of the corresponding WSDL input. - */ - public void cancelInputProcessing() - { - processInput = false; - } - /** - * Cancels processing of the corresponding WSDL output. - */ - public void cancelOutputProcessing() - { - processOutput = false; - } - /** - * Cancels processing of the corresponding WSDL fault. - */ - public void cancelFaultProcessing() - { - processFault = false; - } - /** - * Cancels processing of the corresponding WSDL binding. - */ - public void cancelBindingProcessing() - { - processBinding = false; - } - /** - * Cancels processing of the corresponding WSDL binding operation. - */ - public void cancelBindingOperationProcessing() - { - processBindingOperation = false; - } - /** - * Cancels processing of the corresponding WSDL binding input. - */ - public void cancelBindingInputProcessing() - { - processBindingInput = false; - } - /** - * Cancels processing of the corresponding WSDL binding output. - */ - public void cancelBindingOutputProcessing() - { - processBindingOutput = false; - } - /** - * Cancels processing of the corresponding WSDL binding fault. - */ - public void cancelBindingFaultProcessing() - { - processBindingFault = false; - } - /** - * Cancels processing of the corresponding WSDL import. - */ - public void cancelImportProcessing() - { - processImport = false; - } - /** - * Cancels processing of the corresponding WSDL element. - */ - public void cancelElementProcessing() - { - processElement = false; - } - /** - * Cancels processing of the corresponding WSDL message. - */ - public void cancelMessageProcessing() - { - processMessage = false; - } - /** - * Cancels processing of the corresponding WSDL port. - */ - public void cancelPortProcessing() - { - processPort = false; - } - /** - * Cancels processing of the corresponding WSDL port type. - */ - public void cancelPortTypeProcessing() - { - processPortType = false; - } - /** - * Cancels processing of the corresponding WSDL definition. - */ - public void cancelDefinitionProcessing() - { - processDefinition = false; - } - /** - * Cancels processing of the corresponding WSDL extensibility element. - */ - public void cancelExtensibilityElementProcessing() - { - processExtensibilityElement = false; - } - /** - * Cancels processing of the corresponding WSDL SOAP binding. - */ - public void cancelSOAPBindingProcessing() - { - processSOAPBinding = false; - } - /** - * Cancels processing of the corresponding WSDL SOAP header. - */ - public void cancelSOAPHeaderProcessing() - { - processSOAPHeader = false; - } - /** - * Cancels processing of the corresponding WSDL SOAP header fault. - */ - public void cancelSOAPHeaderFaultProcessing() - { - processSOAPHeaderFault = false; - } - /** - * Cancels processing of the corresponding WSDL SOAP fault. - */ - public void cancelSOAPFaultProcessing() - { - processSOAPFault = false; - } - /** - * Cancels processing of the corresponding WSDL operation. - */ - public void cancelSOAPOperationProcessing() - { - processSOAPOperation = false; - } - - /** - * Cancels WSDL elements processing. - */ - public void cancelProcessing() - { - cancelPartProcessing(); - cancelServiceProcessing(); - cancelTypesProcessing(); - cancelOperationProcessing(); - cancelInputProcessing(); - cancelOutputProcessing(); - cancelFaultProcessing(); - cancelBindingProcessing(); - cancelBindingOperationProcessing(); - cancelBindingInputProcessing(); - cancelBindingOutputProcessing(); - cancelBindingFaultProcessing(); - cancelImportProcessing(); - cancelElementProcessing(); - cancelMessageProcessing(); - cancelPortProcessing(); - cancelPortTypeProcessing(); - cancelDefinitionProcessing(); - cancelExtensibilityElementProcessing(); - cancelSOAPBindingProcessing(); - cancelSOAPHeaderProcessing(); - cancelSOAPHeaderFaultProcessing(); - cancelSOAPFaultProcessing(); - cancelSOAPOperationProcessing(); - } - - /** - * Resumes processing of the corresponding WSDL part. - */ - public void resumePartProcessing() - { - processPart = true; - } - /** - * Resumes processing of the corresponding WSDL service. - */ - public void resumeServiceProcessing() - { - processService = true; - } - /** - * Resumes processing of the corresponding WSDL types. - */ - public void resumeTypesProcessing() - { - processTypes = true; - } - /** - * Resumes processing of the corresponding WSDL operation. - */ - public void resumeOperationProcessing() - { - processOperation = true; - } - /** - * Resumes processing of the corresponding WSDL input. - */ - public void resumeInputProcessing() - { - processInput = true; - } - /** - * Resumes processing of the corresponding WSDL output. - */ - public void resumeOutputProcessing() - { - processOutput = true; - } - /** - * Resumes processing of the corresponding WSDL fault. - */ - public void resumeFaultProcessing() - { - processFault = true; - } - /** - * Resumes processing of the corresponding WSDL binding. - */ - public void resumeBindingProcessing() - { - processBinding = true; - } - /** - * Resumes processing of the corresponding WSDL binding operation. - */ - public void resumeBindingOperationProcessing() - { - processBindingOperation = true; - } - /** - * Resumes processing of the corresponding WSDL binding input. - */ - public void resumeBindingInputProcessing() - { - processBindingInput = true; - } - /** - * Resumes processing of the corresponding WSDL binding output. - */ - public void resumeBindingOutputProcessing() - { - processBindingOutput = true; - } - /** - * Resumes processing of the corresponding WSDL binding fault. - */ - public void resumeBindingFaultProcessing() - { - processBindingFault = true; - } - /** - * Resumes processing of the corresponding WSDL import. - */ - public void resumeImportProcessing() - { - processImport = true; - } - /** - * Resumes processing of the corresponding WSDL element. - */ - public void resumeElementProcessing() - { - processElement = true; - } - /** - * Resumes processing of the corresponding WSDL message. - */ - public void resumeMessageProcessing() - { - processMessage = true; - } - /** - * Resumes processing of the corresponding WSDL port. - */ - public void resumePortProcessing() - { - processPort = true; - } - /** - * Resumes processing of the corresponding WSDL port type. - */ - public void resumePortTypeProcessing() - { - processPortType = true; - } - /** - * Resumes processing of the corresponding WSDL definition. - */ - public void resumeDefinitionProcessing() - { - processDefinition = true; - } - /** - * Resumes processing of the corresponding WSDL extensibility element. - */ - public void resumeExtensibilityElementProcessing() - { - processExtensibilityElement = true; - } - /** - * Resumes processing of the corresponding WSDL SOAP binding. - */ - public void resumeSOAPBindingProcessing() - { - processSOAPBinding = true; - } - /** - * Resumes processing of the corresponding WSDL SOAP header. - */ - public void resumeSOAPHeaderProcessing() - { - processSOAPHeader = true; - } - /** - * Resumes processing of the corresponding WSDL SOAP header fault. - */ - public void resumeSOAPHeaderFaultProcessing() - { - processSOAPHeaderFault = true; - } - /** - * Resumes processing of the corresponding WSDL SOAP fault. - */ - public void resumeSOAPFaultProcessing() - { - processSOAPFault = true; - } - /** - * Resumes processing of the corresponding WSDL SOAP operation. - */ - public void resumeSOAPOperationProcessing() - { - processSOAPOperation = true; - } - /** - * Indicates whether the corresponding WSDL part should be processed. - * @return true if the corresponding WSDL part should be processed. - */ - public boolean processPart() - { - return processPart; - } - /** - * Indicates whether the corresponding WSDL service should be processed. - * @return true if the corresponding WSDL service should be processed. - */ - public boolean processService() - { - return processService; - } - /** - * Indicates whether the corresponding WSDL types should be processed. - * @return true if the corresponding WSDL types should be processed. - */ - public boolean processTypes() - { - return processTypes; - } - /** - * Indicates whether the corresponding WSDL operation should be processed. - * @return true if the corresponding WSDL operation should be processed. - */ - public boolean processOperation() - { - return processOperation; - } - /** - * Indicates whether the corresponding WSDL input should be processed. - * @return true if the corresponding WSDL input should be processed. - */ - public boolean processInput() - { - return processInput; - } - /** - * Indicates whether the corresponding WSDL output should be processed. - * @return true if the corresponding WSDL output should be processed. - */ - public boolean processOutput() - { - return processOutput; - } - /** - * Indicates whether the corresponding WSDL fault should be processed. - * @return true if the corresponding WSDL fault should be processed. - */ - public boolean processFault() - { - return processFault; - } - /** - * Indicates whether the corresponding WSDL binding should be processed. - * @return true if the corresponding WSDL binding should be processed. - */ - public boolean processBinding() - { - return processBinding; - } - /** - * Indicates whether the corresponding WSDL binding operation should be processed. - * @return true if the corresponding WSDL binding operation should be processed. - */ - public boolean processBindingOperation() - { - return processBindingOperation; - } - /** - * Indicates whether the corresponding WSDL binding input should be processed. - * @return true if the corresponding WSDL binding input should be processed. - */ - public boolean processBindingInput() - { - return processBindingInput; - } - /** - * Indicates whether the corresponding WSDL binding output should be processed. - * @return true if the corresponding WSDL binding output should be processed. - */ - public boolean processBindingOutput() - { - return processBindingOutput; - } - /** - * Indicates whether the corresponding WSDL binding fault should be processed. - * @return true if the corresponding WSDL binding fault should be processed. - */ - public boolean processBindingFault() - { - return processBindingFault; - } - /** - * Indicates whether the corresponding WSDL import should be processed. - * @return true if the corresponding WSDL import should be processed. - */ - public boolean processImport() - { - return processImport; - } - /** - * Indicates whether the corresponding WSDL element should be processed. - * @return true if the corresponding WSDL element should be processed. - */ - public boolean processElement() - { - return processElement; - } - /** - * Indicates whether the corresponding WSDL message should be processed. - * @return true if the corresponding WSDL message should be processed. - */ - public boolean processMessage() - { - return processMessage; - } - /** - * Indicates whether the corresponding WSDL port should be processed. - * @return true if the corresponding WSDL port should be processed. - */ - public boolean processPort() - { - return processPort; - } - /** - * Indicates whether the corresponding WSDL port type should be processed. - * @return true if the corresponding WSDL port type should be processed. - */ - public boolean processPortType() - { - return processPortType; - } - /** - * Indicates whether the corresponding WSDL definition should be processed. - * @return true if the corresponding WSDL definition should be processed. - */ - public boolean processDefinition() - { - return processDefinition; - } - /** - * Indicates whether the corresponding WSDL extensibility element should be processed. - * @return true if the corresponding WSDL extensibility element should be processed. - */ - public boolean processExtensibilityElement() - { - return processExtensibilityElement; - } - /** - * Indicates whether the corresponding WSDL SOAP binding should be processed. - * @return true if the corresponding WSDL SOAP binding should be processed. - */ - public boolean processSOAPBinding() - { - return processSOAPBinding; - } - /** - * Indicates whether the corresponding WSDL SOAP header should be processed. - * @return true if the corresponding WSDL SOAP header should be processed.n - */ - public boolean processSOAPHeader() - { - return processSOAPHeader; - } - /** - * Indicates whether the corresponding WSDL SOAP header fault should be processed. - * @return true if the corresponding WSDL SOA header fault should be processed. - */ - public boolean processSOAPHeaderFault() - { - return processSOAPHeaderFault; - } - /** - * Indicates whether the corresponding WSDL SOAP fault should be processed. - * @return true if the corresponding WSDL SOAP fault should be processed. - */ - public boolean processSOAPFault() - { - return processSOAPFault; - } - /** - * Indicates whether the corresponding WSDL operation should be processed. - * @return true if the corresponding WSDL operation should be processed. - */ - public boolean processSOAPOperation() - { - return processSOAPOperation; - } - /** - * Sets WSDL part to be processed. - * @param value the WSDL part to be processed. - */ - void setPart(Part value) - { - activePart = value; - } - /** - * Gets last processed WSDL part. - * @return the last processed WSDL part. - */ - public Part getPart() - { - return activePart; - } - /** - * Sets WSDL service to be processed. - * @param value the WSDL service to be processed. - */ - void setService(Service value) - { - activeService = value; - } - /** - * Gets last processed WSDL service. - * @return the last processed WSDL service. - */ - public Service getService() - { - return activeService; - } - /** - * Sets WSDL types to be processed. - * @param value the WSDL types to be processed. - */ - void setTypes(Types value) - { - activeTypes = value; - } - /** - * Gets last processed WSDL types. - * @return the last processed WSDL types. - */ - public Types getTypes() - { - return activeTypes; - } - /** - * Sets WSDL operation to be processed. - * @param value the WSDL operation to be processed. - */ - void setOperation(Operation value) - { - activeOperation = value; - } - /** - * Gets last processed WSDL operation. - * @return the last processed WSDL operation. - */ - public Operation getOperation() - { - return activeOperation; - } - /** - * Sets WSDL input to be processed - * @param the WSDL input to be processed. - */ - void setInput(Input value) - { - activeInput = value; - } - /** - * Gets last processed WSDL input. - * @return last processed WSDL input. - */ - public Input getInput() - { - return activeInput; - } - /** - * Sets WSDL output to be processed. - * @param value the WSDL output to be processed. - */ - void setOutput(Output value) - { - activeOutput = value; - } - /** - * Gets last processed WSDL output. - * @return the last processed WSDL output. - */ - public Output getOutput() - { - return activeOutput; - } - /** - * Sets WSDL fault to be processed. - * @param value the WSDL fault to be processed. - */ - void setFault(Fault value) - { - activeFault = value; - } - /** - * Gets last processed WSDL fault. - * @return the last processed WSDL fault. - */ - public Fault getFault() - { - return activeFault; - } - /** - * Sets WSDL binding to be processed. - * @param value the WSDL binding to be processed. - */ - void setBinding(Binding value) - { - activeBinding = value; - } - /** - * Gets last processed WSDL binding. - * @return the last processed WSDL binding. - */ - public Binding getBinding() - { - return activeBinding; - } - /** - * Sets WSDL binding operation to be processed. - * @param value the SDL binding operation to be processed. - */ - void setBindingOperation(BindingOperation value) - { - activeBindingOperation = value; - } - /** - * Gets last processed WSDL binding operation. - * @return the last processed WSDL binding operation. - */ - public BindingOperation getBindingOperation() - { - return activeBindingOperation; - } - /** - * Sets WSDL binding input to be processed. - * @param value the WSDL binding input to be processed. - */ - void setBindingInput(BindingInput value) - { - activeBindingInput = value; - } - /** - * Gets last processed WSDL binding input. - * @return the last processed WSDL binding input. - */ - public BindingInput getBindingInput() - { - return activeBindingInput; - } - /** - * Sets WSDL binding output to be processed. - * @param value the WSDL binding output to be processed. - */ - void setBindingOutput(BindingOutput value) - { - activeBindingOutput = value; - } - /** - * Gets last processed WSDL binding output. - * @return the last processed WSDL binding output. - */ - public BindingOutput getBindingOutput() - { - return activeBindingOutput; - } - /** - * Sets WSDL binding fault to be processed. - * @param value the WSDL binding fault to be processed. - */ - void setBindingFault(BindingFault value) - { - activeBindingFault = value; - } - /** - * Gets last processed WSDL binding fault. - * @return the last processed WSDL binding fault. - */ - public BindingFault getBindingFault() - { - return activeBindingFault; - } - /** - * Sets WSDL import to be processed. - * @param value the WSDL import to be processed. - */ - void setImport(Import value) - { - activeImport = value; - } - /** - * Gets last processed WSDL import. - * @return the last processed WSDL import. - */ - public Import getImport() - { - return activeImport; - } - /** - * Sets WSDL element to be processed. - * @param value the WSDL element to be processed. - */ - void setElement(Element value) - { - activeElement = value; - } - /** - * Gets last processed WSDL element. - * @return the last processed WSDL element. - */ - public Element getElement() - { - return activeElement; - } - /** - * Sets WSDL message to be processed. - * @param value the WSDL message to be processed. - */ - void setMessage(Message value) - { - activeMessage = value; - } - /** - * Gets last processed WSDL message. - * @return the last processed WSDL message. - */ - public Message getMessage() - { - return activeMessage; - } - /** - * Sets WSDL port to be processed. - * @param value the WSDL port to be processed. - */ - void setPort(Port value) - { - activePort = value; - } - /** - * Gets last processed WSDL port. - * @return the last processed WSDL port. - */ - public Port getPort() - { - return activePort; - } - /** - * Sets WSDL port type to be processed. - * @param value the WSDL port type to be processed. - */ - void setPortType(PortType value) - { - activePortType = value; - } - /** - * Gets last processed WSDL port type. - * @return the last processed WSDL port type. - */ - public PortType getPortType() - { - return activePortType; - } - /** - * Sets WSDL definition to be processed. - * @param value the WSDL definition to be processed. - */ - void setDefinition(Definition value) - { - activeDefinition = value; - } - /** - * Gets last processed WSDL definition. - * @return the last processed WSDL definition. - */ - public Definition getDefinition() - { - return activeDefinition; - } - /** - * Sets WSDL extensibility element to be processed. - * @param value the WSDL extensibility element to be processed. - */ - void setExtensibilityElement(ExtensibilityElement value) - { - activeExtensibilityElement = value; - } - /** - * Gets last processed WSDL extensibility element. - * @return the last processed WSDL extensibility element. - */ - public ExtensibilityElement getExtensibilityElement() - { - return activeExtensibilityElement; - } - /** - * Sets WSDL element to be processed. - * @param value the WSDL element to be processed. - */ - void setSOAPBinding(SOAPBinding value) - { - activeSOAPBinding = value; - } - /** - * Gets last processed WSDL SOAP binding. - * @return the last processed WSDL SOAP binding. - */ - public SOAPBinding getSOAPBinding() - { - return activeSOAPBinding; - } - /** - * Sets WSDL element to be processed. - * @param value WSDL element to be processed. - */ - void setSOAPBody(SOAPBody value) - { - activeSOAPBody = value; - } - /** - * Gets last processed WSDL SOAP body. - * @return the last processed WSDL SOAP body. - */ - public SOAPBody getSOAPBody() - { - return activeSOAPBody; - } - /** - * Sets WSDL element to be processed. - * @param value the WSDL element to be processed. - */ - void setSOAPHeader(SOAPHeader value) - { - activeSOAPHeader = value; - } - /** - * Gets last processed WSDL SOAP header. - * @return the last processed WSDL SOAP header. - */ - public SOAPHeader getSOAPHeader() - { - return activeSOAPHeader; - } - /** - * Sets WSDL element to be processed. - * @param value the WSDL element to be processed. - */ - void setSOAPHeaderFault(SOAPHeaderFault value) - { - activeSOAPHeaderFault = value; - } - /** - * Gets last processed WSDL SOAP header fault. - * @return the last processed WSDL SOAP header fault. - */ - public SOAPHeaderFault getSOAPHeaderFault() - { - return activeSOAPHeaderFault; - } - /** - * Sets WSDL element to be processed. - * @param value the WSDL element to be processed. - */ - void setSOAPFault(SOAPFault value) - { - activeSOAPFault = value; - } - /** - * Gets last processed WSDL SOAP fault. - * @return the last processed WSDL SOAP fault. - */ - public SOAPFault getSOAPFault() - { - return activeSOAPFault; - } - /** - * Sets WSDL element to be processed. - * @param value theWSDL element to be processed - */ - void setSOAPOperation(SOAPOperation value) - { - activeSOAPOperation = value; - } - /** - * Gets last processed WSDL SOAP operation. - * @return the last processed WSDL SOAP operation. - */ - public SOAPOperation getSOAPOperation() - { - return activeSOAPOperation; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/traversal/WSDLVisitor.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/traversal/WSDLVisitor.java deleted file mode 100644 index ab95d7ad7..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/traversal/WSDLVisitor.java +++ /dev/null @@ -1,233 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.wsdl.traversal; - -import javax.wsdl.Binding; -import javax.wsdl.BindingFault; -import javax.wsdl.BindingInput; -import javax.wsdl.BindingOperation; -import javax.wsdl.BindingOutput; -import javax.wsdl.Definition; -import javax.wsdl.Fault; -import javax.wsdl.Import; -import javax.wsdl.Input; -import javax.wsdl.Message; -import javax.wsdl.Operation; -import javax.wsdl.Output; -import javax.wsdl.Part; -import javax.wsdl.Port; -import javax.wsdl.PortType; -import javax.wsdl.Service; -import javax.wsdl.Types; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.soap.SOAPBinding; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPFault; -import javax.wsdl.extensions.soap.SOAPHeader; -import javax.wsdl.extensions.soap.SOAPHeaderFault; -import javax.wsdl.extensions.soap.SOAPOperation; - -import org.w3c.dom.Element; - -/** - * The interface defines callback methods during traverse WSDL. - * WSDLVisitor could cancel artifact processing by using traversal context - * <code>cancelXXXProcessing</code> methods. - * - * @author Kulik - */ -public interface WSDLVisitor -{ - /** - * Method visits WSDL part object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit(Part obj, Object parent, WSDLTraversalContext ctx); - /** - * Method visits WSDL service object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit(Service obj, Object parent, WSDLTraversalContext ctx); - /** - * Method visits WSDL types object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit(Types obj, Object parent, WSDLTraversalContext ctx); - /** - * Method visits WSDL operation object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit(Operation obj, Object parent, WSDLTraversalContext ctx); - /** - * Method visits WSDL input object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit(Input obj, Object parent, WSDLTraversalContext ctx); - /** - * Method visits WSDL output object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit(Output obj, Object parent, WSDLTraversalContext ctx); - /** - * Method visits WSDL fault object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit(Fault obj, Object parent, WSDLTraversalContext ctx); - /** - * Method visits WSDL binding object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit(Binding obj, Object parent, WSDLTraversalContext ctx); - /** - * Method visits WSDL binding operation object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit( - BindingOperation obj, - Object parent, - WSDLTraversalContext ctx); - /** - * Method visits WSDL binding input object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit(BindingInput obj, Object parent, WSDLTraversalContext ctx); - /** - * Method visits WSDL binding output object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit(BindingOutput obj, Object parent, WSDLTraversalContext ctx); - /** - * Method visits WSDL binding fault object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit(BindingFault obj, Object parent, WSDLTraversalContext ctx); - /** - * Method visits WSDL import object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit(Import obj, Object parent, WSDLTraversalContext ctx); - /** - * Method visits WSDL element object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit(Element obj, Object parent, WSDLTraversalContext ctx); - /** - * Method visits WSDL message object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit(Message obj, Object parent, WSDLTraversalContext ctx); - /** - * Method visits WSDL port object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit(Port obj, Object parent, WSDLTraversalContext ctx); - /** - * Method visits WSDL port type object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit(PortType obj, Object parent, WSDLTraversalContext ctx); - /** - * Method visits WSDL definition object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit(Definition obj, Object parent, WSDLTraversalContext ctx); - /** - * Method visits WSDL extensibility element object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit( - ExtensibilityElement obj, - Object parent, - WSDLTraversalContext ctx); - /** - * Method visits WSDL SOAP binding object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit(SOAPBinding obj, Object parent, WSDLTraversalContext ctx); - /** - * Method visits WSDL SOAP body object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit(SOAPBody obj, Object parent, WSDLTraversalContext ctx); - /** - * Method visits WSDL SOAP header object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit(SOAPHeader obj, Object parent, WSDLTraversalContext ctx); - /** - * Method visits WSDL SOAP header fault object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit( - SOAPHeaderFault obj, - Object parent, - WSDLTraversalContext ctx); - /** - * Method visits WSDL SOAP fault object. - * @param obj WSDL element to be visited. - * @param parent WSDL element. - * @param ctx current traversal context. - */ - public void visit(SOAPFault obj, Object parent, WSDLTraversalContext ctx); - /** - * Method visits WSDL SOAP operation object. - * @param obj WSDL element to be visited. - * @param parent WSDL element.. - * @param ctx current traversal context. - */ - public void visit(SOAPOperation obj, Object parent, WSDLTraversalContext ctx); -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/FileEntityResolver.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/FileEntityResolver.java deleted file mode 100644 index bdafbd9b5..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/FileEntityResolver.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.wsdl.xsd; - -import java.io.IOException; -import java.io.InputStream; -import org.apache.xerces.xni.XMLResourceIdentifier; -import org.apache.xerces.xni.XNIException; -import org.apache.xerces.xni.parser.XMLEntityResolver; -import org.apache.xerces.xni.parser.XMLInputSource; - -/** - * Entity resolve to resolve file entities. - */ -public class FileEntityResolver implements XMLEntityResolver -{ - - /** - * @see org.apache.xerces.xni.parser.XMLEntityResolver#resolveEntity(org.apache.xerces.xni.XMLResourceIdentifier) - */ - public XMLInputSource resolveEntity(XMLResourceIdentifier resource) throws XNIException, IOException - { - String publicId = resource.getPublicId(); - String systemId = resource.getExpandedSystemId(); - String url = systemId; - if(url == null) - { - url = publicId; - } - if(url == null) - { - url = resource.getNamespace(); - } - if(url != null) - { - InputStream is = new LazyURLInputStream(url); - return new XMLInputSource(publicId, systemId, systemId, is, null); - } - return null; - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/InlineSchemaGenerator.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/InlineSchemaGenerator.java deleted file mode 100644 index d4bec3d8e..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/InlineSchemaGenerator.java +++ /dev/null @@ -1,590 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 2009 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.wsdl.xsd; - -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.Iterator; -import java.util.List; -import java.util.Vector; - -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -import com.ibm.wsdl.extensions.schema.SchemaConstants; - -/** - * Generate a String representation of a schema for an inline schema. Will add imports for unresolved - * namespaces. - * - * @author Lawrence Mandel, IBM - */ -public class InlineSchemaGenerator -{ - protected final String SOAP_ENCODING_URI = "http://schemas.xmlsoap.org/soap/encoding/"; - protected final String XMLNS = "xmlns"; - protected final String TARGETNAMESPACE = "targetNamespace"; - protected final String NAMESPACE = "namespace"; - protected final String IMPORT = "import"; - protected final String INCLUDE = "include"; - protected final String SCHEMA = "schema"; - protected final String SCHEMALOCATION = "schemaLocation"; - protected final String TYPE = "type"; - protected final String NAME = "name"; - protected final String[] ignoreNamespaces = - { SchemaConstants.NS_URI_XSD_1999, SchemaConstants.NS_URI_XSD_2000, SchemaConstants.NS_URI_XSD_2001 }; - - protected static InlineSchemaGenerator instance = null; - - /** - * Constructor. - */ - protected InlineSchemaGenerator() - { - } - - /** - * Get the instance of the InlineSchemaGenerator. - * - * @return The instance of the inline schema generator. - */ - protected static InlineSchemaGenerator getInstance() - { - if (instance == null) - { - instance = new InlineSchemaGenerator(); - } - return instance; - } - - /** - * Create a string representation of a schema from the element provided. - * - * @param element The root element of the schema. - * @param elements A list of the elements in the schema in order. - * @param filelocation The URI of the file that contains the schema. - * @return A string representation of a schema. - */ - public static String createXSDString(Element element, List elements, String filelocation) - { - return InlineSchemaGenerator.createXSDString(element, elements, filelocation, new Hashtable()); - } - - /** - * Creates a String representing the schema model with the root element of - * extElem. Calls createXSDStringRecursively to take care of building the String - * after it obtains the Element from the UnknownExtensibilityElement. - * - * @param element The root element of the schema. - * @param elements A list to contain the elements in the schema in order. - * @param filelocation The location of the file the schema is located in. - * @param parentNSs A hashtable of parent namespaces to used to resolve prefixes. - * @return A string representation of the schema with the root element 'element'. - */ - public static String createXSDString(Element element, List elements, String filelocation, Hashtable parentNSs) - { - InlineSchemaGenerator schemaGenerator = InlineSchemaGenerator.getInstance(); - Hashtable nsResolver = schemaGenerator.getNSResolver(element); - List reqns = schemaGenerator.getRequiredNamespaces(element); - Hashtable reqNSDecl = schemaGenerator.resolveNamespaces(reqns, nsResolver, parentNSs); - //Hashtable reqNSDecl = schemaGenerator.getRequiredNSDeclarations(reqns, nsResolver, parentNSs); - List importNS = schemaGenerator.getImportNamespaces(element); - reqns = schemaGenerator.removeImports(reqns, importNS); - reqns = schemaGenerator.removeLocalNamespaces(reqns, element); - return schemaGenerator.createXSDStringRecursively(element, elements, reqns, reqNSDecl, filelocation); - } - /** - * Returns true if the SOAP encoding namespace is required but not imported. - * - * @param element The root element of the schema. - * @param filelocation The location of the file containing the schema. - * @param parentNSs A hashtable of the parent namespaces. - * @return True if the soap encoding namespace is required but not imported, false otherwise. - */ - public static boolean soapEncodingRequiredNotImported(Element element, String filelocation, Hashtable parentNSs) - { - InlineSchemaGenerator schemaGenerator = InlineSchemaGenerator.getInstance(); - Hashtable nsResolver = schemaGenerator.getNSResolver(element); - List reqns = null; - - reqns = schemaGenerator.getRequiredNamespaces(element); - schemaGenerator.resolveNamespaces(reqns, nsResolver, parentNSs); - //schemaGenerator.resolveUndeclaredNamespaces(reqns, parentNSs); - List importNS = schemaGenerator.getImportNamespaces(element); - reqns = schemaGenerator.removeImports(reqns, importNS); - reqns = schemaGenerator.removeLocalNamespaces(reqns, element); - - return schemaGenerator.checkSOAPEncodingRequired(reqns); - } - - /** - * This recursive method creates the schema String from the root Element. - * - * @param elem The root element of the schema. - * @param elements A list to be created of the elements in the schema in order. - * @param requiredNamespaces A list of required namespaces. - * @param reqNSDecl A hashtable of required namespace declarations. - * @param filelocation The uri of the file that contains this schema. - * @return A string representation of this schema. - */ - protected String createXSDStringRecursively( - Element elem, - List elements, - List requiredNamespaces, - Hashtable reqNSDecl, - String filelocation) - { - if (elem == null) - return ""; // just in case - - elements.add(elem); - - StringBuffer xsdString = new StringBuffer(); - String elementName = elem.getTagName(); - xsdString.append("<").append(elementName); - - boolean foundSchemaLocation = false; // flag if schemalocation is defined - String namespace = ""; // the namespace if we're checking an import or include - String namePrefix = ""; // the xmlns prefix used for the elements - // Get all of the attributes for this element and append them to the xsdString - NamedNodeMap atts = elem.getAttributes(); - for (int i = 0; i < atts.getLength(); i++) - { - Node n = atts.item(i); - xsdString.append(" ").append(n.getNodeName()).append("=\""); - String nodeName = n.getNodeName(); - if (nodeName.equalsIgnoreCase(SCHEMALOCATION) && filelocation != null) - { - foundSchemaLocation = true; - String relativePath = n.getNodeValue(); - xsdString.append(relativePath).append("\""); - } - else - { - String nodeValue = n.getNodeValue(); - if (nodeName.equalsIgnoreCase(NAMESPACE)) - { - namespace = nodeValue; - } - // get the name prefix for this schema to use in generating import statements - else if (nodeName.indexOf(XMLNS) != -1) - { - - if (nodeValue.equalsIgnoreCase(elem.getNamespaceURI())) - { - namePrefix = nodeName; - if (namePrefix.equalsIgnoreCase(XMLNS)) - { - namePrefix = ""; - } - else - { - namePrefix = namePrefix.substring(6) + ":"; - } - } - } - // Replace old schema namespaces with the new schema namespace. - if(nodeValue.equals(SchemaConstants.NS_URI_XSD_1999) || nodeValue.equals(SchemaConstants.NS_URI_XSD_2000)) - { - nodeValue = SchemaConstants.NS_URI_XSD_2001; - } - xsdString.append(nodeValue).append("\""); - } - } - if (elementName.equalsIgnoreCase("import") && !foundSchemaLocation) - { - xsdString.append(" ").append(SCHEMALOCATION).append("=\"").append(namespace).append("\""); - } - // add in any required NS declarations from parent elements - if (reqNSDecl != null) - { - Enumeration keys = reqNSDecl.keys(); - while (keys.hasMoreElements()) - { - String key = (String)keys.nextElement(); - String declNS = (String)reqNSDecl.get(key); - if(declNS.equals(SchemaConstants.NS_URI_XSD_1999) || declNS.equals(SchemaConstants.NS_URI_XSD_2000)) - { - declNS = SchemaConstants.NS_URI_XSD_2001; - } - xsdString.append(" ").append(key).append("=\"").append(declNS).append("\""); - } - - } - xsdString.append(">"); - if (requiredNamespaces != null) - { - Iterator iRequiredNamespaces = requiredNamespaces.iterator(); - while (iRequiredNamespaces.hasNext()) - { - String ns = (String)iRequiredNamespaces.next(); - - xsdString - .append("<") - .append(namePrefix) - .append(IMPORT) - .append(" ") - .append(NAMESPACE) - .append("=\"") - .append(ns) - .append("\" ") - .append(SCHEMALOCATION) - .append("=\"") - .append(ns) - .append("\"/>"); - } - - } - xsdString.append("\n"); - - // call the method recursively for each child element - NodeList childNodes = elem.getChildNodes(); - - for (int i = 0; i < childNodes.getLength() || i < 5; i++) - { - Node n = childNodes.item(i); - // we only want nodes that are Elements - if (n instanceof Element) - { - Element child = (Element)n; - xsdString.append(createXSDStringRecursively(child, elements, null, null, filelocation)); - } - } - - xsdString.append("</").append(elem.getTagName()).append(">"); - - return xsdString.toString(); - - } - /** - * Get a list of all the namespaces that are used for elements or types in the schema. - * These are the required namespaces in order to ensure that all the elments are valid. - * - * @param elem The element to check for required namespaces. - * @return A list of required namespaces for the element and all its children. - */ - protected List getRequiredNamespaces(Element elem) - { - List namespace = new Vector(); - - // call the method recursively for each child element - // register all the child types first - NodeList childNodes = elem.getChildNodes(); - int numChildren = childNodes.getLength(); - // TODO: why is there a < 5 condition? - for (int i = 0; i < numChildren /*|| i < 5*/; i++) - { - Node n = childNodes.item(i); - // we only want nodes that are Elements - if (n instanceof Element) - { - Element child = (Element)n; - List childns = getRequiredNamespaces(child); - for (int j = childns.size() - 1; j >= 0; j--) - { - String ns = (String)childns.get(j); - - if (!namespace.contains(ns)) - { - namespace.add(ns); - } - } - } - } - // Add the namespace of the current element - String elemNS = elem.getPrefix(); - // if there is no namespace prefix set it to the empty prefix. - if(elemNS == null) - { - elemNS = ""; - } - if (!namespace.contains(elemNS.intern())) - { - namespace.add(elemNS.intern()); - } - // now add all of the current element's namespaces - // don't include import and schema elements - String localname = elem.getLocalName(); - if (!localname.equals(IMPORT) && !localname.equals(INCLUDE) && !localname.equals(SCHEMA)) - { - NamedNodeMap atts = elem.getAttributes(); - for (int i = 0; i < atts.getLength(); i++) - { - Node n = atts.item(i); - - String nodeName = n.getNodeName(); - // removed restriction that we're only looking at types - // if (nodeName.equalsIgnoreCase(TYPE)) - // { - // don't take namespace info from attributes defining namespaces. - // that includes xmlns, targetNamespace - // don't take namespace info from name attributes - if (nodeName.indexOf(XMLNS) != -1 || nodeName.equals(TARGETNAMESPACE) || nodeName.equals(NAME)) - { - continue; - } - String nodeValue = n.getNodeValue(); - - - int colonIndex = nodeValue.indexOf(":"); - // Don't take namespace info from attributes with the default namespace, that is attributes - // that are not prefixed. (colonIndex == -1) - // If the colonIndex is followed by a / then it is a URI and not - // namespace qualified. - if (colonIndex == -1 || nodeValue.charAt(colonIndex + 1) == '/') - { - continue; - } - // here we have found a colon delimiter so we need the namespace defined here - else - { - nodeValue = nodeValue.substring(0, colonIndex); - } - if (!namespace.contains(nodeValue.intern())) - { - - namespace.add(nodeValue.intern()); - } - // } - } - } - - return namespace; - - } - - /** - * Get a list of all the namespaces that have an import statement. - * - * @param elem The root element of the schema. - * @return A list of all the namespaces that are imported. - */ - protected List getImportNamespaces(Element elem) - { - List namespace = new Vector(); - - // call the method recursively for each child element - // register all the child types first - NodeList childNodes = elem.getChildNodes(); - - for (int i = 0; i < childNodes.getLength() || i < 5; i++) - { - Node n = childNodes.item(i); - // we only want nodes that are Elements - if (n instanceof Element) - { - Element child = (Element)n; - List childns = getImportNamespaces(child); - for (int j = childns.size() - 1; j >= 0; j--) - { - String ns = (String)childns.get(j); - if (!namespace.contains(ns)) - { - namespace.add(ns); - } - } - } - } - // if this is an import element get the namespace and add it to the list - if (elem.getLocalName().equalsIgnoreCase(IMPORT)) - { - NamedNodeMap atts = elem.getAttributes(); - for (int i = 0; i < atts.getLength(); i++) - { - Node n = atts.item(i); - - String nodeName = n.getNodeName(); - if (nodeName.equalsIgnoreCase(NAMESPACE)) - { - String nodeValue = n.getNodeValue(); - if (!namespace.contains(nodeValue.intern())) - { - - namespace.add(nodeValue.intern()); - } - } - } - } - - return namespace; - - } - - /** - * Return a Hashtable with namespace prefixes as keys from the given element. - * - * @param elem The root element of the schema. - * @return A hashtable with namespace prefixes mapped to namespaces. - */ - protected Hashtable getNSResolver(Element elem) - { - Hashtable nsResolver = new Hashtable(); - - NamedNodeMap atts = elem.getAttributes(); - for (int i = 0; i < atts.getLength(); i++) - { - Node n = atts.item(i); - - String nodeName = n.getNodeName(); - if (nodeName.indexOf(XMLNS) != -1) - { - String nodeValue = n.getNodeValue(); - String namePrefix = nodeName; - - if (namePrefix.equalsIgnoreCase(XMLNS)) - { - namePrefix = ""; - } - else - { - namePrefix = namePrefix.substring(6); - } - nsResolver.put(namePrefix, nodeValue); - - } - } - return nsResolver; - - } - - /** - * Resolve the namespaces in the given namespaces list with the two namespace - * resolver hashtables provided. Return a list of all the namespace that need - * to be declared. - * First resolve against the local namespaces with nsResolver. - * Next resolve against the parent namespace with parentNSResolver. - * A side affect of this method is the namespaces list is left with only those - * namespaces that are resolved and the resolved entities are placed in the - * list instead of the original entries. - * For ex. If you provide a list such as {xsd, intf} and only xsd can be resolved - * you will end up with the list {http://www.w3.org/2001/XMLSchema} - * - * @param namespaces The list of namespaces to resolve. - * @param nsResolver The hashtable to be used as the local resolver. - * @param parentNSResolver The hashtable to be used as the parent namespace resolver. - * @return A Hashtable of namespaces that must be declared. - */ - protected Hashtable resolveNamespaces(List namespaces, Hashtable nsResolver, Hashtable parentNSResolver) - { - Hashtable reqNSDecl = new Hashtable(); - if (namespaces != null && !namespaces.isEmpty() && nsResolver != null) - { - for (int i = namespaces.size() - 1; i >= 0; i--) - { - String ns = (String)namespaces.get(i); - // Remove the namespace from the list. - namespaces.remove(i); - // First try to resolve against the local namespace resolver. - if (nsResolver.containsKey(ns)) - { - Object resolvedNS = nsResolver.get(ns); - // Only add the namespace if it's not already in the list. - if(!namespaces.contains(resolvedNS)) - { - namespaces.add(i, nsResolver.get(ns)); - } - } - // Next try to resolve against the parent namespace resolver. - else - { - if (ns.equals("")) - { - ns = XMLNS; - } - else - { - ns = XMLNS + ":" + ns; - } - if (parentNSResolver.containsKey(ns)) - { - Object resolvedNS = parentNSResolver.get(ns); - // Only add the namespace if it's not already in the list. - if(!namespaces.contains(resolvedNS)) - { - namespaces.add(i, resolvedNS); - } - // Still need to declare the namespace though. - reqNSDecl.put(ns, resolvedNS); - } - } - - } - } - return reqNSDecl; - } - - /** - * Remove any namespace from the namespaces list if it is in the import list. - * - * @param namespaces The namespaces list. - * @param importedNamespaces A list of imported namespaces. - * @return The list of namespaces without the imported namespaces. - */ - protected List removeImports(List namespaces, List importedNamespaces) - { - if (namespaces != null && importedNamespaces != null && !importedNamespaces.isEmpty()) - { - Iterator iImportedNS = importedNamespaces.iterator(); - while (iImportedNS.hasNext()) - { - String iNS = (String)iImportedNS.next(); - - namespaces.remove(iNS); - } - } - return namespaces; - } - - /** - * Remove the local namespace for the schema and the namespaces listed in the ignoreNamespaces - * list from the namespaces list provided. - * - * @param namespaces The list of local namespaces. - * @param elem The root element of the schema. - * @return The list of namespaces with the local namespaces removed. - */ - protected List removeLocalNamespaces(List namespaces, Element elem) - { - if (namespaces != null && elem != null) - { - String ns = elem.getAttribute(TARGETNAMESPACE); - namespaces.remove(ns); - - for (int i = ignoreNamespaces.length - 1; i >= 0; i--) - { - // keep removing the namespace until it is not in the list - if (namespaces.remove(ignoreNamespaces[i])) - { - i++; - } - } - } - return namespaces; - } - - /** - * Returns true if the SOAP encoding namespace is in the list of required namespaces, - * false otherwise. - * - * @param reqns The list of namespaces to check for the SOAP encoding namespace. - * @return True if the SOAP encoding namespaces is in the list, false otherwise. - */ - protected boolean checkSOAPEncodingRequired(List reqns) - { - if (reqns.contains(SOAP_ENCODING_URI)) - { - return true; - } - return false; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/InlineSchemaValidator.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/InlineSchemaValidator.java deleted file mode 100644 index b791a1708..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/InlineSchemaValidator.java +++ /dev/null @@ -1,242 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002, 2009 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.wsdl.xsd; - -import java.util.HashMap; -import java.util.Hashtable; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Vector; - -import javax.wsdl.Definition; -import javax.wsdl.Types; -import javax.wsdl.extensions.schema.Schema; - -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; - -import com.ibm.wsdl.Constants; -import com.ibm.wsdl.extensions.schema.SchemaConstants; - -/** - * Plugin validator for the WSDL Validation framework. Validates inline schema found in a WSDL document. - * - * @author Lawrence Mandel (lmandel@ca.ibm.com) - */ -public class InlineSchemaValidator -{ - List elements = null; - - - public Map validate(Object element, List parents, String filename) throws Exception - { - elements = new Vector(); - Schema elem = (Schema) element; - Definition wsdlDefinition = (Definition) parents.get(parents.size() - 1); - // Add in the namespaces defined in the doc already that aren't defined locally in this schema. - // There is no need to check for namespaces other then in the defintions and types elements as - // inline schema can not have any other parents and must have there two parents. - // First take care of the definitions element - - // create the inline schema string - Element w3celement = elem.getElement(); - Hashtable parentnamespaces = getNamespaceDeclarationsFromParents(wsdlDefinition,w3celement); - String targetNamespace = w3celement.getAttribute(Constants.ATTR_TARGET_NAMESPACE); - // if the targetNamespace hasn't been defined for the schema use the - // targetNamespace of the definitions element - /*if(targetNamespace == null || targetNamespace.equals("")) - { - targetNamespace = wsdlDefinition.getTargetNamespace(); - w3celement.setAttribute(Constants.ATTR_TARGET_NAMESPACE,targetNamespace); - }*/ - - String xsd = InlineSchemaGenerator.createXSDString(w3celement, elements, filename, parentnamespaces); - - // If the namespace given is one of the old schema namespaces produce a warning. - String namespace = w3celement.getNamespaceURI(); - if(namespace.equals(SchemaConstants.NS_URI_XSD_1999) || namespace.equals(SchemaConstants.NS_URI_XSD_2000)) - { - throw new Exception("An old version of the schema namespace is specified."); - } - - // now create and call the validator for the inline schema - XSDValidator schemav = new XSDValidator(); - - //String fileLocation = new URL(validatormanager.getFilename()).getPath(); - InlineXSDResolver inlineEntityResolver = - getEntityResolver(wsdlDefinition, (Types) parents.get(0), filename, targetNamespace); - // add in the external XSD Catalog to resolve schemas offline - XMLEntityResolverChain entityResolverChain = new XMLEntityResolverChain(); - entityResolverChain.addEntityResolver(inlineEntityResolver); - entityResolverChain.addEntityResolver(new FileEntityResolver()); - entityResolverChain.addEntityResolver(XMLCatalogResolver.getInstance()); - schemav.validateInlineSchema(xsd, targetNamespace, filename, entityResolverChain, inlineEntityResolver); - - // check if the SOAP Encoding namespace is required but not imported - if (InlineSchemaGenerator.soapEncodingRequiredNotImported(elem.getElement(), filename,parentnamespaces)) - { - throw new Exception("The inline schema uses an element or type from " - + "the SOAP encoding namespace but the namespace has not been imported. " - + "The SOAP encoding namespace should be imported with an import " - + "statement before it is used."); - } - - // If the schema isn't valid - if (!schemav.isValid()) - { - // Gathering all the errors - StringBuffer exception = new StringBuffer(); - Iterator i = schemav.getErrors().iterator(); - while (i.hasNext()) - { - exception.append(i.next()).append('\n'); - } - // throw an exception - throw new Exception(exception.toString()); - } - // if the schema is valid - else - { - Map map = new HashMap(1); - map.put(targetNamespace, schemav.getXSModel()); - return map; - } - } - - /** - * Get an entity resolver that will resolve inline schemas. Every inline schema is preregistered with - * the resolver. - * - * @param wsdlDefinition The WSDL definitions element. - * @param types The types element. - * @param referenceLocation The location of the file that contains this schema. - * @param targetNamespace The targetNamespace of the schema. - * @return An entity resolver that can resolve inline schemas. - */ - protected InlineXSDResolver getEntityResolver(Definition wsdlDefinition, Types types, String referenceLocation, String targetNamespace) - { - InlineXSDResolver entityResolver = new InlineXSDResolver(); -// entityResolver.setReferenceLocation(referenceLocation); - List schemas = types.getExtensibilityElements(); - if (schemas != null) - { - Iterator iSchemas = schemas.iterator(); - while (iSchemas.hasNext()) - { - Schema extElem = (Schema) iSchemas.next(); - String thisNamespace = extElem.getElement().getAttribute(Constants.ATTR_TARGET_NAMESPACE); - if (thisNamespace != null && !thisNamespace.equalsIgnoreCase(targetNamespace)) - { - - Element element = extElem.getElement(); - -// create the inline schema string - //Element w3celement = elem.getElement(); - Hashtable parentnamespaces = getNamespaceDeclarationsFromParents(wsdlDefinition,element); - String xsd = InlineSchemaGenerator.createXSDString(element, elements, referenceLocation, parentnamespaces); - //addNamespaceDeclarationsFromParents(wsdlDefinition,element); - entityResolver.add(thisNamespace, xsd); - } - - } - } - return entityResolver; - } - - /** - * Get the namespace declarations as in the form - * xmlns="somenamespace" - * from the definitions and types elements and add them to the schema element so the schema - * validator will have access to them. - * - * @param wsdlDefinition The WSDL definitions element. - * @param element The types element. - * @return A hashtable with the namespace elements from the elements provided. - */ - protected Hashtable getNamespaceDeclarationsFromParents(Definition wsdlDefinition, Element element) - { - Hashtable nss = new Hashtable(); - Iterator nameSpaces = wsdlDefinition.getNamespaces().keySet().iterator(); - - String XMLNS = Constants.ATTR_XMLNS; - - while (nameSpaces.hasNext()) - { - String nsprefix = XMLNS; - String ns = (String) nameSpaces.next(); - if (!ns.equalsIgnoreCase("")) - { - nsprefix += ":"; - } - if (!element.hasAttribute(nsprefix + ns)) - { - nss.put(nsprefix + ns, wsdlDefinition.getNamespace(ns)); -// element.setAttribute(nsprefix + ns, wsdlDefinition.getNamespace(ns)); - } - - } - // Next handle the parent types element - NamedNodeMap atts = element.getParentNode().getAttributes(); - int attslength = atts.getLength(); - for (int i = 0; i < attslength; i++) - { - Node tempnode = atts.item(i); - String nodename = tempnode.getNodeName(); - // if this is a namespace attribute - if (nodename.indexOf(XMLNS) != -1) - { - nss.put(nodename, tempnode.getNodeValue()); - //element.setAttribute(nodename, tempnode.getNodeValue()); - } - } - return nss; - } - - /** - * Given a line number for the schema returns the element found on that line. - * Useful for obtaining elements from schema Strings. - * - * @param line The line number for the schema. - * @return The object located at the line or at line 0 if the line is invalid. - */ - public Object getObjectAtLine(int line) - { - if(line < 0 || line >= elements.size()) - { - line = 0; - } - return elements.get(line); - } - - /** - * Replace any instance of the 2001 schema namespace in the given message with - * the given namespace. - * - * @param message The message to replace the namespace in. - * @param namespace The namespace used for replacement. - * @return The message with the 2001 schema namespace replaced by the given namespace. - */ - // private String replaceNamespace(String message, String namespace) - // { - // String xsd2001 = Constants.NS_URI_XSD_2001; - // int start = message.indexOf(xsd2001); - // int end = start + xsd2001.length(); - // if(start < 0) - // { - // return message; - // } - // String startString = message.substring(0,start); - // String endString = message.substring(end,message.length()); - // return startString + namespace + endString; - // } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/InlineXSDResolver.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/InlineXSDResolver.java deleted file mode 100644 index a9d5a7999..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/InlineXSDResolver.java +++ /dev/null @@ -1,110 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.wsdl.xsd; - -import java.io.IOException; -import java.io.StringReader; -import java.util.Hashtable; - -import org.apache.xerces.xni.XMLResourceIdentifier; -import org.apache.xerces.xni.XNIException; -import org.apache.xerces.xni.parser.XMLEntityResolver; -import org.apache.xerces.xni.parser.XMLInputSource; - -/** - * An XMLEntityResolver that allows inline schemas to resolve each other through imports. - * - * @author Lawrence Mandel (lmandel@ca.ibm.com) - */ -public class InlineXSDResolver implements XMLEntityResolver -{ - protected Hashtable entities = new Hashtable(); - protected XMLInputSource referringSchemaInputSource = null; - protected String referringSchemaNamespace = null; - - /** - * Constuctor. - */ - public InlineXSDResolver() - { - } - - /* (non-Javadoc) - * @see org.apache.xerces.xni.parser.XMLEntityResolver#resolveEntity(org.apache.xerces.xni.XMLResourceIdentifier) - */ - public XMLInputSource resolveEntity(XMLResourceIdentifier resourceIdentifier) - throws XNIException, IOException { - String systemId = resourceIdentifier.getExpandedSystemId(); - String publicId = resourceIdentifier.getPublicId(); - String namespace = resourceIdentifier.getNamespace(); - XMLInputSource is = null; - String schema = null; - if (systemId == null) - { - if(publicId == null) - { - if(namespace == null) - { - return null; - } - else - { - systemId = namespace; - } - } - else - { - systemId = publicId; - } - } - - if(referringSchemaNamespace != null && referringSchemaNamespace.equals(systemId)) - { - if(referringSchemaInputSource!=null) - { - return referringSchemaInputSource; - } - } - else if ((schema = (String) entities.get(systemId)) != null && !schema.equals("")) - { - is = new XMLInputSource(publicId, systemId, systemId,new StringReader(schema),null); - } - - //if(is == null) - //{ - // throw new IOException(); - //} - return is; - } - - /** - * Add an inline schema. - * - * @param targetNamespace - the target namespace of the schema - * @param schema - a string representation of the schema - */ - public void add(String targetNamespace, String schema) - { - entities.put(targetNamespace, schema); - } - - /** - * Add the referring inline schema. - * - * @param inputSource - a representation of the inline schema - * @param namespace - the namespace of the inline schema - */ - public void addReferringSchema(XMLInputSource inputSource, String namespace) - { - referringSchemaInputSource = inputSource; - referringSchemaNamespace = namespace; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/LazyURLInputStream.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/LazyURLInputStream.java deleted file mode 100644 index 86e2a91f2..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/LazyURLInputStream.java +++ /dev/null @@ -1,162 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ - -package org.eclipse.wst.wsi.internal.core.wsdl.xsd; -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; - - -/** - * This class allows InputStreams to be created and returned to xerces without - * actually opening file handles or network connections until it is absolutely - * neccessary. - */ -public class LazyURLInputStream extends InputStream -{ - private static int debugTotalOpenStreamCount = 0; - protected InputStream inner; - protected String url; - protected boolean error; - boolean hasMarks; - boolean pretendFileIsStillOpen; - - public LazyURLInputStream(String url) - { - this.url = url; - inner = null; - pretendFileIsStillOpen = false; - } - - private void createInnerStreamIfRequired() throws IOException - { - if (inner == null && !error) - { - debugTotalOpenStreamCount++; - //System.out.println("Creating stream (" + debugTotalOpenStreamCount + ")-- " + url); - try - { - inner = new URL(url).openStream(); - pretendFileIsStillOpen = false; - hasMarks = false; - } - finally - { - if (inner == null) - { - error = true; - } - } - } - } - - protected void closeStream() throws IOException { - if (inner != null && !pretendFileIsStillOpen) { - inner.close(); - pretendFileIsStillOpen = true; - } - } - - public int available() throws IOException - { - if (pretendFileIsStillOpen) return 0; - createInnerStreamIfRequired(); - if (inner == null) throw new IOException("Stream not available"); - return inner.available(); - } - - public void close() throws IOException - { - if (pretendFileIsStillOpen) { - // Stop behaving as if the stream were still open. - pretendFileIsStillOpen = false; - } else { - if (inner != null) { - debugTotalOpenStreamCount--; - //System.out.println("Closing stream (" + debugTotalOpenStreamCount + ") -- " + url); - inner.close(); - } - } - } - - public void mark(int readlimit) - { - if (pretendFileIsStillOpen) return; - hasMarks = true; - try { - createInnerStreamIfRequired(); - inner.mark(readlimit); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - public boolean markSupported() - { - if (pretendFileIsStillOpen) return false; - try { - createInnerStreamIfRequired(); - if (inner == null) return false; - return inner.markSupported(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return false; - } - - public int read() throws IOException - { - if (pretendFileIsStillOpen) return -1; - createInnerStreamIfRequired(); - if (inner == null) throw new IOException("Stream not available"); - int bytesRead = inner.read(); - if (bytesRead == -1 && !hasMarks) closeStream(); - return bytesRead; - } - - - public int read(byte[] b) throws IOException { - if (pretendFileIsStillOpen) return -1; - createInnerStreamIfRequired(); - if (inner == null) throw new IOException("Stream not available"); - int bytesRead = inner.read(b); - if (bytesRead == -1 && !hasMarks) closeStream(); - return bytesRead; - } - - public int read(byte[] b, int off, int len) throws IOException - { - if (pretendFileIsStillOpen) return -1; - createInnerStreamIfRequired(); - if (inner == null) throw new IOException("Stream not available"); - int bytesRead = inner.read(b, off, len); - if (bytesRead == -1 && !hasMarks) closeStream(); - return bytesRead; - } - - public void reset() throws IOException - { - if (pretendFileIsStillOpen) return; - createInnerStreamIfRequired(); - if (inner == null) throw new IOException("Stream not available"); - inner.reset(); - } - - public long skip(long n) throws IOException - { - if (pretendFileIsStillOpen) return 0; - createInnerStreamIfRequired(); - if (inner == null) throw new IOException("Stream not available"); - return inner.skip(n); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/SchemaAttributeTable.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/SchemaAttributeTable.java deleted file mode 100644 index 449762fd4..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/SchemaAttributeTable.java +++ /dev/null @@ -1,105 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.wsdl.xsd; - -import org.apache.xerces.impl.xs.SchemaSymbols; -import org.apache.xerces.util.SymbolTable; -/** - * This class will allow the calling code to see if the attribute is defined in schema. - * This serves as schema for schema. - * - * @author Lawrence Mandel (lmandel@ca.ibm.com) - */ -public class SchemaAttributeTable extends SymbolTable -{ - - /** - * Constructor. - */ - public SchemaAttributeTable() - { - // add all of the sybols to the table. SchemaSymbols probably should have - // a SymbolTable for these but it doesn't - - super.addSymbol(SchemaSymbols.ATTVAL_TWOPOUNDANY); - super.addSymbol(SchemaSymbols.ATTVAL_TWOPOUNDLOCAL); - super.addSymbol(SchemaSymbols.ATTVAL_TWOPOUNDOTHER); - super.addSymbol(SchemaSymbols.ATTVAL_TWOPOUNDTARGETNS); - super.addSymbol(SchemaSymbols.ATTVAL_POUNDALL); - super.addSymbol(SchemaSymbols.ATTVAL_FALSE_0); - super.addSymbol(SchemaSymbols.ATTVAL_TRUE_1); - super.addSymbol(SchemaSymbols.ATTVAL_ANYSIMPLETYPE); - super.addSymbol(SchemaSymbols.ATTVAL_ANYTYPE); - super.addSymbol(SchemaSymbols.ATTVAL_ANYURI); - super.addSymbol(SchemaSymbols.ATTVAL_BASE64BINARY); - super.addSymbol(SchemaSymbols.ATTVAL_BOOLEAN); - super.addSymbol(SchemaSymbols.ATTVAL_BYTE); - super.addSymbol(SchemaSymbols.ATTVAL_COLLAPSE); - super.addSymbol(SchemaSymbols.ATTVAL_DATE); - super.addSymbol(SchemaSymbols.ATTVAL_DATETIME); - super.addSymbol(SchemaSymbols.ATTVAL_DAY); - super.addSymbol(SchemaSymbols.ATTVAL_DECIMAL); - super.addSymbol(SchemaSymbols.ATTVAL_DOUBLE); - super.addSymbol(SchemaSymbols.ATTVAL_DURATION); - super.addSymbol(SchemaSymbols.ATTVAL_ENTITY); - super.addSymbol(SchemaSymbols.ATTVAL_ENTITIES); - super.addSymbol(SchemaSymbols.ATTVAL_EXTENSION); - super.addSymbol(SchemaSymbols.ATTVAL_FALSE); - super.addSymbol(SchemaSymbols.ATTVAL_FLOAT); - super.addSymbol(SchemaSymbols.ATTVAL_HEXBINARY); - super.addSymbol(SchemaSymbols.ATTVAL_ID); - super.addSymbol(SchemaSymbols.ATTVAL_IDREF); - super.addSymbol(SchemaSymbols.ATTVAL_IDREFS); - super.addSymbol(SchemaSymbols.ATTVAL_INT); - super.addSymbol(SchemaSymbols.ATTVAL_INTEGER); - super.addSymbol(SchemaSymbols.ATTVAL_LANGUAGE); - super.addSymbol(SchemaSymbols.ATTVAL_LAX); - super.addSymbol(SchemaSymbols.ATTVAL_LIST); - super.addSymbol(SchemaSymbols.ATTVAL_LONG); - super.addSymbol(SchemaSymbols.ATTVAL_NAME); - super.addSymbol(SchemaSymbols.ATTVAL_NEGATIVEINTEGER); - super.addSymbol(SchemaSymbols.ATTVAL_MONTH); - super.addSymbol(SchemaSymbols.ATTVAL_MONTHDAY); - super.addSymbol(SchemaSymbols.ATTVAL_NCNAME); - super.addSymbol(SchemaSymbols.ATTVAL_NMTOKEN); - super.addSymbol(SchemaSymbols.ATTVAL_NMTOKENS); - super.addSymbol(SchemaSymbols.ATTVAL_NONNEGATIVEINTEGER); - super.addSymbol(SchemaSymbols.ATTVAL_NONPOSITIVEINTEGER); - super.addSymbol(SchemaSymbols.ATTVAL_NORMALIZEDSTRING); - super.addSymbol(SchemaSymbols.ATTVAL_NOTATION); - super.addSymbol(SchemaSymbols.ATTVAL_OPTIONAL); - super.addSymbol(SchemaSymbols.ATTVAL_POSITIVEINTEGER); - super.addSymbol(SchemaSymbols.ATTVAL_PRESERVE); - super.addSymbol(SchemaSymbols.ATTVAL_PROHIBITED); - super.addSymbol(SchemaSymbols.ATTVAL_QNAME); - super.addSymbol(SchemaSymbols.ATTVAL_QUALIFIED); - super.addSymbol(SchemaSymbols.ATTVAL_REPLACE); - super.addSymbol(SchemaSymbols.ATTVAL_REQUIRED); - super.addSymbol(SchemaSymbols.ATTVAL_RESTRICTION); - super.addSymbol(SchemaSymbols.ATTVAL_SHORT); - super.addSymbol(SchemaSymbols.ATTVAL_SKIP); - super.addSymbol(SchemaSymbols.ATTVAL_STRICT); - super.addSymbol(SchemaSymbols.ATTVAL_STRING); - super.addSymbol(SchemaSymbols.ATTVAL_SUBSTITUTION); - super.addSymbol(SchemaSymbols.ATTVAL_TIME); - super.addSymbol(SchemaSymbols.ATTVAL_TOKEN); - super.addSymbol(SchemaSymbols.ATTVAL_TRUE); - super.addSymbol(SchemaSymbols.ATTVAL_UNBOUNDED); - super.addSymbol(SchemaSymbols.ATTVAL_UNION); - super.addSymbol(SchemaSymbols.ATTVAL_UNQUALIFIED); - super.addSymbol(SchemaSymbols.ATTVAL_UNSIGNEDBYTE); - super.addSymbol(SchemaSymbols.ATTVAL_UNSIGNEDINT); - super.addSymbol(SchemaSymbols.ATTVAL_UNSIGNEDLONG); - super.addSymbol(SchemaSymbols.ATTVAL_UNSIGNEDSHORT); - super.addSymbol(SchemaSymbols.ATTVAL_YEAR); - super.addSymbol(SchemaSymbols.ATTVAL_YEARMONTH); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/ValidateErrorHandler.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/ValidateErrorHandler.java deleted file mode 100644 index 33a73fa3d..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/ValidateErrorHandler.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.wsdl.xsd; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.xerces.xni.XNIException; -import org.apache.xerces.xni.parser.XMLErrorHandler; -import org.apache.xerces.xni.parser.XMLParseException; - -/** - * An implementation of XMLErrorHandler that captures error from Xerces. - * - * @author Lawrence Mandel (lmandel@ca.ibm.com) - */ -public class ValidateErrorHandler implements XMLErrorHandler -{ - ArrayList errorList = new ArrayList(); - - /** - * Get the error messages created by Xerces. - * - * @return The errors list. - */ - public List getErrorMessages() - { - return errorList; - } - - /** - * @see org.apache.xerces.xni.parser.XMLErrorHandler#error(java.lang.String, java.lang.String, org.apache.xerces.xni.parser.XMLParseException) - */ - public void error(String arg0, String arg1, XMLParseException exception) throws XNIException - { - errorList.add("Error: " + exception.getMessage()); - } - - /** - * @see org.apache.xerces.xni.parser.XMLErrorHandler#fatalError(java.lang.String, java.lang.String, org.apache.xerces.xni.parser.XMLParseException) - */ - public void fatalError(String arg0, String arg1, XMLParseException exception) throws XNIException - { - errorList.add("Fatal error: " + exception.getMessage()); - } - - /** - * @see org.apache.xerces.xni.parser.XMLErrorHandler#warning(java.lang.String, java.lang.String, org.apache.xerces.xni.parser.XMLParseException) - */ - public void warning(String arg0, String arg1, XMLParseException exception) throws XNIException - { - errorList.add("Warning: " + exception.getMessage()); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/XMLCatalog.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/XMLCatalog.java deleted file mode 100644 index e4afb55a8..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/XMLCatalog.java +++ /dev/null @@ -1,90 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.wsdl.xsd; - -/** - * XMLCatalog - * This class can be used to register, obtain and delete an instance of an - * XML catalog. Method definitions are provided for the catalog to set - * a location in the catalog and resolve an entity from the catalog. - * - * @author Lawrence Mandel (lmandel@ca.ibm.com) - */ -public abstract class XMLCatalog -{ - private static XMLCatalog instance = null; - private static Class xmlcatalogclass = null; - - /** - * Return an instance of the XML catalog. If no instance is registered, - * returns a default instance. - * - * @return the instance of the XML catalog - */ - public static XMLCatalog getInstance() - { - if (instance == null) - { - if (xmlcatalogclass != null) - { - try - { - instance = (XMLCatalog)xmlcatalogclass.newInstance(); - } - catch (Exception e) - { - instance = new XMLCatalogImpl(); - } - } - else - { - instance = new XMLCatalogImpl(); - } - } - return instance; - } - - /** - * Set the class of the XML catalog to be used. - * - * @param xmlcatalog - the class of the XML catalog to be used - */ - public static void setXMLCatalog(Class xmlcatalog) - { - xmlcatalogclass = xmlcatalog; - } - - /** - * Resets the instance of the XML catalog to null. Allows switching XML catalogs. - */ - public static void reset() - { - instance = null; - xmlcatalogclass = null; - } - - /** - * Add a public id and a location to the catalog. - * - * @param publicId - the public id of the entry - * @param systemId - the system id of the entry - */ - public abstract void addEntryToCatalog(String publicId, String systemId); - - /** - * Resolve the location of an entity given public and system ids. - * - * @param publicId - the public id of the entity to be resolved - * @param systemId - the system id of the entity to be resolved - * @return the location of the entity - */ - public abstract String resolveEntityLocation(String publicId, String systemId); -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/XMLCatalogImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/XMLCatalogImpl.java deleted file mode 100644 index f7c40e7ff..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/XMLCatalogImpl.java +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.wsdl.xsd; - -import java.util.Hashtable; -import java.util.Map; - -/** - * The default implementation of the XML Catalog. - * - * @author Lawrence Mandel (lmandel@ca.ibm.com) - */ -public class XMLCatalogImpl extends XMLCatalog -{ - protected Map catalog = new Hashtable(); - - /* (non-Javadoc) - * @see org.eclipse.wsdl.validate.xmlconformance.XMLCatalog#addEntryToCatalog(java.lang.String, java.lang.String) - */ - public void addEntryToCatalog(String publicId, String systemId) - { - catalog.put(publicId, systemId); - } - - /* (non-Javadoc) - * @see org.eclipse.wsdl.validate.xmlconformance.XMLCatalog#resolveEntityLocation(java.lang.String, java.lang.String) - */ - public String resolveEntityLocation(String publicId, String systemId) - { - // if there's no system id use the public id - if (systemId == null || systemId.equals("")) - { - systemId = publicId; - } - return (String)catalog.get(systemId); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/XMLCatalogResolver.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/XMLCatalogResolver.java deleted file mode 100644 index 33efdc274..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/XMLCatalogResolver.java +++ /dev/null @@ -1,67 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.wsdl.xsd; - -import java.io.IOException; -import java.io.StringReader; - -import org.apache.xerces.xni.XMLResourceIdentifier; -import org.apache.xerces.xni.XNIException; -import org.apache.xerces.xni.parser.XMLEntityResolver; -import org.apache.xerces.xni.parser.XMLInputSource; - -/** - * A resolver to resolve entities from the XML catalog. - * - * @author Lawrence Mandel (lmandel@ca.ibm.com) - */ -public class XMLCatalogResolver implements XMLEntityResolver -{ - protected static XMLCatalogResolver xmlCatalog; - - /** - * Constructor. - */ - protected XMLCatalogResolver() - { - } - - /** - * Get the instance of this resolver. - * - * @return the instance of this resolver - */ - public static XMLCatalogResolver getInstance() - { - if (xmlCatalog == null) - { - xmlCatalog = new XMLCatalogResolver(); - } - return xmlCatalog; - } - - /** - * @see org.xml.sax.EntityResolver#resolveEntity(java.lang.String, java.lang.String) - */ - public XMLInputSource resolveEntity(XMLResourceIdentifier resourceIdentifier) throws XNIException, IOException - { - String publicId = resourceIdentifier.getPublicId(); - String systemId = resourceIdentifier.getExpandedSystemId(); - String location = XMLCatalog.getInstance().resolveEntityLocation(publicId, systemId); - if (location == null) - { - XMLInputSource inputSource = new XMLInputSource(publicId, systemId, systemId, new StringReader(location), null); - return inputSource; - } - // otherwise return null to tell the parser to locate the systemId as a URI - return null; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/XMLEntityResolverChain.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/XMLEntityResolverChain.java deleted file mode 100644 index f71f8031f..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/XMLEntityResolverChain.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.wsdl.xsd; - -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Vector; - -import org.apache.xerces.xni.XMLResourceIdentifier; -import org.apache.xerces.xni.XNIException; -import org.apache.xerces.xni.parser.XMLEntityResolver; -import org.apache.xerces.xni.parser.XMLInputSource; - -/** - * Handle a chain of entity resolvers. - * - * @author Lawrence Mandel (lmandel@ca.ibm.com) - */ -public class XMLEntityResolverChain implements XMLEntityResolver -{ - private List entityResolvers = new Vector(); - - /** - * @see org.apache.xerces.xni.parser.XMLEntityResolver#resolveEntity(org.apache.xerces.xni.XMLResourceIdentifier) - */ - public XMLInputSource resolveEntity(XMLResourceIdentifier xmlResourceIdentifier) throws XNIException, IOException - { - XMLInputSource is = null; - Iterator entityResolverIter = entityResolvers.iterator(); - while (entityResolverIter.hasNext()) - { - XMLEntityResolver entityResolver = (XMLEntityResolver)entityResolverIter.next(); - try - { - is = entityResolver.resolveEntity(xmlResourceIdentifier); - } - catch (XNIException e) - { - } - catch (IOException e) - { - } - if (is != null) - { - break; - } - } - // Throw and IOException if the file isn't found - if (is == null) - { - throw new IOException("Unable to locate file"); - } - return is; - } - - /** - * Add an entity resolver to this chain. - * - * @param entityResolver The resolver to add to the chain. - */ - public void addEntityResolver(XMLEntityResolver entityResolver) - { - entityResolvers.add(entityResolver); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/XSDValidator.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/XSDValidator.java deleted file mode 100644 index bad3c7157..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/wsdl/xsd/XSDValidator.java +++ /dev/null @@ -1,190 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.wsdl.xsd; - -import java.io.Reader; -import java.io.StringReader; -import java.util.ArrayList; -import java.util.List; - -import org.apache.xerces.parsers.XMLGrammarPreparser; -import org.apache.xerces.util.XMLGrammarPoolImpl; -import org.apache.xerces.xni.grammars.XMLGrammarDescription; -import org.apache.xerces.xni.grammars.XMLGrammarPool; -import org.apache.xerces.xni.grammars.XSGrammar; -import org.apache.xerces.xni.parser.XMLEntityResolver; -import org.apache.xerces.xni.parser.XMLInputSource; -import org.apache.xerces.xs.XSModel; - - -/** - * Validate schemas from files or String. - * - * @author Lawrence Mandel (lmandel@ca.ibm.com) - */ -public class XSDValidator -{ - private XSModel xsModel; - private boolean isValidXSD; - private List errors; - private String filelocation; - - /** - * Constructor. - */ - public XSDValidator() - { - xsModel = null; - isValidXSD = false; - errors = new ArrayList(); - } - /** - * Validate an inline schema. - * - * @param schema A schema represented as a string. - * @param targetNamespace The target namespace of the schema. - * @param fileloc The uri of the file that contains the schema. - */ - public void validateInlineSchema(String schema, String targetNamespace, String fileloc) - { - validateInlineSchema(schema, targetNamespace, fileloc, null, null); - } - - /** - * Validate an inline schema and specify an entity resolver. - * - * @param schema This schema represented as a string. - * @param targetNamespace The target namespace of the schema. - * @param fileloc The uri of the file that contains this schema. - * @param entityResolverChain The entity resolver chain. - * @param inlineSchemaEntityResolver An inline schema resolver for this schema. - */ - public void validateInlineSchema( - String schema, - String targetNamespace, - String fileloc, - XMLEntityResolver entityResolverChain, - XMLEntityResolver inlineSchemaEntityResolver) - { - filelocation = fileloc; - - validateXSD(schema, true, entityResolverChain,targetNamespace, inlineSchemaEntityResolver); - } - - /** - * Validate the file located at the uri specified with the given entity resolver. - * - * @param uri An absolute uri for the schema location. - * @param entityResolver An entity resolver to be used. - */ - public void validate(String uri, XMLEntityResolver entityResolver) - { - validateXSD(uri, false, entityResolver, null, null); - } - - /** - * Validate the schema. - * - * @param schema The schema or it's location. - * @param inlineXSD True if an inline schema, false otherwise. - * @param entityResolver An entity resolver to use. - * @param targetNamespace The target namespace of the schema being validated. - * @param inlineSchemaEntityResolver An inline schema entity resolver. - */ - protected void validateXSD(String schema, boolean inlineXSD, XMLEntityResolver entityResolver, String targetNamespace, XMLEntityResolver inlineSchemaEntityResolver) - { - ValidateErrorHandler errorHandler = new ValidateErrorHandler(); - errorHandler.getErrorMessages().clear(); - try - { - XMLGrammarPreparser grammarPreparser = new XMLGrammarPreparser(); - XMLGrammarPool grammarPool = new XMLGrammarPoolImpl(); - grammarPreparser.setGrammarPool(grammarPool); - - grammarPreparser.setErrorHandler(errorHandler); - if (entityResolver != null) - { - grammarPreparser.setEntityResolver(entityResolver); - } - - try - { - XMLInputSource is = null; - // this allows support for the inline schema in WSDL documents - if (inlineXSD) - { - - Reader reader = new StringReader(schema); - is = new XMLInputSource(null,filelocation,filelocation,reader,null); - - ((InlineXSDResolver)inlineSchemaEntityResolver).addReferringSchema(is,targetNamespace); - - } - // get the input source for an external schema file - else - { - is = new XMLInputSource(null,schema,schema); - } - - grammarPreparser.registerPreparser(XMLGrammarDescription.XML_SCHEMA,null/*schemaLoader*/); - grammarPreparser.getLoader(XMLGrammarDescription.XML_SCHEMA); - - XSGrammar grammar = (XSGrammar)grammarPreparser.preparseGrammar(XMLGrammarDescription.XML_SCHEMA,is); - xsModel = grammar.toXSModel(); - } - catch (Exception e) - { - //parser will return null pointer exception if the document is structurally invalid - errors.add("Schema is structurally invalid."); - } - - errors.addAll(errorHandler.getErrorMessages()); - } - catch (Exception e) - { - System.out.println(e); - } - if (errors.isEmpty()) - { - isValidXSD = true; - } - } - - /** - * Returns the XSModel created. - * - * @return The XSModel created. - */ - - public XSModel getXSModel() - { - return xsModel; - } - /** - * Returns true if the schema is valid, false otherwise. - * - * @return True if the schema is valid, false otherwise. - */ - public boolean isValid() - { - return isValidXSD; - } - - /** - * Return the error list. - * - * @return A list of error from the schema. - */ - public List getErrors() - { - return errors; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/XMLConvertor.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/XMLConvertor.java deleted file mode 100644 index 82b134cbc..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/XMLConvertor.java +++ /dev/null @@ -1,69 +0,0 @@ -/******************************************************************************* - * - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.xml; - -import java.io.FileOutputStream; - -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.stream.StreamResult; -import javax.xml.transform.stream.StreamSource; - -/** - * This class converts a XML document using an XSL file. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class XMLConvertor -{ - - /** - * Transforms an XML document using an XSL file. - * @param args arguments for main. - */ - public static void main(String[] args) - { - try - { - if (args.length < 3) - { - System.out.println( - "Usage: XMLConvertor <xslFile> <inXMLFile> <outFile>"); - } - - else - { - // Get transformer - Transformer transformer = - TransformerFactory.newInstance().newTransformer( - new StreamSource(args[0])); - - // Transform the XML document using the specificed XSL file - transformer.transform( - new StreamSource(args[1]), - new StreamResult(new FileOutputStream(args[2]))); - - // Display results - System.out.println( - "Created " + args[2] + " from " + args[0] + " and " + args[1] + "."); - } - } - - catch (Exception e) - { - e.printStackTrace(); - } - - System.exit(0); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/XMLDocumentCache.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/XMLDocumentCache.java deleted file mode 100644 index 41087524a..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/XMLDocumentCache.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.xml; - -import java.util.HashMap; -import java.util.Map; - -/** - * This class creates a HashMap to cache XML documents. - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ -public class XMLDocumentCache extends HashMap -{ - static XMLDocumentCache instance; - - /** - * Comment for <code>serialVersionUID</code> - */ - private static final long serialVersionUID = 3834028043709657401L; - - /** - * Constructor for XMLDocumentCache. - * @param initialCapacity the initial capacity. - * @param loadFactor the load factor. - */ - public XMLDocumentCache(int initialCapacity, float loadFactor) - { - super(initialCapacity, loadFactor); - instance = this; - } - - /** - * Constructor for XMLDocumentCache. - * @param initialCapacity the initial capacity. - */ - public XMLDocumentCache(int initialCapacity) - { - super(initialCapacity); - instance = this; - } - - /** - * Constructor for XMLDocumentCache. - */ - public XMLDocumentCache() - { - super(); - instance = this; - } - - /** - * Constructor for XMLDocumentCache. - * @param t the map whose mappings are to be placed in this map. - */ - public XMLDocumentCache(Map t) - { - super(t); - instance = this; - } - - public static XMLDocumentCache instance() - { - if (instance == null) - instance = new XMLDocumentCache(); - - return instance; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/XMLDocumentCacheUser.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/XMLDocumentCacheUser.java deleted file mode 100644 index a50f07e31..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/XMLDocumentCacheUser.java +++ /dev/null @@ -1,117 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.xml; - -import java.net.URL; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.w3c.dom.Document; - -/** - * This is an abstract class that takes advantage of cached XML documents. - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ - -public abstract class XMLDocumentCacheUser -{ - /** - * Get document from cache. - * @see #setDocument - * - * @param key a String. - * @return a Document object corresponding to the key. - */ - protected Document getDocument(String key) - { - return (Document) XMLDocumentCache.instance().get(key); - } - - /** - * Put document with corresponding key in cache. - * @see #getDocument - * - * @param key a String used as a key to identify specified document. - * @param document a document. - */ - protected void setDocument(String key, Object document) - { - XMLDocumentCache.instance().put(key, document); - } - - /** - * Get document list. - * @return a XMLDocumentCache object representing the document list value. - */ - public XMLDocumentCache getDocumentList() - { - return XMLDocumentCache.instance(); - } - - /** - * Parse XML document. - * @param urlString a String locating the XML document. - * @param baseURI a base url to assist in locating the XML document. - * @return a Document object. - * @throws WSIException if document cannot be parsed. - */ - public Document parseXMLDocumentURL(String urlString, String baseURI) - throws WSIException - { - return parseXMLDocumentURL(urlString, baseURI, null); - } - - /** - * Parse XML document and validate with a schema document. - * @param urlString a String locating the XML document. - * @param baseURI a base url to assist in locating the XML document. - * @param schema a String identifying related schema document. - * @return a Document object. - * @throws WSIException if document cannot be parsed. - */ - public Document parseXMLDocumentURL( - String urlString, - String baseURI, - String schema) - throws WSIException - { - Document document = null; - - try - { - // Create URL reference to document - URL url = XMLUtils.createURL(urlString, baseURI); - - // TODO: Add schema to the xml document cache, so that you can detect when it has already - // been parsed using a specific schema definition - - // If the document is not in the cache, then read and parse it - if ((document = getDocument(urlString)) == null) - { - document = XMLUtils.parseXMLDocumentURL(url, schema); - // Add document to cache - setDocument(urlString, document); - } - } - - catch (WSIException e) - { - throw e; - } - - catch (Exception e) - { - throw new WSIException(e.getMessage(), e); - } - - return document; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/XMLTags.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/XMLTags.java deleted file mode 100644 index e12d04f0c..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/XMLTags.java +++ /dev/null @@ -1,60 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.xml; - -import javax.xml.namespace.QName; - -/** - * This class contains information on XML tags. - * - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ -public interface XMLTags -{ - /** - * Namespaces. - */ - public final static String NS_URI_XSI = - "http://www.w3.org/2001/XMLSchema-instance"; - public final static String NS_URI_XMLNS = "http://www.w3.org/2000/xmlns/"; - public final static String NS_URI_XSD = "http://www.w3.org/2001/XMLSchema"; - public final static String XSD_SCHEMALOCATION = - "http://www.w3.org/2001/XMLSchema.xsd"; - - /** - * Qualified names of XSD elements and attributes. - */ - public final static QName ELEM_XSD_ANNOTATION = - new QName(NS_URI_XSD, "annotation"); - public final static QName ELEM_XSD_IMPORT = new QName(NS_URI_XSD, "import"); - public final static QName ELEM_XSD_INCLUDE = new QName(NS_URI_XSD, "include"); - public final static QName ELEM_XSD_SCHEMA = new QName(NS_URI_XSD, "schema"); - public final static QName ELEM_XSD_ELEMENT = new QName(NS_URI_XSD, "element"); - public final static QName ELEM_XSD_ATTRIBUTE = - new QName(NS_URI_XSD, "attribute"); - public final static QName ELEM_XSD_COMPLEXTYPE = - new QName(NS_URI_XSD, "complexType"); - - public final static QName ATTR_XSI_TYPE = new QName(NS_URI_XSI, "type"); - public final static QName ATTR_XSI_NIL = new QName(NS_URI_XSI, "nil"); - - public final static QName ATTR_XSD_NAME = new QName(NS_URI_XSD, "name"); - public final static QName ATTR_XSD_TYPE = new QName(NS_URI_XSD, "type"); - public final static QName ATTR_XSD_BASE = new QName(NS_URI_XSD, "base"); - public final static QName ATTR_XSD_NAMESPACE = - new QName(NS_URI_XSD, "namespace"); - public final static QName ATTR_XSD_SCHEMALOCATION = - new QName(NS_URI_XSD, "schemaLocation"); - public final static QName ATTR_XSD_TARGETNAMESPACE = - new QName(NS_URI_XSD, "targetNamespace"); - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/XMLTraversal.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/XMLTraversal.java deleted file mode 100644 index f6233f0db..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/XMLTraversal.java +++ /dev/null @@ -1,129 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.xml; - -import org.w3c.dom.Attr; -import org.w3c.dom.CDATASection; -import org.w3c.dom.Comment; -import org.w3c.dom.Document; -import org.w3c.dom.DocumentType; -import org.w3c.dom.Element; -import org.w3c.dom.Entity; -import org.w3c.dom.EntityReference; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; -import org.w3c.dom.Notation; -import org.w3c.dom.ProcessingInstruction; -import org.w3c.dom.Text; - -/** - * We don't have access to the node source code, so this does - * our double-dispatch the hard way. - */ -public abstract class XMLTraversal extends XMLVisitor -{ - /** - * Returning false from action would terminates traversal. - * However, this always returns true. -- a no-op. - * @param n - an XML node. - * @return always true. - */ - public boolean action(Node n) - { - return true; - } - - public void visit(CDATASection s) - { - action(s); - } - - public void visit(Document e) - { - if (action(e)) - { - // This does visit DocumentType, which is considered a child Node. - for (Node n = e.getFirstChild(); n != null; n = n.getNextSibling()) - { - doVisit(n); - } - } - } - - public void visit(DocumentType type) - { - if (action(type)) - { - visit(type.getEntities()); - visit(type.getNotations()); - } - } - - public void visit(Attr e) - { - action(e); - } - - public void visit(Element node) - { - if (action(node)) - { - visit(node.getAttributes()); - for (Node n = node.getFirstChild(); n != null; n = n.getNextSibling()) - { - doVisit(n); - } - } - } - - public void visit(Comment e) - { - action(e); - } - - public void visit(Text e) - { - action(e); - } - - public void visit(EntityReference e) - { - action(e); - } - - public void visit(Entity e) - { - action(e); - } - - public void visit(Notation n) - { - action(n); - } - - public void visit(ProcessingInstruction i) - { - action(i); - } - - public void visit(NamedNodeMap map) - { - if (map != null) - { - for (int i = 0; i < map.getLength(); ++i) - { - doVisit(map.item(i)); - } - } - } -} - -// END OF FILE diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/XMLUtils.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/XMLUtils.java deleted file mode 100644 index 862272607..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/XMLUtils.java +++ /dev/null @@ -1,1536 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.xml; - -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.Reader; -import java.io.StringReader; -import java.io.StringWriter; -import java.io.Writer; -import java.net.MalformedURLException; -import java.net.URI; -import java.net.URL; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.Vector; - -import javax.xml.namespace.QName; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; - -import org.apache.xml.serialize.OutputFormat; -import org.apache.xml.serialize.XMLSerializer; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.util.NullUtil; -import org.w3c.dom.Attr; -import org.w3c.dom.CharacterData; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.xml.sax.ErrorHandler; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; -import org.xml.sax.SAXParseException; -import org.xml.sax.XMLReader; - -import com.ibm.wsdl.util.StringUtils; - -/** - * Set of XML related utilities. - * - * @version 1.0.1 - * @author Peter Brittenham - */ -public final class XMLUtils -{ - /** - * Some sax features that need to be set. - */ - public static final String FEATURE_NAMESPACE_PREFIXES = "http://xml.org/sax/features/namespace-prefixes"; - public static final String FEATURE_NAMESPACES = "http://xml.org/sax/features/namespaces"; - public static final String FEATURE_VALIDATION_SCHEMA = "http://apache.org/xml/features/validation/schema"; - public static final String JAXP_SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage"; - public static final String W3C_XML_SCHEMA = "http://www.w3.org/2001/XMLSchema"; - public static final String W3C_SOAP_12_SCHEMA = "http://schemas.xmlsoap.org/soap/envelope/"; - public static final String JAXP_SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource"; - public static final String PROPERTY_EXTERNAL_SCHEMA_LOCATION = "http://apache.org/xml/properties/schema/external-schemaLocation"; - - public static final String SOAP_ELEM_ENVELOPE = "Envelope"; - public static final String SOAP_ELEM_HEADER = "Header"; - public static final String SOAP_ELEM_BODY = "Body"; - public static final String SOAP_ELEM_FAULT = "Fault"; - public static final String SOAP_ELEM_FAULT_CODE = "faultcode"; - public static final String SOAP_ELEM_FAULT_STRING = "faultstring"; - public static final String SOAP_ELEM_FAULT_DETAIL = "detail"; - public static final String SOAP_ELEM_FAULT_ACTOR = "faultactor"; - public static final String SOAP_ATTR_MUST_UNDERSTAND = "mustUnderstand"; - public static final String SOAP_ATTR_ACTOR = "actor"; - - /** - * Get XMLReader. - * - * @return the XMLReader value - * @throws WSIException if there are problems getting the XMLReader - * implementation. - */ - public static XMLReader getXMLReader() throws WSIException { - XMLReader xmlReader = null; - - try - { - xmlReader = (new org.apache.xerces.jaxp.SAXParserFactoryImpl()) - .newSAXParser().getXMLReader(); - - // Set namespace aware - xmlReader.setFeature(FEATURE_NAMESPACE_PREFIXES, true); - xmlReader.setFeature(FEATURE_NAMESPACES, true); - } - - catch (Exception e) - { - throw new WSIException("Could not get XMLReader implementation.", e); - } - - return xmlReader; - } - - /** - * Parse text string as an XML document and return the document element. - * - * @param text XML document text. - * @param validate true if the document will be validate, false otherwise - * @return a Document object. - * @throws WSIException if there is a problem parsing the XML document. - */ - public static Document parseXML(String text, boolean validate) - throws WSIException { - return parseXML(new StringReader(text), validate); - } - - /** - * Parse text string as an XML document and return the document element. - * - * @param text XML document text. - * @return a Document object. - * @throws WSIException if there is a problem parsing the XML document. - */ - public static Document parseXML(String text) throws WSIException { - return parseXML(new StringReader(text)); - } - - /** - * Parse the XML document and return the document element. - * - * @param uri the location of the XML document. - * @return a Document object. - * @throws WSIException if there is a problem parsing the XML document. - * @throws IOException if an I/O exception of some sort has occurred. - */ - public static Document parseXMLDocument(String uri) - throws WSIException, IOException - { - return parseXMLDocument(uri, null); - } - - /** - * Parse the XML document and return the document element. - * - * @param uri the location of the XML document. - * @param schema a String identifying related schema document. - * @return a Document object. - * @throws WSIException if there is a problem parsing the XML document. - * @throws IOException if an I/O exception of some sort has occurred. - */ - public static Document parseXMLDocument(String uri, String schema) - throws WSIException, IOException - { - URL url = StringUtils.getURL(null, uri); - InputStream inputStream = (InputStream)url.getContent(); - InputSource inputSource = new InputSource(inputStream); - inputSource.setSystemId(url.toString()); - - if (schema == null) - return parseXML(inputSource, false); - else - return parseXML(inputSource, schema); - } - - /** - * Parses an XML document from a reader and returns the document object. - * - * @param url a String locating the XML document. - * @param schema a String identifying related schema document. - * @param baseURI a base url to assist in locating the XML document. - * @return Document. - * @throws WSIException if there is a problem parsing the XML document. - */ - public static Document parseXMLDocumentURL(String url, String schema, - String baseURI) throws WSIException { - try - { - parseXMLDocumentURL(createURL(url, baseURI), schema); - } - - catch (Exception e) - { - throw new WSIException(e.getMessage(), e); - } - - return parseXMLDocumentURL(url, schema); - } - - /** - * Parses an XML document from a reader and returns the document object. - * - * @param url a URL object identifying the XML document. - * @param schema a String identifying related schema document. - * @return Document. - * @throws WSIException if there is a problem parsing the XML document. - */ - public static Document parseXMLDocumentURL(URL url, String schema) - throws WSIException { - try - { - InputStream inputStream = (InputStream)url.getContent(); - InputSource inputSource = new InputSource(inputStream); - inputSource.setSystemId(url.toString()); - - Document doc = null; - - if (schema == null) - doc = parseXML(inputSource); - else - doc = parseXML(inputSource, schema); - - inputStream.close(); - return doc; - } - - catch (WSIException e) - { - throw e; - } - - catch (Throwable t) - { - throw new WSIException(t.getMessage()); - } - } - - /** - * Parses an XML document from a reader and returns the document object. - * - * @param urlString a String locating the XML document. - * @param baseURI a base url to assist in locating the XML document. - * @return Document object. - * @throws WSIException if there is a problem parsing the XML document. - */ - public static Document parseXMLDocumentURL(String urlString, String baseURI) - throws WSIException { - Document document = null; - - try - { - URL url = createURL(urlString, baseURI); - - document = parseXMLDocumentURL(url); - } - - catch (WSIException we) - { - throw we; - } - - catch (Exception e) - { - throw new WSIException(e.getMessage(), e); - } - - return document; - } - - /** - * Parses an XML document from a reader and returns the document object. - * - * @param url a URL object identifying the XML document. - * @return Document. - * @throws WSIException if there is a problem parsing the XML document. - */ - public static Document parseXMLDocumentURL(URL url) throws WSIException { - Document document = null; - - try - { - Reader reader = new InputStreamReader(url.openStream()); - InputSource source = new InputSource(reader); - source.setSystemId(url.toString()); - document = parseXML(source); - - reader.close(); - } - - catch (Exception e) - { - throw new WSIException(e.getMessage(), e); - } - - return document; - } - - private static DocumentBuilder builder = null; - - /** - * Parse an XML document from a reader and return the document object. - * - * @param reader a Reader object. - * @param validate true if the document will be validate, false otherwise - * @return a Document object. - * @throws WSIException if there is a problem parsing the XML document. - */ - public static Document parseXML(InputSource source, boolean validate) - throws WSIException { - Document doc = null; - ClassLoader currentLoader = Thread.currentThread().getContextClassLoader(); - try - { - Thread.currentThread().setContextClassLoader(XMLUtils.class.getClassLoader()); - - if (builder == null) - { - // Get the document factory - DocumentBuilderFactory factory = new org.eclipse.wst.wsi.internal.core.xml.jaxp.DocumentBuilderFactoryImpl(); - - // Set namespace aware, but for now do not validate - factory.setNamespaceAware(true); - factory.setIgnoringElementContentWhitespace(true); - - // ADD: This should be set to true when we have access to the schema - // document - factory.setValidating(false); - - builder = factory.newDocumentBuilder(); - } - // Parse the document - doc = builder.parse(source); - // workaround for compatibility Xerces 2.2.1 with Xerces 2.6.2, - // Xerces 2.6.2 supported XML 1.1 but WSI-tool and Xerces 2.2.1 - // supported only XML 1.0 - if (doc instanceof org.apache.xerces.dom.DocumentImpl) - { - if (((org.apache.xerces.dom.DocumentImpl) doc).getXmlVersion().equals( - "1.1")) - { - throw new WSIException("Fatal Error: XML version "1.1" " - + "is not supported, only XML 1.0 is supported."); - } - } - } - catch (Exception e) - { - throw new WSIException("Could not parse XML document.", e); - } - finally - { - Thread.currentThread().setContextClassLoader(currentLoader); - } - - // Return document - return doc; - } - - /** - * Parse an XML document from a reader and return the document object. - * - * @param reader a Reader object. - * @param validate true if the document will be validate, false otherwise - * @return a Document object. - * @throws WSIException if there is a problem parsing the XML document. - */ - public static Document parseXML(Reader reader, boolean validate) - throws WSIException { - Document doc = null; - ClassLoader currentLoader = Thread.currentThread().getContextClassLoader(); - try - { - Thread.currentThread().setContextClassLoader(XMLUtils.class.getClassLoader()); - - // Create input source - InputSource inputSource = new InputSource(reader); - - if (builder == null) - { - // Get the document factory - DocumentBuilderFactory factory = new org.eclipse.wst.wsi.internal.core.xml.jaxp.DocumentBuilderFactoryImpl(); - - // Set namespace aware, but for now do not validate - factory.setNamespaceAware(true); - factory.setIgnoringElementContentWhitespace(true); - - // ADD: This should be set to true when we have access to the schema - // document - factory.setValidating(false); - - builder = factory.newDocumentBuilder(); - } - // Parse the document - doc = builder.parse(inputSource); - // workaround for compatibility Xerces 2.2.1 with Xerces 2.6.2, - // Xerces 2.6.2 supported XML 1.1 but WSI-tool and Xerces 2.2.1 - // supported only XML 1.0 - if (doc instanceof org.apache.xerces.dom.DocumentImpl) - { - if (((org.apache.xerces.dom.DocumentImpl) doc).getXmlVersion().equals( - "1.1")) - { - throw new WSIException("Fatal Error: XML version "1.1" " - + "is not supported, only XML 1.0 is supported."); - } - } - } - catch (Exception e) - { - throw new WSIException("Could not parse XML document.", e); - } - finally - { - Thread.currentThread().setContextClassLoader(currentLoader); - } - - // Return document - return doc; - } - - /** - * Parse an XML document from a input source and return the document object. - * - * @param source a InputSource object. - * @return a Document object. - * @throws WSIException if there is a problem parsing the XML document. - */ - public static Document parseXML(Reader reader) throws WSIException { - return parseXML(reader, false); - } - - /** - * Parse an XML document from a input source and return the document object. - * - * @param source a InputSource object. - * @return a Document object. - * @throws WSIException if there is a problem parsing the XML document. - */ - public static Document parseXML(InputSource source) throws WSIException { - return parseXML(source, false); - } - - /** - * Parse text string as an XML document and return the document element. - * - * @param text XML document text. - * @param schema a String identifying related schema document. - * @return a Document object. - * @throws WSIException if there is a problem parsing the XML document. - */ - public static Document parseXML(String text, String schema) - throws WSIException { - return parseXML(new StringReader(text), schema); - } - - /** - * Parse text string as an XML document and return the document element. - * - * @param text XML document text. - * @param schemas a collection of related schema documents. - * @return a Document object. - * @throws WSIException if there is a problem parsing the XML document. - */ - public static Document parseXML(String text, Collection schemas) - throws WSIException { - return parseXML(new StringReader(text), schemas); - } - - - /** - * Parse the XML document and return the document element. - * - * @param text XML document text. - * @param schemaString a StringReader object. - * @return a Document object. - * @throws WSIException if there is a problem parsing the XML document. - * @throws IOException if an I/O exception of some sort has occurred. - */ - public static Document parseXML(String text, StringReader schemaString) - throws WSIException, IOException { - return parseXML(new StringReader(text), schemaString); - } - - /** - * Parse the XML document and return the document element. - * - * @param reader a Reader object. - * @param schema a String identifying related schema document. - * @return a Document object. - * @throws WSIException if there is a problem parsing the XML document. - */ - public static Document parseXML(Reader reader, String schema) - throws WSIException { - Document doc = null; - ClassLoader currentLoader = Thread.currentThread().getContextClassLoader(); - try - { - Thread.currentThread().setContextClassLoader(XMLUtils.class.getClassLoader()); - // Create input source - InputSource inputSource = new InputSource(reader); - - // Get the document factory - DocumentBuilderFactory factory = new org.eclipse.wst.wsi.internal.core.xml.jaxp.DocumentBuilderFactoryImpl(); - - // Set namespace aware, but for now do not validate - factory.setNamespaceAware(true); - factory.setIgnoringElementContentWhitespace(true); - - try - { - factory.setValidating(false); - factory.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA); - } - catch (IllegalArgumentException e) - { - String errMessage = "Error: JAXP DocumentBuilderFactory attribute not recognized: " - + JAXP_SCHEMA_LANGUAGE - + "\n" - + "Check to see if parser conforms to JAXP 1.2 spec."; - throw new WSIException(errMessage, e); - } - factory.setAttribute(JAXP_SCHEMA_SOURCE, new InputSource(schema)); - - // Parse the document - DocumentBuilder builder = factory.newDocumentBuilder(); - builder.setErrorHandler(new ErrHandler()); - doc = builder.parse(inputSource); - - // workaround for compatibility Xerces 2.2.1 with Xerces 2.6.2, - // Xerces 2.6.2 supported XML 1.1 but WSI-tool and Xerces 2.2.1 - // supported only XML 1.0 - if (doc instanceof org.apache.xerces.dom.DocumentImpl) - { - if (((org.apache.xerces.dom.DocumentImpl) doc).getXmlVersion().equals("1.1")) - { - throw new WSIException("Fatal Error: XML version "1.1" " - + "is not supported, only XML 1.0 is supported."); - } - } - } - catch (Exception e) - { - throw new WSIException("Could not parse XML document.", e); - } - finally - { - Thread.currentThread().setContextClassLoader(currentLoader); - } - // Return document - return doc; - } - - /** - * Parse the XML document and return the document element. - * - * @param reader a Reader object. - * @param schema a String identifying related schema document. - * @return a Document object. - * @throws WSIException if there is a problem parsing the XML document. - */ - public static Document parseXML(InputSource source, String schema) - throws WSIException { - Document doc = null; - ClassLoader currentLoader = Thread.currentThread().getContextClassLoader(); - try - { - Thread.currentThread().setContextClassLoader(XMLUtils.class.getClassLoader()); - // Get the document factory - DocumentBuilderFactory factory = new org.eclipse.wst.wsi.internal.core.xml.jaxp.DocumentBuilderFactoryImpl(); - - // Set namespace aware, but for now do not validate - factory.setNamespaceAware(true); - factory.setIgnoringElementContentWhitespace(true); - - factory.setValidating(false); - try - { - factory.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA); - } - - catch (IllegalArgumentException e) - { - String errMessage = "Error: JAXP DocumentBuilderFactory attribute not recognized: " - + JAXP_SCHEMA_LANGUAGE - + "\n" - + "Check to see if parser conforms to JAXP 1.2 spec."; - throw new WSIException(errMessage, e); - } - factory.setAttribute(JAXP_SCHEMA_SOURCE, new InputSource(schema)); - - // Parse the document - DocumentBuilder builder = factory.newDocumentBuilder(); - builder.setErrorHandler(new ErrHandler()); - doc = builder.parse(source); - - // workaround for compatibility Xerces 2.2.1 with Xerces 2.6.2, - // Xerces 2.6.2 supported XML 1.1 but WSI-tool and Xerces 2.2.1 - // supported only XML 1.0 - if (doc instanceof org.apache.xerces.dom.DocumentImpl) - { - if (((org.apache.xerces.dom.DocumentImpl) doc).getXmlVersion().equals( - "1.1")) - { - throw new WSIException("Fatal Error: XML version "1.1" " - + "is not supported, only XML 1.0 is supported."); - } - } - } - catch (Exception e) - { - throw new WSIException("Could not parse XML document.", e); - } - finally - { - Thread.currentThread().setContextClassLoader(currentLoader); - } - - // Return document - return doc; - - } - - /** - * Parse the XML document and return the document element. - * - * @param filename a Reader object. - * @param schemaString a StringReader object. - * @return a Document object. - * @throws WSIException if there is a problem parsing the XML document. - */ - public static Document parseXML(Reader filename, StringReader schemaString) - throws WSIException { - - Document doc = null; - ClassLoader currentLoader = Thread.currentThread().getContextClassLoader(); - try - { - Thread.currentThread().setContextClassLoader(XMLUtils.class.getClassLoader()); - - // Create input source - InputSource inputSource = new InputSource(filename); - - // Get the document factory - DocumentBuilderFactory factory = new org.eclipse.wst.wsi.internal.core.xml.jaxp.DocumentBuilderFactoryImpl(); - - // Set namespace aware, but for now do not validate - factory.setNamespaceAware(true); - factory.setIgnoringElementContentWhitespace(true); - - factory.setValidating(false); - try - { - factory.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA); - } catch (IllegalArgumentException e) - { - String errMessage = "Error: JAXP DocumentBuilderFactory attribute not recognized: " - + JAXP_SCHEMA_LANGUAGE - + "\n" - + "Check to see if parser conforms to JAXP 1.2 spec."; - throw new WSIException(errMessage, e); - } - factory.setAttribute(JAXP_SCHEMA_SOURCE, new InputSource(schemaString)); - - // Parse the document - DocumentBuilder builder = factory.newDocumentBuilder(); - builder.setErrorHandler(new ErrHandler()); - doc = builder.parse(inputSource); - } - catch (Exception e) - { - throw new WSIException("Could not parse XML document.", e); - } - finally - { - Thread.currentThread().setContextClassLoader(currentLoader); - } - - // Return document - return doc; - - } - - /** - * Parse the XML document and return the document element. - * - * @param filename a Reader object - * @param schemaStrings a collection of related schema documents. - * @return a Document object. - * @throws WSIException if there is a problem parsing the XML document. - */ - public static Document parseXML(Reader filename, Collection schemaStrings) - throws WSIException { - - Document doc = null; - ClassLoader currentLoader = Thread.currentThread().getContextClassLoader(); - try - { - Thread.currentThread().setContextClassLoader(XMLUtils.class.getClassLoader()); - - // Create input source - InputSource inputSource = new InputSource(filename); - - // Get the document factory - DocumentBuilderFactory factory = new org.eclipse.wst.wsi.internal.core.xml.jaxp.DocumentBuilderFactoryImpl(); - - // Set namespace aware, but for now do not validate - factory.setNamespaceAware(true); - factory.setIgnoringElementContentWhitespace(true); - - factory.setValidating(false); - try - { - factory.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA); - } catch (IllegalArgumentException e) - { - String errMessage = "Error: JAXP DocumentBuilderFactory attribute not recognized: " - + JAXP_SCHEMA_LANGUAGE - + "\n" - + "Check to see if parser conforms to JAXP 1.2 spec."; - throw new WSIException(errMessage, e); - } - // convert schema strings to array of InputSources - Iterator i = schemaStrings.iterator(); - Vector readers = new Vector(); - while (i.hasNext()) - { - String nextSchema = (String) i.next(); - readers.add(new InputSource(new StringReader(nextSchema))); - } - InputSource[] inputSources = (InputSource[]) readers - .toArray(new InputSource[]{}); - // pass an array of schema strings (each of which contains a schema) - factory.setAttribute(JAXP_SCHEMA_SOURCE, inputSources); - - // Parse the document - DocumentBuilder builder = factory.newDocumentBuilder(); - builder.setErrorHandler(new ErrHandler()); - doc = builder.parse(inputSource); - } - catch (Exception e) - { - throw new WSIException("Could not parse XML document.", e); - } - finally - { - Thread.currentThread().setContextClassLoader(currentLoader); - } - - // Return document - return doc; - - } - - /** - * Get attribute value with the given name defined for the specified element. - * - * @param element an Element object. - * @param attrName a name of an attribute - * @return the attribute value. - */ - public static String getAttributeValue(Element element, String attrName) { - String attrValue = null; - Attr attr = null; - - // Get the attribute using its name - if ((attr = element.getAttributeNode(attrName)) != null) - { - attrValue = attr.getValue().trim(); - } - - // Return attribute value - return attrValue; - } - - /** - * Get attribute value. - * - * @param element an Element object. - * @param attrName a name of an attribute - * @param defaultValue a default value for the specified attribute. - * @return the attribute value if found. Otherwise the specified default - * value. - */ - public static String getAttributeValue(Element element, String attrName, - String defaultValue) { - String returnValue = defaultValue; - String attrValue = null; - - if ((attrValue = getAttributeValue(element, attrName)) != null) - returnValue = attrValue; - - return returnValue; - } - - /** - * Get attribute value. - * - * @param element an Element object. - * @param namespace a namespace. - * @param attrName a name of an attribute - * @return the attribute value. - */ - public static String getAttributeValueNS(Element element, String namespace, - String attrName) { - String attrValue = null; - Attr attr = null; - - // Get the attribute using its name - if ((attr = element.getAttributeNodeNS(namespace, attrName)) != null) - { - attrValue = attr.getValue().trim(); - } - - // Return attribute value - return attrValue; - } - - /** - * Get the first child element from the input elment. - * - * @param element an Element object. - * @return the firstchild element. - */ - public static Element getFirstChild(Element element) { - // Return the first child element - return findNextSibling(element.getFirstChild()); - } - - /** - * Get the next sibling element. - * - * @param element - an Element object. - * @return the next sibling element. - */ - public static Element getNextSibling(Element element) { - // Return next sibling element - return findNextSibling(element.getNextSibling()); - } - - /** - * Find the next sibling element. - * - * @param startNode XML start node. - * @return the next sibling element. - */ - protected static Element findNextSibling(Node startNode) { - Node node = null; - Element returnElement = null; - - // Find the next sibling element - for (node = startNode; node != null && returnElement == null; node = node - .getNextSibling()) - { - // If this node is an element node, then return it - if (node.getNodeType() == Node.ELEMENT_NODE) - { - returnElement = (Element) node; - } - } - - // Return next sibling element - return (Element) returnElement; - } - - /** - * Find the previous sibling element. - * - * @param startNode XML start node. - * @return the previous sibling element. - */ - public static Element findPreviousSibling(Node startNode) { - if (startNode == null) - return null; - - while (startNode != null) - { - startNode = startNode.getPreviousSibling(); - if (startNode == null) - return null; - if (startNode.getNodeType() == Node.ELEMENT_NODE) - return (Element) startNode; - } - - return null; - } - - /** - * Get the text that is associated with this element. - * - * @param element an Element object. - * @return the text that is associated with this element. - */ - public static String getText(Element element) { - String text = null; - - // Get first child element - Node node = element.getFirstChild(); - - // NodeList nodeList = element.getChildNodes(); - - // int length = nodeList.getLength(); - - // Process while there are nodes and the text hasn't been found - while ((node != null) && (text == null)) - { - // If a text node or cdata section is found, then get text - if ((node.getNodeType() == Node.TEXT_NODE) - || (node.getNodeType() == Node.CDATA_SECTION_NODE)) - { - text = ((CharacterData) node).getData(); - } - - // Get next sibling - node = node.getNextSibling(); - } - - if (text != null) - text = text.trim(); - - return text; - } - - /** - * Determine if an element is represented by the QName. - * - * @param qname a QName object. - * @param element an Element object. - * @return true if an element is represented by the QName. - */ - public static boolean equals(QName qname, Element element) { - boolean equals = false; - - // If both the namespace URI and local name are the same, then they are - // equal - if ((qname.getNamespaceURI().equals(element.getNamespaceURI())) - && (qname.getLocalPart().equals(element.getLocalName()))) - { - equals = true; - } - - return equals; - } - - /** - * XML encode a text string. - * - * @param text - a String. - * @return an XML encoded text string. - */ - public static String xmlEscapedString(String text) - { - if (text == null) return text; - else - { - StringBuffer sb = new StringBuffer(text.length()*2); - int size = text.length(); - for (int i=0; i<size; i++) - { - char c = text.charAt(i); - switch (c) - { - case '<': - sb.append("<"); - break; - case '>': - sb.append(">"); - break; - case '&': - sb.append("&"); - break; - case '"': - sb.append("""); - break; - case '\'': - sb.append("'"); - break; - case '\r': - sb.append("
"); - break; - default: - sb.append(c); - } - } - return sb.toString(); - } - } - - /** - * XML encode a text string. - * - * @param text - a String. - * @return an XML encoded text string. - */ - public static String xmlRemoveEscapedString(String text) - { - if (text == null) return text; - else - { - StringBuffer sb = new StringBuffer(text); - - int i = sb.indexOf("
"); - while(i != -1) - { - sb.replace(i, i+5, "\r"); - i = sb.indexOf("
"); - } - - i = sb.indexOf("<"); - while(i != -1) - { - sb.replace(i, i+4, "<"); - i = sb.indexOf("<"); - } - - i = sb.indexOf(">"); - while(i != -1) - { - sb.replace(i, i+4, ">"); - i = sb.indexOf(">"); - } - - i = sb.indexOf("""); - while(i != -1) - { - sb.replace(i, i+6, "\""); - i = sb.indexOf("""); - } - - i = sb.indexOf("'"); - while(i != -1) - { - sb.replace(i, i+6, "\'"); - i = sb.indexOf("'"); - } - - i = sb.indexOf("&"); - while(i != -1) - { - sb.replace(i, i+5, "&"); - i = sb.indexOf("&"); - } - return sb.toString(); - } - } - /** - * Get the specified element from a parent element. - * - * @param elementName the element tag to serach for. - * @param parentElement the parent element. - * @return an element given the name and the parent element. - */ - public static Element getElement(String elementName, Element parentElement) { - Element returnElement = null; - NodeList nl; - - // Get the list of elements - if ((nl = parentElement.getElementsByTagName(elementName)) != null) - { - // Return first element found - returnElement = (Element) nl.item(0); - } - - // Return element - return returnElement; - } - - /** - * Determine if this element matches specified local name in the specified - * namespace. - * - * @param element an Element object. - * @param namespaceURI a namespace. - * @param localName a local name. - * @return true if this element matches specified local name in the specified - * namespace. - */ - public static boolean isElement(Element element, String namespaceURI, - String localName) { - boolean isElement = false; - - if (element != null) - { - // Check is - if (element.getNamespaceURI().equals(namespaceURI) - && element.getLocalName().equals(localName)) - { - isElement = true; - } - } - - return isElement; - } - - /** - * Determine if this element matches specified local name in the specified - * namespace. - * - * @param element an Element object. - * @param namespaceURIs a list of valid namespaces. - * @param localName a local name. - * @return true if this element matches specified local name in the specified - * namespace. - */ - public static boolean isElement(Element element, List namespaceURIs, - String localName) { - boolean isElement = false; - - if (element != null) - { - // Check is - if (namespaceURIs.contains(element.getNamespaceURI()) - && element.getLocalName().equals(localName)) - { - isElement = true; - } - } - - return isElement; - } - - /** - * Get element text as a boolean. - * - * @param element an Element object. - * @param defaultValue a boolean to be used as a default value. - * @return element text as a boolean value. - */ - public static boolean getBooleanValue(Element element, boolean defaultValue) { - boolean returnValue = defaultValue; - String booleanValue = null; - - // Get value as a string - if ((booleanValue = XMLUtils.getText(element)) != null) - { - returnValue = Boolean.valueOf(booleanValue).booleanValue(); - } - - // Return boolean - return returnValue; - } - - /** - * Get attribute value as a boolean. - * - * @param element an Element object. - * @param attrName a name of an attribute. - * @param defaultValue a boolean to be used as a default value. - * @return attribute value as a boolean. - */ - public static boolean getBooleanValue(Element element, String attrName, - boolean defaultValue) { - boolean returnValue = defaultValue; - String booleanValue = null; - - // Get value as a string - if ((booleanValue = XMLUtils.getAttributeValue(element, attrName)) != null) - { - returnValue = Boolean.valueOf(booleanValue).booleanValue(); - } - - // Return boolean - return returnValue; - } - - /** - * Create QName. - * - * @param qnameString a qualified name. - * @return a QName object. - */ - public static QName createQName(String qnameString) { - QName qname = null; - - // Locate local part - int index = qnameString.lastIndexOf(":"); - - // Create new QName - if (index != -1) - { - qname = new QName(qnameString.substring(0, index), qnameString - .substring(index + 1)); - } - - else - { - qname = new QName(qnameString); - } - - return qname; - } - - /** - * Error Handler - */ - private static class ErrHandler implements ErrorHandler - { - /** - * Warning - */ - public void warning(SAXParseException spe) throws SAXException { - String message = "Warning: " + spe.getMessage(); - throw new SAXException(message); - } - - /** - * Error - */ - public void error(SAXParseException spe) throws SAXException { - String message = "Error: " + spe.getMessage(); - throw new SAXException(message); - } - - /** - * Fatal Error - */ - public void fatalError(SAXParseException spe) throws SAXException { - String message = "Fatal Error: " + spe.getMessage(); - throw new SAXException(message); - } - } - - /** - * Determine if the string is a NMTOKEN data type. - * - * @param text a string value. - * @return true if the string is a NMTOKEN data type. - */ - public static boolean isNmtoken(String text) { - boolean nmtoken = true; - - // ADD: Need to find a utility function that does this or write it from - // scratch - - return nmtoken; - } - - /** - * The method searches the first direct descendant element with the given - * qname. - * - * @param parent parent DOM element. - * @param elementName QName of the element to be searched. - * @return DOM element if the required element found, and null otherwise. - */ - static public Element findChildElement(Element parent, QName elementName) { - if (parent == null) - throw new IllegalArgumentException("Parent element can not be NULL"); - if (elementName == null) - throw new IllegalArgumentException("Element name can not be NULL"); - if (elementName.getLocalPart() == null) - throw new IllegalArgumentException( - "Local part of the element name can not be NULL"); - - Node n = parent.getFirstChild(); - String local = elementName.getLocalPart(); - String ns = elementName.getNamespaceURI(); - while (n != null) - { - if (Node.ELEMENT_NODE == n.getNodeType() - && local.equals(n.getLocalName()) - && NullUtil.equals(ns, n.getNamespaceURI())) - return (Element) n; - n = n.getNextSibling(); - } - - return null; - } - - /** - * The method searches the first sibling element with the given qname. - * - * @param active DOM element. - * @param elementName QName of the element to be searched. - * @return DOM element if the required element found, and null otherwise. - */ - static public Element findElement(Element active, QName elementName) { - if (active == null) - throw new IllegalArgumentException("Active element can not be NULL"); - if (elementName == null) - throw new IllegalArgumentException("Element name can not be NULL"); - if (elementName.getLocalPart() == null) - throw new IllegalArgumentException( - "Local part of the element name can not be NULL"); - - Node n = active.getNextSibling(); - String local = elementName.getLocalPart(); - String ns = elementName.getNamespaceURI(); - while (n != null) - { - if (Node.ELEMENT_NODE == n.getNodeType() - && local.equals(n.getLocalName()) - && NullUtil.equals(ns, n.getNamespaceURI())) - return (Element) n; - n = n.getNextSibling(); - } - - return null; - } - - /** - * The method returns attribute node by the given qname. - * - * @param el owner element. - * @param attributeName QName of the attribute node to be searched. - * @return attribute node by the given qname. - */ - static public Attr getAttribute(Element el, QName attributeName) { - if (el == null) - throw new IllegalArgumentException("Element can not be NULL"); - if (attributeName == null) - throw new IllegalArgumentException("Attribute name can not be NULL"); - String nsURI = attributeName.getNamespaceURI(); - String localPart = attributeName.getLocalPart(); - if (localPart == null) - throw new IllegalArgumentException( - "Local part of the attribute name can not be NULL"); - - Attr a = el.getAttributeNodeNS(nsURI, - localPart); - if (a == null) - // try to get with null namespace - a = el.getAttributeNodeNS(null, localPart); - return a; - } - - /** - * The method compares node's name to the given qname. - * - * @param n a node. - * @param name a QName object. - * @return true if the node's name is the same as the given qname. - */ - static public boolean equals(Node n, QName name) { - if (n == null || name == null) - return false; - return (NullUtil.equals(name.getLocalPart(), n.getLocalName()) && NullUtil - .equals(name.getNamespaceURI(), n.getNamespaceURI())); - } - - /** - * The method searches namespace URI for the given prefix. The searching - * mechanism is implemented according to the "XML Namespaces resolution" - * algorithm ('http://www.w3.org/TR/2003/WD-DOM-Level-3- - * Core-20030226/namespaces-algorithms.html'). - * - * @param n a node. - * @param prefix a prefix. - * @return the namespace URI for the given prefix. - */ - static public String findNamespaceURI(Node n, String prefix) { - if (prefix == null) - return null; - - while (n != null) - { - if (prefix.equals(n.getPrefix())) - return n.getNamespaceURI(); - - if (Node.ELEMENT_NODE == n.getNodeType()) - { - NamedNodeMap m = n.getAttributes(); - if (m != null) - for (int i = 0; i < m.getLength(); i++) - { - Node a = m.item(i); - if (WSITag.NS_URI_XMLNS.equals(a.getNamespaceURI()) - && prefix.equals(a.getLocalName())) - return a.getNodeValue(); - } - } - - n = n.getParentNode(); - } - - return null; - } - - /** - * Serializes element. - * - * @param n a DOM element. - * @return the serialized element. - */ - public static String serialize(Element n) { - String value = null; - try - { - StringWriter writer = new StringWriter(); - XMLSerializer s = new XMLSerializer(writer, new OutputFormat("xml", - "UTF-8", true)); - s.serialize(n); - value = writer.toString(); - writer.close(); - } catch (Throwable t) - { - // nothing - value = "EXCEPTION : " + t.getMessage(); - } - - return value; - } - - /** - * The method return list of child elements. - * - * @param parent an org.w3c.dom.Element object. - * @return list of child elements. - */ - static public Vector getChildElements(Element parent) { - if (parent == null) - throw new IllegalArgumentException("Element can not be NULL"); - - Vector vect = new Vector(); - Element elem = getFirstChild(parent); - while (elem != null) - { - vect.add(elem); - elem = getNextSibling(elem); - } - return vect; - } - - /** - * Serializes document. - * - * @param doc an org.w3c.dom.Document object. - * @param writer a java.io.Writer object. - * @throws Exception if unable to serialize the document. - */ - public static void serializeDoc(Document doc, Writer writer) - throws java.lang.Exception { - XMLSerializer s = new XMLSerializer(writer, new OutputFormat("xml", - "UTF-8", true)); - s.serialize(doc); - } - - /** - * Serealizes element. - * - * @param elem an org.w3c.dom.Element object. - * @param writer a java.io.Writer object. - * @throws Exception if unable to serialize the DOM element. - */ - public static void serializeElement(Element elem, Writer writer) - throws java.lang.Exception { - XMLSerializer s = new XMLSerializer(writer, new OutputFormat("xml", - "UTF-8", true)); - s.serialize(elem); - } - - /** - * Remove all elements from list without namespace. - * - * @param vect a list of elements. - */ - public static void removeAllElementsWithoutNS(Vector vect) { - for (int i = 0; i < vect.size();) - { - if (((Element) vect.get(i)).getNamespaceURI() == null - || ((Element) vect.get(i)).getNamespaceURI().equals("")) - vect.remove(i); - else - i++; - } - } - - /** - * Create URL using base URI. - * - * @param url a URL string. - * @param baseURI a base url string to assist in creating a URL. - * @return newly created URL. - * @throws MalformedURLException if a malformed URL has occurred. - */ - public static URL createURL(String url, String baseURI) - throws MalformedURLException { - URL returnURL = null; - URI uri = null; - try - { - returnURL = new URL(url); - uri = new URI(url); - uri = uri.normalize(); - returnURL = new URL(uri.toString()); - } - - catch (Exception mue) - { - int i = baseURI.lastIndexOf('/'); - int j = baseURI.lastIndexOf('\\'); - if (j > i) - i = j; - try - { - uri = new URI(baseURI.substring(0, i + 1) + url); - uri = uri.normalize(); - returnURL = uri.toURL(); - } - catch (Exception e) - { - return new URL(baseURI.substring(0, i + 1) + url); - } - } - return returnURL; - } - - /** - * Create URL using base URI. - * - * @param url a URL string. - * @param baseURI a base url string to assist in creating a URL. - * @return newly created URL string. - * @throws MalformedURLException if a malformed URL has occurred. - */ - public static String createURLString(String url, String baseURI) - throws MalformedURLException { - return createURL(url, baseURI).toExternalForm(); - } - - /** - * This method is used only for unit testing. - * - * @param args arguments for main. - */ - public static void main(String[] args) { - try - { - System.out.println("Filename: " + args[0] + ", schema: " + args[1]); - parseXMLDocument(args[0], args[1]); - System.out.println("Done."); - } - - catch (Exception e) - { - System.err.println(e.toString()); - } - - System.exit(0); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/XMLVisitor.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/XMLVisitor.java deleted file mode 100644 index fc9ea3653..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/XMLVisitor.java +++ /dev/null @@ -1,186 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.xml; - -import org.w3c.dom.Attr; -import org.w3c.dom.CDATASection; -import org.w3c.dom.Comment; -import org.w3c.dom.Document; -import org.w3c.dom.DocumentType; -import org.w3c.dom.Element; -import org.w3c.dom.Entity; -import org.w3c.dom.EntityReference; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Notation; -import org.w3c.dom.ProcessingInstruction; -import org.w3c.dom.Text; - -/** - * We don't have access to the node source code, so this does - * our double-dispatch the hard way. - */ -public class XMLVisitor -{ - /** - * Visit XML CDATASection node. - * @param s an XML CDATASection node. - */ - public void visit(CDATASection s) - { - } - - /** - * Visit XML Document node. - * @param e an XML Document node. - */ - public void visit(Document e) - { - } - - /** - * Visit XML DocumentType node. - * @param e an ML DocumentType node. - */ - public void visit(DocumentType e) - { - } - - /** - * Visit XML Attribute node. - * @param e an XML Atrribute node. - */ - public void visit(Attr e) - { - } - - /** - * Visit XML Element node. - * @param e an XML Element node. - */ - public void visit(Element e) - { - } - - /** - * Visit XML Comment node. - * @param e an XML Comment node. - */ - public void visit(Comment e) - { - } - - /** - * Visit XML Text node. - * @param e an XML Text node. - */ - public void visit(Text e) - { - } - - /** - * Visit XML EntityReference node. - * @param e an XML EntityReference node. - */ - public void visit(EntityReference e) - { - } - - /** - * Visit XML Entity node. - * @param e an XML Entity node. - */ - public void visit(Entity e) - { - } - - /** - * Visit XML Notation node. - * @param n an XML Notation node. - */ - public void visit(Notation n) - { - } - - /** - * Visit XML ProcessingInstruction node. - * @param i an XML ProcessingInstruction node. - */ - public void visit(ProcessingInstruction i) - { - } - - /** - * Visit XML NamedNodeMap node. - * @param i an XML NamedNodeMap node. - */ - public void visit(NamedNodeMap i) - { - } - - /** - * Visit XML node. - * @param node an XML node. - */ - public void doVisit(Object node) - { - if (node instanceof Element) - { - visit((Element) node); - } - else if (node instanceof Comment) - { - visit((Comment) node); - } - else if (node instanceof CDATASection) - { - // CDATASection extends Text, so it must come first - visit((CDATASection) node); - } - else if (node instanceof Text) - { - visit((Text) node); - } - else if (node instanceof Attr) - { - visit((Attr) node); - } - else if (node instanceof Document) - { - visit((Document) node); - } - else if (node instanceof EntityReference) - { - visit((EntityReference) node); - } - else if (node instanceof Entity) - { - visit((Entity) node); - } - else if (node instanceof DocumentType) - { - visit((DocumentType) node); - } - else if (node instanceof Notation) - { - visit((Notation) node); - } - else if (node instanceof ProcessingInstruction) - { - visit((ProcessingInstruction) node); - } - else if (node instanceof NamedNodeMap) - { - visit((NamedNodeMap) node); - } - } -} - -// END OF FILE diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/dom/DOMParser.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/dom/DOMParser.java deleted file mode 100644 index 2ee0361d3..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/dom/DOMParser.java +++ /dev/null @@ -1,93 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.xml.dom; - -import org.apache.xerces.dom.ElementImpl; -import org.apache.xerces.xni.Augmentations; -import org.apache.xerces.xni.NamespaceContext; -import org.apache.xerces.xni.QName; -import org.apache.xerces.xni.XMLAttributes; -import org.apache.xerces.xni.XMLLocator; -import org.apache.xerces.xni.XNIException; -import org.w3c.dom.Element; -import org.xml.sax.SAXNotRecognizedException; -import org.xml.sax.SAXNotSupportedException; - -/** - * This class specializes org.apache.xerces.parsers.DOMParser. - * - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ -public class DOMParser extends org.apache.xerces.parsers.DOMParser -{ - /** - * Locator. - */ - XMLLocator locator = null; - - /* (non-Javadoc) - * @see org.apache.xerces.xni.XMLDocumentHandler#startDocument(org.apache.xerces.xni.XMLLocator, java.lang.String, org.apache.xerces.xni.NamespaceContext, org.apache.xerces.xni.Augmentations) - */ - public void startDocument( - XMLLocator locator, - String encoding, - NamespaceContext context, - Augmentations augs) - throws XNIException - { - this.locator = locator; - super.startDocument(locator, encoding, context, augs); - } - - /* (non-Javadoc) - * @see org.apache.xerces.xni.XMLDocumentHandler#startElement(org.apache.xerces.xni.QName, org.apache.xerces.xni.XMLAttributes, org.apache.xerces.xni.Augmentations) - */ - public void startElement( - QName qname, - XMLAttributes attributes, - Augmentations augs) - throws XNIException - { - Element element; - ElementImpl elementImpl; - - // DEBUG: - //System.err.println("1-line: " + locator.getLineNumber() + ", column: " + locator.getColumnNumber()); - - super.startElement(qname, attributes, augs); - - // DEBUG: - //System.err.println("2-line: " + locator.getLineNumber() + ", column: " + locator.getColumnNumber()); - - try - { - element = (Element) getProperty(CURRENT_ELEMENT_NODE); - - elementImpl = (ElementImpl) element; - // Setting the user data with an identifier such as ElementLocation.KEY_NAME - // may be a long term good idea. The setUserData method with no id is used - // to support JVMs with alternate versions of Xerces. - elementImpl.setUserData(new ElementLocation(locator.getLineNumber(), locator.getColumnNumber())); - } - catch (ClassCastException cce) - { - } - catch (SAXNotSupportedException snse) - { - // DEBUG: - //System.err.println(snse.toString()); - } - catch (SAXNotRecognizedException snre) - { - } - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/dom/ElementLocation.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/dom/ElementLocation.java deleted file mode 100644 index fa9053363..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/dom/ElementLocation.java +++ /dev/null @@ -1,91 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.xml.dom; - -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.xml.sax.Locator; - -/** - * This class provides line and column information for a node within an XML document. - * - * @version 1.0.1 - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class ElementLocation -{ - /** - * Line number. - */ - public static final String KEY_NAME = ElementLocation.class.getName(); - - /** - * Line number. - */ - protected int lineNumber = 0; - - /** - * Column number. - */ - protected int columnNumber = 0; - - /** - * Element location. - * @param lineNumber a line number. - * @param columnNumber a column number. - */ - public ElementLocation(int lineNumber, int columnNumber) - { - this.lineNumber = lineNumber; - this.columnNumber = columnNumber; - } - - /** - * Element location. - * @param locator a Locator object. - */ - public ElementLocation(Locator locator) - { - this.lineNumber = locator.getLineNumber(); - this.columnNumber = locator.getColumnNumber(); - } - - /** - * Get the line number. - * @return an int representing the line number value. - */ - public int getLineNumber() - { - return this.lineNumber; - } - - /** - * Get the column number. - * @return an int representing the column number value. - */ - public int getColumnNumber() - { - return this.columnNumber; - } - - /** - * Get string representation of this object. - */ - public String toString() - { - return "Element Location:\n" - + " " - + WSIConstants.ATTR_LINE_NUMBER - + "=" - + this.lineNumber - + "\n"; - //+ " " + WSIConstants.ATTR_COLUMN_NUMBER + "=" + this.columnNumber + "\n"; - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/jaxp/DocumentBuilderFactoryImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/jaxp/DocumentBuilderFactoryImpl.java deleted file mode 100644 index 4bec5cdfe..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/jaxp/DocumentBuilderFactoryImpl.java +++ /dev/null @@ -1,100 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.xml.jaxp; - -import java.util.Hashtable; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; - -/** - * This class defines a factory API that enables us to obtain a parser that - * produces DOM object trees from XML documents. Note this class specializes - * javax.xml.parsers.DocumentBuilderFactory. - * - * @author Peter Brittenham (peterbr@us.ibm.com) - */ -public class DocumentBuilderFactoryImpl extends DocumentBuilderFactory -{ - - protected Hashtable attributes = new Hashtable(); - - /** - * Creates a new instance of a DocumentBuilder using the currently - * configured parameters. - * - * @return a new instance of a DocumentBuilder. - * @throws ParserConfigurationException if a DocumentBuilder cannot - * be created which satisfies the configuration requested. - */ - public DocumentBuilder newDocumentBuilder() - throws ParserConfigurationException - { - DocumentBuilder documentBuilder = null; - - try - { - documentBuilder = new DocumentBuilderImpl(this, attributes); - } - - catch (Exception e) - { - throw new ParserConfigurationException(e.getMessage()); - } - - return documentBuilder; - } - - /** - * Allows the user to retrieve specific attributes on the underlying - * implementation. - * - * @param name the name of the attribute. - * @return the value of the attribute. - * @throws IllegalArgumentException if the underlying implementation - * doesn't recognize the attribute. - */ - public Object getAttribute(String name) throws IllegalArgumentException - { - return attributes.get(name); - } - - /** - * Allows the user to set specific attributes on the underlying - * implementation. - * - * @param name the name of the attribute. - * @param value the value of the attribute. - * @throws IllegalArgumentException if the underlying implementation - * doesn't recognize the attribute. - */ - public void setAttribute(String name, Object value) - throws IllegalArgumentException - { - attributes.put(name, value); - } - - public void setFeature(String arg0, boolean arg1) - throws ParserConfigurationException - { - // currently we do not support setting any feature - // as per spec, we should throw an exception - throw new ParserConfigurationException(arg0 + " Not supported"); - } - - public boolean getFeature(String arg0) - throws ParserConfigurationException - { - // as per spec, we should throw an exception - throw new ParserConfigurationException(arg0 + " is not supported"); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/jaxp/DocumentBuilderImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/jaxp/DocumentBuilderImpl.java deleted file mode 100644 index 2858dd7cd..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/jaxp/DocumentBuilderImpl.java +++ /dev/null @@ -1,248 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.xml.jaxp; - - -import java.io.IOException; -import java.util.Enumeration; -import java.util.Hashtable; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; - -import org.apache.xerces.dom.DOMImplementationImpl; -import org.apache.xerces.dom.DocumentImpl; -import org.apache.xerces.impl.Constants; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.eclipse.wst.wsi.internal.core.xml.dom.DOMParser; -import org.w3c.dom.DOMImplementation; -import org.w3c.dom.Document; -import org.xml.sax.EntityResolver; -import org.xml.sax.ErrorHandler; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.DefaultHandler; - -/** - * Using this class, we can obtain a Document from XML. This class is a - * specialization of javax.xml.parsers.DocumentBuilder. - * - * An instance of this class can be obtained from the - * DocumentBuilderFactory.newDocumentBuilder method. Once an instance - * of this class is obtained, XML can be parsed from a variety of input - * sources. These input sources are InputStreams, Files, URLs, and SAX - * InputSources. - -This class will javax.xml.parsers.DocumentBuilderFactory... - * - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ -public class DocumentBuilderImpl extends DocumentBuilder -{ - protected DOMParser domParser = null; - - protected EntityResolver entityResolver = null; - protected ErrorHandler errorHandler = new DefaultHandler(); - - protected static final String NAMESPACES_FEATURE = - Constants.SAX_FEATURE_PREFIX + Constants.NAMESPACES_FEATURE; - protected static final String VALIDATION_FEATURE = - Constants.SAX_FEATURE_PREFIX + Constants.VALIDATION_FEATURE; - - /** - * Constructor for DocumentBuilderImpl2. - * - * @param dbFactory a DocumentBuilderFactory object. - * @throws SAXException if any parse errors occur. - */ - public DocumentBuilderImpl(DocumentBuilderFactory dbFactory, Hashtable attributes) - throws SAXException - { - // Create parser - domParser = new DOMParser(); - - // Set namespace aware - domParser.setFeature(NAMESPACES_FEATURE, dbFactory.isNamespaceAware()); - - // Set validating - domParser.setFeature(VALIDATION_FEATURE, dbFactory.isValidating()); - if (dbFactory.isValidating()) domParser.setFeature(XMLUtils.FEATURE_VALIDATION_SCHEMA, true); - - // Do not defer node expansion - domParser.setFeature( - Constants.XERCES_FEATURE_PREFIX + Constants.DEFER_NODE_EXPANSION_FEATURE, - false); - - // Set other features from the document factory builder - domParser.setFeature( - Constants.XERCES_FEATURE_PREFIX + Constants.INCLUDE_IGNORABLE_WHITESPACE, - !dbFactory.isIgnoringElementContentWhitespace()); - domParser.setFeature( - Constants.XERCES_FEATURE_PREFIX - + Constants.CREATE_ENTITY_REF_NODES_FEATURE, - !dbFactory.isExpandEntityReferences()); - domParser.setFeature( - Constants.XERCES_FEATURE_PREFIX + Constants.INCLUDE_COMMENTS_FEATURE, - !dbFactory.isIgnoringComments()); - domParser.setFeature( - Constants.XERCES_FEATURE_PREFIX + Constants.CREATE_CDATA_NODES_FEATURE, - !dbFactory.isCoalescing()); - - // set features and properties specified at factory level - if (attributes != null) - { - for (Enumeration i=attributes.keys(); i.hasMoreElements();) - { - String attribute = (String)i.nextElement(); - if (attribute.equals(XMLUtils.JAXP_SCHEMA_SOURCE)) - { - // for multiple schema validation may be array of InputSource - if(attributes.get(attribute) instanceof InputSource[]) - domParser.setProperty(attribute, (InputSource[])attributes.get(attribute)); - else - domParser.setProperty(attribute, (InputSource)attributes.get(attribute)); - } - else - { - domParser.setProperty(attribute, attributes.get(attribute)); - } - } - } - } - - /** - * Parse the content of the given input source as an XML document and return a new DOM. - * @param is InputStream containing the content to be parsed. - * @throws SAXException if any parse errors occur. - * @throws IOException if any IO errors occur. - */ - public Document parse(InputSource is) throws SAXException, IOException - { - ClassLoader currentLoader = Thread.currentThread().getContextClassLoader(); - try - { - Thread.currentThread().setContextClassLoader(XMLUtils.class.getClassLoader()); - - // Set entity resolver - if (this.entityResolver != null) - domParser.setEntityResolver(this.entityResolver); - - // Set error handler - if (this.errorHandler != null) - domParser.setErrorHandler(this.errorHandler); - - // Parse input source - domParser.parse(is); - - // Return the document that was created - return domParser.getDocument(); - } - finally - { - Thread.currentThread().setContextClassLoader(currentLoader); - } - } - - /** - * Indicates whether or not this parser is configured to understand namespaces. - * @return true if this parser is configured to understand namespaces; false otherwise. - */ - public boolean isNamespaceAware() - { - boolean namespaceAware = false; - - try - { - namespaceAware = domParser.getFeature(NAMESPACES_FEATURE); - } - - catch (SAXException se) - { - throw new RuntimeException(se.toString()); - } - - return namespaceAware; - } - - /** - * Indicates whether or not this parser is configured to validate XML documents. - * @return true if this parser is configured to validate XML documents; false otherwise. - */ - public boolean isValidating() - { - boolean validating = false; - - try - { - validating = domParser.getFeature(VALIDATION_FEATURE); - } - - catch (SAXException se) - { - throw new RuntimeException(se.toString()); - } - - return validating; - } - - /** - * Specify the EntityResolver to be used to resolve entities present - * in the XML document to be parsed. Setting this to null will result - * in the underlying implementation using it's own default - * implementation and behavior. - * - * @param er the EntityResolver to be used to resolve entities - * present in the XML document to be parsed. - */ - public void setEntityResolver(EntityResolver entityResolver) - { - this.entityResolver = entityResolver; - } - - /** - * Specify the ErrorHandler to be used to report errors present in - * the XML document to be parsed. Setting this to null will result - * in the underlying implementation using it's own default - * implementation and behavior. - * - * param eh the ErrorHandler to be used to report errors present in - * the XML document to be parsed. - */ - public void setErrorHandler(ErrorHandler errorHandler) - { - this.errorHandler = errorHandler; - } - - /** - * Obtain a new instance of a DOM Document object to build a DOM - * tree with. An alternative way to create a DOM Document object - * is to use the getDOMImplementation method to get a DOM Level 2 - * DOMImplementation object and then use DOM Level 2 methods on - * that object to create a DOM Document object. - * - * @return a new instance of a DOM Document object. - */ - public Document newDocument() - { - return new DocumentImpl(); - } - - /** - * Obtain an instance of a DOMImplementation object. - * @return a new instance of a DOMImplementation. - */ - public DOMImplementation getDOMImplementation() - { - return new DOMImplementationImpl(); - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/schema/TargetNamespaceProcessor.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/schema/TargetNamespaceProcessor.java deleted file mode 100644 index 6dc2435df..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/schema/TargetNamespaceProcessor.java +++ /dev/null @@ -1,142 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.xml.schema; - -import java.util.List; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.util.TestUtils; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -/** - * This class processes target namespaces. Note this class is a specialization - * of org.wsi.xml.schema.XMLSchemaProcessor. - * - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ -public class TargetNamespaceProcessor extends XMLSchemaProcessor -{ - - /** - * Constructor for TargetNamespaceProcess. - * - * @param context - * document context - * @param documentList - * cache of previously parsed documents - */ - public TargetNamespaceProcessor(String context) - { - super(context, false); - } - - protected void processSchema(Element element) - { - String tns = null; - Attr attr = XMLUtils.getAttribute(element, ATTR_XSD_TARGETNAMESPACE); - - // If the attribute was found and value is not null, then add it to the list - if ((attr != null) && ((tns = attr.getValue()) != null)) - { - // Add the targetNamespace to the return list - returnList.add(tns); - } - } - - /** - * Search for all schema elements, load the xsd documents, and then process - * them. - * - * @param node - * node. - * @return a list. - * @throws WSIException - * if the XML schema file is not found or if it is not formatted - * correctly. - */ - public List processAllSchema(Node node) throws WSIException - { - return processAllSchema(node, context); - } - - /** - * Search for all schema elements, load the xsd documents, and then process - * them. - * - * @param node - * node. - * @return a list. - * @throws WSIException - * if the XML schema file is not found or if it is not formatted - * correctly. - */ - private List processAllSchema(Node node, String ctx) throws WSIException - { - ClassLoader currentLoader = Thread.currentThread().getContextClassLoader(); - try - { - Thread.currentThread().setContextClassLoader(XMLUtils.class.getClassLoader()); - - // if xsd:schema element is found -> process schema - if (XMLUtils.equals(node, ELEM_XSD_SCHEMA)) - { - processSchema((Element) node); - - Node n = node.getFirstChild(); - while (n != null) - { - if (Node.ELEMENT_NODE == n.getNodeType()&& XMLUtils.equals(n, ELEM_XSD_IMPORT)) - { - Attr schemaLocation = XMLUtils.getAttribute((Element) n, ATTR_XSD_SCHEMALOCATION); - - // Try to parse imported XSD - if (schemaLocation != null && schemaLocation.getValue() != null) - { - if (!schemaLocations.contains(schemaLocation.getValue())) - { - schemaLocations.add(schemaLocation.getValue()); - try - { - // Read and pParse the XML schema document - Document document = parseXMLDocumentURL(schemaLocation.getValue(), ctx, TestUtils.getXMLSchemaLocation()); - processAllSchema(document.getDocumentElement(), XMLUtils.createURLString(schemaLocation.getValue(), ctx)); - } - catch (WSIException e) - { - if (throwException) throw e; - } - catch (Throwable t) - { - // NOTE: An exception will occur if the XML schema file is not - // found or if it is not formatted correctly - if (throwException) throw new WSIException(t.getMessage(), t); - } - } - } - } - n = n.getNextSibling(); - } - } - - // Return list created by the class that extends this class - return returnList; - } - finally - { - Thread.currentThread().setContextClassLoader(currentLoader); - } -} -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/schema/XMLSchemaProcessor.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/schema/XMLSchemaProcessor.java deleted file mode 100644 index e6e52e15a..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/schema/XMLSchemaProcessor.java +++ /dev/null @@ -1,170 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.xml.schema; - -import java.util.List; -import java.util.Vector; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.util.TestUtils; -import org.eclipse.wst.wsi.internal.core.xml.XMLDocumentCacheUser; -import org.eclipse.wst.wsi.internal.core.xml.XMLTags; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -/** - * This abstract class is used to process an XML Schema. - * - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ -public abstract class XMLSchemaProcessor - extends XMLDocumentCacheUser - implements XMLTags -{ - protected List returnList = new Vector(); - protected String context; - protected boolean throwException = true; - protected List schemaLocations = new Vector(); - - /** - * Constructor for XMLSchemaProcessor. - * @param context document context. - * @param documentList cache of previously parsed documents. - */ - public XMLSchemaProcessor(String context) - { - this(context, true); - } - - /** - * Constructor for XMLSchemaProcessor. - * @param context document context. - * @param documentList cache of previously parsed documents. - * @param throwException indicates if an exception should be thrown if there is a parsing problem. - */ - public XMLSchemaProcessor( - String context, - boolean throwException) - { - super(); - - this.context = context; - this.throwException = throwException; - } - - /** - * Search for all schema elements, load the xsd documents, and then process them. - * @param node node. - * @return a list. - * @throws WSIException if the XML schema file is not found or if it is not formatted correctly. - */ - public List processAllSchema(Node node) throws WSIException - { - return processAllSchema(node, context); - } - - /** - * Search for all schema elements, load the xsd documents, and then process them. - * @param node node. - * @return a list. - * @throws WSIException if the XML schema file is not found or if it is not formatted correctly. - */ - private List processAllSchema(Node node, String ctx) throws WSIException - { - ClassLoader currentLoader = Thread.currentThread().getContextClassLoader(); - try - { - Thread.currentThread().setContextClassLoader(XMLSchemaProcessor.class.getClassLoader()); - // Process all nodes - while (node != null) - { - // If this is an element node, then continue - if (Node.ELEMENT_NODE == node.getNodeType()) - { - // if xsd:schema element is found -> process schema - if (XMLUtils.equals(node, ELEM_XSD_SCHEMA)) - { - processSchema((Element) node); - - // Process all children of the schema element - processAllSchema(node.getFirstChild(), ctx); - } - - // if xsd:import element is found -> load schema and process schema - else if (XMLUtils.equals(node, ELEM_XSD_IMPORT)) - { - - Attr schemaLocation = - XMLUtils.getAttribute((Element) node, ATTR_XSD_SCHEMALOCATION); - - // Try to parse imported XSD - if (schemaLocation != null && schemaLocation.getValue() != null) - { - if (!schemaLocations.contains(schemaLocation.getValue())) - { - schemaLocations.add(schemaLocation.getValue()); - try - { - // Read and pParse the XML schema document - Document document = - parseXMLDocumentURL( - schemaLocation.getValue(), - ctx, - TestUtils.getXMLSchemaLocation()); - - processAllSchema(document.getDocumentElement(), - XMLUtils.createURLString(schemaLocation.getValue(), ctx)); - } - catch (WSIException e) - { - if (throwException) - throw e; - } - - catch (Throwable t) - { - // NOTE: An exception will occur if the XML schema file is not found or if it is not formatted correctly - if (throwException) - throw new WSIException(t.getMessage(), t); - } - } - } - } - - else - { - // else iterate element recursively - processAllSchema(node.getFirstChild(), ctx); - } - } - - // Get next sibiling - node = node.getNextSibling(); - } - - } - finally - { - Thread.currentThread().setContextClassLoader(currentLoader); - } - - - // Return list created by the class that extends this class - return returnList; - } - - protected abstract void processSchema(Element element); - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/schema/XMLSchemaValidator.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/schema/XMLSchemaValidator.java deleted file mode 100644 index 36ca130aa..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/xml/schema/XMLSchemaValidator.java +++ /dev/null @@ -1,152 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.xml.schema; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.util.TestUtils; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; - -import com.ibm.wsdl.util.xml.DOM2Writer; - -/** - * This class is used to validate an XML Schema. - * - * @author Peter Brittenham (peterbr@us.ibm.com) - * @version 1.0.1 - */ -public class XMLSchemaValidator extends XMLSchemaProcessor -{ - private static final String XMLNS_PREFIX = "xmlns:"; - - /** - * Constructor for XMLSchemaValidator. - * @param context document context. - * @param documentList cache of previously parsed documents. - */ - public XMLSchemaValidator(String context) - { - super(context); - } - - protected void processSchema(Element element) - { - NamedNodeMap attrList; - - HashMap elementMap = new HashMap(); - HashMap nsMap = new HashMap(); - - try - { - // Get schema content as a string - String schema = DOM2Writer.nodeToString(element); - - // Get list of element namespaces - if ((attrList = element.getAttributes()) != null) - { - addNamespaces(attrList, elementMap, null); - } - - // If elementMap does not contain entry for it's own namespace, then add it - if (elementMap.get(XMLNS_PREFIX + element.getPrefix()) == null) - { - elementMap.put( - XMLNS_PREFIX + element.getPrefix(), - element.getNamespaceURI()); - } - - // Get first parent node and then process all of them until you hit the top of the document - Node parentNode = element.getParentNode(); - while (parentNode != null) - { - // Only process Element nodes - if (parentNode.getNodeType() == Node.ELEMENT_NODE) - { - // Get the list of attributes for the parent node - attrList = parentNode.getAttributes(); - - // If there are attributes, look for the xmlns: attributes - if (attrList != null) - { - addNamespaces(attrList, nsMap, elementMap); - } - } - - parentNode = parentNode.getParentNode(); - } - - // Build namespace list - if (nsMap.size() > 0) - { - String attr; - String namespaceList = ""; - Iterator iterator = nsMap.keySet().iterator(); - while (iterator.hasNext()) - { - attr = (String) iterator.next(); - namespaceList += " " + attr + "=\"" + nsMap.get(attr) + "\""; - } - - // Add namespace settings, since the DOM2Writer will miss any that are used as attribute values - int index = schema.indexOf(">"); - if (index > 0) - { - String start = schema.substring(0, index); - String end = schema.substring(index); - - schema = start + namespaceList + end; - } - } - - // Schema validate the XML schema document - XMLUtils.parseXML(schema, TestUtils.getXMLSchemaLocation()); - } - - catch (WSIException we) - { - Throwable t = we.getTargetException(); - if (t != null) - { - returnList.add(t.getMessage()); - } - } - } - - private void addNamespaces(NamedNodeMap attrList, Map nsMap, Map elementMap) - { - Node attr; - String nodeName; - - for (int i = 0; i < attrList.getLength(); i++) - { - attr = attrList.item(i); - - // Get the attribute node name - nodeName = attr.getNodeName(); - - // If it starts with xmlns:, then determine if it should be added to the list of namespaces - if (nodeName.startsWith(XMLNS_PREFIX) - && ((elementMap == null - || (elementMap != null && elementMap.get(nodeName) == null)))) - { - if (nsMap.get(nodeName) == null) - nsMap.put(nodeName, attr.getNodeValue()); - } - } - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/document/DocumentFactoryImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/document/DocumentFactoryImpl.java deleted file mode 100644 index f0c4bc371..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/document/DocumentFactoryImpl.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.document; - - -import org.eclipse.wst.wsi.internal.core.report.Report; -import org.eclipse.wst.wsi.internal.core.report.ReportWriter; -import org.eclipse.wst.wsi.internal.core.report.Reporter; -import org.eclipse.wst.wsi.internal.report.NullReportImpl; -import org.eclipse.wst.wsi.internal.report.ReportNoWriterImpl; -import org.eclipse.wst.wsi.internal.report.SimpleReporter; - -/** - * DocumentFactoryImpl - * - * Extends the WS-I Test Tools document factory to specify specific Report - * and ReportWriter classes needed for inclusion of the tools in WSAD. - */ -public class DocumentFactoryImpl extends org.eclipse.wst.wsi.internal.core.document.impl.DocumentFactoryImpl -{ - - /** - * Constructor for DocumentFactoryImpl. - */ - public DocumentFactoryImpl() - { - super(); - } - - /** - * Create a new instance of a DocumentWriter. - */ - public ReportWriter newReportWriter() - { - // Return implementation - return new ReportNoWriterImpl(); - } - - /** - * Create report. - * @return newly created report. - */ - public Report newReport() - { - return new NullReportImpl(); - } - - /** - * Create a reporter. - * @return newly created reporter. - */ - public Reporter newReporter(Report report, ReportWriter reportWriter) - { - return new SimpleReporter(report, reportWriter); - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/report/AssertionError.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/report/AssertionError.java deleted file mode 100644 index 3e0ec824e..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/report/AssertionError.java +++ /dev/null @@ -1,131 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ - package org.eclipse.wst.wsi.internal.report; - -/** - * AssertionError - * - * Object to hold an assertion error generated by the WS-I Test Tools. - * Provides access to all the information about the error including the - * id, message and location in the file. - */ -public class AssertionError -{ - - protected String message; - protected String assertionid; - protected int column; - protected int line; - /** - * Constructor for AssertionError. - */ - public AssertionError() - { - message = assertionid = ""; - line = column = 0; - } - - /** - * Constructor for AssertionError. - * @param id assertion id. - * @param message a error message. - * @param line a line number. - * @param column a column number. - */ - public AssertionError(String id, String message, int line, int column) - { - this.assertionid = id; - this.message = message; - this.line = line; - this.column = column; - } - - /** - * Method setAssertionID. - * @param id assertion id. - * @see #getAssertionID - */ - public void setAssertionID(String id) - { - assertionid = id; - } - - /** - * Method getAssertionID. - * @return asserion id. - * @see #setAssertionID - */ - public String getAssertionID() - { - return assertionid; - } - - /** - * Method setErrorMessage. - * @param message a error message. - * @see #getErrorMessage - */ - public void setErrorMessage(String message) - { - this.message = message; - } - - /** - * Method getErrorMessage. - * @return error message. - * @see #setErrorMessage - */ - public String getErrorMessage() - { - return message; - } - - /** - * Method setLine. - * @param line line number. - * @see #getLine - */ - public void setLine(int line) - { - this.line = line; - } - - /** - * Method getLine. - * @return line number. - * @see #setLine - */ - public int getLine() - { - return line; - } - - /** - * Method setColumn. - * @param column column number. - * @see #getColumn - */ - public void setColumn(int column) - { - this.column = column; - } - - /** - * Method getColumn. - * @return column number. - * @see #setColumn - */ - public int getColumn() - { - return column; - } - -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/report/NullReportImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/report/NullReportImpl.java deleted file mode 100644 index b9ae98d27..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/report/NullReportImpl.java +++ /dev/null @@ -1,54 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.report; - -import org.eclipse.wst.wsi.internal.core.report.Report; -import org.eclipse.wst.wsi.internal.core.report.impl.ReportImpl; - -/** - * Null report. - * - * @author Jeffrey Liu (jeffliu@ca.ibm.com) - */ -public class NullReportImpl extends ReportImpl implements Report -{ - /* (non-Javadoc) - * @see org.wsi.test.report.Report#getStartXMLString(java.lang.String) - */ - public String getStartXMLString(String namespaceName) - { - return ""; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Report#getEndXMLString(java.lang.String) - */ - public String getEndXMLString(String namespaceName) - { - return ""; - } - - /* (non-Javadoc) - * @see org.wsi.test.report.Report#getErrorXMLString(java.lang.String, java.lang.String) - */ - public String getErrorXMLString(String namespaceName, String errorDetail) - { - return ""; - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentElement#toXMLString(java.lang.String) - */ - public String toXMLString(String namespaceName) - { - return ""; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/report/ReportNoWriterImpl.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/report/ReportNoWriterImpl.java deleted file mode 100644 index 7f3725cf5..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/report/ReportNoWriterImpl.java +++ /dev/null @@ -1,84 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.report; - -import java.io.IOException; -import java.io.Reader; -import java.io.Writer; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.report.Report; -import org.w3c.dom.Document; - -/** - * WS-I conformance test ReportWriter for wsi plugin. - * This ReportWriter writes nothing so no report file will be created. - */ -public class ReportNoWriterImpl implements org.eclipse.wst.wsi.internal.core.report.ReportWriter -{ - - /** - * @see java.lang.Object#Object() - */ - public ReportNoWriterImpl() - { - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentWriter#getDocument() - */ - public Document getDocument() throws UnsupportedOperationException - { - throw new UnsupportedOperationException(); - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentWriter#setWriter(String) - */ - public void setWriter(String documentLocation) throws IOException - { - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentWriter#write(Reader) - */ - public void write(Reader reader) throws WSIException, IllegalStateException - { - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentWriter#write(Reader, Writer) - */ - public void write(Reader reader, Writer writer) throws WSIException - { - } - - /* (non-Javadoc) - * @see org.wsi.test.report.ReportWriter#write(Report) - */ - public void write(Report report) throws IllegalStateException - { - } - - /* (non-Javadoc) - * @see org.wsi.test.report.ReportWriter#write(Report, Writer) - */ - public void write(Report report, Writer writer) - { - } - - /* (non-Javadoc) - * @see org.wsi.test.document.DocumentWriter#close() - */ - public void close() throws WSIException, IllegalStateException - { - } -} diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/report/SimpleReporter.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/report/SimpleReporter.java deleted file mode 100644 index 8365e4960..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/report/SimpleReporter.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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 - Initial API and implementation - *******************************************************************************/ - -package org.eclipse.wst.wsi.internal.report; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.report.ArtifactReference; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.report.Report; -import org.eclipse.wst.wsi.internal.core.report.ReportWriter; -import org.eclipse.wst.wsi.internal.core.report.impl.DefaultReporter; - -/** - * This reporter does not write artifacts and assertions - */ -public class SimpleReporter extends DefaultReporter -{ - public SimpleReporter(Report report, ReportWriter reportWriter) - { - super(report, reportWriter); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#addArtifactReference(org.wsi.test.report.ArtifactReference) - */ - public void addArtifactReference(ArtifactReference artifactReference) - throws WSIException - { - report.addArtifactReference(artifactReference); - } - - /* (non-Javadoc) - * @see org.wsi.test.report.BuildReport#addAssertionResult(org.wsi.test.report.AssertionResult) - */ - public void addAssertionResult(AssertionResult assertionResult) - throws WSIException - { - report.addAssertionResult(assertionResult); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/validate/wsdl/WSDLValidator.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/validate/wsdl/WSDLValidator.java deleted file mode 100644 index 13a7cb884..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/validate/wsdl/WSDLValidator.java +++ /dev/null @@ -1,389 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 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 - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.validate.wsdl; -import java.text.MessageFormat; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; -import java.util.ResourceBundle; - -import javax.wsdl.Binding; -import javax.wsdl.Definition; -import javax.wsdl.Message; -import javax.wsdl.Port; -import javax.wsdl.PortType; -import javax.wsdl.Service; -import javax.wsdl.WSDLException; - -import org.eclipse.wst.wsdl.validation.internal.IValidationInfo; -import org.eclipse.wst.wsdl.validation.internal.IWSDLValidator; -import org.eclipse.wst.wsdl.validation.internal.ValidationInfoImpl; -import org.eclipse.wst.wsdl.validation.internal.exception.ValidateWSDLException; -import org.eclipse.wst.wsdl.validation.internal.resolver.URIResolver; -import org.eclipse.wst.wsdl.validation.internal.util.MessageGenerator; -import org.eclipse.wst.wsdl.validation.internal.wsdl11.WSDL11ValidationInfoImpl; -import org.eclipse.wst.wsdl.validation.internal.wsdl11.WSDLDocument; -import org.eclipse.wst.wsdl.validation.internal.wsdl11.WSDLReaderImpl; -import org.eclipse.wst.wsi.internal.WSIPreferences; -import org.eclipse.wst.wsi.internal.WSITestToolsEclipseProperties; -import org.eclipse.wst.wsi.internal.WSITestToolsProperties; -import org.eclipse.wst.wsi.internal.analyzer.WSDLAnalyzer; -import org.eclipse.wst.wsi.internal.analyzer.WSIAnalyzerException; -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.report.AssertionError; -import org.w3c.dom.Document; - -/** - * The WSI validator plugs into the WSDL validator to provide - * validation for a WSDL document with respect to the WS-I Basic Profile (currently 1.0). - * This class acts as an bridge between the WS-I tools and the WSDL Validator. - * - * @author Lawrence Mandel (lmandel@ca.ibm.com) - * @author Wajiha Rehman - */ -public class WSDLValidator implements IWSDLValidator -{ - protected final String _EXC_UNABLE_TO_VALIDATE_WSI = "_EXC_UNABLE_TO_VALIDATE_WSI"; - - // indications for types of errors - protected final int ERROR = 2; - protected final int WARNING = 1; - - protected ResourceBundle resourcebundle = null; - protected boolean wsiValid = false; - - /** - * Constructor. - */ - public WSDLValidator() - { - resourcebundle = ResourceBundle.getBundle("wsivalidate", Locale.getDefault()); - } - - /* (non-Javadoc) - * @see org.eclipse.wsdl.validate.IWSDLValidator#validate(org.w3c.dom.Document, org.eclipse.wsdl.validate.ValidationInfo) - */ - public void validate(Document domModel, IValidationInfo valInfo) throws ValidateWSDLException - { - boolean withAttachments = false; - boolean withBasic = false; - Object attValue = valInfo.getAttribute("http://ws-i.org/profiles/BasicWithAttachments/ComplianceLevel"); - if(attValue == null) - { - attValue = valInfo.getAttribute("http://ws-i.org/profiles/Basic/ComplianceLevel"); - if(attValue != null) - { - withBasic = true; - } - } - else - { - withAttachments = true; - } - String wsiLevel = WSITestToolsProperties.WARN_NON_WSI; - WSIPreferences wsiPreference = null; - String uri = valInfo.getFileURI(); - if(attValue != null) - { - String value = (String)attValue; - if(value.equals("IGNORE")) - { - wsiLevel = WSITestToolsProperties.IGNORE_NON_WSI; - } - else if(value.equals("REQUIRE")) - { - wsiLevel = WSITestToolsProperties.STOP_NON_WSI; - } - } - else - { - if(WSITestToolsProperties.getEclipseContext()) - { - wsiPreference = WSITestToolsEclipseProperties.checkWSIPreferences(uri); - wsiLevel = wsiPreference.getComplianceLevel(); - } - else - { - wsiPreference = WSITestToolsProperties.checkWSIPreferences(uri); - wsiLevel = wsiPreference.getComplianceLevel(); - } - } - // If we are ignoring WS-I then don't run the tests. - if(wsiLevel.equals(WSITestToolsProperties.IGNORE_NON_WSI)) - { - return; - } - - wsiValid = true; - Definition definition = null; - boolean hasAnalyzerConfig = false; - try - { - //WSDLFactory factory = WSDLFactory.newInstance(); - ValidationInfoImpl vali = new ValidationInfoImpl(valInfo.getFileURI(), new MessageGenerator(resourcebundle)); - vali.setURIResolver((URIResolver)valInfo.getURIResolver()); - WSDLReaderImpl reader = new WSDLReaderImpl(new WSDL11ValidationInfoImpl(vali)); - WSDLDocument[] docs = reader.readWSDL(uri, domModel); - int numdocs = docs.length; - for(int i = 0; i < numdocs; i++) - { - WSDLDocument tempDoc = docs[i]; - if(tempDoc.getDefinition().getDocumentBaseURI().equals(valInfo.getFileURI())) - { - definition = tempDoc.getDefinition(); - break; - } - } - } - catch(WSDLException e) - { - throw new ValidateWSDLException(MessageFormat.format(resourcebundle.getString(_EXC_UNABLE_TO_VALIDATE_WSI), new Object[] { uri })); - } - - if (definition != null && valInfo != null) - { - String namespace = definition.getTargetNamespace(); - - // get all the collections we may need to validate - Collection services = definition.getServices().values(); - Collection bindings = definition.getBindings().values(); - Collection portTypes = definition.getPortTypes().values(); - Collection messages = definition.getMessages().values(); - - WSDLAnalyzer wsdlAnalyzer; - if(withAttachments) - { - WSIPreferences preferences = new WSIPreferences(); - preferences.setComplianceLevel(wsiLevel); - preferences.setTADFile(WSITestToolsProperties.AP_ASSERTION_FILE); - wsdlAnalyzer = new WSDLAnalyzer(uri, preferences); - } - else if(withBasic) - { - WSIPreferences preferences = new WSIPreferences(); - preferences.setComplianceLevel(wsiLevel); - preferences.setTADFile(WSITestToolsProperties.SSBP_ASSERTION_FILE); - wsdlAnalyzer = new WSDLAnalyzer(uri, preferences); - } - else if(wsiPreference != null) - { - wsdlAnalyzer = new WSDLAnalyzer(uri, wsiPreference); - } - else { - // default preference setting - wsdlAnalyzer = new WSDLAnalyzer(uri); - } - - // The WS-I conformance tools require that each service be analyzed separately. - // Get all the services and analyze them. - if (services != null && !services.isEmpty()) - { - Iterator serviceIterator = services.iterator(); - - while (serviceIterator.hasNext()) - { - Service service = (Service) serviceIterator.next(); - - String servicename = service.getQName().getLocalPart(); - - Collection ports = service.getPorts().values(); - if (ports != null && !ports.isEmpty()) - { - // The WS-I tools must be called once for each port within each service. - Iterator portIterator = ports.iterator(); - while (portIterator.hasNext()) - { - Port port = (Port) portIterator.next(); - - try - { - wsdlAnalyzer.addConfigurationToTest(servicename, namespace, port.getName(), WSDLAnalyzer.PORT); - hasAnalyzerConfig = true; - } - catch (WSIAnalyzerException e) - { - // TODO: Add code to log error - //System.out.println("exception " + e); - } - - } - } - } - } - // validate at the binding level - check for every binding - else if (bindings != null && !bindings.isEmpty()) - { - Iterator bindingIterator = bindings.iterator(); - - while (bindingIterator.hasNext()) - { - Binding binding = (Binding) bindingIterator.next(); - - String bindingname = binding.getQName().getLocalPart(); - try - { - wsdlAnalyzer.addConfigurationToTest(null, namespace, bindingname, WSDLAnalyzer.BINDING); - hasAnalyzerConfig = true; - } - catch (WSIAnalyzerException e) - { - // TODO: Add code to log error - //System.out.println("exception " + e); - } - } - } - // validate at the portType level - check for every portType - else if (portTypes != null && !portTypes.isEmpty()) - { - Iterator portTypeIterator = portTypes.iterator(); - while (portTypeIterator.hasNext()) - { - PortType portType = (PortType) portTypeIterator.next(); - String portTypename = portType.getQName().getLocalPart(); - try - { - wsdlAnalyzer.addConfigurationToTest(null, namespace, portTypename, WSDLAnalyzer.PORTTYPE); - hasAnalyzerConfig = true; - } - catch (WSIAnalyzerException e) - { - // TODO: Add code to log error - //System.out.println("exception " + e); - } - } - } - // validate at the message level - check for every message - else if (messages != null && !messages.isEmpty()) - { - Iterator messageIterator = messages.iterator(); - - while (messageIterator.hasNext()) - { - Message message = (Message) messageIterator.next(); - String messagename = message.getQName().getLocalPart(); - try - { - wsdlAnalyzer.addConfigurationToTest(null, namespace, messagename, WSDLAnalyzer.MESSAGE); - hasAnalyzerConfig = true; - } - catch (WSIAnalyzerException e) - { - // TODO: Add code to log error - //System.out.println("exception " + e); - } - } - } - try - { - // only run the analyzer if there is something to check - if(hasAnalyzerConfig) - { - // run the conformance check and add errors and warnings as needed - wsdlAnalyzer.validateConformance(); - - // If the level is suggest all errors should be reported as warnings. - if(wsdlAnalyzer.getWSIPreferences().getComplianceLevel().equals(WSITestToolsProperties.WARN_NON_WSI)) - { - addWarnings(wsdlAnalyzer.getAssertionErrors(), valInfo); - } - else - { - addErrors(wsdlAnalyzer.getAssertionErrors(), valInfo); - } - addWarnings(wsdlAnalyzer.getAssertionWarnings(), valInfo); - } - } - catch (WSIAnalyzerException e) - { - // TODO: Add code to log error - valInfo.addWarning(WSIConstants.WSI_PREFIX + "A problem occured while running the WS-I WSDL conformance check: " + e, 1, 0, valInfo.getFileURI()); - } - } - } - - /** - * Add error messages to the validationcontroller. - * - * @param errors The list of errors to add. - * @param valInfo The object that contains the validation information. - */ - protected void addErrors(List errors, IValidationInfo valInfo) - { - reportProblems(errors, valInfo, ERROR); - } - - /** - * Add warning messages to the validationcontroller. - * - * @param warnings The list of warnings to add. - * @param valInfo The object that contains the validation information. - */ - protected void addWarnings(List warnings, IValidationInfo valInfo) - { - reportProblems(warnings, valInfo, WARNING); - } - - /** - * Report the problems specified for the given type to the validationcontroller. - * - * @param problems The problems to report. - * @param valInfo The object to report the problems to. - * @param type The type of messages to add. - */ - protected void reportProblems(List problems, IValidationInfo valInfo, int type) - { - // if there were no problems just return - if (problems == null) - return; - - - Iterator problemsIterator = problems.iterator(); - while (problemsIterator.hasNext()) - { - AssertionError assertionerror = (AssertionError) problemsIterator.next(); - if (type == ERROR) - { - wsiValid = false; - valInfo.addError( - WSIConstants.WSI_PREFIX + "(" + assertionerror.getAssertionID()+ ") " + assertionerror.getErrorMessage(), - assertionerror.getLine(), - assertionerror.getColumn(), - valInfo.getFileURI()); - - } - else if (type == WARNING) - { - valInfo.addWarning( - WSIConstants.WSI_PREFIX + "(" + assertionerror.getAssertionID()+ ") " + assertionerror.getErrorMessage(), - assertionerror.getLine(), - assertionerror.getColumn(), - valInfo.getFileURI()); - } - } - } - - /** - * @see org.eclipse.wsdl.validate.controller.IWSDLValidator#isValid() - */ - public boolean isValid() - { - return wsiValid; - } - - public void setResourceBundle(ResourceBundle rb) { - // Not used. - - } - - - -} |