# Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) 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:
#    Eike Stepper - initial API and implementation

pluginName = CDO Model Repository Server Net4j Support
providerName = Eclipse Modeling Project

extension.name = CDOServer
product.description = A CDO repository server
product.name = CDO Server
extension-point.name = CDO Store Factories
extension-point.name.0 = CDO Repository Factories
