# 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:
#    Victor Roldan Betancort - initial API and implementation
#    Eike Stepper - maintenance

CDOServerApplication.1=CDO server starting
CDOServerApplication.6=CDO server started
CDOServerApplication.7=CDO server stopping
CDOServerApplication.8=CDO server stopped
CDOServerApplication.5=CDO server configuration not found:
CDOServerApplication.3=No CDO repositories configured:
