# /*******************************************************************************
#  * Copyright (c) 2002-2005 IBM Corporation and others.
#  * All rights reserved.   This program and the accompanying materials
#  * are made available under the terms of the Eclipse Public License v1.0
#  * which accompanies this distribution, and is available at
#  * http://www.eclipse.org/legal/epl-v10.html
#  * 
#  * Contributors: 
#  *   IBM - Initial API and implementation
#  *******************************************************************************/
_PLUGIN_NAME   = WSI Conformance Tools
_PROVIDER_NAME = Eclipse.org
_WSI_VALIDATOE_NAME = WS-I Validator
_TEST_ASSERTION_DOCUMENTS_NAME = Test Assertion Documents
_REPORT_ARTIFACT_TYPES_NAME = Report Artifact Types
_UI_WSDL_WSI_VALIDATOR = WSDL WS-I Validator
_UI_WSI_FRAMEWORK_UDDI_VALIDATOR = WS-I Framework UDDI Validator
_UI_WSI_FRAMEWORK_WSDL_VALIDATOR = WS-I Framework WSDLValidator
_UI_WSI_FRAMEWORK_MESSAGE_VALIDATOR = WS-I Framework Message Validator
_UI_WSI_FRAMEWORK_ENVELOPE_VALIDATOR = WS-I Framework Envelope Validator
_UI_WSI_BP_TAD_VERSIONS = WS-I Basic Profile TAD Versions
_UI_WSI_BP_REPORT_ARTIFACTS = WS-I Basic Profile Report Artifacts