/*******************************************************************************
 * Copyright (c) 2000, 2006 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 * IBM Corporation - initial API and implementation
 * yyyymmdd bug      Email and other contact information
 * -------- -------- -----------------------------------------------------------
 * 20060204 124143   rsinha@ca.ibm.com - Rupam Kuehner          
 * 20060204 124408   rsinha@ca.ibm.com - Rupam Kuehner     
 * 20060221 119111   rsinha@ca.ibm.com - Rupam Kuehner
 * 20060329 128069   rsinha@ca.ibm.com - Rupam Kuehner
 * 20060404 134913   sengpl@ca.ibm.com - Seng Phung-Lu 
 * 20060411   136134 kathy@ca.ibm.com - Kathy Chan
 * 20060417   136390/136159 joan@ca.ibm.com - Joan Haggarty
 * 20060413   135581 rsinha@ca.ibm.com - Rupam Kuehner
 * 20060418   136335 joan@ca.ibm.com - Joan Haggarty
 * 20060420   136158 rsinha@ca.ibm.com - Rupam Kuehner
 * 20060420   120714 kathy@ca.ibm.com - Kathy Chan
 * 20060420   135912 joan@ca.ibm.com - Joan Haggarty
 * 20060426   138647 joan@ca.ibm.com - Joan Haggarty
 * 20060510   141115 rsinha@ca.ibm.com - Rupam Kuehner
 * 20060509   119296 pmoogk@ca.ibm.com - Peter Moogk
 * 20060719   139977 kathy@ca.ibm.com - Kathy Chan
 *******************************************************************************/
package org.eclipse.jst.ws.internal.consumption.ui;

import org.eclipse.osgi.util.NLS;

public final class ConsumptionUIMessages extends NLS {

	private static final String BUNDLE_NAME = "org.eclipse.jst.ws.internal.consumption.ui.ConsumptionUI";//$NON-NLS-1$

	private ConsumptionUIMessages() {
		// Do not instantiate
	}

