###############################################################################
# Copyright (c) 2001, 2007 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
###############################################################################
# This properties file hold all the externalised strings for eTools 
# EAR Validation project
#
# Messages should be according to the format at 
#   http://hany.austin.ibm.com/messages/index.html
#
# Briefly:
#     MESSAGE_ID=<ComponentPrefix><MessageNumber><TypeCode>: <MessageText>
#
# The prefix for this component is:
#     CHKW (IBM WebSphere Validation)
#
# Message numbers are four digit numbers, from '0000' to '9999', inclusive.
# Message numbers are filled to the left with '0', to a width of 4.
#
# Valid message type codes are:
#     I (Informational)
#     W (Warning)
#     E (Error)
#
# Note the ": " that appears between the type code and the message text.
#
# :Begin: WebSphere Quality Validation Information :Begin:
#COMPONENTPREFIX CHKJ
#COMPONENTNAMEFOR CHKJ IBM WebSphere Validation
#CMVCPATHNAME ncf/src/java/com/ibm/websphere/validation/earvalidation.properties
# :End: WebSphere Quality Validation Information :End:
#
# 29-June-2001:
#  This file has been tested using the ProcessMsgFile tool, written by 
#  Hany Salem and owned by Dennis Hebert.  Any future changes should 
#  also be verified using this tool.  Please contact Dennis 
#  (hebert@us.ibm.com or T/L 543-2520) for more information.

# --------------------------------
ERROR_EAR_VALIDATION_FAILED=CHKJ1000E: EAR Validation failed: {0}
#EXPLANATION None.
#USERACTION None.

# --------------------------------
ERROR_EAR_INVALID_EAR_FILE=CHKJ1001E: The EAR project {0} is invalid.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
ERROR_EAR_DUPLICATE_ROLES=CHKJ1002E: Duplicate security role named {0}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_EAR_NO_MODULE_URI=CHKJ1003E: A module has been defined with no URI.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_EAR_MISSING_URI=CHKJ1004E: The URI, {0}, does not match anything in the EAR file.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
EAR_DD_PARSE_LINECOL=CHKJ1005E: The deployment descriptor could not be loaded. The start of the bad section is at line {0}, column {1}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
EAR_DD_PARSE_LINE=CHKJ1006E: The deployment descriptor could not be loaded. The start of the bad section is at line {0}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
EAR_DD_PARSE_NOINFO=CHKJ1007E: The deployment descriptor could not be loaded.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
EAR_DD_CANNOT_OPEN_DD=CHKJ1008E: Cannot open the deployment descriptor. Validation cannot complete.
#EXPLANATION None.
#USERACTION None.

# errors ---------------------------
URI_CONTAINS_SPACES_ERROR_=IWAE0005E The URI {0} contains a space. This is not recommended because it cannot be referenced from a manifest file.
MESSAGE_EAR_DUPLICATE_URI_ERROR_=IWAE0006E The module {0} has duplicate uri in EAR: {1}.
MESSAGE_EAR_DUPICATE_ROOTCONTEXT_ERROR_=IWAE0007E Same context root "{0}" exists in Web modules "{1}" and "{2}".
MESSAGE_EMPTY_ALT_DD_ERROR_=IWAE0009E The module {0} has empty <alt-dd> tag in EAR {1}.  The tag should be removed or the value should be valid.
DUPLICATE_UTILJAR_FOR_PROJECT_NAME_ERROR_=IWAE0010E =The project {0} in Enterprise Application project {1} has duplicate utility JAR URI {2}.
DUPLICATE_MODULE_FOR_PROJECT_NAME_ERROR_=IWAE0011E The project {0} in Enterprise Application project {1} has duplicate module name {2}.
MESSAGE_UTIL_URI_NAME_COLLISION_ERROR_=IWAE0012E The module {0} in Enterprise Application project {1} has same name as utility JAR URI.
MESSAGE_UTIL_PROJECT_NAME_COLLISION_ERROR_=IWAE0013E The module {0} in Enterprise Application project {1} has same name as utility JAR project name.
ERROR_READING_MANIFEST_ERROR_=IWAE0014E An error occurred validating the MANIFEST.MF file in archive {0}.
MANIFEST_LINE_END_ERROR_=IWAE0015E The MANIFEST.MF file in archive {0} does not end with a newline.
MANIFEST_LINE_EXCEEDS_LENGTH_ERROR_=IWAE0016E Line {0} in the MANIFEST.MF file in archive {1} exceeds the specification limit of 72 bytes.

INVALID_URI_FOR_MODULE_ERROR_=IWAE0017E The module {0} has a wrong default extension (.jar for EJB modules and .war for Web modules).
EAR_INVALID_DOC_TYPE_ERROR_=IWAE0018E Document type version "{0}" for application.xml in project "{1}" needs to be version "{2}".

MODULE_DD_PARSE_LINECOL_ERROR_=IWAE0019E The deployment descriptor of module {0} could not be loaded. The bad section starts at line {1}, column {2}.
MODULE_DD_PARSE_LINE_ERROR_=IWAE0020E The deployment descriptor of module {0} could not be loaded. The bad section starts at line {1}
MODULE_DD_PARSE_NOINFO_ERROR_=IWAE0021E The deployment descriptor of module {0} could not be loaded.
EJB_BEAN_EJB_LINK_INTEFACE_MISMATCH_ERROR_=IWAE0037E The interfaces of the linked enterprise bean {0} do not match those in EJB ref {1} in module {2}.

