############################################################################
# Copyright (c) 2013 Composent Inc. 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
#
############################################################################
plugin.name=ECF Remote Services PDE Tooling
plugin.provider=Eclipse.org - ECF

pluginContent.helloHostService.name=OSGi Remote Service Host Example
pluginContent.helloHostService.description=\
<p>This wizard creates and registers an <b>IHello</b> OSGi Remote Service.</p>\
<p><b>Imports Used</b></p>\
<li>org.osgi.framework</li>\
<li>org.eclipse.ecf.osgi.services.distribution</li>\
<li>org.eclipse.ecf.examples.remoteservices.hello</li>

pluginContent.helloConsumerService.name=OSGi Remote Service Consumer Example
pluginContent.helloConsumerService.description=\
<p>This wizard creates a ServiceTracker to discover <b>IHello</b> remote services.</p>\
<p><b>Imports Used</b></p>\
<li>org.osgi.framework</li>\
<li>org.eclipse.ecf.osgi.services.distribution</li>\
<li>org.eclipse.ecf.examples.remoteservices.hello</li>
<li>org.eclipse.ecf.remoteservice</li>
<li>org.eclipse.equinox.concurrent.future</li>
<li>org.osgi.util.tracker</li>
