diff options
Diffstat (limited to 'bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl')
267 files changed, 0 insertions, 32695 deletions
diff --git a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/AssertionProcess.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/AssertionProcess.java deleted file mode 100644 index 23a3d2c3a..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/AssertionProcessVisitor.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/AssertionProcessVisitor.java deleted file mode 100644 index 487b0a84c..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/AssertionProcessVisitor.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; - -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 -{ - private final BaseValidatorImpl base_validator; - - /** - * @param BaseValidatorImpl - */ - public AssertionProcessVisitor(BaseValidatorImpl impl) - { - super(impl); - this.base_validator = 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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/BaseMessageValidator.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/BaseMessageValidator.java deleted file mode 100644 index a28800322..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/BaseMessageValidator.java +++ /dev/null @@ -1,1838 +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; - -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.StringTokenizer; -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.log.Log; -import org.eclipse.wst.wsi.internal.core.log.MessageEntry; -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.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl.WSDLValidatorImpl; -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.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.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 -{ - /** - * WSDL document. - */ - private WSDLDocument wsdlDocument; - - /** - * Log entry. - */ - protected MessageEntry logEntry; - protected Log log; - - /* (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); - - // 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 ((wsdlDocument == null) - || 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) + ":")) - { - String nodeValue = node.getNodeValue(); - child.setAttribute(node.getNodeName(), 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(EntryType.TYPE_MESSAGE_REQUEST) - && (bindingOp.getOperation().getInput() != null)) - { - name = bindingOp.getOperation().getName(); - extensibles = bindingOp.getBindingInput().getExtensibilityElements(); - } - else if ( - messageEntryType.isType(EntryType.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(EntryType.TYPE_MESSAGE_REQUEST) - && (bindingOp.getOperation().getInput() != null)) - { - wsdlMessage = bindingOp.getOperation().getInput().getMessage(); - extensibles = bindingOp.getBindingInput().getExtensibilityElements(); - } - else if ( - messageEntryType.isType(EntryType.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.ENTRY_TYPE_REQUEST)) - { - return getInputDocLitOperations(partElementQName, wsdlOperations); - } - else if (messageType.isType(EntryType.ENTRY_TYPE_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); - } - 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; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/BaseValidatorImpl.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/BaseValidatorImpl.java deleted file mode 100644 index b72ce34c3..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/BaseValidatorImpl.java +++ /dev/null @@ -1,705 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * 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(); - } - - /** - * 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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/ProfileValidatorFactoryImpl.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/ProfileValidatorFactoryImpl.java deleted file mode 100644 index 4add15518..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/ProfileValidatorFactoryImpl.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.profile.validator.impl; - -import org.eclipse.wst.wsi.internal.core.WSIException; -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 -{ - /* (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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/AP1920.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/AP1920.java deleted file mode 100644 index a7f2ebd07..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/AP1920.java +++ /dev/null @@ -1,118 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * 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.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(EntryType.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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/AP1928.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1005.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1007.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1008.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1009.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1009.java deleted file mode 100644 index 44f1e2524..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1009.java +++ /dev/null @@ -1,315 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * 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(); - } - Element soapBodyElem = (Element) soapBodyList.item(0); - - // 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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1011.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1011.java deleted file mode 100644 index 8e07a7983..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/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 - { - boolean isSchemaValid = 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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1012.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1013.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1031.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1032.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1033.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1100.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1107.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1201.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1202.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1203.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1204.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1204.java deleted file mode 100644 index 5bf480deb..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1204.java +++ /dev/null @@ -1,302 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * 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.UnknownExtensibilityElement; -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 = - ((UnknownExtensibilityElement) 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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1208.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1211.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1212.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1213.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1214.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1301.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1302.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1305.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1305.java deleted file mode 100644 index 1c7976f5a..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/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 java.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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1306.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1307.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1308.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1309.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1316.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1318.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1600.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1600.java deleted file mode 100644 index e28c5b84e..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1600.java +++ /dev/null @@ -1,267 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * 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); - - // 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()) - && !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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1601.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1701.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1701.java deleted file mode 100644 index 76b94531f..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1701.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.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" - Document validationDoc = - 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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1755.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP4100.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP4101.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP4102.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP4109.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/EnvelopeValidatorImpl.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/EnvelopeValidatorImpl.java deleted file mode 100644 index be2014cb0..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/EnvelopeValidatorImpl.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.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.impl.BaseMessageValidator; -import org.eclipse.wst.wsi.internal.core.util.EntryType; - -/** - * @version 1.0 - */ -public class EnvelopeValidatorImpl - extends BaseMessageValidator - implements EnvelopeValidator -{ - /* (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(EntryType.TYPE_ENVELOPE_ANY)) - || (testAssertion.getEntryTypeName().equals(EntryType.TYPE_ENVELOPE_REQUEST) - && (entryContext - .getEntry() - .getEntryType() - .getTypeName() - .equals(EntryType.TYPE_MESSAGE_REQUEST))) - || (testAssertion.getEntryTypeName().equals(EntryType.TYPE_ENVELOPE_RESPONSE) - && (entryContext - .getEntry() - .getEntryType() - .getTypeName() - .equals(EntryType.TYPE_MESSAGE_RESPONSE)))) - { - match = true; - } - - return match; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/SSBP1601.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/SSBP9704.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1003.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1902.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1915.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1917.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1925.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1925.java deleted file mode 100644 index dc501f4fb..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1925.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 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.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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1926.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1931.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1932.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1933.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1934.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1935.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1935.java deleted file mode 100644 index 4d8fce7fc..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/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 = 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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1936.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1942.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1945.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP1946.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP5100.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/AP5101.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1001.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1002.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1002.java deleted file mode 100644 index 7564c1569..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/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 java.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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1004.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1004.java deleted file mode 100644 index 8b06ae766..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/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 java.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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1006.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1010.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1101.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1103.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1104.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP1116.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP4103.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP4104.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP4105.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP4105.java deleted file mode 100644 index d14f77888..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/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 java.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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP4106.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/BP4107.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/MessageValidatorImpl.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/MessageValidatorImpl.java deleted file mode 100644 index 015bff2a2..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/MessageValidatorImpl.java +++ /dev/null @@ -1,57 +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; -import org.eclipse.wst.wsi.internal.core.util.EntryType; - -/** - * @version 1.0 - */ -public class MessageValidatorImpl - extends BaseMessageValidator - implements MessageValidator -{ - /* (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(EntryType.TYPE_MESSAGE_ANY)) - || (testAssertion.getEntryTypeName().equals(EntryType.TYPE_MESSAGE_REQUEST) - && (entryContext - .getEntry() - .getEntryType() - .getTypeName() - .equals(EntryType.TYPE_MESSAGE_REQUEST))) - || (testAssertion.getEntryTypeName().equals(EntryType.TYPE_MESSAGE_RESPONSE) - && (entryContext - .getEntry() - .getEntryType() - .getTypeName() - .equals(EntryType.TYPE_MESSAGE_RESPONSE))) - || testAssertion.getEntryTypeName().equals(EntryType.TYPE_MIME_ROOT_PART) - || testAssertion.getEntryTypeName().equals(EntryType.TYPE_MIME_PART)) - { - match = true; - } - - return match; - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/SSBP1003.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/SSBP5100.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/SSBP5101.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1001.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1002.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1003.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1004.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1005.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1006.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1007.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1008.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1009.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1010.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1011.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1012.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1013.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1031.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1100.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1101.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1102.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1103.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1104.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1105.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1107.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1108.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1109.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1110.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1111.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1116.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1121.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1201.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1202.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1203.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1204.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1208.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1211.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1301.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1302.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1305.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1306.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1307.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1308.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1309.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1311.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1316.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1318.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1601.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI1701.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4100.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4101.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4102.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4103.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4104.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4105.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4106.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/message/WSI4107.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/BP3001.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/BP3001.java deleted file mode 100644 index b206cd03d..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/BP3001.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.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.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 = validator.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); - } - - if (result == AssertionResult.RESULT_PASSED) - { - // Set the binding that will be used - validator.setWSDLBinding(binding); - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetailMessage); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/BP3002.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/BP3003.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/BP3003.java deleted file mode 100644 index c0e04f04b..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/BP3003.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.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.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 (!(validator.isWsdlSpec(tModel))) - { - result = AssertionResult.RESULT_FAILED; - failureDetailMessage = - "The tModel key is: [" - + tModel.getTModelKey() - + "]\n" - + "The categoryBag is: [" - + this.validator.categoryBagToString(tModel.getCategoryBag()) - + "]"; - } - - // Else get the WSDL document location and set it and the binding element in analyzer context - else - { - // set WSDL location in analyzer context - validator.setWSDLLocation(validator.getWSDLLocation(validator.getOverviewURL(tModel))); - } - - // Return assertion result - return validator.createAssertionResult(testAssertion, result, failureDetailMessage); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/UDDIValidatorImpl.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/UDDIValidatorImpl.java deleted file mode 100644 index 3df554d0c..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/UDDIValidatorImpl.java +++ /dev/null @@ -1,595 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * 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.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.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.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.wsdl.WSDLDocument; -import org.uddi4j.client.UDDIProxy; -import org.uddi4j.datatype.binding.BindingTemplate; -import org.uddi4j.datatype.binding.TModelInstanceInfo; -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; - - /** - * WSDL binding. - */ - private Binding binding = null; - - /* (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); - - // Save input references - this.uddiReference = uddiReference; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.UDDIValidator#validate() - */ - public String validate() throws WSIException - { - String wsdlURL = null; - 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 = findTModel(uddiProxy, bindingTemplate); - } - - // 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(EntryType.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(EntryType.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. - - //Parse WSDL document, and get WSDL document url, binding name and namespace - try - { - String overviewURL = getOverviewURL(tModel); - wsdlURL = getWSDLLocation(overviewURL); - WSDLDocument wsdlDocument = getWSDLDocument(wsdlURL); - - // ADD: The WSDL binding is used in WSI3001 and should be moved to the entryContext - binding = getBinding(overviewURL, wsdlDocument); - } - - catch (Exception e) - { - // ADD: - if (verboseOption) - { - System.err.println(" EXCEPTION: " + e.toString()); - } - } - - // Create entry - entry = this.reporter.getReport().createEntry(); - entry.setEntryType( - EntryType.getEntryType(EntryType.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(); - - // Get WSDL location - wsdlURL = this.analyzerContext.getServiceReference().getWSDLLocation(); - - // Return WSDL URL - return wsdlURL; - } - - /** - * 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(EntryType.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); - } - - /** - * Find the wsdlSpec tModel associated with a binding. - */ - private TModel findTModel( - UDDIProxy uddiProxy, - BindingTemplate bindingTemplate) - 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. - */ - 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. - */ - 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. - */ - 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(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; - } - -} diff --git a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3001.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3002.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3003.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3004.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3004.java deleted file mode 100644 index 065480e3d..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/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 = validator.getOverviewURL(tModel); - WSDLDocument wsdlDocument = validator.getWSDLDocument(overviewURL); - - // Get binding - Binding binding = validator.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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3005_OBSOLETE.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3006.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3007.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3007.java deleted file mode 100644 index 49f3ef64f..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3007.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.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 - { - String serviceLocation = null; - - 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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3021.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2901.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2903.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2904.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2904.java deleted file mode 100644 index 0aec151bb..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2904.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.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 -{ - private final WSDLValidatorImpl validator; - - /** - * @param WSDLValidatorImpl - */ - public AP2904(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 super.validate(testAssertion, entryContext); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2906.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2907.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2908.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2908.java deleted file mode 100644 index 5208c8af3..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2908.java +++ /dev/null @@ -1,297 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * 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.IOException; -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.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.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 = XMLUtils.parseXMLDocument(validator.wsdlURL); - - // 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) - throw new AssertionNotApplicableException(); - } - catch (IOException ioe) - { - result = AssertionResult.RESULT_NOT_APPLICABLE; - } - 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 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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2909.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2910.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2911.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2930.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2940.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2941.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2941.java deleted file mode 100644 index bb3a7a3ab..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2941.java +++ /dev/null @@ -1,341 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * 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()); - } - } - } - // 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; - } - - /** - * 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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2944.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/AP2946.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2010.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2011.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2011.java deleted file mode 100644 index cce15cd30..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2011.java +++ /dev/null @@ -1,343 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * 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 java.util.Iterator; -import java.util.List; - -import javax.wsdl.Definition; -import javax.wsdl.Types; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.UnknownExtensibilityElement; - -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 = 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 UnknownExtensibilityElement) - searchForSchema(((UnknownExtensibilityElement) el).getElement(), - definition.getDocumentBaseURI()); - } - } - - 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) - { - 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); - 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); - else - // else iterate element recursively - searchForSchema(n.getFirstChild(), context); - } - 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) - { - 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)) - { - Attr a = XMLUtils.getAttribute(im, ATTR_XSD_NAMESPACE); - String namespace = (a != null) ? a.getValue() : ""; - processSchema(schema.getDocumentElement(), - XMLUtils.createURLString(schemaLocation.getValue(), context)); - } - 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) - { - Node n = schema.getFirstChild(); - while (n != null) - { - if (Node.ELEMENT_NODE == n.getNodeType() - && XMLUtils.equals(n, ELEM_XSD_IMPORT)) - loadSchema(n, context); - - n = n.getNextSibling(); - } - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2012.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2013.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2014.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2017.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2018.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2019.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2019.java deleted file mode 100644 index 21a07e30a..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2019.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.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(""); - String soapExtensibleWithNamespace = null; - - // 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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2020.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2021.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2022.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2023.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2032.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2034.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2034.java deleted file mode 100644 index c8e61e8d2..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2034.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.List; - -import javax.wsdl.Definition; -import javax.wsdl.Types; -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.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 - UnknownExtensibilityElement schema = - (UnknownExtensibilityElement) 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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2098.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2101.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2101.java deleted file mode 100644 index d39ac89bb..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2101.java +++ /dev/null @@ -1,118 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * 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.util.TestUtils; -import org.eclipse.wst.wsi.internal.core.util.Utils; -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; - - -/** - * 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; - - // 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."); - else - try - { - // try to parse WSDL according to the WSDL schema - Document doc = - validator.parseXMLDocumentURL( - im.getLocationURI(), - ((Definition)parent).getDocumentBaseURI(), - TestUtils.getWSDLSchemaLocation()); - } - catch (Throwable t) - { - errors.add( - im.getNamespaceURI() - + ":" - + im.getLocationURI() - + "\n" - + Utils.getExceptionDetails(t)); - } - } - - 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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2102.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2102.java deleted file mode 100644 index d272b9d75..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2102.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 java.util.Map; - -import javax.wsdl.Definition; -import javax.wsdl.Types; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.UnknownExtensibilityElement; - -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 UnknownExtensibilityElement - && el.getElementType().equals(ELEM_XSD_SCHEMA)) - testNode(((UnknownExtensibilityElement) el).getElement(), - definition.getDocumentBaseURI()); - - 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) - { - 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)); - } - - 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); - } - n = n.getNextSibling(); - } - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2103.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2103.java deleted file mode 100644 index 4fda970fd..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2103.java +++ /dev/null @@ -1,130 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * 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.UnknownExtensibilityElement; -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 UnknownExtensibilityElement) - searchForImport(((UnknownExtensibilityElement) 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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2104.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2105.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2107.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2107.java deleted file mode 100644 index 01c5ecee0..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2107.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.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.UnknownExtensibilityElement; - -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.Document; -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 UnknownExtensibilityElement) - searchForSchema(((UnknownExtensibilityElement) 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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2108.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2110.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2111.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2112.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2112.java deleted file mode 100644 index c69a3b533..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2112.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.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(); - private Message message = null; - - /* - * 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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2113.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2114.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2115.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2116.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2117.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2118.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2119.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2120.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2121.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2122.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2122.java deleted file mode 100644 index 7ee1ed003..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2122.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.impl.wsdl; - -import java.util.List; - -import javax.wsdl.Definition; -import javax.wsdl.Types; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.UnknownExtensibilityElement; - -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; - } - - private String context; - - /** - * @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(); - - Definition definition = null; - - if (types != null) - { - if ((definition = - validator.analyzerContext.getCandidateInfo().getDefinition(types)) - == null) - { - throw new WSIException("Could not find types definition in any WSDL document."); - } - - context = definition.getDocumentBaseURI(); - - 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 UnknownExtensibilityElement) - { - 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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2123.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2201.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2202.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2202.java deleted file mode 100644 index 83d886c2c..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2202.java +++ /dev/null @@ -1,423 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * 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 java.util.Iterator; -import java.util.List; - -import javax.wsdl.Definition; -import javax.wsdl.Types; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.UnknownExtensibilityElement; - -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"; - private final String VERSION_TOKEN = "version"; - - /* (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 = 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 UnknownExtensibilityElement - && el.getElementType().equals(ELEM_XSD_SCHEMA)) - searchForSchema(((UnknownExtensibilityElement) el).getElement(), - definition.getDocumentBaseURI()); - } - } - - 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) - { - 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); - } - else - { - // if xsd:import element is found -> load schema and process schema - if (XMLUtils.equals(n, ELEM_XSD_IMPORT)) - { - importFound = true; - loadSchema(n, context); - } - else - // else iterate element recursively - searchForSchema(n.getFirstChild(), context); - } - } - 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) - { - 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)) - { - Attr a = XMLUtils.getAttribute(im, ATTR_XSD_NAMESPACE); - String namespace = (a != null) ? a.getValue() : ""; - processSchema(schema.getDocumentElement(), - XMLUtils.createURLString(schemaLocation.getValue(), context)); - } - result = 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) - { - Node n = schema.getFirstChild(); - while (n != null) - { - if (Node.ELEMENT_NODE == n.getNodeType() - && XMLUtils.equals(n, ELEM_XSD_IMPORT)) - { - importFound = true; - loadSchema(n, context); - } - - n = n.getNextSibling(); - } - } - -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2208.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2402.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2404.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2406.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2416.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2417.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2700.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2700.java deleted file mode 100644 index bbf231226..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2700.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 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.eclipse.wst.wsi.internal.core.xml.XMLUtils; -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 - XMLUtils.parseXMLDocument(wsdlURI); - } - - 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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2701.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2703.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2703.java deleted file mode 100644 index e23a69c95..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2703.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.wsdl; - -import java.util.Iterator; -import java.util.Map; - -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; -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.xml.sax.SAXException; - - -/** - * 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 - { - - result = AssertionResult.RESULT_PASSED; - - try - { - Definition def = (Definition) entryContext.getEntry().getEntryDetail(); - - if (def == null) - { - throw new AssertionFailException("Definition null"); - } - - String wsdlURI = entryContext.getEntry().getReferenceID(); - - Map namespaces = def.getNamespaces(); - for (Iterator iter = namespaces.values().iterator(); iter.hasNext();) - { - String ns = (String) iter.next(); - - if (WSIConstants.NS_URI_WSDL.equalsIgnoreCase(ns)) - { - XMLUtils.parseXMLDocument(wsdlURI, TestUtils.getWSDLSchemaLocation()); - } - - if (WSIConstants.NS_URI_WSDL_SOAP.equalsIgnoreCase(ns)) - { - XMLUtils.parseXMLDocument(wsdlURI, TestUtils.getWSDLSOAPSchemaLocation()); - } - } - } - - 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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP2803.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP4200.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP4200.java deleted file mode 100644 index f2c73355b..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/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 = XMLUtils.parseXMLDocument(definition.getDocumentBaseURI()); - 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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP4201.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP4202.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP4202.java deleted file mode 100644 index 63791e0f1..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/BP4202.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.core.profile.validator.impl.wsdl; - -import javax.wsdl.Types; -import javax.wsdl.extensions.ExtensibilityElement; -import javax.wsdl.extensions.UnknownExtensibilityElement; - -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 UnknownExtensibilityElement)) - { - UnknownExtensibilityElement el = (UnknownExtensibilityElement) 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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/SSBP2209.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/SSBP2402.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/SSBP2403.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSDLValidatorImpl.java b/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSDLValidatorImpl.java deleted file mode 100644 index 4df45afe3..000000000 --- a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSDLValidatorImpl.java +++ /dev/null @@ -1,2316 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * 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.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.UnknownExtensibilityElement; -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.WSDLElement; -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.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. - */ - protected String wsdlURL; - - /** - * WSDL document. - */ - protected WSDLDocument wsdlDocument = null; - - /** - * Entry container map. - */ - protected HashMap containerMap = new HashMap(); - - /* (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 - { - // BaseValidatorImpl - super.init(analyzerContext, profileArtifact, reportArtifact, reporter); - this.wsdlDocument = wsdlDocument; - if (wsdlDocument != null) - this.wsdlURL = wsdlDocument.getLocation(); - - if (wsdlURL != null) - this.wsdlURL = wsdlURL; - } - - /* (non-Javadoc) - * @see org.wsi.test.profile.validator.WSDLValidator#validate() - */ - public WSDLDocument validate() throws WSIException - { - //WSDLDocument wsdlDocument = null; - Entry entry = 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()+"."; - - try - { - // Validate the WSDL service description - if (this.wsdlDocument == null) - this.wsdlDocument = new WSDLDocument(wsdlURL); - } - - catch (Exception e) - { - // ADD: Certain exceptions should result in validation errors - - throw new WSIException(e.getMessage(), e); - } - - // 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: - 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(EntryType.TYPE_DESCRIPTION_BINDING)); - setMissingInput( - EntryType.getEntryType(EntryType.TYPE_DESCRIPTION_PORTTYPE)); - setMissingInput( - EntryType.getEntryType(EntryType.TYPE_DESCRIPTION_OPERATION)); - setMissingInput( - EntryType.getEntryType(EntryType.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(EntryType.TYPE_DESCRIPTION_PORTTYPE)); - setMissingInput( - EntryType.getEntryType(EntryType.TYPE_DESCRIPTION_OPERATION)); - setMissingInput( - EntryType.getEntryType(EntryType.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(EntryType.TYPE_DESCRIPTION_PORTTYPE)); - setMissingInput( - EntryType.getEntryType(EntryType.TYPE_DESCRIPTION_OPERATION)); - setMissingInput( - EntryType.getEntryType(EntryType.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(EntryType.TYPE_DESCRIPTION_BINDING)); - setMissingInput( - EntryType.getEntryType(EntryType.TYPE_DESCRIPTION_PORTTYPE)); - setMissingInput( - EntryType.getEntryType(EntryType.TYPE_DESCRIPTION_OPERATION)); - setMissingInput( - EntryType.getEntryType(EntryType.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(EntryType.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(EntryType.TYPE_DESCRIPTION_BINDING)); - setMissingInput( - EntryType.getEntryType(EntryType.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(EntryType.TYPE_DESCRIPTION_BINDING)); - setMissingInput( - EntryType.getEntryType(EntryType.TYPE_DESCRIPTION_PORTTYPE)); - setMissingInput( - EntryType.getEntryType(EntryType.TYPE_DESCRIPTION_OPERATION)); - - processMessageAssertions( - message, - serviceReference, - classPrefix, - wsdlDocument); - } - - else - { - throw new WSIRuntimeException( - "The following WSDL type is not supported: " - + serviceReference.getWSDLElement().getType()); - } - - // Cleanup - cleanup(); - - // 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(EntryType.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(EntryType.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(EntryType.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(EntryType.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(EntryType.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(EntryType.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(EntryType.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(EntryType.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(EntryType.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(EntryType.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(EntryType.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(EntryType.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(EntryType.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(EntryType.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 = 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 UnknownExtensibilityElement) - { - tnsProcessor = new TargetNamespaceProcessor(definition.getDocumentBaseURI()); - - - if ((nextList = - tnsProcessor.processAllSchema( - ((UnknownExtensibilityElement) 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) - { - List list = new Vector(); - - // 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())); - // 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; - - } -} diff --git a/bundles/org.eclipse.wst.wsi/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2010.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2011.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2012.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2013.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2014.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2017.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2018.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2019.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2020.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2021.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2022.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2032.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2098.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2099.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2100.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2101.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2102.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2103.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2104.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2105.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2107.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2108.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2110.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2111.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2112.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2113.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2114.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2115.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2116.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2117.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2118.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2119.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2120.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2122.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2123.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2201.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2202.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2208.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2402.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2403.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2404.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2406.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2416.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2417.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2700.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2701.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI2703.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI4200.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI4201.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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/wsicore/org/eclipse/wst/wsi/internal/core/profile/validator/impl/wsdl/WSI4202.java b/bundles/org.eclipse.wst.wsi/wsicore/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/wsicore/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 |