CLASSPATH_COMPONENT_URI_MATCHES_ARCHIVE_URI=URI {1} for classpath component dependency from project {0} clashes with existing archive in EAR.
DUPLICATE_CLASSPATH_COMPONENT_URI=URI {1} for classpath dependency from project {0} maps to a different file system path as another classpath dependency with the same URI.

JEE5_PROJECT_REFERENCED_BY_PRE_JEE5_EAR=Facet version for Enterprise Application project {0} must be 5.0 to contain Java EE 5.0 project {1}.

# warnings ----------------------------
WARNING_METAFOLDER_MISSING=IWAJ0000W: Meta folder {0} must exist in project {1}.
WARNING_FILE_MISSING=IWAJ0001W: {0} must exist in project {1}.
MESSAGE_INVALID_ALT_DD_WARN_=IWAE0022W The module {0} has alt-dd {1}, but the resource does not exist in EAR {2}.
INVALID_MANIFEST_CLASSPATH_ONE_WARN_=IWAE0023W The Manifest Class-Path in archive {0} contains an entry that cannot be resolved in the EAR: {1}.
INVALID_MANIFEST_CLASSPATH_TWO_WARN_=IWAE0024W The Manifest Class-Path for archive {0} contains an entry, {1}, that is not resolvable to a file or module in the Enterprise Application: {2}.
INVALID_MANIFEST_CLASSPATH_DEPENDENCY_WARN_=IWAE0025W The Manifest Class-Path in module {0} contains an entry, {1}, that resolves to archive {2}.  This dependency does not comply with the Java EE specification.
PROJECT_IS_CLOSED_WARN_=IWAE0026W EAR Validation cannot run on closed project: {0}. Open the project, and try again.
PROJECT_DOES_NOT_EXIST_WARN_=IWAE0027W The project {0} for module or utility JAR {1} in enterprise application project {2} does not exist in the workspace.
MISSING_WEBNATURE_FORMODULE_WARN_=IWAE0028W The web module {0} in enterprise application project {1} is not a Java EE Web project.
DEPRECATED_ABSPATHS_WARN_=IWAE0029W The IBM extensions file in enterprise application project {0} contains deprecated absolute paths.  Use the application editor to clean up the file.
INVALID_CONTEXTROOT_WEBMODULE_WARN_=IWAE0030W The context root for Web module: {0} in enterprise application project: {1} does not match the context root in web project settings of {2}.
MISSING_CLIENTNATURE_FORMODULE_WARN_=IWAE0031W The application client module {0} in enterprise application project:{1} is not an application client project.
MISSING_EJBNATURE_FORMODULE_WARN_=IWAE0032W The EJB module {0} in enterprise application project {1} is not an EJB project.
MISSING_PROJECT_FORMODULE_WARN_=IWAE0033W The module {0} in enterprise application project {1} has not been configured as a Java EE module dependency. 
INVALID_CASE_FOR_MANIFEST_ERROR_=IWAE0038E The case of the manifest file name "{0}" in archive {1} in incorrect.  File name must be "META-INF/MANIFEST.MF", case sensitive.
URI_ALREADY_EXISTS_IN_EAR_WARN_=IWAE0039W Project utility JAR URI {0} collides with an existing file in project {1}.
MISSING_MODULE_EXTENSION_ERROR_=IWAE0040E The application extension in EAR project: {0} is missing module extension for module project: {1}.
PROJECT_SERVER_TARGET_DOES_NOT_MATCH_EAR=The target server of the module project "{0}" does not match the target server of the containing enterprise application project "{1}"
NO_SERVER_TARGET_MODULE_IN_EAR_WITH_SERVER_TARGET=The module project "{0}" with no target server belongs to an enterprise application project "{1}" that has a target server
NO_SERVER_TARGET_ON_EAR_WITH_MODULE_SERVER_TARGETS=The ear project "{0}" with no target server has module project "{1}" that has a target server
INVALID_EAR_SERVER_TARGET_FOR_14_SPEC_LEVEL=The Java EE 1.4 specification EAR project "{0}" has an incompatible target server "{1}"
INVALID_MODULE_SERVER_TARGET_FOR_14_SPEC_LEVEL=The Java EE 1.4 specification module project "{0}" has an incompatible target server "{1}".
MESSAGE_INCOMPATIBLE_SPEC_WARNING_=IWAE0008E The module "{0}" is at an incompatible Java EE specification level than that of the "{1}" Enterprise Application.
MESSAGE_INCOMPATIBLE_13_SPEC_WARNING_=IWAE0008E The module "{0}" is Java EE v1.3 specification level, which is incompatible in the v1.2 EAR.
MESSAGE_INCOMPATIBLE_14_SPEC_WARNING_=The module "{0}" is Java EE v1.4 specification level, which is incompatible in the v1.3 EAR.
EAR_VALIDATION_INTERNAL_ERROR_UI_=IWAE0053E An internal error has occurred running validation on project:{0}, check the log file for details
EarValidator_Validating_Module_=Validating Modules
EarValidator_Validating_Ref_=Validating Refs
ValidationRuleUtility_invalid_parameter_javaClassName_=invalid parameter; javaClassName = {0} and resourceSet = {1}
