###############################################################################
# Copyright (c) 2001, 2004 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 J2EE Validation project
# 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:
#     CHKJ (IBM WebSphere Validation)
#
# 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/erefvalidation.properties
# :End: WebSphere Quality Validation Information :End:
#
# 14-October-2001:
#

# --------------------------------
ERROR_EAR_MISSING_EREFNAME=CHKJ3009E: \u5728\u6a21\u7d44 {1} \u4e2d\uff0cejb-ref {0} \u7684 ''ejb-ref-name'' \u5143\u7d20\u7121\u6548\u3002
#EXPLANATION None.
#USERACTION None.

# --------------------------------
ERROR_EAR_INVALID_EREFTYPE=CHKJ3010E: \u5728\u6a21\u7d44 {1} \u4e2d\uff0cejb-ref {0} \u7684 ''ejb-ref-type'' \u5143\u7d20\u7121\u6548\u3002
#EXPLANATION None.
#USERACTION None.

ERROR_EAR_MISSING_EREFTYPE=CHKJ3014E: \u5728\u6a21\u7d44 {1} \u4e2d\uff0c\u907a\u6f0f ejb-ref {0} \u7684 ''ejb-ref-type'' \u5143\u7d20\u3002


# --------------------------------
ERROR_EAR_MISSING_EREFHOME=CHKJ3011E: \u5728\u6a21\u7d44 {1} \u4e2d\uff0cejb-ref {0} \u5143\u7d20\u907a\u6f0f Home \u4ecb\u9762\u3002
#EXPLANATION None.
#USERACTION None.

# --------------------------------
ERROR_EAR_MISSING_EREFREMOTE=CHKJ3012E: \u5728\u6a21\u7d44 {1} \u4e2d\uff0cejb-ref {0} \u5143\u7d20\u907a\u6f0f\u9060\u7aef\u4ecb\u9762\u3002
#EXPLANATION None.
#USERACTION None.

# --------------------------------
ERROR_EAR_MISSING_EJB_ROLE=CHKJ2827W: ''security-role-ref'' \u5143\u7d20 {0} \u662f\u7528\u4f86\u5b9a\u7fa9 ''role-link'' \u5143\u7d20\uff0c\u4f46\u662f\u61c9\u7528\u7a0b\u5f0f\u63cf\u8ff0\u5b50\u4e2d\u6c92\u6709 ''security-role'' \u5143\u7d20\u3002
#EXPLANATION None.
#USERACTION None.

# --------------------------------
ERROR_EAR_DUPLICATE_RESREF=CHKJ3013E: \u91cd\u8907\u7684 ''resource-ref'' \u5143\u7d20\u540d\u7a31 {0}\u3002
#EXPLANATION None.
#USERACTION None.

# new string added for version 5 WSAD
UNRESOLVED_EJB_REF_WARN_=IWAE0034W EJB \u93c8\u7d50\u5143\u7d20 {0} \u7121\u6cd5\u5728\u6a21\u7d44 {1} \u548c EAR {2} \u4e2d\u89e3\u6790 \u3002

ERROR_EAR_DUPLICATE_SERVICEREF=CHKJ3015E: \u540d\u7a31\u70ba {0} \u7684 ''service-ref'' \u5143\u7d20\u91cd\u8907\u3002
ERROR_EAR_DUPLICATE_SECURITYROLEREF=CHKJ3016E: \u540d\u7a31\u70ba {0} \u7684 ''service role-ref'' \u5143\u7d20\u91cd\u8907\u3002
ERROR_EAR_DUPLICATE_EJBREF=CHKJ3017E: \u540d\u7a31\u70ba {0} \u7684 ''ejb-ref'' \u5143\u7d20\u91cd\u8907\u3002
ERROR_EAR_DUPLICATE_RESENVREF=CHKJ3018E: \u540d\u7a31\u70ba {0} \u7684 ''resource environment-ref'' \u5143\u7d20\u91cd\u8907\u3002
ERROR_EAR_DUPLICATE_MESSSAGEDESTINATIONREF=CHKJ3019E: \u540d\u7a31\u70ba {0} \u7684 ''message destination-ref'' \u5143\u7d20\u91cd\u8907\u3002




