diff options
Diffstat (limited to 'bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3004.java')
-rw-r--r-- | bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3004.java | 290 |
1 files changed, 0 insertions, 290 deletions
diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3004.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3004.java deleted file mode 100644 index 065480e3d..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/profile/validator/impl/uddi/WSI3004.java +++ /dev/null @@ -1,290 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.profile.validator.impl.uddi; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Map; -import java.util.Vector; - -import javax.wsdl.Binding; -import javax.wsdl.Port; - -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSITag; -import org.eclipse.wst.wsi.internal.core.profile.TestAssertion; -import org.eclipse.wst.wsi.internal.core.profile.validator.EntryContext; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.AssertionProcessVisitor; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.util.UDDIUtils; -import org.eclipse.wst.wsi.internal.core.wsdl.WSDLDocument; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversal; -import org.eclipse.wst.wsi.internal.core.wsdl.traversal.WSDLTraversalContext; -import org.eclipse.wst.wsi.internal.core.xml.XMLUtils; -import org.uddi4j.datatype.tmodel.TModel; -import org.uddi4j.util.CategoryBag; -import org.uddi4j.util.KeyedReference; -import org.w3c.dom.Element; - - -/** - * WSI3004 - The conformance claims in the uddi:tModel are the same - * as those in the wsdl:binding which is referenced by the uddi:tModel. - */ -public class WSI3004 extends AssertionProcessVisitor implements WSITag -{ - private final UDDIValidatorImpl validator; - - /** - * @param UDDIValidatorImpl - */ - public WSI3004(UDDIValidatorImpl impl) - { - super(impl); - this.validator = impl; - } - - private static final String PORTS_PARAM = "ports"; - private static final String BINDING_PARAM = "binding"; - - /** - * Gets WSI conformance claims from a tModel. - * @param tModel - * @return HashSet - * @throws WSIException - */ - private HashSet getConformanceClaimsFromUDDI(TModel tModel) - throws WSIException - { - String conformanceKey = UDDIUtils.getWSIConformanceTModelKey(validator.uddiProxy); - - HashSet result = new HashSet(); - - CategoryBag bag = tModel.getCategoryBag(); - if (bag != null) - { - Vector references = bag.getKeyedReferenceVector(); - for (int i = 0; i < references.size(); i++) - { - KeyedReference ref = (KeyedReference) references.get(i); - - if (ref.getTModelKey().equalsIgnoreCase(conformanceKey)) - { - result.add(ref.getKeyValue()); - } - } - } - - return result; - } - - /** - * Gets WSI conformance claims from WSDL binding - * that references specified tModel. Additionally, - * WSDL ports, which uses the binding, are processed. - * - * @param tModel - * @return HashSet - */ - private HashSet getConformanceClaimsFromWSDL(TModel tModel) - { - HashSet result = new HashSet(); - - try - { - // Read the WSDL document - String overviewURL = 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 |