###############################################################################
# Copyright (c) 2010 Angelo Zerr 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:
#     Angelo Zerr <angelo.zerr@gmail.com> - Initial API and implementation 
###############################################################################
pluginName=Jetty Support
providerName=Eclipse.org

# --------------- Runtime Types ---------------
jetty=Jetty
runtimeTypeJetty70Label=Jetty v7.0
runtimeTypeJetty70Description=Jetty v7.0 supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules.
runtimeTypeJetty80Label=Jetty v8.0
runtimeTypeJetty80Description=Jetty v8.0 supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules.

# --------------- Servers ---------------
jetty70ServerType=Jetty v7.0 Server
jetty70ServerDescription=Publishes and runs J2EE and Java EE Web projects and server configurations to a local Jetty server.
jetty80ServerType=Jetty v8.0 Server
jetty80ServerDescription=Publishes and runs J2EE and Java EE Web projects and server configurations to a local Jetty server.

jettyLaunchConfigurationType=Jetty

# --------------- General ---------------
canAddModule=Web module can be added to the server.
canModifyModules=Web modules can be modified.
# --------------- General ---------------
canAddModule=Web module can be added to the server.
portServer=Jetty port
