###############################################################################
# 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
###############################################################################
#migration wizards
Select_All=Select All
Deselect_All=Deselect All
Migration_Wizard_Title_=J2EE Migration Wizard
J2EE_Migration_Wizard_Welcome_=J2EE Migration Wizard Welcome Page
Welcome_To_The_J2EE_Migration_Wizard_=Welcome to the J2EE Migration Wizard
Please_Read_The_Following_Information_=Please read the following information, then click Next.
The_Migration_Wizard_Guides_The_Process_=The Migration Wizard guides the process of optionally migrating your J2EE project structures and the J2EE version of the associated projects.
Prior_To_Proceeding_With_The_Migration_Wizard_=Prior to proceeding with the Migration Wizard it is strongly recommended you:
Read_The_Online_Help_Section_=Read the online help on Migrating applications to J2EE 1.3 and J2EE 1.4 specification levels."
Backup_Your_Entire_Workspace_=Backup your entire workspace.
If_Working_With_A_Repository_=If working with a repository, "check out" or "lock" all corresponding projects.
Once_The_Migration_Wizard_Is_Complete_=Once the Migration Wizard is complete, the details of the steps performed during migration will be presented in a results window.  This information is also written to the LoggingUtil.log file in the .metadata folder in your local workspace.
Based_On_The_Number_Of_Projects_=Based on the number of projects, migration may take a few minutes.
Enterprise_Application_=Enterprise Application
The_following_enterprise_application_project_=The following enterprise application project will be migrated.  The project structure migration is optional.
Enterprise_Application_Project_=Enterprise Application Project:
Migrate_Project_Structure_=Migrate project structure.
Migrate_Project_From_Version_=Migrate project J2EE specification level.
Version_Level=J2EE version
TARGET_SERVER=Target Server
The_Project_Version_And_The_Deployment_Descriptor_=The project version and the deployment descriptor are migrated for the enterprise application.  This migration allows for the inclusion of J2EE 1.3 modules into the enterprise application.
Migrate_All_Module_Projects_=Migrate all module projects
All_EJB_Web_Application_Client_Modules_Referenced_=All EJB, web, and application client modules referenced by the enterprise application are automatically selected for migration.
Select_The_Finish_Button_To_Accept_The_Default_=Select the Finish button to accept the default migration options for all module projects, or customize the migration options for each type of module project on the following pages.
Migrate_Project_From_Version_EJB_=Migrate project from version level J2EE 1.2 (EJB 1.x) to J2EE 1.3 (EJB 2.x)
EJB_Module_Migration_=EJB Module Migration
Select_the_EJB_projects_to_be_migrated_=Select the EJB projects to be migrated.  The project structures migration is optional.
Migrated_CMP_Beans_To_=Migrate CMP 1.x beans to CMP 2.x beans
Add_Local_Client_Views_=Add local client views
Available_Projects_=Projects:
Selected_Projects_={0} of {1} projects selected.
Selected_Beans_Migration_={0} of {1} beans selected.
Application_Client_Projects_=Application Client Projects:
Connector_Projects_=Connector Projects:
Select_The_Connector_Projects_=Select the connector projects to be migrated. The project structure migration is optional.
Select_The_Application_Client_Projects_=Select the application client projects to be migrated. The project structure migration is optional.
WEB_MIGRATE_WIZARD_TITLE=Web Projects:
WEB_MIGRATE_WIZARD_DESCRIPTION=Select the web projects to be migrated.  The project structure migration is optional.
Select_the_enterprise_beans_that_will_have_=Select the enterprise beans that will have local client views added.
Enterprise_Beans_Selection_=Enterprise Beans
Select_All_Entity_Beans_=Select All Entity Beans
Select_Required_Beans_=Select Required
Delete_Remote_Client_Views_=Delete remote client views
Local_Client_View_Naming_Scheme_=Local client view naming scheme
Reuse_The_Deleted_Remote_Client_View_=Reuse the deleted remote client view name
Specify_Suffix_=Specify suffix:
EJB_Client_View_Example_=For example, EJB bean "Foo" will have local client views named: "Foo{0}" and "Foo{1}Home".
The_Suffix_Text_Can_Not_Be_=The suffix text cannot be empty.
A_Project_Must_Be_Selected_=A project must be selected in order to migrate.
A_Bean_Must_Be_Selected_=A bean must be selected in order to migrate the local client view.
#moved from mofj2ee.properties
Stack_trace_of_nested_exce=Stack trace of nested exception:
ERROR=Error:
WARNING=Warning:
INFO=Info:
DEFAULT_COMPLETED_STATUS_MSG=Migration was completed for {0}.
DEFAULT_NOT_NEEDED_STATUS_MSG=Migration was not required for {0}.
DEFAULT_NOT_POSSIBLE_STATUS_MSG=Migration was not possible for {0}.
DEFAULT_ERROR_STATUS_MSG=IWAE0003E Error migrating {0}.
REMOVED_LOCAL_CLIENT_MSG=Removed local client view for EJB {0}.
REMOVED_ACCESS_INTENTS_MSG=Removed {0} 1.1 method access intent(s) from CMP bean {1}.
REMOVED_ISOLATION_LEVELS_MSG=Removed {0} 1.1 method isolation level(s) from CMP bean {1}.
CONVERTED_FINDER_MSG=Converted finder descripter for {0} in CMP bean {1}.  Use the EJB editor to update the query EJB QL.
UNNAMED_EJB=<Unnamed CMP bean>
CONVERTED_QUERY_DESCRIPTION=Converted from IBM version 1.1 extensions.
MIGRATED_DEFAULT_DATASOURCE_JAR_MSG=Migrated default Datasource binding to a default CMP Connection Factory binding for EJB JAR \"{0}\".
MIGRATED_DEFAULT_DATASOURCE_MSG=Migrated default Datasource binding to a default CMP Connection Factory binding for EJB JAR.
J2EE_VERSION_NULL_ERROR=Unable to get J2EE version of object because it is not contained by a document.
J2EE_VERSION_PROXY_ERROR=Unable to get J2EE version of referenced object because the proxy cannot be resolved.  Check the ids in the deployment descriptor files.  HREF = {0}.
#moved from j2eecreation.properties
J2EE_PROJECT_MIGRATION_TITLE_UI_=J2EE Project Migration
ENTERPRISE_APPLICATIONS_UI_=Enterprise Applications
WIZ_BAN_DESC_UI_=Select the {0} projects to be migrated. The project structure migration is optional.
ENTERPRISE_APP_PROJECTS_UI_=Enterprise application projects:
MIGRATE_J2EE_SPEC_UI_=Migrate project from version level J2EE 1.2 to J2EE 1.3
MIGRATE_EJB_SPEC_UI_=Migrate project from version level EJB 1.1 to EJB 2.0
MIGRATE_MODULE_PROJECTS_UI_=Migrate module projects
APPLICATION_CLIENTS_UI_=Application Clients
APPLICATION_CLIENT_PROJECTS_UI_=Application client projects:
ENTERPRISE_BEANS_BAN_UI_=Enterprise Beans
EJB_PROJECTS_UI_=EJB projects:
ADD_LOCAL_CLIENT_VIEWS_CHECK_UI_=Add local client views
MIGRATE_CMP_BEANS_UI_=Migrate CMP 1.1 beans to CMP 2.0 beans
ADD_LOCAL_CLIENT_VIEWS_BAN_UI_=Add Local Client Views
SELECT_EJB_CLIENT_VIEWS_UI_=Select the enterprise beans that will have local client views added.
ENTERPRISE_BEANS_LIST_UI_=Enterprise beans:
DELETE_REM_CLIENT_VIEWS_UI_=Delete remote client views
LOCAL_CLIENT_VIEW_SCHEME_UI_=Local client view naming scheme:
REUSE_DELETED_CLIENT_VIEW_NAME_UI_=Reuse the deleted remote client view name
SPECIFY_SUFFIX_UI_=Specify suffix:
SUFFIX_EXAMPLE_UI_=(For example, enterprise bean \'foo\' will have local client views named: \'fooLocal\' and \'fooLocalHome\'.)
MIGRATION_SUCCESS_REPORT_UI_=Migration finished successfully.
MIGRATION_WARNINGS_REPORT_UI_=Migration finished with warnings; see log files for details.
MIGRATION_ERRORS_REPORT_UI_=Migration finished with errors; see log files for details.
PROJECT_STRUCTURE_SUCCESS_UI_=Project structure migration successful: {0}.
PROJECT_STRUCTURE_FAILED_UI_=Project structure migration failed: {0}.
PROJECT_NOT_NEED_MIGRATION_UI_=Project structure did not need migration: {0}.
J2EE_VERSION_SUCCESS_UI_=J2EE version level migration successful: {0}.
J2EE_VERSION_FAILED_UI_=J2EE version level migration failed: {0}.
J2EE_VERSION_NOT_NEED_MIGRATION_UI_=J2EE version level did not need migration: {0}.
LOCAL_CLIENT_ADD_SUCCESS_UI_=Local client views added successfully: {0}.
LOCAL_CLIENT_ADD_FAILED_UI_=Local client views failed on add: {0}.
LOCAL_CLIENT_VIEWS_EXIST_UI_=Local client views already exist: {0}.
REMOTE_CLIENT_DELETE_SUCCESS_UI_=Remote client views deleted successfully: {0}.
REMOTE_CLIENT_DELETE_FAILED_UI_=Remote client views failed on delete: {0}.
REMOTE_CLIENT_VIEWS_NOT_EXIST_UI_=Remote client views did not exist: {0}.
JAR_11_IMPORT_20_UI_=The 1.1 JAR is being imported into an EJB 2.0 module.  The deployment descriptor will be converted, but the CMP beans remain version 1.1.
CMP_11_IMPORT_20_UI_=The following CMP 1.1 beans are being imported into an EJB 2.0 module. The deployment descriptor will be converted, but the CMP beans remain version 1.1.
OLD_PROJECT_STRUCTURE_UI_=The J2EE project {0} has an old project structure, and should be migrated.
PROJECT_MUST_BE_SELECTED_UI_=A {0} project must be selected.
ENTERPRISE_APPLICATION_UI_=enterprise application
APPLICATION_CLIENT_UI_=application client
EJB_UI_=EJB
WEB_UI_=WEB
EJB_MUST_BE_SELECTED_UI_=An enterprise bean must be selected.
MIGRATE_UI_=Migrate...
MIGRATE_J2EE_PROJECTS_UI_=Migrate J2EE Projects...
OPEN_J2EE_MIGRATION_WIZARD_UI_=Open J2EE Migration Wizard...
MIGRATING_PROJECT_STRUCTURES_UI_=Migrating project structure...
MIGRATING_J2EE_VERSION_UI_=Migrating project J2EE version level...
ADDING_LOCAL_CLIENT_VIEWS_UI_=Adding local client views...
DELETING_REMOTE_CLIENT_VIEWS_UI_=Deleting remote client views...
MIGRATION_NOT_NEEDED_REPORT=Migration was not needed for the selected items.
MIGRATION_NOT_POSSIBLE_REPORT=Migration was not possible for the selected items.
SOURCE_FOLDER_RENAME_FAILED=Unable to rename the Java source folder {0}.
SOURCE_FOLDER_RENAME_SKIPPED=The Java source folders are not renamed when there is more than one source folder.
WEBCONTENT_FOLDER_RENAME_FAILED=Unable to rename the web content folder {0}.
WEBCONTENT_FOLDER_RENAME_SKIPPED=The web content folder {0} not renamed.
WEBPROJECT_VERSION_MIGRATE_FAILED=Unable to migrate the web project version.
ABS_PATHS_APP_EXT_REMOVED=Absolute paths were removed from the application extensions file in enterprise application project {0}.
PROJECT_REFERENCES_UPDATED=Project references were updated in enterprise application project {0}.
PROJECT_CLASSPATH_UPDATED=Project Java build path was updated for project {0}.
FAILED_MIGRATING_IMPORTED_CLASSES=Unable to migrate the imported_classes JAR file.  Exception: {0}
EXTRACTED_IMPORTED_CLASSES=Imported classes were extracted from file {0}.
IMPORTED_CLASSES_FILE_DELETED=Imported classes file {0} was deleted.
BACKEND_MIGRATION_FAILED=Unable to migrate the Map and Schema file structure in project {0}
BINARY_MIGRATION_FAILED=Unable to migrate binary project {0}.
COMPLETED_BACKEND_MIG=The backend (Map and Schema) meta-data of the {0} project migrated successfully.
NOT_NEEDED_DEPLOYMENT_DESC_MIG=The deployment descriptor was not found in the project {0}.
NOT_NEEDED_BACKEND_MIG=The old backend (Map and Schema) structure was not found in the project {0}.
MIGRATION_COMPLETE=Migration Complete
MIGRATION_ERRORS=Migration Errors
MIGRATION_NOT_NEEDED=Migration Not Needed
CONFIRMATION_TITLE=Confirm Migration
OPEN_EDITORS_TITLE=Open Editors
CONFIRM_MIGRATE_PROJECT_STRUCTURE=This will migrate the project structure for the selected items to the latest format.  Continue?
CONFIRM_MIGRATE_J2EE_13=This will migrate the project structure for the selected items if necessary, and migrate the J2EE version of the selected items from 1.2 to 1.3.  Continue?
INFORM_OPEN_EDITORS=Open editors exist in the workbench.  Please close all editors before running migration.\n\nDo you want to close all editors and continue migration?
WEBCONTENT_LIBPATH_UPDATE_FAILED=Unable to remove JAR file from classpath.
FAILED_DEPLOY_DELETE=Failed deleting deploy code in {0} project.
COMPLETED_DEPLOY_DELETE=Completed delete of deploy code in {0} project.
FAILED_LOCAL_CLIENT_CREATE=Failed creating local client view for {0}.
COMPLETED_LOCAL_CLIENT_CREATE=Completed creation of a local client view for {0}.
COMPLETED_CMP20_CODEGEN=Completed CMP 2.0 code generation in {0} project.
LOCAL_CLIENT_NOT_NEEDED=A local client view was not created since one already exists for {0}.
INVALID_SELECTION_TITLE=Invalid Selection
INFORM_INVALID_J2EE_SELECTION=One or more J2EE 1.4 specification projects have been selected for migration that is not valid.\nOnly J2EE 1.2 or 1.3 specification projects can be migrated.
INFORM_PROPER_SELECTION=Selection must be one enterprise application project or any combination of EJB, web, and application client module projects.
REQUIRED_CLIENT_VIEW_TITLE=Client View Required
CONFIRM_CLIENT_VIEW_REQUIRED=The following beans are required to have client views because of inheritance or relationship rules.  These beans will be automatically selected and client views will be generated.
FILES_OUT_OF_SYNC=Cannot migrate because some resources are out-of-sync with the file system in project {0}.  Refresh the project and try again.
SERVER_TARGET_SETTING_FAILED_UI_=Setting of target server failed: {0}.
RemoveCompatibilityActionDelegate_UI_0=Warninig
RemoveCompatibilityActionDelegate_UI_1=Continue Removing Backward Compatibility from Projects?
JaxrpcmapSpecificationMigrator_UI_1=jaxrpc mapping migration completed successfully
JaxrpcmapSpecificationMigrator_UI_2=Migration of jaxrpc mapping descriptor is not possible because the module root folder was not found.
WebServicesClientSpecificationMigrator_UI_0=Web services client migration completed successfully.
WebServicesClientSpecificationMigrator_UI_1=A valid project is required for Webservices Migration
WebServicesClientSpecificationMigrator_UI_2=Could not locate Webservices.
WebServicesClientSpecificationMigrator_UI_3=There is no webservices client file to migrate.
WebServicesSpecificationMigrator_UI_0=Web services migration completed successfully.
WebServicesSpecificationMigrator_UI_1=No Web services migration was required
J2EEProjectStructureMigrationOperation_UI_4=Migration of Web Project version successful
J2EEProjectStructureMigrationOperation_UI_0="Project {0} -- Renamed \'{1} \' to \'{2}\'.
J2EEProjectStructureMigrationOperation_UI_1=Problem renaming java source: {0}.
J2EEProjectStructureMigrationOperation_UI_2="Problem renaming web content: {0}.
