###############################################################################
# Copyright (c) 2003, 2005 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
###############################################################################
#
# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/plugins/org.eclipse.jem.proxy/plugin.properties,v $
# $Revision: 1.7 $  $Date: 2005/08/24 20:39:07 $
#


pluginName=Java EMF Model Proxy Support
providerName = Eclipse.org
contributors.extensionpoint.name=Proxy configuration contributors
extensions.extensionpoint.name=Proxy configuration extension registrations
Launch.localProxy=Local Proxy Application
