###############################################################################
# Copyright (c) 2011, 2012 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 - Common Core
providerName = Eclipse Web Tools Platform

LIBRARY_VALIDATORS = Library Validators
RESOURCE_LOCATORS = Resource Locators
RESOURCE_TYPES = Resource Types

JAR_CONTENT = Java Archive (.jar/.zip)
JAVA_PACKAGE_INFO_CONTENT = package-info.java
FACET_CONFIG_XML_CONTENT = Project facet configuration XML file

NO_OP_LIBRARY_PROVIDER_WARNING = Library configuration is disabled. The user may need to configure further classpath changes later.