	public static String PLUGIN_NEW_WIZARD_NAME_WS_CLIENT;
	public static String ACTION_GENERATE_JAVA_PROXY;
	public static String CHECKBOX_SHOW_GENERATE_JAVA_PROXY_DIALOG;
	public static String TOOLTIP_PPAD_CHECKBOX_WSDL2PROXY;
	public static String TOOLTIP_SRPF_COMBO_SERVER;
	public static String TOOLTIP_SRPF_COMBO_RUNTIME;
	public static String TOOLTIP_SRPF_COMBO_J2EE;
	public static String MSG_ERROR_TASK_EXCEPTED;
	public static String MSG_ERROR_NO_SERVER_RUNTIME;
	public static String LABEL_FOLDER_NAME;
	public static String LABEL_JSP_FOLDER_NAME;
	public static String LABEL_WEB_PROJECT_NAME;
	public static String LABEL_WEBSERVICETYPE;
	public static String LABEL_WEBSERVICEIMPL;
	public static String LABEL_WEBSERVICEDEF;
	public static String LABEL_J2EE_VERSION;
	public static String LABEL_NA;
	public static String BUTTON_BROWSE;
	public static String BUTTON_BROWSE_FILES;
	public static String BOTTOMUP_LABEL;
	public static String TOPDOWN_LABEL;
	public static String CLIENT_LABEL;
	public static String COMBINED_TYPE_AND_RUNTIME_LABEL;
	public static String WIZARD_TITLE_WSC;
	public static String PAGE_TITLE_WS_PROJECT;
	public static String PAGE_DESC_WS_PROJECT;
	public static String BUTTON_START_WEB_PROJECT;
	public static String BUTTON_INSTALL_SERVICE_WEB_PROJECT;
	public static String BUTTON_INSTALL_CLIENT_WEB_PROJECT;
	public static String GROUP_SCENARIO_SERVICE;
	public static String GROUP_SCENARIO_CLIENT;
	public static String LABEL_WEBSERVICECLIENTTYPE;
	public static String PAGE_TITLE_WS_RUNTIME_SELECTION;
	public static String PAGE_DESC_WS_RUNTIME_SELECTION;
	public static String LABEL_SUMMARY;
	public static String LABEL_SUMMARY_NO_CLIENT;
	public static String LABEL_RUNTIMES_LIST;
	public static String LABEL_SERVERS_LIST;
	public static String LABEL_EDIT_BUTTON;
	public static String LABEL_SERVICE_EAR_MODULE;
	public static String LABEL_CLIENT_EAR_MODULE;
	public static String LABEL_CLIENT_MODULE;
	public static String LABEL_SERVICE_MODULE;
	public static String LABEL_CLIENT_PROJECT;
	public static String LABEL_SERVICE_PROJECT;
	public static String LABEL_CLIENT_EAR_PROJECT;
	public static String LABEL_SERVICE_EAR_PROJECT;
	public static String LABEL_CLIENT_COMP_TYPE_WEB;
	public static String LABEL_CLIENT_COMP_TYPE_EJB;
	public static String LABEL_CLIENT_COMP_TYPE_APP_CLIENT;
	public static String LABEL_CLIENT_COMP_TYPE_CONTAINERLESS;
	public static String TOOLTIP_PWRS_TEXT_RUNTIME;
	public static String TOOLTIP_PWRS_TEXT_SERVER;
	public static String TOOLTIP_PWRS_J2EE_VERSION;
	public static String LABEL_SELECTION_VIEW_TITLE;
	public static String LABEL_SELECTION_VIEW_RUNTIME;
	public static String LABEL_SELECTION_VIEW_SERVER;
	public static String LABEL_SELECTION_VIEW_EXPLORE;
	public static String LABEL_TREE_EXISTING_SERVERS;
	public static String LABEL_TREE_SERVER_TYPES;
	public static String MSG_NO_OBJECT_SELECTION;
	public static String MSG_NO_SERVICE_SELECTION;
	public static String MSG_INVALID_SERVICE_DEF;
	public static String MSG_INVALID_SERVICE_IMPL;
	public static String MSG_INVALID_SRT_SELECTIONS;
	public static String MSG_NO_RUNTIME;
	public static String MSG_NO_SERVER;
	public static String MSG_ERROR_STUB_ONLY;
	public static String MSG_WARN_STUB_ONLY;
    public static String MSG_WARN_NO_SERVICE_SERVER;
    public static String MSG_WARN_NO_CLIENT_SERVER;
	public static String MSG_SERVER_TARGET_MISMATCH;
	public static String MSG_J2EE_MISMATCH;
	public static String MSG_SERVICE_PROJECT_EMPTY;
	public static String MSG_SERVICE_PROJECT_TYPE_EMPTY;
	public static String MSG_SERVICE_EAR_EMPTY;
	public static String MSG_CLIENT_PROJECT_EMPTY;
	public static String MSG_CLIENT_PROJECT_TYPE_EMPTY;
	public static String MSG_CLIENT_EAR_EMPTY;
	public static String MSG_INVALID_EJB_PROJECT;
	public static String MSG_INVALID_WEB_PROJECT;
	public static String MSG_INVALID_PROJECT_TYPE;
	public static String MSG_MODULE;
	public static String MSG_MODULE_NAME_AND_PROJECT_NAME_NOT_THE_SAME;
    public static String MSG_SERVICE_RUNTIME_DOES_NOT_SUPPORT_PROJECT;
    public static String MSG_SERVICE_SERVER_DOES_NOT_SUPPORT_PROJECT;
    public static String MSG_SERVICE_RUNTIME_DOES_NOT_SUPPORT_TEMPLATE;
    public static String MSG_SERVICE_SERVER_DOES_NOT_SUPPORT_TEMPLATE;
    public static String MSG_CLIENT_RUNTIME_DOES_NOT_SUPPORT_PROJECT;
    public static String MSG_CLIENT_SERVER_DOES_NOT_SUPPORT_PROJECT;
    public static String MSG_CLIENT_RUNTIME_DOES_NOT_SUPPORT_TEMPLATE;
    public static String MSG_CLIENT_SERVER_DOES_NOT_SUPPORT_TEMPLATE;
	public static String MSG_SAME_CLIENT_AND_SERVICE_EARS;
	public static String MSG_SAME_CLIENT_AND_SERVICE_COMPONENTS;
	public static String MSG_SAME_CLIENT_AND_SERVICE_PROJECTS;
	public static String MSG_WRONG_CLIENT_PROJECT_TYPE;
	public static String MSG_CLIENT_SUB;
	public static String MSG_SERVICE_SUB;
	public static String MSG_GENERAL_PROJECT_AND_EAR;
	public static String MSG_EAR_PROJECT_WILL_BE_CREATED;
	public static String MSG_EAR_WILL_BE_ASSOCIATED;
	public static String MSG_PROJECT_WILL_BE_CREATED;
	public static String MSG_EAR_WILL_BE_CREATED;
	public static String MSG_PROJECT_AND_EAR_CREATED;
	public static String PAGE_TITLE_WS_CLIENT_RUNTIME_SELECTION;
	public static String PAGE_DESC_WS_CLIENT_RUNTIME_SELECTION;
	public static String LABEL_CLIENT_SELECTION_VIEW_TITLE;
	public static String LABEL_CLIENT_TYPE;
	public static String LABEL_SERVICE_TYPE;
	public static String LABEL_WEB;
	public static String LABEL_EJB;
	public static String LABEL_NO_LABEL;
	public static String PAGE_MSG_VALIDATION_INTERNAL_ERROR;
	public static String PAGE_TITLE_WS_XML2BEAN;
	public static String PAGE_DESC_N2P_MAPPINGS;
	public static String MSG_MAPPING_DUPLICATE_ENTRIES;
	public static String BUTTON_GENERATE_PROXY;
	public static String PAGE_DESC_WSSKEL_CONFIG;
	public static String PAGE_TITLE_WSSKEL_CONFIG;
	public static String TOOLTIP_PBSC_TEXT_SKELETON_FOLDER;
	public static String TOOLTIP_PBSC_BUTTON_SKELETON_FOLDER_BROWSE;
	public static String LABEL_SKELETON_ROOT_NAME;
	public static String LABEL_BEAN_CLASS_NAME;
	public static String PAGE_MSG_BEAN_CANNOT_BE_EMPTY;
	public static String BUTTON_BROWSE_CLASSES;
	public static String PAGE_TITLE_WSTEST;
	public static String PAGE_DESC_WSTEST;
	public static String CHECKBOX_TEST_WEBSERVICE;
	public static String CHECKBOX_MONITOR_WEBSERVICE;
	public static String MSG_ERROR_UNABLE_TO_LAUNCH_WSDL_TEST;
	public static String BUTTON_LAUNCH_SERVICE_TEST;
	public static String PAGE_TITLE_WS_SAMPLE;
	public static String PAGE_DESC_WS_SAMPLE;
	public static String BUTTON_TEST;
	public static String LABEL_TEST_TYPES;
	public static String BUTTON_RUN_TEST;
	public static String LABEL_METHODS;
	public static String LABEL_JSP_PROJECT_NAME;
	public static String MSG_ERROR_JTS_PROXY_NOT_COMPILED;
	public static String MSG_ERROR_MALFORMED_URL;
	public static String BUTTON_SELECT_ALL;
	public static String BUTTON_DESELECT_ALL;
	public static String TOOLTIP_PBME_BUTTON_SELECT_ALL;
	public static String TOOLTIP_PBME_BUTTON_DESELECT_ALL;
	public static String PAGE_TITLE_WSDL_SELECTION;
	public static String PAGE_DESC_WSDL_SELECTION;
	public static String PAGE_TITLE_WS_PUBLISH;
	public static String PAGE_DESC_WS_PUBLISH;
	public static String PAGE_TITLE_WS_FIND;
	public static String PAGE_DESC_WS_FIND;
	public static String BUTTON_WS_PUBLISH;
	public static String BUTTON_WSWSCEN_PUBLISH;
	public static String BUTTON_WS_PUBLISH_PRIVATE_UDDI;
	public static String BUTTON_WS_FIND;
	public static String BUTTON_WS_FIND_PRIVATE_UDDI;
	public static String LABEL_PUBLIC_UDDI_REGISTRIES;
	public static String LABEL_EJB_BEAN_NAME;
	public static String TABLE_TITLE_EJB_BEAN_NAMES;
	public static String TABLE_TITLE_EJB_PROJECT_NAME;
	public static String LABEL_EAR_PROJECTS;
    public static String LABEL_SHOW_ALL_STATELESS_SESSION_EJBS;
	public static String CHECKBOX_OVERWRITE_FILES;
	public static String DIALOG_TITILE_SERVICE_PROJECT_SETTINGS;
	public static String DIALOG_TITILE_CLIENT_PROJECT_SETTINGS;
	public static String DIALOG_TITILE_SERVICE_IMPL_SELECTION;
	public static String DIALOG_TITILE_SERVICE_DEF_SELECTION;
	public static String TOOLTIP_WSWSCEN_SERVICEPROJECT_LINK;
	public static String TOOLTIP_WSWSCEN_CLIENTPROJECT_LINK;
	public static String TOOLTIP_WSWSCEN_SCALE_DEVELOP;
	public static String TOOLTIP_WSWSCEN_SCALE_ASSEMBLE;
	public static String TOOLTIP_WSWSCEN_SCALE_DEPLOY;
	public static String TOOLTIP_WSWSCEN_SCALE_INSTALL;
	public static String TOOLTIP_WSWSCEN_SCALE_RUN;
	public static String TOOLTIP_WSWSCEN_SCALE_TEST;
	public static String TOOLTIP_WSWSCEN_SCALE_SERVICE;
	public static String TOOLTIP_WSWSCEN_SCALE_CLIENT;
	public static String TOOLTIP_WSWSCEN_SCALE_CLIENT_ONLY;
	public static String TOOLTIP_WSWSCEN_TEXT_IMPL;
	public static String TOOLTIP_WSWSCEN_BUTTON_OVERWRITE_FILES;
	public static String TOOLTIP_WSWSCEN_BUTTON_BROWSE_IMPL;
	public static String TOOLTIP_EAR_PROJECTS;
	public static String TOOLTIP_TABLE_BEAN_NAMES;
	public static String TOOLTIP_PWWS_PAGE;
	public static String TOOLTIP_PBCL_PAGE;
	public static String TOOLTIP_PBCL_TEXT_BEAN_CLASS;
	public static String TOOLTIP_PBCL_BUTTON_BEAN_CLASS_BROWSE;
	public static String TOOLTIP_PBCL_BUTTON_BEAN_RESOURCE_BROWSE;
	public static String TOOLTIP_PSTP_COMBOBOX_TEST;
	public static String TOOLTIP_PSTP_LAUNCH_BUTTON;
	public static String TOOLTIP_PWRS_PAGE;
	public static String TOOLTIP_PWRS_LIST_RUNTIMES;
	public static String TOOLTIP_PWRS_LIST_SERVERS;
	public static String TOOLTIP_PWRS_RADIO_SERVER;
	public static String TOOLTIP_PWRS_RADIO_RUNTIME;
	public static String TOOLTIP_PWRS_RADIO_EXPLORE;
	public static String TOOLTIP_PWCR_COMBO_CLIENT_TYPE;
	public static String TOOLTIP_PWCR_COMBO_SERVICE_TYPE;
	public static String TOOLTIP_PWPR_COMBO_TYPE;
	public static String TOOLTIP_PWPR_GROUP_SCENARIO_SERVICE;
	public static String TOOLTIP_PWPR_CHECKBOX_GENERATE_PROXY;
	public static String TOOLTIP_PWPR_CHECKBOX_START_WEB_PROJECT;
	public static String TOOLTIP_PWPR_CHECKBOX_INSTALL_SERVICE_WEB_PROJECT;
	public static String TOOLTIP_PWPR_CHECKBOX_INSTALL_CLIENT_WEB_PROJECT;
	public static String TOOLTIP_PWPR_CHECKBOX_LAUNCH_WS;
	public static String TOOLTIP_PWPR_CHECKBOX_TEST_SERVICE;
	public static String TOOLTIP_PWPR_CHECKBOX_MONITOR_SERVICE;
	public static String TOOLTIP_PWPR_GROUP_SCENARIO_CLIENT;
	public static String TOOLTIP_PWPR_COMBO_CLIENTTYPE;
	public static String TOOLTIP_PWPB_PAGE;
	public static String TOOLTIP_PWPB_CHECKBOX_WS_LAUNCH;
	public static String PAGE_WSIL_IMPORT;
	public static String TITLE_WSIL_IMPORT;
	public static String DESC_WSIL_IMPORT;
	public static String PAGE_TITLE_WS_SELECTION;
	public static String PAGE_DESC_WS_SELECTION;
	public static String PAGE_MSG_LOADING_WEB_SERVICE_URI;
	public static String PAGE_MSG_INVALID_WEB_SERVICE_URI;
	public static String PAGE_MSG_NO_SUCH_FILE;
	public static String PAGE_MSG_SELECTION_MUST_BE_WSDL;
	public static String PAGE_MSG_INVALID_WSIL_FILE_NAME;
	public static String MSG_ERROR_URI_NOT_RESOLVABLE;
	public static String MSG_ERROR_WSDL_HAS_NO_SERVICE_ELEMENT;
	public static String LABEL_WSIL_URI;
	public static String LABEL_BROWSE;
	public static String LABEL_WSDL;
	public static String LABEL_WSDL_URI;
	public static String LABEL_IMPORT;
	public static String LABEL_ADD;
	public static String LABEL_REMOVE;
	public static String LABEL_WS_SELECTION;
	public static String LABEL_SELECT_WSDL;
	public static String LABEL_VALIDATE_MESSAGES;
	public static String TOOLTIP_WSIL_IMPORT_PAGE;
	public static String TOOLTIP_WSIL_TEXT_WSIL;
	public static String TOOLTIP_WSIL_BUTTON_BROWSE_WSIL;
	public static String TOOLTIP_WSIL_TABLE_WSDL;
	public static String TOOLTIP_PCON_PAGE;
	public static String TOOLTIP_PCON_TEXT_WS;
	public static String TOOLTIP_PCON_BUTTON_BROWSE_WS;
	public static String TOOLTIP_VALIDATE_TEXT_MESSAGE;
	public static String TOOLTIP_TABLE_VALIDATE_MESSAGE;
	public static String TABLE_COLUMN_VALIDATION_SEVERITY;
	public static String TABLE_COLUMN_VALIDATION_LINE;
	public static String TABLE_COLUMN_VALIDATION_COLUMN;
	public static String TABLE_COLUMN_VALIDATION_MESSAGE;
	public static String TOOLTIP_PWSM_PAGE;
	public static String TOOLTIP_PWSM_CHECKBOX_TEST;
	public static String TOOLTIP_PWSM_COMBOBOX_TEST;
	public static String TOOLTIP_PWSM_CHECKBOX_LAUNCH;
	public static String TOOLTIP_PWSM_TEXT_JSP_FOLDER;
	public static String TOOLTIP_PWSM_BUTTON_JSP_FOLDER_BROWSE;
	public static String TOOLTIP_PWSM_BUTTON_SELECT_ALL;
	public static String TOOLTIP_PWSM_BUTTON_DESELECT_ALL;
	public static String TOOLTIP_PWSM_COMBO_PROJECT;
	public static String TOOLTIP_PWSM_TEXT_SAMPLE_FOLDER;
	public static String TOOLTIP_PWSM_TREE_METHODS;
	public static String TOOLTIP_PWSM_EAR_PROJECT;
	public static String DIALOG_TITLE_HTTP_BASIC_AUTH;
	public static String LABEL_URL;
	public static String LABEL_HTTP_BASIC_AUTH_USERNAME;
	public static String LABEL_HTTP_BASIC_AUTH_PASSWORD;
	public static String TOOLTIP_HTTP_BASIC_AUTH_USERNAME;
	public static String TOOLTIP_HTTP_BASIC_AUTH_PASSWORD;
	public static String MSG_ERROR_GENERATE_HANDLER_SKELETON;
	public static String MSG_ERROR_WRITE_FILE;
	public static String LABEL_HANDLERS_CONFIG;
	public static String LABEL_BUTTON_ADD;
	public static String LABEL_BUTTON_REMOVE;
	public static String LABEL_BUTTON_MOVE_UP;
	public static String LABEL_BUTTON_MOVE_DOWN;
	public static String LABEL_BUTTON_GEN_SKELETON;
	public static String LABEL_COMBO_SOURCE_LOC;
	public static String LABEL_COMBO_WS_CLIENT_REF;
	public static String LABEL_COMBO_WS_SERVICE_DESC;
    public static String MSG_TEXT_NUM_OF_SERVICES;
    public static String MSG_TEXT_NUM_OF_CLIENTS;
	public static String LABEL_HANDLER_NAME;
	public static String LABLE_HANDLER_CLASS;
	public static String LABEL_HANDLER_PORT;
	public static String DIALOG_TITLE_WS_ADD_HANDLER;
	public static String LABEL_TEXT_HANDLER_NAME;
	public static String LABEL_TEXT_HANDLER_CLASS;
	public static String LABEL_TEXT_HANDLER_PORT;
	public static String PAGE_TITLE_SERVICE_HDLR_CONFIG;
	public static String PAGE_DESC_SERVICE_HDLR_CONFIG;
	public static String PAGE_TITLE_CLIENT_HDLR_CONFIG;
	public static String PAGE_DESC_CLIENT_HDLR_CONFIG;
    public static String PAGE_DESC_MULTIPLE_SERVICES_CONFIG;
    public static String PAGE_DESC_MULTIPLE_CLIENTS_CONFIG;
	public static String TOOLTIP_EDIT_WS_HANDLERS;
	public static String TOOLTIP_BUTTON_GEN_SKELETON;
	public static String TOOLTIP_COMBO_SOURCE_LOC;
	public static String TOOLTIP_TEXT_HANDLER_NAME;
	public static String TOOLTIP_TEXT_HANDLER_CLASS;
	public static String TOOLTIP_TEXT_HANDLER_PORT;
	public static String TOOLTIP_WS_CLIENT_REF;
	public static String TOOLTIP_WS_SERVICE_DESC;
	public static String MSG_ERROR_UNABLE_TO_OPEN_JAVA_EDITOR;
	public static String MSG_WARN_IS_SERVICE_PROJECT;
	public static String MSG_USER_ABORTED;
	public static String MSG_MISSING_THIRD_PARTY_FILES;
	public static String MSG_WARNING_NO_SERVICE_ELEMENT;
	public static String STILL_VALIDATING_WSDL;
	public static String CANCEL_VALIDATION_LABEL;
	public static String CANCEL_VALIDATION_DESCRIPTION;
	public static String CANCEL_ALL_VALIDATION_LABEL;
	public static String CANCEL_ALL_VALIDATION_DESCRIPTION;
	public static String WAIT_VALIDATION_LABEL;
	public static String WAIT_VALIDATION_DESCRIPTION;
	public static String TASK_LABEL_CHECK_WSDL_VALIDATION;
	public static String TASK_DESC_CHECK_WSDL_VALIDATION;
	public static String MESSAGE_VALIDATE_NO_WSDL;
	public static String MESSAGE_VALIDATE_REMOTE_WSDL;
	public static String MESSAGE_VALIDATE_ALL_WSDL;
	public static String MESSAGE_VALIDATE_IN_PROGRESS;
	public static String ERROR_MESSAGES_IN_VALIDATION;
	public static String WARNING_MESSAGES_IN_VALIDATION;
	public static String WARNING_IF_CONTINUE;
	public static String VALIDATION_COMPLETED;
	public static String TOOLTIP_VALIDATE_TEXT_MESSAGE_SUMMARY;
	public static String LABEL_BUTTON_STOP_WSDL_VALIDATION;
	public static String TOOLTIP_STOP_VALIDATION_BUTTON;
	public static String PAGE_TITLE_WS_START_SERVER;
	public static String PAGE_DESC_WS_START_SERVER;
	public static String LABEL_START_SERVER_TEXT1;
	public static String LABEL_START_SERVER_TEXT2;
	public static String LABEL_START_SERVER_TEXT3;
	public static String LABEL_START_SERVER_TEXT4;
	public static String LABEL_START_SERVER_BUTTON;
	public static String TOOLTIP_START_SERVER_BUTTON;
	public static String TEXT_SERVER_STATUS;
	public static String TEXT_SERVER_MSG;
	public static String TEXT_SERVER_STARTED;
	public static String TEXT_SERVER_STARTING;
	public static String TEXT_SERVER_STOPPED;
	public static String MSG_INFO_ANT_RUNTIME_HEADING;
	public static String MSG_INFO_ANT_SERVER_RUNTIME;
	public static String MSG_INFO_ANT_CLIENT_RUNTIME;
	public static String MSG_INFO_ANT_SERVER_HEADING;
	public static String MSG_INFO_ANT_SERVER;
    public static String MSG_ERROR_WEB_SERVICE_CLIENTS_NOT_FOUND;
    public static String MSG_ERROR_WEB_SERVICES_NOT_FOUND;
    public static String MSG_ERROR_WSDD_NOT_FOUND;
    public static String MSG_CLIENT_CANNOT_ASSOCIATE;
    public static String MSG_SERVICE_CANNOT_ASSOCIATE;
    public static String MSG_PROJECT_MUST_EXIST;
    public static String MSG_ERROR_INVALID_MULTIPLE_SERVICE_SELECT;
    public static String MSG_ERROR_MODULE_DEPENDENCY;
    public static String MSG_INFO_WSDL_OPERATION_TIMED_OUT;


	static {
		NLS.initializeMessages(BUNDLE_NAME, ConsumptionUIMessages.class);
	}
}
