Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1302.java')
-rw-r--r--bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1302.java181
1 files changed, 0 insertions, 181 deletions
diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1302.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1302.java
deleted file mode 100644
index 63acd565a..000000000
--- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/envelope/BP1302.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002-2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.wsi.internal.core.profile.validator.impl.envelope;
-
-import org.eclipse.wst.wsi.internal.core.WSIException;
-import org.eclipse.wst.wsi.internal.core.log.MessageEntry;
-import org.eclipse.wst.wsi.internal.core.profile.TestAssertion;
-import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext;
-import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcess;
-import org.eclipse.wst.wsi.internal.core.profile.validator.impl.BaseMessageValidator;
-import org.eclipse.wst.wsi.internal.core.report.AssertionResult;
-import org.eclipse.wst.wsi.internal.core.xml.XMLUtils;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-
-/**
- * BP1302.
- * The soap:faultcode value in the soap:Fault element of the response
- * message is not custom, and is one of: VersionMismatch, MustUnderstand, Client, Server.
- */
-public class BP1302 extends AssertionProcess
-{
- private final BaseMessageValidator validator;
-
- /**
- * @param BaseMessageValidator
- */
- public BP1302(BaseMessageValidator impl)
- {
- super(impl);
- this.validator = impl;
- }
-
- //SOAP fault code values should not be custom: only standard code qualifiers
- //are used: VersionMismatch, MustUnderstand, Client, Server
- public AssertionResult validate(
- TestAssertion testAssertion,
- EntryContext entryContext)
- throws WSIException
- {
-
- //String requestMessage = null;
- String responseMessage = null;
-
- if (this.validator.isOneWayResponse(entryContext))
- {
- result = AssertionResult.RESULT_NOT_APPLICABLE;
- }
- else
- {
- //Get the response message check the faultcode.
- MessageEntry logEntryResponse = entryContext.getResponse();
- if (logEntryResponse != null)
- {
- responseMessage = logEntryResponse.getMessage();
-
- Document targetDoc = XMLUtils.parseXML(responseMessage);
- NodeList faultCodes = targetDoc.getElementsByTagName("faultcode");
- // targetDoc.getElementsByTagNameNS(WSIConstants.NS_URI_SOAP, "faultcode");
-
- if (faultCodes.getLength() <= 0)
- result = AssertionResult.RESULT_NOT_APPLICABLE;
- //No faultcode
-
- for (int i = 0; i < faultCodes.getLength(); i++)
- {
- Node faultCodeElem = faultCodes.item(i);
- //If the faultcode was MustUnderstand, check the value of
- //the mustUnderstand attribute in the request.
- if (faultCodeElem == null)
- result = AssertionResult.RESULT_NOT_APPLICABLE;
- else if (faultCodeElem.getNodeType() == Node.ELEMENT_NODE)
- {
- if (isValidFaultCode((Element) faultCodeElem))
- {
- result = AssertionResult.RESULT_PASSED;
- }
- else
- {
- result = AssertionResult.RESULT_WARNING;
- failureDetail =
- this.validator.createFailureDetail(responseMessage, entryContext);
- //failureDetail =
- // "The faultcode value was : "
- // + faultCodeElem.getFirstChild().getNodeValue().trim();
- } //End if (faultCode.equals...)
- }
- else
- {
- result = AssertionResult.RESULT_NOT_APPLICABLE;
- }
- } //End for
- } //End if logEntryResponse!= null
- }
-
- // Return assertion result
- return validator.createAssertionResult(testAssertion, result, failureDetail);
- }
-
- /**
- * Check faultCode.
- * @param faultCodeElem a faultcode.
- * @return true if faultcode is valid.
- */
- public boolean isValidFaultCode(Element faultCodeElem)
- {
- //A faultcode may or maynot have a prefix, if it does its namespace should be
- //http://schemas.xmlsoap.org/soap/envelope which is the same as the faultcode element.
- //If a prefix is present and it corresponds to a different namespace or is null
- //then this returns false. The local part of the faultcode is then check to see
- //if it is one of the permitted values.
- if (faultCodeElem == null)
- return true;
-
- String faultCode = faultCodeElem.getFirstChild().getNodeValue().trim();
- if (faultCode == null)
- return false;
-
- // FIX: This is not correct, since this element can not be namespace qualified
- String faultCodeElemPrefix = faultCodeElem.getParentNode().getPrefix();
-
- // If this is not a QName then return false
- int index;
- String faultCodePrefix = null;
- String faultCodeName = faultCode;
- if ((index = faultCode.indexOf(':')) != -1)
- {
- faultCodePrefix = faultCode.substring(0, index);
- faultCodeName = faultCode.substring(index + 1, faultCode.length());
- }
-
- if ((faultCodeElemPrefix != null && faultCodePrefix != null))
- {
- if (faultCodePrefix.equals(faultCodeElemPrefix))
- {
- if ((faultCodeName.equals("MustUnderstand")
- || faultCodeName.equals("VersionMismatch")
- || faultCodeName.equals("Client")
- || faultCodeName.equals("Server")))
- /* REMOVE:
- || faultCodeName.startsWith("MustUnderstand.")
- || faultCodeName.startsWith("VersionMismatch.")
- || faultCodeName.startsWith("Client.")
- || faultCodeName.startsWith("Server.")))
- */
- return true;
- else
- return false;
- }
- else
- {
- return true;
- }
- }
- else
- {
- if (faultCodeName.equals("MustUnderstand")
- || faultCodeName.equals("VersionMismatch")
- || faultCodeName.equals("Client")
- || faultCodeName.equals("Server")
- || faultCodeName.startsWith("MustUnderstand.")
- || faultCodeName.startsWith("VersionMismatch.")
- || faultCodeName.startsWith("Client.")
- || faultCodeName.startsWith("Server."))
- return true;
- else
- return false;
- }
- }
-} \ No newline at end of file

Back to the top