###############################################################################
# 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
###############################################################################
#This properties file contains string for Archive operations of EARs,EJBs and Application Clients.

ARCHIVE_OPERATION_SaveMofResources=Error occured saving the metadata file.
ARCHIVE_OPERATION_SaveFile=Error occured saving the File..
ARCHIVE_OPERATION_ProjectNature=Error getting project nature runtime..
ARCHIVE_OPERATION_SaveManifest=Error occured saving the manifest..
ARCHIVE_OPERATION_FileNotFound=Error: File not found
ARCHIVE_OPERATION_FileContents=Core exception caught in gettting file contents..
ARCHIVE_OPERATION_ErroOccured=Error occured...
ARCHIVE_OPERATION_FilesFromProject=Unable to get files from the project..
ARCHIVE_OPERATION_OpeningArchive=Error opening archive for export..
ARCHIVE_OPERATION_InvalidEJBJar=The JAR file is not a valid EJB JAR
ARCHIVE_OPERATION_InvalidImportEJBJar=The import file is not a valid EJB JAR
ARCHIVE_OPERATION_ImportOperation=Import Operation Failed!
EJB_IMPORT_OPERATION_STRING=Importing EJB JAR..
EJB_IMPORT_FILE_STRING=Importing file..
IMPORT_MOFRESOURCE_STRING=Importing meta-data..
IMPORT_OPERATION_STRING=Importing JAR..
ERROR_COPYING_FILES_FROM_ORIGINAL_JAR=An error occurred copying files from the original EJB JAR file
ERROR_IMPORTING_MODULE_FILE=Error importing Module File
Yes_UI=Yes
No_UI=No
Yes_To_All_UI=Yes to All
Cancel_UI_=Cancel
Error_exporting__UI_=Error exporting
EJB_Jar_File_UI_=EJB JAR File
Copy_Dep_JARS_UI=Copy Dependent JARs

