###############################################################################
# Copyright (c) 2006, 2013 Oracle. All rights reserved.
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0, which accompanies this distribution
# and is available at https://www.eclipse.org/legal/epl-2.0/.
# 
# Contributors:
#     Oracle - initial API and implementation
###############################################################################
# ====================================================================
# To code developer:
#   Do NOT change the properties between this line and the
#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
#   Make a new property name, append to the end of the file and change
#   the code to use the new property.
# ====================================================================

# ====================================================================
# %%% END OF TRANSLATED PROPERTIES %%%
# ====================================================================

pluginName = Dali Java Persistence Tools - JPA Core
providerName = Eclipse Web Tools Platform

JPA_PLATFORM=JPA Platforms

JPA_RESOURCE_MODEL_PROVIDERS=JPA Resource Model Providers
JPA_FILE_CONTENT=JPA File Content

JPA_XML_CONTENT = JPA XML file
PERSISTENCE_XML_CONTENT = JPA persistence.xml file
MAPPING_FILE_CONTENT = JPA mapping file
ORM_XML_CONTENT = JPA orm.xml mapping file

GENERIC_PLATFORM_GROUP_LABEL=Generic
GENERIC_1_0_PLATFORM_LABEL=Generic 1.0
GENERIC_2_0_PLATFORM_LABEL=Generic 2.0
GENERIC_2_1_PLATFORM_LABEL=Generic 2.1

NO_OP_LIBRARY_PROVIDER_MESSAGE = The JPA facet requires a JPA implementation library to be present on the project classpath. By disabling library configuration, the user takes on the responsibility of ensuring that the classpath is configured appropriately via alternate means.
DEPRECATED_USER_LIBRARY_PROVIDER_LABEL=User Library (deprecated)

JPA_FACET_LABEL=JPA
JPA_FACET_DESCRIPTION=Adds support for writing persistent meta-data using the Java Persistence API (JPA).
JPA_TEMPLATE_LABEL=JPA Project
JPA_VALIDATOR=JPA Validator
JPA_PROBLEM=JPA Problem

JPA_DELETE_TYPE_PARTICIPANT_NAME=JPA Delete Type Participant
JPA_DELETE_PACKAGE_OR_FOLDER_PARTICIPANT_NAME=JPA Delete Package or Folder Participant
JPA_DELETE_MAPPING_FILE_PARTICIPANT_NAME=JPA Delete Mapping File Participant
JPA_RENAME_TYPE_PARTICIPANT_NAME=JPA Rename Type Participant
JPA_RENAME_PACKAGE_PARTICIPANT_NAME=JPA Rename Package Participant
JPA_RENAME_FOLDER_PARTICIPANT_NAME=JPA Rename Folder Participant
JPA_RENAME_MAPPING_FILE_PARTICIPANT_NAME=JPA Rename Mapping File Participant
JPA_MOVE_TYPE_PARTICIPANT_NAME=JPA Move Type Participant
JPA_MOVE_MAPPING_FILE_PARTICIPANT_NAME=JPA Move Mapping File Participant
JPA_MOVE_FOLDER_PARTICIPANT_NAME=JPA Move Folder Participant
 
