# Copyright (c) 2008, 2009, 2011, 2012 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
   
# NLS_MESSAGEFORMAT_VAR

# ==============================================================================
# Do not change the properties between this line and the last line containing:
# %%% END OF TRANSLATED PROPERTIES %%%
# Instead, either redefine an existing property, or create a new property,
# append it to the end of the file, and change the code to use the new name.
# ==============================================================================

featureName = CDO Model Repository Tests Hibernate
featureText = CDO Model Repository Tests Hibernate\n\
Version: {featureVersion}\n\
Build id: {0}\n\
\n\
Copyright (c) 2004-2015 Eike Stepper (Berlin, Germany) and others. All rights reserved.\n\
\n\
Visit http://www.eclipse.org/cdo

# ==============================================================================
# %%% END OF TRANSLATED PROPERTIES %%%
# The above properties have been shipped for translation.
# ==============================================================================
