###############################################################################
# Copyright (c) 2010, 2011 IBM, Composent, Inc. and others.
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
# 
# Contributors:
#     IBM - initial API and implementation
###############################################################################
# feature.properties
# contains externalized strings for feature.xml
# "%foo" in feature.xml corresponds to the key "foo" in this file
# java.io.Properties file (ISO 8859-1 with "\" escapes)
# This file should be translated.

# "featureName" property - name of the feature
featureName=Simple Http Server Feature

# "providerName" property - name of the company that provides the feature
providerName=Eclipse Equinox Project

# "copyright" property - text of the "Feature Update Copyright"
copyright=\
Copyright (c) 2010 IBM,, Composent, Inc. and others.\n\

This program and the accompanying materials\n\
are made available under the terms of the Eclipse Public License 2.0\n\
which accompanies this distribution, and is available at\n\
https://www.eclipse.org/legal/epl-2.0/

SPDX-License-Identifier: EPL-2.0\n\
\n\
Contributors:\n\
    IBM - initial API and implementation\n
################ end of copyright property ####################################