###############################################################################
# Copyright (c) 2005, 2006 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
###############################################################################
#String externalization, key=value
#Sat Apr 15 16:12:10 EDT 2006
AddModuleToEarDropAssistant_Adding_module_to_ea_=Adding module to {0}
ClearPlaceHolderJob_Removing_place_holder_=Removing place holder ...
ImportJ2EEModuleDropAssistant_Could_not_recognize_extension_0_=Could not recognize extension "{0}" as a Java Enterprise Edition artifact.
AddUtilityJarToEarDropAssistant_Add_Utility_Jar_to_0_=Add Utility Jar to {0}
ImportJ2EEModuleDropAssistant_Importing_Java_Enterprise_Edition_artifacts=Importing Java Enterprise Edition artifacts ...
AddProjectToEARDropAssistant_The_project_0_cannot_be_accesse_=The project "{0}" cannot be accessed
AddProjectToEARDropAssistant_The_dragged_project_cannot_be_added_=The dragged project cannot be added to the *.ear because it is closed.
AddProjectToEARDropAssistant_Could_not_add_module_to_Enterprise_=Could not add module to Enterprise Application.
LoadingDDNode_Loading_0_=Loading descriptor for {0}.
