###############################################################################
# Copyright (c) 2003, 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
###############################################################################
Error_occured_getting_appl_ERROR_=IWAE0001E Error occurred getting appliction.xml:
Error_occured_getting_appl1_ERROR_=IWAE0002E Error occurred getting application.xml:
Creating__UI_=Creating:
Creating_EAR_Project..._UI_=Creating Enterprise Application project...
The_project_already_exist_ERROR_=IWAE0003E The project already exist.
EARProjectCreationOperatio_ERROR_=IWAE0004E EARProjectCreationOperation.getNewProject :
ABS_PATH_CHANGED_UI_=The IBM extensions file contains deprecated absolute paths.  This can be auto-corrected and should be saved.  This will remove the paths from the file, and only needs to be done once.  Would you like to auto-correct?
UNSAVED_CHANGES_WARN_=IWAE0005W Unsaved changes exist in Application.  Project: {0}
PROJECT_MAP_PROBLEMS_ERROR_=IWAE0006E Problems exist in project mappings for one or more modules in Application.  Use Application editor to correct.  Project: {0}
MODULE_PROJECTS_CLOSED_WARN_=IWAE0007W One or more module projects is closed. Enterprise Application project: {0}.
Add_Module_Command_Label_UI_=Add Module
Remove_Module_Command_Label_UI_=Remove Module

Set_project_UI_=Set project
Add_Utility_JAR_UI=Add Utility JAR
REM_UTIL_JAR_UI=Remove Utility JAR
PROJ_DESC_UPDATE_ERROR_UI_=IWAE0008E The project description could not be updated.
Not_an_ear_project_UI_=Not an EAR project.
EAR_PROJECT_MUST_BE_OPEN_UI_=An EAR project must be open and must exist for properties to be edited.
Updating_absolute_paths_UI_=Updating absolute paths for the server runtime.
DuplicateModuleNames=Duplicate module names : {0}
NoModulesSelected=No module types selected.


1=Project must be of type Web, EJB, Application client or Connector
2=Module already exists.
3=Selected project is closed.
4=Select a project from the list.
5=URI exists.
6=Selected project is not a Java project.
7=The uri must end with '.jar'.
8=Utility JAR already exists.
9=An open EAR project is required.
10=URI cannot be empty.
11=The project "{0}" is not an Application Client project.
12=The project "{0}" is not an EAR project.
13=The project "{0}" is not an EJB project.
14=The project "{0}" is not a RAR project.
15=The project "{0}" is not a WAR project.
16=The selected server target is not valid for the specified EAR project. The selected server may not support EAR projects.
J2EEUtilityJarListImportOperation_UI_0=Import Utility Jars
J2EEUtilityJarListImportOperation_UI_1=Importing
J2EEUtilityJarListImportOperation_UI_2=Problem importing Utility Jar
J2EEUtilityJarListImportDataModel.0=Invalid path location.
J2EEUtilityJarListImportDataModel_Specify_Valid_Project=Please specify a valid Enterprise Application Project.
J2EEUtilityJarListImportDataModel_Select_Jar=Please select one or more Utility Jars.
J2EEUtilityJarListImportDataModel_Specify_Linked_Path=Please specify a non-empty value for the Linked Path Variable name.
EARImportDataModel_UI_0=Specified project name \" {0} \" for archive \" {1} \" already exists. Either choose a different name or allow project overwrites.
EARImportDataModel_UI_1=Colliding project name \" {0} \" between EAR project name and \" {1} \" archive.
EARImportDataModel_UI_2=Colliding project name \" {0} \" between archives \" {1} \" and \" {2} \".
EARImportDataModel_UI_3=The specified project \" {0} \" already exists.  Either choose a different project name or allow resource overwrites.
ModuleMappingImpl_UI_0=projectName: {0}
UtilityJARMappingImpl_UI_0=projectName: {0}, uri: {1}
importWrongType=The specified project \" {0} \" is not the correct J2EE type.
importWrongVersion=The specified project \" {0} \" is not J2EE version compatible with the specified archive.
