# Copyright (c) 2015 Eike Stepper (Berlin, Germany) and others.
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
#    Eike Stepper - initial API and implementation

providerName = Eclipse.org
featureName = Eclipse User Storage
description = Contains the runtime plugins (core and UI) for accessing the Eclipse User Storage Service.

copyrightURL = copyright.txt
copyright = Copyright (c) 2015 Eike Stepper (Berlin, Germany) and others.\n\
This program and the accompanying materials are made\n\
available under the terms of the Eclipse Public License 2.0\n\
which is available at https://www.eclipse.org/legal/epl-2.0/\n\
\n\
SPDX-License-Identifier: EPL-2.0\n

