###############################################################################
# Copyright (c) 2003, 2004 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Common Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/cpl-v10.html
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
#
# $Source: /cvsroot/webtools/jeetools.move/webtools.javaee.git/plugins/org.eclipse.jem.beaninfo/plugin.properties,v $
# $Revision: 1.4.2.1 $  $Date: 2004/06/24 18:19:38 $
#


pluginName=Java EMF Model BeanInfo (Introspection) Support
providerName = Eclipse.org
beaninfoNatureName=Java Model BeanInfo Nature
registrations.extensionpoint.name=BeanInfo extension registrations
