###############################################################################
# Copyright (c) 2005, 2007 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
###############################################################################
# properties file for org.eclipse.jst.jee.ui
Bundle-Name.0 = Ui Plug-in
Bundle-Vendor.0 = Eclipse.org
create_deploy_files=Generate Deployment Descriptor Stub
j2ee=Java EE
j2ee.actions.description_ui_=Actions for Java EE Development
ENTERPRISE_BEAN_DECORATOR=Java EE 5 Enterprise Beans and Interfaces Decorator
ENTERPRISE_BEAN_DECORATOR.DESCRIPTION=Java EE 5 Enterprise Beans are decorated according to their type Session/Message Driven/Entity. The same decorator is used to mark Business and 2.x interfaces
JAVA_EE_5_PROBLEM_MARKER_RESOURCE_DECORATOR=Java EE 5 Project Problem Marker Resource Decorator
JAVA_EE_5_PROBLEM_MARKER_RESOURCE_DECORATOR.DESCRIPTION=Resource Decorator enables error markers to be put on the project node.
jeeProjectDecorator=Java EE 5 Project Decorator
jeeProjectDecorator.description=Decorator is used to mark Java EE 5 projects 