diff options
Diffstat (limited to 'bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/BasicProfileAnalyzer.java')
-rw-r--r-- | bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/BasicProfileAnalyzer.java | 460 |
1 files changed, 0 insertions, 460 deletions
diff --git a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/BasicProfileAnalyzer.java b/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/BasicProfileAnalyzer.java deleted file mode 100644 index 2e7ba7f59..000000000 --- a/bundles/org.eclipse.wst.wsi/src/org/eclipse/wst/wsi/internal/core/analyzer/BasicProfileAnalyzer.java +++ /dev/null @@ -1,460 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002-2003 IBM Corporation, Parasoft, Beacon Information Technology Inc. and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM - Initial API and implementation - * Parasoft - Initial API and implementation - * BeaconIT - Initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.wsi.internal.core.analyzer; - -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.Iterator; -import java.util.List; - -import javax.wsdl.Binding; -import javax.wsdl.WSDLException; - -import org.eclipse.wst.wsi.internal.WSITestToolsProperties; -import org.eclipse.wst.wsi.internal.core.ToolInfo; -import org.eclipse.wst.wsi.internal.core.WSIConstants; -import org.eclipse.wst.wsi.internal.core.WSIException; -import org.eclipse.wst.wsi.internal.core.WSIFileNotFoundException; -import org.eclipse.wst.wsi.internal.core.analyzer.config.UDDIReference; -import org.eclipse.wst.wsi.internal.core.analyzer.config.WSDLElement; -import org.eclipse.wst.wsi.internal.core.analyzer.config.impl.WSDLElementImpl; -import org.eclipse.wst.wsi.internal.core.profile.validator.BaseValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.WSDLValidator; -import org.eclipse.wst.wsi.internal.core.profile.validator.impl.wsdl.WSDLValidatorImpl; -import org.eclipse.wst.wsi.internal.core.report.AssertionResult; -import org.eclipse.wst.wsi.internal.core.report.Report; -import org.eclipse.wst.wsi.internal.core.report.ReportArtifact; -import org.eclipse.wst.wsi.internal.core.report.ReportContext; -import org.eclipse.wst.wsi.internal.core.report.ReportWriter; -import org.eclipse.wst.wsi.internal.core.report.impl.DefaultReporter; -import org.eclipse.wst.wsi.internal.core.util.ArtifactType; -import org.eclipse.wst.wsi.internal.core.util.UDDIUtils; -import org.eclipse.wst.wsi.internal.core.util.WSIProperties; -import org.eclipse.wst.wsi.internal.core.wsdl.WSDLDocument; -import org.eclipse.wst.wsi.internal.core.wsdl.WSDLUtils; -import org.eclipse.wst.wsi.internal.core.xml.XMLDocumentCache; -import org.uddi4j.client.UDDIProxy; -import org.uddi4j.datatype.binding.BindingTemplate; -import org.uddi4j.datatype.tmodel.TModel; -import org.uddi4j.response.BindingDetail; -import org.uddi4j.response.TModelDetail; -import org.uddi4j.transport.TransportFactory; - - -/** - * Analyzes log files to confirm conformance to a profile. - * - * @version 1.0.1 - * @author Jim Clune - * @author Peter Brittenham - * @author Graham Turrell - */ -public class BasicProfileAnalyzer extends Analyzer -{ - /** - * Tool information. - */ - public static final String TOOL_NAME = "Analyzer"; - - /** - * WSDL document to analyze. - */ - protected WSDLDocument wsdlDocument = null; - // private WSDLValidator wsdlValidator; - - /** - * Basic profile analyzer. - * @param args command line arguments. - * @throws WSIException if unable to create a Basic profile analyzer. - */ - public BasicProfileAnalyzer(String[] args) throws WSIException - { - super(args, new ToolInfo(TOOL_NAME)); - new XMLDocumentCache(); - } - - /** - * Basic profile analyzer. - * @param args command line arguments. - * @param validate flag for command line argument validation. - * @throws WSIException if unable to create a Basic profile analyzer. - */ - public BasicProfileAnalyzer(String[] args, boolean validate) throws WSIException - { - super(args, new ToolInfo(TOOL_NAME), validate); - new XMLDocumentCache(); - } - - /** - * Basic profile analyzer. - * @param analyzerConfigList a list of configurations for the analyzer. - * @throws WSIException if unable to create a Basic profile analyzer. - */ - public BasicProfileAnalyzer(List analyzerConfigList) throws WSIException - { - super(analyzerConfigList, new ToolInfo(TOOL_NAME)); - new XMLDocumentCache(); - } - - /** - * Basic profile analyzer. - * @param analyzerConfigList a list of configurations for the analyzer. - * @param wsdlURI a wsdl document location. - * @throws WSIException if unable to create a Basic profile analyzer. - */ - public BasicProfileAnalyzer(List analyzerConfigList, String wsdlURI) - throws WSIException - { - super(analyzerConfigList, new ToolInfo(TOOL_NAME)); - new XMLDocumentCache(); - - try - { - // Get the WSDL document - if (wsdlURI != null) - this.wsdlDocument = new WSDLDocument(wsdlURI); - } - - catch (WSDLException we) - { - throw new WSIException(we.getMessage(), we); - } - - } - - private WSDLDocument getWsdlFromUddi() { - WSDLDocument wsdlDoc = null; - try { - UDDIProxy uddiProxy = new UDDIProxy(); - UDDIReference uddiReference = getAnalyzerConfig().getUDDIReference(); - uddiProxy.setInquiryURL(uddiReference.getInquiryURL()); - TModel tModel = null; - - if (uddiReference.getKeyType().equals(UDDIReference.BINDING_KEY)) { - BindingDetail bindingDetail = uddiProxy.get_bindingDetail( - uddiReference.getKey()); - BindingTemplate bindingTemplate = (BindingTemplate) bindingDetail. - getBindingTemplateVector().elementAt(0); - tModel = UDDIUtils.findTModel(uddiProxy, bindingTemplate, false); - } else { // UDDIReference.TMODEL_KEY - TModelDetail tModelDetail = uddiProxy.get_tModelDetail( - uddiReference.getKey()); - tModel = (TModel) tModelDetail.getTModelVector().elementAt(0); - } - - String overviewURL = UDDIUtils.getOverviewURL(tModel); - String wsdlURI = UDDIUtils.getWSDLLocation(overviewURL); - wsdlDoc = new WSDLDocument(wsdlURI); - - /* TODO: I refactored this code from BSP3001 but I'm not sure that - * it's correct. This overrides the <wsdlElement> child of - * <uddiReference> from the config file, which never gets used. - */ - // If the wsdlElement does not exist, then set it - if (analyzerContext.getServiceReference().getWSDLElement() == null) - { - Binding binding = UDDIUtils.getBinding(overviewURL, wsdlDoc); - String bindingName = - binding == null ? null : binding.getQName().getLocalPart(); - String namespace = - binding == null ? null : binding.getQName().getNamespaceURI(); - - // Get WSDL binding from the overviewURL and set in analyzerContext - WSDLElement wsdlElement = new WSDLElementImpl(); - wsdlElement.setName(bindingName); - wsdlElement.setNamespace(namespace); - wsdlElement.setType(WSDLValidator.TYPE_DESCRIPTION_BINDING); - analyzerContext.getServiceReference().setWSDLElement(wsdlElement); - } - return wsdlDoc; - - } catch (Exception e) { - /* If the wsdlDoc is set at the point of the exception, return it; - * otherwise return null. */ - return wsdlDoc; - } - } - - - /** - * Process all conformance validation functions. - * @return status code. - * @throws WSIException if conformance validation process failed. - */ - public int validateConformance() throws WSIException - { - int statusCode = 0; - - Report report = null; - ReportArtifact reportArtifact = null; - - // Set up initial analyzer context based on entries in the config file - this.analyzerContext = - new AnalyzerContext(new ServiceReference(getAnalyzerConfig())); - - try - { - this.profileAssertions = WSITestToolsProperties.getProfileAssertions( - getAnalyzerConfig().getTestAssertionsDocumentLocation()); - - if (this.profileAssertions == null) - { - throw new WSIException(messageList.getMessage("config20", - "The WS-I Test Assertion Document (TAD)document was either not found or could not be processed.")); - } - - // Create report from document factory - report = documentFactory.newReport(); - report.setLocation(getAnalyzerConfig().getReportLocation()); - - // Create report context - ReportContext reportContext = - new ReportContext( - WSIConstants.DEFAULT_REPORT_TITLE, - profileAssertions, - this); - report.setReportContext(reportContext); - - // Create report writer - ReportWriter reportWriter = documentFactory.newReportWriter(); - // I18N: 2003.02.26 modified by K.Nakagome@BeaconIT - //reportWriter.setWriter(new FileWriter(analyzerConfig.getReportLocation())); - reportWriter.setWriter(getAnalyzerConfig().getReportLocation()); - - // Create reporter - this.reporter = new DefaultReporter(report, reportWriter); - - // fetch WSDL if not set in constructor - // First, attempt to get the WSDL URI from a UDDI tModel - if ((wsdlDocument == null) && (getAnalyzerConfig().isUDDIReferenceSet())) - wsdlDocument = getWsdlFromUddi(); - - /* Next, try to use the WSDL settings from the config file. If we can't - * fetch that WSDL, and the config file is set up to test a WSDL, then the - * validator fails here. */ - if ((wsdlDocument == null) && (getAnalyzerConfig().isWSDLReferenceSet())) - { - wsdlDocument = new WSDLDocument(getAnalyzerConfig(). - getWSDLLocation()); - - if (wsdlDocument == null) - throw new WSIException(messageList.getMessage("config05", - "WSDL document was either not found or could not be " + - "processed.")); - } - - /* - * Only validate messages against a wsdl document if the wsdl document - * does not contain soap 1.2 bindings. - */ - if (WSDLUtils.isSOAP12WSDL(wsdlDocument) && getAnalyzerConfig().getLogLocation() != null) - getAnalyzerConfig().setWSDLReference(null); - else - analyzerContext.setWsdlDocument(wsdlDocument); - - // Start writing report - this.reporter.startReport(); - - // Walk through the artifact elements from the TAD, validating each one - profileAssertions.getArtifactList().keySet().iterator(); - for (Iterator i = profileAssertions.getArtifactList().keySet().iterator(); - i.hasNext(); ) { - String artifactType = (String) i.next(); - // Set current artifact - reportArtifact = setCurrentArtifact(ArtifactType.getArtifactType( - artifactType)); - validate(reportArtifact, factory.getValidatorForArtifact( - artifactType)); - this.reporter.endCurrentArtifact(); - } - - // Finish the conformance report - reporter.finishReport(); - } - - catch (Exception e) - { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - - String message = - messageList.getMessage( - "error03", - "The conformance validation process failed."); - - // Finish report - if (reporter != null) - { - pw.println(message); - pw.println( - messageList.getMessage("exception01", "Exception: ") - + e.getClass().getName()); - e.printStackTrace(pw); - reporter.finishReportWithError(sw.toString()); - } - - if (e instanceof WSIException) - throw (WSIException) e; - else - throw new WSIException(message, e); - } - - if (report != null) - { - statusCode = - (report.getSummaryResult().equals(AssertionResult.RESULT_PASSED) - ? 0 - : 1); - } - - return statusCode; - } - - /** - * Run test assertions. - */ - private void validate(ReportArtifact reportArtifact, BaseValidator validator) - throws WSIException - { - if (validator instanceof WSDLValidatorImpl) - { - ((WSDLValidatorImpl)validator).init(analyzerContext, profileAssertions, reportArtifact, getAnalyzerConfig(), reporter, - getAnalyzerConfigIndex() == 0); - } - else - { - validator.init(analyzerContext, profileAssertions, reportArtifact, getAnalyzerConfig(), reporter); - } - - if (validator.runTests()) { - validator.validateArtifact(); - validator.cleanup(); - } - else - { - validator.setAllMissingInput(); - } - } - - /** - * Command line interface for the analyzer tool. - * @param args command line arguments. - * @throws IOException if IO problems occur. - */ - public static void main(String[] args) throws IOException - { - int statusCode = 0; - Analyzer analyzer = null; - - try - { - // Set document builder factory class - System.setProperty( - WSIProperties.PROP_JAXP_DOCUMENT_FACTORY, - WSIProperties.getProperty(WSIProperties.PROP_JAXP_DOCUMENT_FACTORY)); - - // Set the system property for UDDI4J transport - System.setProperty( - TransportFactory.PROPERTY_NAME, - WSIProperties.getProperty(TransportFactory.PROPERTY_NAME)); - - // Create the analyzer object - analyzer = new BasicProfileAnalyzer(args); - - // Have it process the conformance validation functions - statusCode = analyzer.validateConformance(); - - // Display message - analyzer.printMessage( - "created01", - null, - "Conformance report has been created."); - } - - catch (Exception e) - { - statusCode = 1; - - String messageID; - String defaultMessage; - String messageData; - - if ((e instanceof WSIFileNotFoundException) - || (e instanceof IllegalArgumentException)) - { - //printStackTrace = false; - messageID = "error01"; - defaultMessage = "Analyzer Error:"; - messageData = e.getMessage(); - } - - else - { - //printStackTrace = true; - messageID = "error02"; - defaultMessage = "Analyzer Stopped By Exception:"; - messageData = e.toString(); - } - - if (analyzer != null) - analyzer.printMessage(messageID, messageData, defaultMessage); - else - Analyzer.staticPrintMessage(messageID, messageData, defaultMessage); - - if (analyzer != null - && analyzer.getAnalyzerConfig() != null - && analyzer.getAnalyzerConfig().getVerboseOption()) - dump(e); - } - - // Exit - System.exit(statusCode); - } - - /** - * Set current artifact. - * @param artifactType an ArtifactType object. - * @return a ReportArtifact object. - * @throws WSIException if problems creating report artifact. - */ - protected ReportArtifact setCurrentArtifact(ArtifactType artifactType) - throws WSIException - { - // Create artifact - ReportArtifact reportArtifact = reporter.createArtifact(); - reportArtifact.setType(artifactType); - - // Add artifact to report - this.reporter.setCurrentArtifact(reportArtifact); - - return reportArtifact; - } - - /** - * Print exception. - * @param t a Throwable object. - */ - public static void dump(Throwable t) - { - while (t instanceof WSIException) - { - Throwable nested = ((WSIException) t).getTargetException(); - if (nested == null) - break; - else - t = nested; - } - t.printStackTrace(); - } -} |