###############################################################################
# Copyright (c) 2003, 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 Corporation - initial API and implementation
###############################################################################
ERR_JAR_NAME_EMPTY=The JAR name cannot be empty.
ERR_JAR_NAME_EXIST=The JAR name already exists.
ERR_JAVA_PROJECT_NAME_EMPTY=The Java project name cannot be empty.
ERR_JAVA_PROJECT_NAME_EXIST=The Java project name already exists.
ERR_DUPLICATED_INIT_PARAMETER=Duplicated init parameters.
ERR_DUPLICATED_URL_MAPPING=Duplicated URL mappings.

ERR_SERVLET_MAPPING_URL_PATTERN_EMPTY=The servlet mapping url pattern cannot be empty.
ERR_SERVLET_MAPPING_URL_PATTERN_EXIST=The servlet mapping url pattern "{0}" already exists.
KEY_3=The filter mapping url pattern cannot be empty.
KEY_4=The filter mapping url pattern "{0}" already exists.
KEY_5=The filter mapping servlet cannot be empty.
KEY_6=The filter init param name cannot be empty.
ERR_FILTER_PARAMETER_NAME_EXIST=The filter initialization parameter name already exists.
ERR_FILTER_MAPPING_SERVLET_EXIST=The filter mapping servlet "{0}" already exists.
ERR_FILTER_MAPPING_SERVLET_DISPATCHER_TYPES_EMPTY=The dispatcher types cannot be empty.
ERR_DISPLAY_NAME_EMPTY=The name cannot be empty.
ERR_SERVLET_NAME_EXIST=The servlet name already exists.
ERR_SERVLET_DISPLAY_NAME_EXIST=The servlet display name already exists.
ERR_SERVLET_CLASS_NAME_USED=The class is already associated with other servlet.
ERR_SERVLET_JAVA_CLASS_NAME_INVALID=Cannot use Servlet as the servlet class name.
ERR_SERVLET_MAPPING_URL_PATTERN_EMPTY=The servlet mapping url pattern cannot be empty.
ERR_SERVLET_MAPPING_URL_PATTERN_EXIST=The servlet URL mapping pattern already exists.
ERR_SERVLET_MAPPING_SERVLET_NOT_EXIST=The servlet does not exist.
ERR_SERVLET_PARAMETER_NAME_EMPTY=The servlet initialization parameter name cannot be empty.
ERR_SERVLET_PARAMETER_NAME_EXIST=The servlet initialization parameter name already exists.
ERR_SERVLET_PARAMETER_VALUE_EMPTY=The servlet initialization parameter value cannot be empty.
ERR_SERVLET_PARAMETER_VALUE_EXIST=The servlet initialization parameter value already exists.
ERR_SERVLET_ROLE_REF_NAME_EMPTY=The servlet security role reference name cannot be empty.
ERR_SERVLET_ROLE_REF_NAME_EXIST=The servlet security role reference name already exists.
ERR_SERVLET_ROLE_LINK_EMPTY=The servlet security role reference link cannot be empty.

ERR_FILTER_DISPLAY_NAME_EXIST=The filter name already exists.
ERR_FILTER_CLASS_NAME_USED=The class is already associated with other filter.
ERR_FILTER_CLASS_NAME_INVALID=Cannot use Filter as the filter class name.
ERR_LISTENER_DISPLAY_NAME_EXIST=The listener name already exists.
ERR_LISTENER_CLASS_NAME_USED=The class is already associated with other listener.
ERR_LISTENER_CLASS_NAME_INVALID=Cannot use Listener as the listener class name.

ERR_PAGE_ENCODING_EMPTY=The page encoding cannot be empty.
ERR_PAGE_ENCODING_EXIST=The page encoding already exists.
ERR_URL_PATTERN_EXIST=The URL pattern exists.
ERR_INCLUDE_PRELUDES_EXIST=The include preludes exists.
ERR_INCLUDE_CODAS_EXIST=The include Codas exists.
ERR_SECURITY_CONSTRAINT_NAME_EMPTY=The security constraint name cannot be empty.
ERR_SECURITY_CONSTRAINT_NAME_EXIST=The security constraint name already exists.
ERR_CONTEXT_PARAMETER_NAME_EMPTY=The context parameter name cannot be empty.
ERR_CONTEXT_PARAMETER_NAME_EXIST=The context parameter name already exists.
ERR_RESOURCE_NAME_EMPTY=The web resource name cannot be empty.
ERR_RESOURCE_NAME_EXIST=The web resource name already exists.
ERR_URL_PATTERNS_EMPTY=The URL patterns cannot be empty.
ERR_MIME_MAPPING_EXTENSION_EMPTY=The Mime mapping extension cannot be empty.
ERR_MIME_MAPPING_EXTENSION_EXIST=The Mime mapping extension already exists.
ERR_WELCOME_PAGE_EMPTY=The Welcome file name cannot be empty.
ERR_WELCOME_PAGE_EXIST=The Welcome file name already exists in Welcome File List.
ERR_ENV_ENTRY_NAME_EMPTY=The environment entry name cannot be empty.
ERR_ENV_ENTRY_NAME_EXIST=The environment entry name already exists.
ERR_ERROR_CODE_EMPTY=The error code cannot be empty.
ERR_ERROR_CODE_MUST_BE_3_DIGITS=The error code must be three digits.
ERR_ERROR_PAGE_LOCATION_EMPTY=The error page location cannot be empty.
ERR_ERROR_PAGE_LOCATION_EXIST=The error page location already exists.
ERR_ERROR_PAGE_LOCATION_MUST_START_WITH_SLASH=The error page location must start with /.
ERR_EXCEPTION_TYPE_EMPTY=The exception type cannot be empty.
ERR_EXCEPTION_SECURITY_ID_NO_BEANS=The bean selection can not be empty.
ERR_EXCEPTION_ROLE_NAME_EMPTY=The role name can not be empty.
ERR_LOCALE_NAME_EMPTY=The locale cannot be empty.
ERR_LOCALE_NAME_EXIST=The locale already exists.
ERR_TAGLIBREF_URL_EMPTY=The tag lib ref URL cannot be empty.
ERR_TAGLIBREF_URL_EXIST=The tag lib ref URL already exists.
ERR_MESSAGE_DESTINATION_NAME_EMPTY=The message destination name cannot be empty.
ERR_MESSAGE_DESTINATION_NAME_EXIST=The message destination name already exists.
ERR_EXCEPTION_ROLE_NAME_EMPTY=The security role names cannot be empty.
ERR_EXCEPTION_METHOD_ELEMENT_EMPTY=The method elements cannot be empty.
ERR_EXCEPTION_METHOD_TRANSACTION_ATTRIBUTES_EMPTY=The method transaction attributes can not be empty.
ERR_SERVLET_LIST_EMPTY=The list of servlets to be removed cannot be empty.
ERR_FILTER_LIST_EMPTY=The list of filters to be removed cannot be empty.
ERR_LISTENER_LIST_EMPTY=The list of listeners to be removed cannot be empty.

WEB_CONT_DESCRIPTION = Web App Libraries
