Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.async/.classpath7
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.async/.gitignore1
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.async/.project28
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.async/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.async/.settings/org.eclipse.pde.core.prefs3
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.async/META-INF/MANIFEST.MF9
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.async/about.html28
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.async/build.properties6
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.async/src/com/mycorp/examples/timeservice/ITimeService.java26
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.async/src/com/mycorp/examples/timeservice/ITimeServiceAsync.java23
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/.classpath7
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/.gitignore1
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/.project33
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/.settings/org.eclipse.pde.core.prefs3
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/META-INF/MANIFEST.MF10
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/OSGI-INF/timeservicecomponentasync.xml5
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/about.html28
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/build.properties10
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/launch/TimeServiceConsumer.generic.noreg.java8.product96
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/launch/TimeServiceConsumer.rosgi.noreg.java8.product96
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/src/com/mycorp/examples/timeservice/consumer/ds/async/TimeServiceComponentAsync.java24
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds/META-INF/MANIFEST.MF6
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds/about.html28
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds/build.properties6
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer DS.launch26
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.generic.edef.noreg.product99
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.generic.edef.product105
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.generic.noreg.product97
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.generic.product105
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rest.edef.noreg.product119
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rest.edef.product127
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rest.noreg.product119
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rest.product127
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rosgi.noreg.product99
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rosgi.product107
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.generic.noreg.java8.product99
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.ds/src/com/mycorp/examples/timeservice/consumer/ds/TimeServiceComponent.java22
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest/META-INF/MANIFEST.MF6
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest/about.html28
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest/build.properties5
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest/launch/TimeServiceRestConsumer DS.launch26
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest/timeservicerestendpointdescription.xml4
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rosgi/about.html28
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rosgi/build.properties4
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/META-INF/MANIFEST.MF7
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/about.html28
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/build.properties8
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/launch/TimeServiceConsumer.launch26
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/timeserviceendpointdescription.xml4
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer/META-INF/MANIFEST.MF4
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer/about.html28
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.consumer/build.properties4
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.host/META-INF/MANIFEST.MF8
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.host/about.html28
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.host/build.properties6
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.generic.noreg.java8.product95
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.generic.noreg.product93
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.generic.product101
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.launch26
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.rest.noreg.product137
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.rest.product146
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.rosgi.noreg.java8.product98
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.rosgi.noreg.product95
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.rosgi.product103
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceROSGiHost.launch26
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceRestHost.launch26
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.host/src/com/mycorp/examples/timeservice/host/Activator.java65
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.provider.rest.common/META-INF/MANIFEST.MF9
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.provider.rest.common/about.html28
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.provider.rest.common/build.properties4
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.provider.rest.common/src/com/mycorp/examples/internal/timeservice/provider/rest/common/Activator.java26
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.provider.rest.common/src/com/mycorp/examples/timeservice/provider/rest/common/TimeServiceRestNamespace.java4
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.provider.rest.consumer/META-INF/MANIFEST.MF9
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.provider.rest.consumer/about.html28
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.provider.rest.consumer/build.properties4
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.provider.rest.consumer/src/com/mycorp/examples/timeservice/internal/provider/rest/consumer/Activator.java23
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.provider.rest.host/META-INF/MANIFEST.MF7
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.provider.rest.host/about.html28
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.provider.rest.host/build.properties4
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice.provider.rest.host/src/com/mycorp/examples/timeservice/internal/provider/rest/host/Activator.java23
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice/META-INF/MANIFEST.MF6
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice/about.html28
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice/build.properties4
-rw-r--r--examples/bundles/com.mycorp.examples.timeservice/src/com/mycorp/examples/timeservice/ITimeServiceAsync.java19
-rw-r--r--examples/bundles/org.eclipse.ecf.example.clients/products/ChatRobot.product2
-rw-r--r--examples/bundles/org.eclipse.ecf.example.collab/launchconfigs/ECF Example Collab 1.launch381
-rw-r--r--examples/bundles/org.eclipse.ecf.example.collab/launchconfigs/ECF Example Collab 2.launch340
-rw-r--r--examples/bundles/org.eclipse.ecf.example.collab/launchconfigs/ECF Example Collab 3.launch336
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.datashare.app/products/Datashare Receiver (activemq).product2
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.datashare.app/products/Datashare Receiver (jgroups).product2
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.datashare.app/products/Datashare Sender (activemq).product2
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.datashare.app/products/Datashare Sender (jgroups).product2
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.eventadmin.app/products/EventAdmin Client (activemq).product2
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.eventadmin.app/products/EventAdmin Client (generic).product2
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.eventadmin.app/products/EventAdmin Server (activemq).product2
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.eventadmin.app/products/EventAdmin Server (generic).product2
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.loadbalancing.consumer/products/Data Processor Consumer (activemq).product2
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.loadbalancing.ds.consumer/products/Data Processor Consumer DS (activemq).product2
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.loadbalancing.server/products/Data Processor Server (activemq).product2
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.loadbalancing.servicehost/products/Data Processor Service Host (activemq).product2
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.loadbalancing/src/org/eclipse/ecf/examples/loadbalancing/IDataProcessorAsync.java3
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/META-INF/MANIFEST.MF5
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.provider.trivial/META-INF/MANIFEST.MF5
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.provider.trivial/plugin.xml12
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.provider.trivial/src/org/eclipse/ecf/examples/provider/trivial/TrivialApplication.java70
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.provider.trivial/src/org/eclipse/ecf/examples/provider/trivial/identity/TrivialNamespace.java4
-rwxr-xr-xexamples/bundles/org.eclipse.ecf.examples.provider.trivial/src/org/eclipse/ecf/internal/examples/provider/trivial/Activator.java28
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.provider.trivial/src/org/eclipse/ecf/internal/examples/provider/trivial/container/TrivialContainerInstantiator.java2
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/.classpath7
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/.gitignore1
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/.project33
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/META-INF/MANIFEST.MF10
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/OSGI-INF/raspberrypicomponent.xml5
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/build.properties6
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/src/org/eclipse/ecf/internal/examples/raspberrypi/management/consumer/RaspberryPiComponent.java18
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/.project17
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/build.properties2
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/feature.xml208
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/products/RaspberryPiManagmentHost.product106
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/rootfiles/rpimgmthost.bat19
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/rootfiles/rpimgmthost.sh21
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/.classpath7
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/.gitignore1
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/.project28
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/.settings/org.eclipse.pde.core.prefs3
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/META-INF/MANIFEST.MF10
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/build.properties4
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/src/org/eclipse/ecf/internal/examples/raspberrypi/management/host/Activator.java52
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/src/org/eclipse/ecf/internal/examples/raspberrypi/management/host/RaspberryPi.java34
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/.classpath7
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/.gitignore1
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/.project28
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/.settings/org.eclipse.pde.core.prefs3
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/META-INF/MANIFEST.MF8
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/build.properties4
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/src/org/eclipse/ecf/examples/raspberrypi/management/IRaspberryPi.java21
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/src/org/eclipse/ecf/examples/raspberrypi/management/IRaspberryPiAsync.java24
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/META-INF/MANIFEST.MF2
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/generic_hello.xml6
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.rs/META-INF/MANIFEST.MF5
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.rs/products/Hello Service Consumer RS.product7
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/META-INF/MANIFEST.MF2
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (edef,generic).product5
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zeroconf,generic).product7
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zeroconf,r-osgi).product7
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zookeeper,generic).product7
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zookeeper,r-osgi).product7
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/src/org/eclipse/ecf/internal/examples/remoteservices/hello/consumer/HelloConsumerApplication.java17
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer2/.gitignore1
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer2/bin/org/eclipse/ecf/examples/internal/remoteservices/hello/consumer2/Activator$HelloTrackerCustomizer$1.classbin2093 -> 0 bytes
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer2/bin/org/eclipse/ecf/examples/internal/remoteservices/hello/consumer2/Activator$HelloTrackerCustomizer.classbin6375 -> 0 bytes
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer2/bin/org/eclipse/ecf/examples/internal/remoteservices/hello/consumer2/Activator.classbin2461 -> 0 bytes
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer2/src/org/eclipse/ecf/examples/internal/remoteservices/hello/consumer2/Activator.java20
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.consumer/META-INF/MANIFEST.MF2
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.consumer/products/Hello Service Consumer DS (zeroconf,generic).product5
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.consumer/src/org/eclipse/ecf/examples/internal/remoteservices/hello/ds/consumer/HelloClientComponent.java11
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.host/META-INF/MANIFEST.MF6
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.host/OSGI-INF/hello.xml2
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.host/products/Hello Service DS Host (zeroconf,generic).product31
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host.rs/META-INF/MANIFEST.MF2
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host.rs/products/Hello Service Host RS.product6
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/META-INF/MANIFEST.MF4
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (edef,generic).product5
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zeroconf,generic).product6
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zeroconf,rosgi).product8
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zookeeper,generic).product5
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zookeeper,rosgi).product7
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/src/org/eclipse/ecf/internal/examples/remoteservices/hello/host/HelloHostApplication.java2
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello/META-INF/MANIFEST.MF4
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.hello/src/org/eclipse/ecf/examples/remoteservices/hello/IHelloAsync.java15
-rw-r--r--examples/bundles/org.eclipse.ecf.examples.remoteservices.rest.rss/META-INF/MANIFEST.MF5
175 files changed, 3936 insertions, 1470 deletions
diff --git a/examples/bundles/com.mycorp.examples.timeservice.async/.classpath b/examples/bundles/com.mycorp.examples.timeservice.async/.classpath
new file mode 100644
index 000000000..eca7bdba8
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.async/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.async/.gitignore b/examples/bundles/com.mycorp.examples.timeservice.async/.gitignore
new file mode 100644
index 000000000..5e56e040e
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.async/.gitignore
@@ -0,0 +1 @@
+/bin
diff --git a/examples/bundles/com.mycorp.examples.timeservice.async/.project b/examples/bundles/com.mycorp.examples.timeservice.async/.project
new file mode 100644
index 000000000..62d0c40c5
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.async/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>com.mycorp.examples.timeservice.async</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.async/.settings/org.eclipse.jdt.core.prefs b/examples/bundles/com.mycorp.examples.timeservice.async/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..0c68a61dc
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.async/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/examples/bundles/com.mycorp.examples.timeservice.async/.settings/org.eclipse.pde.core.prefs b/examples/bundles/com.mycorp.examples.timeservice.async/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 000000000..f29e940a0
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.async/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/examples/bundles/com.mycorp.examples.timeservice.async/META-INF/MANIFEST.MF b/examples/bundles/com.mycorp.examples.timeservice.async/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..41f0c112c
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.async/META-INF/MANIFEST.MF
@@ -0,0 +1,9 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: ECF RS Example Timeservice Async API
+Bundle-SymbolicName: com.mycorp.examples.timeservice.async
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: Eclipse.org - ECF
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: com.mycorp.examples.timeservice;version="2.0.0"
+Bundle-ActivationPolicy: lazy
diff --git a/examples/bundles/com.mycorp.examples.timeservice.async/about.html b/examples/bundles/com.mycorp.examples.timeservice.async/about.html
new file mode 100644
index 000000000..4c79781a5
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.async/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 25, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/examples/bundles/com.mycorp.examples.timeservice.async/build.properties b/examples/bundles/com.mycorp.examples.timeservice.async/build.properties
new file mode 100644
index 000000000..9cbab3c13
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.async/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ about.html
+src.includes = about.html
diff --git a/examples/bundles/com.mycorp.examples.timeservice.async/src/com/mycorp/examples/timeservice/ITimeService.java b/examples/bundles/com.mycorp.examples.timeservice.async/src/com/mycorp/examples/timeservice/ITimeService.java
new file mode 100644
index 000000000..4149d5bb0
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.async/src/com/mycorp/examples/timeservice/ITimeService.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Composent, Inc. 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: Scott Lewis - initial API and implementation
+ ******************************************************************************/
+package com.mycorp.examples.timeservice;
+
+/**
+ * Example OSGi service for retrieving current time in milliseconds from January
+ * 1, 1970.
+ *
+ */
+public interface ITimeService {
+
+ /**
+ * Get current time.
+ *
+ * @return Long current time in milliseconds since Jan 1, 1970. Will not
+ * return <code>null</code>.
+ */
+ public Long getCurrentTime();
+
+}
diff --git a/examples/bundles/com.mycorp.examples.timeservice.async/src/com/mycorp/examples/timeservice/ITimeServiceAsync.java b/examples/bundles/com.mycorp.examples.timeservice.async/src/com/mycorp/examples/timeservice/ITimeServiceAsync.java
new file mode 100644
index 000000000..299871f70
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.async/src/com/mycorp/examples/timeservice/ITimeServiceAsync.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Composent, Inc. 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: Scott Lewis - initial API and implementation
+ ******************************************************************************/
+package com.mycorp.examples.timeservice;
+
+import java.util.concurrent.CompletableFuture;
+
+public interface ITimeServiceAsync {
+
+ /**
+ * Get current time using Java 8 {@link CompletableFuture}.
+ *
+ * @return CompletableFuture<Long> The future value time in milliseconds since Jan 1, 1970. Will not
+ * return <code>null</code>.
+ */
+ public CompletableFuture<Long> getCurrentTimeAsync();
+
+}
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/.classpath b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/.classpath
new file mode 100644
index 000000000..eca7bdba8
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/.gitignore b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/.gitignore
new file mode 100644
index 000000000..5e56e040e
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/.gitignore
@@ -0,0 +1 @@
+/bin
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/.project b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/.project
new file mode 100644
index 000000000..b08382269
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>com.mycorp.examples.timeservice.consumer.ds.async</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ds.core.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/.settings/org.eclipse.jdt.core.prefs b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..0c68a61dc
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/.settings/org.eclipse.pde.core.prefs b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 000000000..f29e940a0
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/META-INF/MANIFEST.MF b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..1f3a05e60
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/META-INF/MANIFEST.MF
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Async
+Bundle-SymbolicName: com.mycorp.examples.timeservice.consumer.ds.async
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: MYCORP
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Import-Package: com.mycorp.examples.timeservice;version="2.0.0"
+Service-Component: OSGI-INF/timeservicecomponentasync.xml
+Bundle-ActivationPolicy: lazy
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/OSGI-INF/timeservicecomponentasync.xml b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/OSGI-INF/timeservicecomponentasync.xml
new file mode 100644
index 000000000..2e13191e2
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/OSGI-INF/timeservicecomponentasync.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" enabled="true" name="com.mycorp.examples.timeservice.consumer.ds.async">
+ <implementation class="com.mycorp.examples.timeservice.consumer.ds.async.TimeServiceComponentAsync"/>
+ <reference bind="bindTimeService" cardinality="1..n" interface="com.mycorp.examples.timeservice.ITimeServiceAsync" name="ITimeServiceAsync" policy="dynamic"/>
+</scr:component> \ No newline at end of file
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/about.html b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/about.html
new file mode 100644
index 000000000..4c79781a5
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 25, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/build.properties b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/build.properties
new file mode 100644
index 000000000..529e35c21
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/build.properties
@@ -0,0 +1,10 @@
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ OSGI-INF/timeservicecomponentasync.xml,\
+ OSGI-INF/,\
+ launch/,\
+ about.html
+source.. = src/
+src.includes = launch/,\
+ about.html
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/launch/TimeServiceConsumer.generic.noreg.java8.product b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/launch/TimeServiceConsumer.generic.noreg.java8.product
new file mode 100644
index 000000000..e95b4d73a
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/launch/TimeServiceConsumer.generic.noreg.java8.product
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="MyCorp Remote TimeService Generic Consumer No Extension Registry Java8" uid="com.mycorp.examples.timeservice.consumer.generic.noreg.java8.product" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-consoleLog -console
+ </programArgs>
+ <vmArgs>-Declipse.ignoreApp=true
+-Dosgi.noShutdown=true
+ </vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ <windows include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8</windows>
+ </vm>
+
+ <plugins>
+ <plugin id="com.mycorp.examples.timeservice.async"/>
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds.async"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.console"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" version="2.0.0"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.ds"/>
+ <plugin id="org.eclipse.equinox.event"/>
+ <plugin id="org.eclipse.equinox.util"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.osgi.util"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="com.mycorp.examples.timeservice.async" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds.async" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.command" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.shell" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.jobs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.identity" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.jmdns" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.concurrent" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="1" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.util" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.util" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/launch/TimeServiceConsumer.rosgi.noreg.java8.product b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/launch/TimeServiceConsumer.rosgi.noreg.java8.product
new file mode 100644
index 000000000..e95b4d73a
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/launch/TimeServiceConsumer.rosgi.noreg.java8.product
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="MyCorp Remote TimeService Generic Consumer No Extension Registry Java8" uid="com.mycorp.examples.timeservice.consumer.generic.noreg.java8.product" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-consoleLog -console
+ </programArgs>
+ <vmArgs>-Declipse.ignoreApp=true
+-Dosgi.noShutdown=true
+ </vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ <windows include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8</windows>
+ </vm>
+
+ <plugins>
+ <plugin id="com.mycorp.examples.timeservice.async"/>
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds.async"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.console"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" version="2.0.0"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.ds"/>
+ <plugin id="org.eclipse.equinox.event"/>
+ <plugin id="org.eclipse.equinox.util"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.osgi.util"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="com.mycorp.examples.timeservice.async" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds.async" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.command" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.shell" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.jobs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.identity" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.jmdns" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.concurrent" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="1" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.util" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.util" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/src/com/mycorp/examples/timeservice/consumer/ds/async/TimeServiceComponentAsync.java b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/src/com/mycorp/examples/timeservice/consumer/ds/async/TimeServiceComponentAsync.java
new file mode 100644
index 000000000..8a038f9f4
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async/src/com/mycorp/examples/timeservice/consumer/ds/async/TimeServiceComponentAsync.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Composent, Inc. 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: Scott Lewis - initial API and implementation
+ ******************************************************************************/
+package com.mycorp.examples.timeservice.consumer.ds.async;
+
+import java.util.concurrent.CompletableFuture;
+
+import com.mycorp.examples.timeservice.ITimeServiceAsync;
+
+public class TimeServiceComponentAsync {
+
+ void bindTimeService(ITimeServiceAsync timeService) {
+ System.out.println("Discovered ITimeServiceAsync via DS");
+ // Get the CompletableFuture...no blocking here
+ CompletableFuture<Long> cf = timeService.getCurrentTimeAsync();
+ // print out time when done...no blocking anywhere!
+ cf.thenAccept((time) -> System.out.println("Remote time is: " + time));
+ }
+}
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/META-INF/MANIFEST.MF b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/META-INF/MANIFEST.MF
index 8a6c53c42..b14a75ec1 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/META-INF/MANIFEST.MF
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/META-INF/MANIFEST.MF
@@ -1,9 +1,9 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
-Bundle-Name: Timeservice Consumer Declarative Services Example
+Bundle-Name: ECF RS Example Timeservice Consumer DS
Bundle-SymbolicName: com.mycorp.examples.timeservice.consumer.ds
Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: MyCorp, Inc.
+Bundle-Vendor: Eclipse.org - ECF
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Service-Component: OSGI-INF/timeservicecomponent.xml
-Import-Package: com.mycorp.examples.timeservice;version="1.0.0"
+Import-Package: com.mycorp.examples.timeservice;version="[1.0.0,2.0.0)"
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/about.html b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/about.html
new file mode 100644
index 000000000..4c79781a5
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 25, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/build.properties b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/build.properties
index ed9702d9e..ae221b989 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/build.properties
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/build.properties
@@ -2,5 +2,9 @@ output.. = bin/
bin.includes = META-INF/,\
.,\
OSGI-INF/timeservicecomponent.xml,\
- OSGI-INF/
+ OSGI-INF/,\
+ launch/,\
+ about.html
source.. = src/
+src.includes = launch/,\
+ about.html
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer DS.launch b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer DS.launch
deleted file mode 100644
index a297d1202..000000000
--- a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer DS.launch
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/TimeServiceConsumer DS"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="default_auto_start" value="true"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true &#13;&#10;-Dosgi.noShutdown=true&#13;&#10;-DverboseRemoteServiceAdmin=true"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="javax.xml@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.ecf.discovery@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.osgi.services.distribution@default:default,org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy@default:default,org.eclipse.ecf.osgi.services.remoteserviceadmin@default:default,org.eclipse.ecf.provider.jmdns@default:default,org.eclipse.ecf.provider.remoteservice@default:default,org.eclipse.ecf.provider@default:default,org.eclipse.ecf.remoteservice@default:default,org.eclipse.ecf.sharedobject@default:default,org.eclipse.ecf@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.util@default:default,org.eclipse.osgi.services.remoteserviceadmin@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<stringAttribute key="workspace_bundles" value="com.mycorp.examples.timeservice.consumer.ds@default:default,com.mycorp.examples.timeservice@default:default"/>
-</launchConfiguration>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.generic.edef.noreg.product b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.generic.edef.noreg.product
new file mode 100644
index 000000000..1cb323a3e
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.generic.edef.noreg.product
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="MyCorp Remote TimeService Generic Consumer DS EDEF No Registry" uid="com.mycorp.examples.timeservice.consumer.generic.ds.edef.noreg.product" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-consoleLog -console
+ </programArgs>
+ <vmArgs>-Declipse.ignoreApp=true
+-Dosgi.noShutdown=true
+-DverboseRemoteServiceAdmin=true
+-Dservice.exported.configs=ecf.generic.server
+-Decf.generic.server.port=3288
+-Decf.generic.server.hostname=localhost
+ </vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="com.mycorp.examples.timeservice"/>
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds"/>
+ <plugin id="com.mycorp.examples.timeservice.consumer.filediscovery"/>
+ <plugin id="com.mycorp.examples.timeservice.consumer.filediscovery.rest"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.console"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.ds"/>
+ <plugin id="org.eclipse.equinox.event"/>
+ <plugin id="org.eclipse.equinox.util"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="com.mycorp.examples.timeservice" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.consumer.filediscovery" autoStart="false" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.consumer.filediscovery.rest" autoStart="false" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.command" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.shell" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.jobs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.identity" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.concurrent" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="1" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.util" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.generic.edef.product b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.generic.edef.product
new file mode 100644
index 000000000..19757178c
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.generic.edef.product
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="MyCorp Remote TimeService Generic Consumer DS EDEF" uid="com.mycorp.examples.timeservice.consumer.generic.ds.edef.product" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-consoleLog -console
+ </programArgs>
+ <vmArgs>-Declipse.ignoreApp=true
+-Dosgi.noShutdown=true
+-DverboseRemoteServiceAdmin=true
+-Dservice.exported.configs=ecf.generic.server
+-Decf.generic.server.port=3288
+-Decf.generic.server.hostname=localhost
+ </vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="com.mycorp.examples.timeservice"/>
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds"/>
+ <plugin id="com.mycorp.examples.timeservice.consumer.filediscovery"/>
+ <plugin id="javax.xml"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.console"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.ds"/>
+ <plugin id="org.eclipse.equinox.event"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.equinox.util"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="com.mycorp.examples.timeservice" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.consumer.filediscovery" autoStart="false" startLevel="0" />
+ <plugin id="javax.xml" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.command" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.shell" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.contenttype" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.jobs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.identity" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.concurrent" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="1" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.preferences" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.registry" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.util" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.generic.noreg.product b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.generic.noreg.product
new file mode 100644
index 000000000..0d8cbf899
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.generic.noreg.product
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="MyCorp Remote TimeService Generic Consumer DS No Registry" uid="com.mycorp.examples.timeservice.consumer.generic.ds.noreg.product" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-consoleLog -console
+ </programArgs>
+ <vmArgs>-Declipse.ignoreApp=true
+-Dosgi.noShutdown=true
+-DverboseRemoteServiceAdmin=true
+-Dservice.exported.configs=ecf.generic.server
+-Decf.generic.server.port=3288
+-Decf.generic.server.hostname=localhost
+ </vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="com.mycorp.examples.timeservice"/>
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.console"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.ds"/>
+ <plugin id="org.eclipse.equinox.event"/>
+ <plugin id="org.eclipse.equinox.util"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="com.mycorp.examples.timeservice" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.command" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.shell" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.jobs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.identity" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.jmdns" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.concurrent" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="1" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.util" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.generic.product b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.generic.product
new file mode 100644
index 000000000..f2a8fdce0
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.generic.product
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="MyCorp Remote TimeService Generic Consumer DS" uid="com.mycorp.examples.timeservice.consumer.generic.ds.product" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-consoleLog -console
+ </programArgs>
+ <vmArgs>-Declipse.ignoreApp=true
+-Dosgi.noShutdown=true
+-DverboseRemoteServiceAdmin=true
+-Dservice.exported.configs=ecf.generic.server
+-Decf.generic.server.port=3288
+-Decf.generic.server.hostname=localhost
+ </vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="com.mycorp.examples.timeservice"/>
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds"/>
+ <plugin id="javax.xml"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.console"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.ds"/>
+ <plugin id="org.eclipse.equinox.event"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.equinox.util"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="com.mycorp.examples.timeservice" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds" autoStart="true" startLevel="0" />
+ <plugin id="javax.xml" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.command" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.shell" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.contenttype" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.jobs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.identity" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.jmdns" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.concurrent" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="1" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.preferences" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.registry" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.util" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rest.edef.noreg.product b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rest.edef.noreg.product
new file mode 100644
index 000000000..9a64784f8
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rest.edef.noreg.product
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="MyCorp Remote TimeService REST Consumer DS EDEF No Registry" uid="com.mycorp.examples.timeservice.rest.consumer.ds.edef.noreg.product" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-consoleLog -console
+ </programArgs>
+ <vmArgs>-Declipse.ignoreApp=true
+-Dosgi.noShutdown=true
+-DverboseRemoteServiceAdmin=true
+-Dorg.eclipse.equinox.http.jetty.http.port=8181
+-Dservice.exported.configs=com.mycorp.examples.timeservice.rest.host
+-Dcom.mycorp.examples.timeservice.rest.host.id=http://localhost:8181
+ </vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="com.mycorp.examples.timeservice"/>
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds"/>
+ <plugin id="com.mycorp.examples.timeservice.consumer.filediscovery.rest"/>
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.common"/>
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.consumer"/>
+ <plugin id="javax.servlet"/>
+ <plugin id="org.apache.commons.codec"/>
+ <plugin id="org.apache.commons.logging"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.apache.httpcomponents.httpclient"/>
+ <plugin id="org.apache.httpcomponents.httpcore"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.console"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
+ <plugin id="org.eclipse.ecf.remoteservice.rest"/>
+ <plugin id="org.eclipse.ecf.remoteservice.servlet"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.ds"/>
+ <plugin id="org.eclipse.equinox.event"/>
+ <plugin id="org.eclipse.equinox.util"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.osgi.util"/>
+ <plugin id="org.json"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="com.mycorp.examples.timeservice" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.consumer.filediscovery.rest" autoStart="false" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.common" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.consumer" autoStart="true" startLevel="0" />
+ <plugin id="javax.servlet" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.commons.codec" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.commons.logging" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.command" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.shell" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.httpcomponents.httpclient" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.httpcomponents.httpcore" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.jobs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.identity" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.rest" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.servlet" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.concurrent" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.util" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.util" autoStart="true" startLevel="0" />
+ <plugin id="org.json" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rest.edef.product b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rest.edef.product
new file mode 100644
index 000000000..8c0d3fd4f
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rest.edef.product
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="MyCorp Remote TimeService REST Consumer DS EDEF" uid="com.mycorp.examples.timeservice.rest.consumer.ds.edef.product" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-consoleLog -console
+ </programArgs>
+ <vmArgs>-Declipse.ignoreApp=true
+-Dosgi.noShutdown=true
+-DverboseRemoteServiceAdmin=true
+-Dorg.eclipse.equinox.http.jetty.http.port=8181
+-Dservice.exported.configs=com.mycorp.examples.timeservice.rest.host
+-Dcom.mycorp.examples.timeservice.rest.host.id=http://localhost:8181
+ </vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="com.mycorp.examples.timeservice"/>
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds"/>
+ <plugin id="com.mycorp.examples.timeservice.consumer.filediscovery.rest"/>
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.common"/>
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.consumer"/>
+ <plugin id="javax.servlet"/>
+ <plugin id="javax.xml"/>
+ <plugin id="org.apache.commons.codec"/>
+ <plugin id="org.apache.commons.logging"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.apache.httpcomponents.httpclient"/>
+ <plugin id="org.apache.httpcomponents.httpcore"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.console"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
+ <plugin id="org.eclipse.ecf.remoteservice.rest"/>
+ <plugin id="org.eclipse.ecf.remoteservice.servlet"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.ds"/>
+ <plugin id="org.eclipse.equinox.event"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.equinox.util"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.osgi.util"/>
+ <plugin id="org.json"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="com.mycorp.examples.timeservice" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.consumer.filediscovery.rest" autoStart="false" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.common" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.consumer" autoStart="true" startLevel="0" />
+ <plugin id="javax.servlet" autoStart="true" startLevel="0" />
+ <plugin id="javax.xml" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.commons.codec" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.commons.logging" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.command" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.shell" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.httpcomponents.httpclient" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.httpcomponents.httpcore" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.contenttype" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.jobs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.identity" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.rest" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.servlet" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.concurrent" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.preferences" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.registry" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.util" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.util" autoStart="true" startLevel="0" />
+ <plugin id="org.json" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rest.noreg.product b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rest.noreg.product
new file mode 100644
index 000000000..4503b0c11
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rest.noreg.product
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="MyCorp Remote TimeService REST Consumer DS No Registry" uid="com.mycorp.examples.timeservice.rest.consumer.ds.noreg.product" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-consoleLog -console
+ </programArgs>
+ <vmArgs>-Declipse.ignoreApp=true
+-Dosgi.noShutdown=true
+-DverboseRemoteServiceAdmin=true
+-Dorg.eclipse.equinox.http.jetty.http.port=8181
+-Dservice.exported.configs=com.mycorp.examples.timeservice.rest.host
+-Dcom.mycorp.examples.timeservice.rest.host.id=http://localhost:8181
+ </vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="com.mycorp.examples.timeservice"/>
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds"/>
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.common"/>
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.consumer"/>
+ <plugin id="javax.servlet"/>
+ <plugin id="org.apache.commons.codec"/>
+ <plugin id="org.apache.commons.logging"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.apache.httpcomponents.httpclient"/>
+ <plugin id="org.apache.httpcomponents.httpcore"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.console"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
+ <plugin id="org.eclipse.ecf.remoteservice.rest"/>
+ <plugin id="org.eclipse.ecf.remoteservice.servlet"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.ds"/>
+ <plugin id="org.eclipse.equinox.event"/>
+ <plugin id="org.eclipse.equinox.util"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.osgi.util"/>
+ <plugin id="org.json"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="com.mycorp.examples.timeservice" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.common" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.consumer" autoStart="true" startLevel="0" />
+ <plugin id="javax.servlet" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.commons.codec" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.commons.logging" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.command" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.shell" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.httpcomponents.httpclient" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.httpcomponents.httpcore" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.jobs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.identity" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.jmdns" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.rest" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.servlet" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.concurrent" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.util" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.util" autoStart="true" startLevel="0" />
+ <plugin id="org.json" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rest.product b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rest.product
new file mode 100644
index 000000000..c5f9fee5b
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rest.product
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="MyCorp Remote TimeService REST Consumer DS" uid="com.mycorp.examples.timeservice.rest.consumer.ds.product" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-consoleLog -console
+ </programArgs>
+ <vmArgs>-Declipse.ignoreApp=true
+-Dosgi.noShutdown=true
+-DverboseRemoteServiceAdmin=true
+-Dorg.eclipse.equinox.http.jetty.http.port=8181
+-Dservice.exported.configs=com.mycorp.examples.timeservice.rest.host
+-Dcom.mycorp.examples.timeservice.rest.host.id=http://localhost:8181
+ </vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="com.mycorp.examples.timeservice"/>
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds"/>
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.common"/>
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.consumer"/>
+ <plugin id="javax.servlet"/>
+ <plugin id="javax.xml"/>
+ <plugin id="org.apache.commons.codec"/>
+ <plugin id="org.apache.commons.logging"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.apache.httpcomponents.httpclient"/>
+ <plugin id="org.apache.httpcomponents.httpcore"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.console"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
+ <plugin id="org.eclipse.ecf.remoteservice.rest"/>
+ <plugin id="org.eclipse.ecf.remoteservice.servlet"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.ds"/>
+ <plugin id="org.eclipse.equinox.event"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.equinox.util"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.osgi.util"/>
+ <plugin id="org.json"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="com.mycorp.examples.timeservice" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.common" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.consumer" autoStart="true" startLevel="0" />
+ <plugin id="javax.servlet" autoStart="true" startLevel="0" />
+ <plugin id="javax.xml" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.commons.codec" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.commons.logging" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.command" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.shell" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.httpcomponents.httpclient" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.httpcomponents.httpcore" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.contenttype" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.jobs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.identity" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.jmdns" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.rest" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.servlet" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.concurrent" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.preferences" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.registry" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.util" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.util" autoStart="true" startLevel="0" />
+ <plugin id="org.json" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rosgi.noreg.product b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rosgi.noreg.product
new file mode 100644
index 000000000..82c561729
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rosgi.noreg.product
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="MyCorp Remote TimeService Consumer ROSGI DS No Registry" uid="com.mycorp.examples.timeservice.consumer.rosgi.ds.noreg.product" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-consoleLog -console
+ </programArgs>
+ <vmArgs>-Declipse.ignoreApp=true
+-Dosgi.noShutdown=true
+-DverboseRemoteServiceAdmin=true
+-Dservice.exported.configs=ecf.r_osgi.peer
+ </vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="ch.ethz.iks.r_osgi.remote"/>
+ <plugin id="com.mycorp.examples.timeservice"/>
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.console"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.r_osgi"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.ds"/>
+ <plugin id="org.eclipse.equinox.event"/>
+ <plugin id="org.eclipse.equinox.util"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.objectweb.asm" version="3.3.1"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="ch.ethz.iks.r_osgi.remote" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.command" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.shell" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.jobs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.identity" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.jmdns" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.r_osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.concurrent" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.util" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.objectweb.asm" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rosgi.product b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rosgi.product
new file mode 100644
index 000000000..8ca654401
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.ds.rosgi.product
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="MyCorp Remote TimeService Consumer ROSGI DS" uid="com.mycorp.examples.timeservice.consumer.rosgi.ds.product" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-consoleLog -console
+ </programArgs>
+ <vmArgs>-Declipse.ignoreApp=true
+-Dosgi.noShutdown=true
+-DverboseRemoteServiceAdmin=true
+-Dservice.exported.configs=ecf.r_osgi.peer
+ </vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="ch.ethz.iks.r_osgi.remote"/>
+ <plugin id="com.mycorp.examples.timeservice"/>
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds"/>
+ <plugin id="javax.xml"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.console"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.r_osgi"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.ds"/>
+ <plugin id="org.eclipse.equinox.event"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.equinox.util"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.objectweb.asm" version="3.3.1"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="ch.ethz.iks.r_osgi.remote" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds" autoStart="true" startLevel="0" />
+ <plugin id="javax.xml" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.command" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.shell" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.contenttype" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.jobs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.identity" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.jmdns" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.r_osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.concurrent" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.preferences" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.registry" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.util" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.objectweb.asm" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.generic.noreg.java8.product b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.generic.noreg.java8.product
new file mode 100644
index 000000000..81171beb1
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/launch/TimeServiceConsumer.generic.noreg.java8.product
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="MyCorp Remote TimeService Generic No Extension Registry Java8" uid="com.mycorp.examples.timeservice.consumer.generic.noreg.java8.product" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-consoleLog -console
+ </programArgs>
+ <vmArgs>-Declipse.ignoreApp=true
+-Dosgi.noShutdown=true
+-DverboseRemoteServiceAdmin=true
+-Dservice.exported.configs=ecf.generic.server.java8
+-Decf.generic.server.java8.port=3288
+-Decf.generic.server.java8.hostname=localhost
+-Decf.exported.async.interfaces=*
+ </vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ <windows include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8</windows>
+ </vm>
+
+ <plugins>
+ <plugin id="com.mycorp.examples.timeservice.async"/>
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds.async"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.console"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice.java8"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.ds"/>
+ <plugin id="org.eclipse.equinox.event"/>
+ <plugin id="org.eclipse.equinox.util"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="com.mycorp.examples.timeservice.async" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.consumer.ds.async" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.command" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.shell" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.jobs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.identity" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.jmdns" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.remoteservice.java8" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="0" /> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.concurrent" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="1" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.util" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/src/com/mycorp/examples/timeservice/consumer/ds/TimeServiceComponent.java b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/src/com/mycorp/examples/timeservice/consumer/ds/TimeServiceComponent.java
index cda94185a..2a0f55554 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/src/com/mycorp/examples/timeservice/consumer/ds/TimeServiceComponent.java
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.ds/src/com/mycorp/examples/timeservice/consumer/ds/TimeServiceComponent.java
@@ -8,13 +8,35 @@
******************************************************************************/
package com.mycorp.examples.timeservice.consumer.ds;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+
import com.mycorp.examples.timeservice.ITimeService;
+import com.mycorp.examples.timeservice.ITimeServiceAsync;
public class TimeServiceComponent {
void bindTimeService(ITimeService timeService) {
+ // Invoke synchronously
System.out.println("Discovered ITimeService via DS");
// Call the service and print out result!
System.out.println("Current time is: " + timeService.getCurrentTime());
+
+ // Then invoke asynchronously
+ if (timeService instanceof ITimeServiceAsync) {
+ ITimeServiceAsync asyncTimeService = (ITimeServiceAsync) timeService;
+ System.out.println("Discovered ITimeServiceAsync via DS");
+ // Call the asynchronous remote service. Unlike the synchronous getTimeService(),
+ // this method will not block
+ Future<Long> currentTimeFuture = asyncTimeService.getCurrentTimeAsync();
+ // potentially do other operations here...
+ try {
+ System.out.println("Current time via future.get is: " + currentTimeFuture.get());
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ } catch (ExecutionException e) {
+ e.printStackTrace();
+ }
+ }
}
}
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest/META-INF/MANIFEST.MF b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest/META-INF/MANIFEST.MF
index 5b3c4cc88..4c9a4ca8b 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest/META-INF/MANIFEST.MF
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest/META-INF/MANIFEST.MF
@@ -1,8 +1,8 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
-Bundle-Name: Timeservice Consuemr FileDiscovery Rest
+Bundle-Name: ECF RS Example REST Timeservice Consumer FileDiscovery
Bundle-SymbolicName: com.mycorp.examples.timeservice.consumer.filediscovery.rest
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: MyCorp
+Bundle-Version: 1.1.0.qualifier
+Bundle-Vendor: Eclipse.org - ECF
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Remote-Service: timeservicerestendpointdescription.xml
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest/about.html b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest/about.html
new file mode 100644
index 000000000..4c79781a5
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 25, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest/build.properties b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest/build.properties
index 24e86ec65..7442499c4 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest/build.properties
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest/build.properties
@@ -2,4 +2,7 @@ source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
- timeservicerestendpointdescription.xml
+ timeservicerestendpointdescription.xml,\
+ about.html
+src.includes = timeservicerestendpointdescription.xml,\
+ about.html
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest/launch/TimeServiceRestConsumer DS.launch b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest/launch/TimeServiceRestConsumer DS.launch
deleted file mode 100644
index 4c543a9eb..000000000
--- a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest/launch/TimeServiceRestConsumer DS.launch
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/TimeServiceRestConsumer DS"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="default_auto_start" value="true"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true &#13;&#10;-Dosgi.noShutdown=true&#13;&#10;-DverboseRemoteServiceAdmin=true"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="javax.xml@default:default,org.apache.commons.codec@default:default,org.apache.commons.logging@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.ecf.discovery@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.osgi.services.distribution@default:default,org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy@default:default,org.eclipse.ecf.osgi.services.remoteserviceadmin@default:default,org.eclipse.ecf.provider.remoteservice@default:default,org.eclipse.ecf.provider@default:default,org.eclipse.ecf.remoteservice@default:default,org.eclipse.ecf.sharedobject@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.util@default:default,org.eclipse.osgi.services.remoteserviceadmin@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<stringAttribute key="workspace_bundles" value="com.mycorp.examples.timeservice.consumer.ds@default:default,com.mycorp.examples.timeservice.consumer.filediscovery.rest@default:false,com.mycorp.examples.timeservice.provider.rest.common@default:default,com.mycorp.examples.timeservice.provider.rest.consumer@default:default,com.mycorp.examples.timeservice@default:default,org.eclipse.ecf.remoteservice.rest@default:default,org.eclipse.ecf.remoteservice@default:default,org.json@default:default"/>
-</launchConfiguration>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest/timeservicerestendpointdescription.xml b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest/timeservicerestendpointdescription.xml
index feaff8b67..452732a74 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest/timeservicerestendpointdescription.xml
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest/timeservicerestendpointdescription.xml
@@ -1,9 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0">
<endpoint-description>
+ <property name="ecf.endpoint.id" value-type="String" value="http://localhost:8181"/>
<property name="ecf.endpoint.id.ns" value-type="String" value="com.mycorp.examples.timeservice.provider.rest.namespace"/>
+ <property name="ecf.endpoint.ts" value-type="Long" value="1387233380373"/>
<property name="endpoint.framework.uuid" value-type="String" value="20cc5d57-e8f0-0012-192b-c570b422d1f9"/>
- <property name="endpoint.id" value-type="String" value="http://localhost:8181"/>
+ <property name="endpoint.id" value-type="String" value="87d3ef4f-8e8f-4187-873e-166dcc58c9eb"/>
<property name="endpoint.package.version.com.mycorp.examples.timeservice" value-type="String" value="1.0.0"/>
<property name="endpoint.service.id" value-type="Long" value="0"/>
<property name="objectClass" value-type="String">
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rosgi/about.html b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rosgi/about.html
new file mode 100644
index 000000000..4c79781a5
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rosgi/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 25, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rosgi/build.properties b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rosgi/build.properties
index 24e86ec65..32954c6dd 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rosgi/build.properties
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rosgi/build.properties
@@ -2,4 +2,6 @@ source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
- timeservicerestendpointdescription.xml
+ timeservicerestendpointdescription.xml,\
+ about.html
+src.includes = about.html
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/META-INF/MANIFEST.MF b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/META-INF/MANIFEST.MF
index bf5a41a95..8e686d299 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/META-INF/MANIFEST.MF
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/META-INF/MANIFEST.MF
@@ -1,9 +1,8 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
-Bundle-Name: TimeService Consumer Filediscovery
+Bundle-Name: ECF RS Example TimeService Consumer FileDiscovery
Bundle-SymbolicName: com.mycorp.examples.timeservice.consumer.filediscovery
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: MyCorp, Inc.
+Bundle-Version: 1.1.0.qualifier
+Bundle-Vendor: Eclipse.org - ECF
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Remote-Service: timeserviceendpointdescription.xml
-
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/about.html b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/about.html
new file mode 100644
index 000000000..4c79781a5
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 25, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/build.properties b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/build.properties
index ea3d35e4e..42b1d7f7b 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/build.properties
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/build.properties
@@ -2,7 +2,7 @@ source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
- launch/,\
- timeserviceendpointdescription.xml
-src.includes = launch/,\
- timeserviceendpointdescription.xml
+ timeserviceendpointdescription.xml,\
+ about.html
+src.includes = timeserviceendpointdescription.xml,\
+ about.html
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/launch/TimeServiceConsumer.launch b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/launch/TimeServiceConsumer.launch
deleted file mode 100644
index 0e42f51fb..000000000
--- a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/launch/TimeServiceConsumer.launch
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/TimeServiceConsumer"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="default_auto_start" value="true"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true &#13;&#10;-Dosgi.noShutdown=true&#13;&#10;-DverboseRemoteServiceAdmin=true"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="javax.xml@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.ecf.discovery@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.osgi.services.distribution@default:default,org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy@default:default,org.eclipse.ecf.osgi.services.remoteserviceadmin@default:default,org.eclipse.ecf.provider.remoteservice@default:default,org.eclipse.ecf.provider@default:default,org.eclipse.ecf.remoteservice@default:default,org.eclipse.ecf.sharedobject@default:default,org.eclipse.ecf@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.console@default:default,org.eclipse.equinox.event@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.osgi.services.remoteserviceadmin@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<stringAttribute key="workspace_bundles" value="com.mycorp.examples.timeservice.consumer.filediscovery@default:false,com.mycorp.examples.timeservice.consumer@default:default,com.mycorp.examples.timeservice@default:default"/>
-</launchConfiguration>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/timeserviceendpointdescription.xml b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/timeserviceendpointdescription.xml
index 180533dc6..156b0743b 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/timeserviceendpointdescription.xml
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery/timeserviceendpointdescription.xml
@@ -1,9 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0">
<endpoint-description>
+ <property name="ecf.endpoint.id" value-type="String" value="ecftcp://localhost:3288/server"/>
<property name="ecf.endpoint.id.ns" value-type="String" value="org.eclipse.ecf.core.identity.StringID"/>
+ <property name="ecf.endpoint.ts" value-type="Long" value="1387233380373"/>
<property name="endpoint.framework.uuid" value-type="String" value="20cc5d57-e8f0-0012-192b-c570b422d1f9"/>
- <property name="endpoint.id" value-type="String" value="ecftcp://localhost:3288/server"/>
+ <property name="endpoint.id" value-type="String" value="87d3ef4f-8e8f-4187-873e-166dcc58c9ea"/>
<property name="endpoint.package.version.com.mycorp.examples.timeservice" value-type="String" value="1.0.0"/>
<property name="endpoint.service.id" value-type="Long" value="0"/>
<property name="objectClass" value-type="String">
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer/META-INF/MANIFEST.MF b/examples/bundles/com.mycorp.examples.timeservice.consumer/META-INF/MANIFEST.MF
index 9f2cb57fc..e8d068e0c 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.consumer/META-INF/MANIFEST.MF
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer/META-INF/MANIFEST.MF
@@ -1,9 +1,9 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
-Bundle-Name: Consumer
+Bundle-Name: ECF RS Example Timeservice Consumer
Bundle-SymbolicName: com.mycorp.examples.timeservice.consumer
Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: MyCorp, Inc.
+Bundle-Vendor: Eclipse.org - ECF
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ActivationPolicy: lazy
Bundle-Activator: com.mycorp.examples.timeservice.consumer.Activator
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer/about.html b/examples/bundles/com.mycorp.examples.timeservice.consumer/about.html
new file mode 100644
index 000000000..4c79781a5
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 25, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/examples/bundles/com.mycorp.examples.timeservice.consumer/build.properties b/examples/bundles/com.mycorp.examples.timeservice.consumer/build.properties
index 34d2e4d2d..9cbab3c13 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.consumer/build.properties
+++ b/examples/bundles/com.mycorp.examples.timeservice.consumer/build.properties
@@ -1,4 +1,6 @@
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
- .
+ .,\
+ about.html
+src.includes = about.html
diff --git a/examples/bundles/com.mycorp.examples.timeservice.host/META-INF/MANIFEST.MF b/examples/bundles/com.mycorp.examples.timeservice.host/META-INF/MANIFEST.MF
index bc892795b..1a9760b72 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.host/META-INF/MANIFEST.MF
+++ b/examples/bundles/com.mycorp.examples.timeservice.host/META-INF/MANIFEST.MF
@@ -1,12 +1,12 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
-Bundle-Name: Host
+Bundle-Name: ECF RS Example Timeservice Host
Bundle-SymbolicName: com.mycorp.examples.timeservice.host
Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: MyCorp, Inc.
+Bundle-Vendor: Eclipse.org - ECF
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ActivationPolicy: lazy
Import-Package: com.mycorp.examples.timeservice;version="1.0.0",
- org.osgi.framework,
- org.osgi.service.remoteserviceadmin;version="1.0.0"
+ org.osgi.framework
Bundle-Activator: com.mycorp.examples.timeservice.host.Activator
+Require-Bundle: org.eclipse.osgi.services.remoteserviceadmin;bundle-version="1.5.0"
diff --git a/examples/bundles/com.mycorp.examples.timeservice.host/about.html b/examples/bundles/com.mycorp.examples.timeservice.host/about.html
new file mode 100644
index 000000000..4c79781a5
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.host/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 25, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/examples/bundles/com.mycorp.examples.timeservice.host/build.properties b/examples/bundles/com.mycorp.examples.timeservice.host/build.properties
index d24b1491e..621e99db1 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.host/build.properties
+++ b/examples/bundles/com.mycorp.examples.timeservice.host/build.properties
@@ -2,5 +2,7 @@ source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
- launch/
-src.includes = launch/
+ launch/,\
+ about.html
+src.includes = launch/,\
+ about.html
diff --git a/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.generic.noreg.java8.product b/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.generic.noreg.java8.product
new file mode 100644
index 000000000..8408c9ac2
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.generic.noreg.java8.product
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="MyCorp Remote TimeService Generic No Extension Registry Java8" uid="com.mycorp.examples.timeservice.host.generic.noreg.java8.product" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-consoleLog -console
+ </programArgs>
+ <vmArgs>-Declipse.ignoreApp=true
+-Dosgi.noShutdown=true
+-DverboseRemoteServiceAdmin=true
+-Dservice.exported.configs=ecf.generic.server
+-Decf.generic.server=3288
+-Decf.generic.server.hostname=localhost
+-Decf.exported.async.interfaces=*
+ </vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ <windows include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8</windows>
+ </vm>
+
+ <plugins>
+ <plugin id="com.mycorp.examples.timeservice.async"/>
+ <plugin id="com.mycorp.examples.timeservice.host"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.console"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" version="2.0.0.v20140410-1838"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.event"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="com.mycorp.examples.timeservice.async" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.host" autoStart="true" startLevel="6" />
+ <plugin id="org.apache.felix.gogo.command" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.shell" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.jobs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.identity" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="5" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="5" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.jmdns" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.concurrent" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.generic.noreg.product b/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.generic.noreg.product
new file mode 100644
index 000000000..72dc452ff
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.generic.noreg.product
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="MyCorp Remote TimeService Generic No Extension Registry" uid="com.mycorp.examples.timeservice.host.generic.noreg.product" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-consoleLog -console
+ </programArgs>
+ <vmArgs>-Declipse.ignoreApp=true
+-Dosgi.noShutdown=true
+-DverboseRemoteServiceAdmin=true
+-Dservice.exported.configs=ecf.generic.server
+-Decf.generic.server.port=3288
+-Decf.generic.server.hostname=localhost
+ </vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="com.mycorp.examples.timeservice"/>
+ <plugin id="com.mycorp.examples.timeservice.host"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.console"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.event"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="com.mycorp.examples.timeservice" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.host" autoStart="true" startLevel="6" />
+ <plugin id="org.apache.felix.gogo.command" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.shell" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.jobs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.identity" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="5" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="5" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.jmdns" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.concurrent" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.generic.product b/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.generic.product
new file mode 100644
index 000000000..c4114a6bc
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.generic.product
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="MyCorp Remote TimeService Generic" uid="com.mycorp.examples.timeservice.host.generic.product" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-consoleLog -console
+ </programArgs>
+ <vmArgs>-Declipse.ignoreApp=true
+-Dosgi.noShutdown=true
+-DverboseRemoteServiceAdmin=true
+-Dservice.exported.configs=ecf.generic.server
+-Decf.generic.server.port=3288
+-Decf.generic.server.hostname=localhost
+ </vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="com.mycorp.examples.timeservice"/>
+ <plugin id="com.mycorp.examples.timeservice.host"/>
+ <plugin id="javax.xml"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.console"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.event"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="com.mycorp.examples.timeservice" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.host" autoStart="true" startLevel="6" />
+ <plugin id="javax.xml" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.command" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.shell" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.contenttype" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.jobs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.identity" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="5" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="5" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.jmdns" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.concurrent" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.preferences" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.registry" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.launch b/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.launch
deleted file mode 100644
index ca03f3c0d..000000000
--- a/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.launch
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/TimeServiceHost"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="default_auto_start" value="true"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true &#13;&#10;-Dosgi.noShutdown=true &#13;&#10;-DverboseRemoteServiceAdmin=true"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="javax.xml@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.eclipse.core.jobs@default:default,org.eclipse.ecf.discovery@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.osgi.services.distribution@default:default,org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy@default:default,org.eclipse.ecf.osgi.services.remoteserviceadmin@default:default,org.eclipse.ecf.provider.jmdns@default:default,org.eclipse.ecf.provider.remoteservice@default:default,org.eclipse.ecf.provider@default:default,org.eclipse.ecf.remoteservice@default:default,org.eclipse.ecf.sharedobject@default:default,org.eclipse.ecf@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.console@default:default,org.eclipse.equinox.event@2:default,org.eclipse.equinox.registry@default:default,org.eclipse.osgi.services.remoteserviceadmin@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<stringAttribute key="workspace_bundles" value="com.mycorp.examples.timeservice.host@default:default,com.mycorp.examples.timeservice@default:default"/>
-</launchConfiguration>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.rest.noreg.product b/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.rest.noreg.product
new file mode 100644
index 000000000..10e405a94
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.rest.noreg.product
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="MyCorp Remote TimeService REST Host No Registry" uid="com.mycorp.examples.timeservice.rest.host.noreg.product" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-consoleLog -console
+ </programArgs>
+ <vmArgs>-Declipse.ignoreApp=true
+-Dosgi.noShutdown=true
+-DverboseRemoteServiceAdmin=true
+-Dorg.eclipse.equinox.http.jetty.http.port=8181
+-Dservice.exported.configs=com.mycorp.examples.timeservice.rest.host
+-Dcom.mycorp.examples.timeservice.rest.host.id=http://localhost:8181
+ </vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="com.mycorp.examples.timeservice"/>
+ <plugin id="com.mycorp.examples.timeservice.host"/>
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.common"/>
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.host"/>
+ <plugin id="javax.servlet"/>
+ <plugin id="org.apache.commons.codec"/>
+ <plugin id="org.apache.commons.logging"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.apache.httpcomponents.httpclient"/>
+ <plugin id="org.apache.httpcomponents.httpcore"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.console"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
+ <plugin id="org.eclipse.ecf.remoteservice.rest"/>
+ <plugin id="org.eclipse.ecf.remoteservice.servlet"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.ds"/>
+ <plugin id="org.eclipse.equinox.event"/>
+ <plugin id="org.eclipse.equinox.http.jetty"/>
+ <plugin id="org.eclipse.equinox.http.servlet"/>
+ <plugin id="org.eclipse.equinox.util"/>
+ <plugin id="org.eclipse.jetty.continuation"/>
+ <plugin id="org.eclipse.jetty.http"/>
+ <plugin id="org.eclipse.jetty.io"/>
+ <plugin id="org.eclipse.jetty.security"/>
+ <plugin id="org.eclipse.jetty.server"/>
+ <plugin id="org.eclipse.jetty.servlet"/>
+ <plugin id="org.eclipse.jetty.util"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.osgi.util"/>
+ <plugin id="org.json"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="com.mycorp.examples.timeservice" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.host" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.common" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.host" autoStart="true" startLevel="6" />
+ <plugin id="javax.servlet" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.commons.codec" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.commons.logging" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.command" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.shell" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.httpcomponents.httpclient" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.httpcomponents.httpcore" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.jobs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.identity" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="5" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="5" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.jmdns" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.rest" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.servlet" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.concurrent" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.http.jetty" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.http.servlet" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.util" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.jetty.continuation" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.jetty.http" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.jetty.io" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.jetty.security" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.jetty.server" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.jetty.servlet" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.jetty.util" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.util" autoStart="true" startLevel="0" />
+ <plugin id="org.json" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.rest.product b/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.rest.product
new file mode 100644
index 000000000..83431c941
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.rest.product
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="MyCorp Remote TimeService REST Host" uid="com.mycorp.examples.timeservice.rest.host.product" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-consoleLog -console
+ </programArgs>
+ <vmArgs>-Declipse.ignoreApp=true
+-Dosgi.noShutdown=true
+-DverboseRemoteServiceAdmin=true
+-Dorg.eclipse.equinox.http.jetty.http.port=8181
+-Dservice.exported.configs=com.mycorp.examples.timeservice.rest.host
+-Dcom.mycorp.examples.timeservice.rest.host.id=http://localhost:8181
+ </vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="com.mycorp.examples.timeservice"/>
+ <plugin id="com.mycorp.examples.timeservice.host"/>
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.common"/>
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.host"/>
+ <plugin id="javax.servlet"/>
+ <plugin id="javax.xml"/>
+ <plugin id="org.apache.commons.codec"/>
+ <plugin id="org.apache.commons.logging"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.apache.httpcomponents.httpclient"/>
+ <plugin id="org.apache.httpcomponents.httpcore"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.console"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
+ <plugin id="org.eclipse.ecf.remoteservice.rest"/>
+ <plugin id="org.eclipse.ecf.remoteservice.servlet"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.ecf.ssl" fragment="true"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.ds"/>
+ <plugin id="org.eclipse.equinox.event"/>
+ <plugin id="org.eclipse.equinox.http.jetty"/>
+ <plugin id="org.eclipse.equinox.http.servlet"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.equinox.util"/>
+ <plugin id="org.eclipse.jetty.continuation"/>
+ <plugin id="org.eclipse.jetty.http"/>
+ <plugin id="org.eclipse.jetty.io"/>
+ <plugin id="org.eclipse.jetty.security"/>
+ <plugin id="org.eclipse.jetty.server"/>
+ <plugin id="org.eclipse.jetty.servlet"/>
+ <plugin id="org.eclipse.jetty.util"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.osgi.util"/>
+ <plugin id="org.json"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="com.mycorp.examples.timeservice" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.host" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.common" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.provider.rest.host" autoStart="true" startLevel="0" />
+ <plugin id="javax.servlet" autoStart="true" startLevel="6" />
+ <plugin id="javax.xml" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.commons.codec" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.commons.logging" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.command" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.shell" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.httpcomponents.httpclient" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.httpcomponents.httpcore" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.contenttype" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.jobs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.identity" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="5" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="5" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.jmdns" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.rest" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.servlet" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.concurrent" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.http.jetty" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.http.servlet" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.preferences" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.registry" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.util" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.jetty.continuation" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.jetty.http" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.jetty.io" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.jetty.security" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.jetty.server" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.jetty.servlet" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.jetty.util" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.util" autoStart="true" startLevel="0" />
+ <plugin id="org.json" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.rosgi.noreg.java8.product b/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.rosgi.noreg.java8.product
new file mode 100644
index 000000000..698f101d0
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.rosgi.noreg.java8.product
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="MyCorp Remote TimeService R-OSGi No Extension Registry Java8" uid="com.mycorp.examples.timeservice.host.rosgi.noreg.java8.product" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-consoleLog -console
+ </programArgs>
+ <vmArgs>-Declipse.ignoreApp=true
+-Dosgi.noShutdown=true
+-DverboseRemoteServiceAdmin=true
+-Dservice.exported.configs=ecf.r_osgi.peer
+-Dch.ethz.iks.r_osgi.port=9285
+-Decf.exported.async.interfaces=*
+ </vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ <windows include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8</windows>
+ </vm>
+
+ <plugins>
+ <plugin id="ch.ethz.iks.r_osgi.remote"/>
+ <plugin id="com.mycorp.examples.timeservice.async"/>
+ <plugin id="com.mycorp.examples.timeservice.host"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.console"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.r_osgi"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" version="2.0.0.v20140410-1838"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.event"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.objectweb.asm"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="ch.ethz.iks.r_osgi.remote" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.async" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.host" autoStart="true" startLevel="6" />
+ <plugin id="org.apache.felix.gogo.command" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.shell" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.jobs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.identity" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="5" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="5" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.jmdns" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.r_osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.concurrent" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.objectweb.asm" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.rosgi.noreg.product b/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.rosgi.noreg.product
new file mode 100644
index 000000000..b271aed15
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.rosgi.noreg.product
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="MyCorp Remote TimeService ROSGI No Extension Registry" uid="com.mycorp.examples.timeservice.host.rosgi.noreg.product" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-consoleLog -console
+ </programArgs>
+ <vmArgs>-Declipse.ignoreApp=true
+-Dosgi.noShutdown=true
+-DverboseRemoteServiceAdmin=true
+-Dservice.exported.configs=ecf.r_osgi.peer
+ </vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="ch.ethz.iks.r_osgi.remote"/>
+ <plugin id="com.mycorp.examples.timeservice"/>
+ <plugin id="com.mycorp.examples.timeservice.host"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.console"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.r_osgi"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.event"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.objectweb.asm" version="3.3.1"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="ch.ethz.iks.r_osgi.remote" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.host" autoStart="true" startLevel="6" />
+ <plugin id="org.apache.felix.gogo.command" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.shell" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.jobs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.identity" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="5" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="5" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="5" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.jmdns" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.r_osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.concurrent" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.objectweb.asm" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.rosgi.product b/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.rosgi.product
new file mode 100644
index 000000000..ec16afcc0
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceHost.rosgi.product
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="MyCorp Remote TimeService ROSGI" uid="com.mycorp.examples.timeservice.host.rosgi.product" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-consoleLog -console
+ </programArgs>
+ <vmArgs>-Declipse.ignoreApp=true
+-Dosgi.noShutdown=true
+-DverboseRemoteServiceAdmin=true
+-Dservice.exported.configs=ecf.r_osgi.peer
+ </vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
+ </launcherArgs>
+
+ <windowImages/>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="ch.ethz.iks.r_osgi.remote"/>
+ <plugin id="com.mycorp.examples.timeservice"/>
+ <plugin id="com.mycorp.examples.timeservice.host"/>
+ <plugin id="javax.xml"/>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.console"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.r_osgi"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.event"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.objectweb.asm" version="3.3.1"/>
+ </plugins>
+
+ <configurations>
+ <plugin id="ch.ethz.iks.r_osgi.remote" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice" autoStart="true" startLevel="0" />
+ <plugin id="com.mycorp.examples.timeservice.host" autoStart="true" startLevel="6" />
+ <plugin id="javax.xml" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.command" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.shell" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.contenttype" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.jobs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.identity" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="5" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="5" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="5" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.jmdns" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.r_osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.concurrent" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.preferences" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.registry" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.objectweb.asm" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceROSGiHost.launch b/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceROSGiHost.launch
deleted file mode 100644
index dd0f7493e..000000000
--- a/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceROSGiHost.launch
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/TimeServiceROSGiHost"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="default_auto_start" value="true"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true &#13;&#10;-Dosgi.noShutdown=true &#13;&#10;-DverboseRemoteServiceAdmin=true&#10;-Dservice.exported.configs=ecf.r_osgi.peer"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="ch.ethz.iks.r_osgi.remote@default:default,javax.xml@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.ecf.discovery@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.osgi.services.distribution@default:default,org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy@default:default,org.eclipse.ecf.osgi.services.remoteserviceadmin@default:default,org.eclipse.ecf.provider.r_osgi@default:default,org.eclipse.ecf.provider.remoteservice@default:default,org.eclipse.ecf.provider@default:default,org.eclipse.ecf.remoteservice@default:default,org.eclipse.ecf.sharedobject@default:default,org.eclipse.ecf@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent*1.0.300.v20120912-130548@default:default,org.eclipse.equinox.concurrent*1.1.0.v20130225-1702@default:default,org.eclipse.equinox.console@default:default,org.eclipse.equinox.event@2:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.servletbridge.extensionbundle@default:false,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.osgi.services.remoteserviceadmin@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.objectweb.asm@default:default"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<stringAttribute key="workspace_bundles" value="com.mycorp.examples.timeservice.host@default:default,com.mycorp.examples.timeservice@default:default"/>
-</launchConfiguration>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceRestHost.launch b/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceRestHost.launch
deleted file mode 100644
index bcb1fc8fb..000000000
--- a/examples/bundles/com.mycorp.examples.timeservice.host/launch/TimeServiceRestHost.launch
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
-<booleanAttribute key="append.args" value="true"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/TimeServiceRestHost"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="default_auto_start" value="true"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="false"/>
-<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true &#13;&#10;-Dosgi.noShutdown=true &#13;&#10;-DverboseRemoteServiceAdmin=true&#13;&#10;-Dorg.eclipse.equinox.http.jetty.http.port=8181&#13;&#10;-Dservice.exported.configs=com.mycorp.examples.timeservice.rest.host"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="target_bundles" value="javax.servlet@default:default,javax.xml@default:default,org.apache.commons.codec@default:default,org.apache.commons.logging@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.ecf.discovery@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.osgi.services.distribution@default:default,org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy@default:default,org.eclipse.ecf.osgi.services.remoteserviceadmin@default:default,org.eclipse.ecf.provider.remoteservice@default:default,org.eclipse.ecf.provider@default:default,org.eclipse.ecf.remoteservice@default:default,org.eclipse.ecf.sharedobject@default:default,org.eclipse.ecf@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@2:default,org.eclipse.equinox.http.jetty@3:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.util@default:default,org.eclipse.jetty.continuation@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.osgi.services.remoteserviceadmin@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true"/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<stringAttribute key="workspace_bundles" value="com.mycorp.examples.timeservice.host@default:default,com.mycorp.examples.timeservice.provider.rest.common@default:default,com.mycorp.examples.timeservice.provider.rest.host@default:default,com.mycorp.examples.timeservice@default:default,org.apache.commons.codec@default:default,org.apache.commons.logging@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.eclipse.ecf.remoteservice.rest@default:default,org.eclipse.ecf.remoteservice.servlet@default:default,org.eclipse.ecf.remoteservice@default:default,org.eclipse.ecf.sharedobject@default:default,org.eclipse.ecf.ssl@default:false,org.json@default:default"/>
-</launchConfiguration>
diff --git a/examples/bundles/com.mycorp.examples.timeservice.host/src/com/mycorp/examples/timeservice/host/Activator.java b/examples/bundles/com.mycorp.examples.timeservice.host/src/com/mycorp/examples/timeservice/host/Activator.java
index d2e91848a..f18a9fd88 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.host/src/com/mycorp/examples/timeservice/host/Activator.java
+++ b/examples/bundles/com.mycorp.examples.timeservice.host/src/com/mycorp/examples/timeservice/host/Activator.java
@@ -10,6 +10,7 @@ package com.mycorp.examples.timeservice.host;
import java.util.Dictionary;
import java.util.Hashtable;
+import java.util.Properties;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
@@ -21,36 +22,20 @@ import com.mycorp.examples.timeservice.ITimeService;
public class Activator implements BundleActivator {
- private static final String GENERIC_SERVER_CONFIG = "ecf.generic.server";
- private static final String GENERIC_SERVER_PORTPROP_NAME = GENERIC_SERVER_CONFIG+ ".port";
- private static final String GENERIC_SERVER_PORTPROP_VALUE = "3288";
- private static final String GENERIC_SERVER_HOSTPROP_NAME = GENERIC_SERVER_CONFIG+ ".hostname";
- private static final String GENERIC_SERVER_HOSTPROP_VALUE = "localhost";
-
- private static final String R_OSGI_SERVER_CONFIG = "ecf.r_osgi.peer";
-
- private static final String REST_SERVER_CONFIG = "com.mycorp.examples.timeservice.rest.host";
- private static final String REST_SERVER_IDPROP_NAME = REST_SERVER_CONFIG + ".id";
- private static final String REST_SERVER_IDPROP_VALUE = "http://localhost:8181";
-
public void start(BundleContext context) throws Exception {
// If the verboseRemoteServiceAdmin system property is set
// then register debug listener
if (Boolean.getBoolean("verboseRemoteServiceAdmin"))
registerDebugListener(context);
- // Create remote service properties...see createRemoteServiceProperties above
+ // Create remote service properties...see createRemoteServiceProperties()
Dictionary<String, Object> props = createRemoteServiceProperties();
- // Create MyTimeService impl and register as a remote service
- // register the remote service with the service registry. If ECF remote
- // services/RSA impl is installed and started, it will export this
- // service via the default distribution provider, which is
- // 'ecf.generic.server'
- // To change which provider is used (e.g.) r-OSGi:
- // props.put("service.exported.configs","ecf.r_osgi.peer");
+
+ // Create MyTimeService impl and register/export as a remote service
ServiceRegistration<ITimeService> timeServiceRegistration = context
.registerService(ITimeService.class, new TimeServiceImpl(),
props);
+
// Print out that ITimeService remote service registration
System.out.println("MyTimeService host registered with registration="
+ timeServiceRegistration);
@@ -61,31 +46,23 @@ public class Activator implements BundleActivator {
}
private Dictionary<String,Object> createRemoteServiceProperties() {
- Dictionary<String, Object> props = new Hashtable<String, Object>();
// This is the only required service property to trigger remote services
- props.put("service.exported.interfaces", "*");
- // set service.exported.configs
- String serviceExportedConfig = System.getProperty("service.exported.configs",GENERIC_SERVER_CONFIG);
- props.put("service.exported.configs",serviceExportedConfig);
- String propName = null;
- String propValue = null;
- if (GENERIC_SERVER_CONFIG.equals(serviceExportedConfig)) {
- propName = GENERIC_SERVER_PORTPROP_NAME;
- propValue = GENERIC_SERVER_PORTPROP_VALUE;
- props.put(GENERIC_SERVER_HOSTPROP_NAME, GENERIC_SERVER_HOSTPROP_VALUE);
- } else if (REST_SERVER_CONFIG.equals(serviceExportedConfig)) {
- propName = REST_SERVER_IDPROP_NAME;
- propValue = REST_SERVER_IDPROP_VALUE;
- } else if (R_OSGI_SERVER_CONFIG.equals(serviceExportedConfig)) {
- // r-osgi does not require the server to define its endpoint
- return props;
- } else throw new NullPointerException("Unsuppored value for service.exported.config="+serviceExportedConfig);
-
- // Set the propName and idPropValue
- props.put(propName,propValue);
- return props;
+ Dictionary<String,Object> result = new Hashtable<String,Object>();
+ result.put("service.exported.interfaces", "*");
+ Properties props = System.getProperties();
+ String config = props.getProperty("service.exported.configs");
+ if (config != null) {
+ result.put("service.exported.configs", config);
+ String configProps = config + ".";
+ for(Object k: props.keySet()) {
+ if (k instanceof String) {
+ String key = (String) k;
+ if (key.startsWith(configProps) || key.equals("ecf.exported.async.interfaces")) result.put(key, props.getProperty(key));
+ }
+ }
+ }
+ return result;
}
-
// Register a RemoteServiceAdminListener so we can report to sdtout
// when a remote service has actually been successfully exported by
@@ -104,7 +81,7 @@ public class Activator implements BundleActivator {
}
};
- // Register as service, and RemoteServiceAdmin will callback
+ // Register our listener as service via whiteboard pattern, and RemoteServiceAdmin will callback
context.registerService(RemoteServiceAdminListener.class.getName(),
rsaListener, null);
}
diff --git a/examples/bundles/com.mycorp.examples.timeservice.provider.rest.common/META-INF/MANIFEST.MF b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.common/META-INF/MANIFEST.MF
index baf07f427..b7cdbbc2b 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.provider.rest.common/META-INF/MANIFEST.MF
+++ b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.common/META-INF/MANIFEST.MF
@@ -1,12 +1,15 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
-Bundle-Name: Timerservice Rest Provider Common
+Bundle-Name: ECF RS Example Timeservice REST Provider Common
Bundle-SymbolicName: com.mycorp.examples.timeservice.provider.rest.common;singleton:=true
Bundle-Version: 2.0.0.qualifier
-Bundle-Vendor: MyCorp, Inc.
+Bundle-Vendor: Eclipse.org - ECF
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Import-Package: org.eclipse.ecf.core.identity,
- org.eclipse.ecf.remoteservice.rest.identity;version="2.2.200"
+ org.eclipse.ecf.core.util;version="3.2.0",
+ org.eclipse.ecf.remoteservice.rest.identity,
+ org.osgi.framework
Require-Bundle: org.eclipse.equinox.common
Export-Package: com.mycorp.examples.timeservice.provider.rest.common
Bundle-ActivationPolicy: lazy
+Bundle-Activator: com.mycorp.examples.internal.timeservice.provider.rest.common.Activator
diff --git a/examples/bundles/com.mycorp.examples.timeservice.provider.rest.common/about.html b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.common/about.html
new file mode 100644
index 000000000..4c79781a5
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.common/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 25, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/examples/bundles/com.mycorp.examples.timeservice.provider.rest.common/build.properties b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.common/build.properties
index e9863e281..e5a949cc4 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.provider.rest.common/build.properties
+++ b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.common/build.properties
@@ -2,4 +2,6 @@ source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
- plugin.xml
+ plugin.xml,\
+ about.html
+src.includes = about.html
diff --git a/examples/bundles/com.mycorp.examples.timeservice.provider.rest.common/src/com/mycorp/examples/internal/timeservice/provider/rest/common/Activator.java b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.common/src/com/mycorp/examples/internal/timeservice/provider/rest/common/Activator.java
new file mode 100644
index 000000000..95e515031
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.common/src/com/mycorp/examples/internal/timeservice/provider/rest/common/Activator.java
@@ -0,0 +1,26 @@
+package com.mycorp.examples.internal.timeservice.provider.rest.common;
+
+import org.eclipse.core.runtime.SafeRunner;
+import org.eclipse.ecf.core.identity.Namespace;
+import org.eclipse.ecf.core.util.ExtensionRegistryRunnable;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+import com.mycorp.examples.timeservice.provider.rest.common.TimeServiceRestNamespace;
+
+public class Activator implements BundleActivator {
+
+ public void start(final BundleContext context) throws Exception {
+ SafeRunner.run(new ExtensionRegistryRunnable(context) {
+ @Override
+ protected void runWithoutRegistry() throws Exception {
+ context.registerService(Namespace.class, new TimeServiceRestNamespace(), null);
+ }
+ });
+ }
+
+ public void stop(BundleContext context) throws Exception {
+ // nothing
+ }
+
+}
diff --git a/examples/bundles/com.mycorp.examples.timeservice.provider.rest.common/src/com/mycorp/examples/timeservice/provider/rest/common/TimeServiceRestNamespace.java b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.common/src/com/mycorp/examples/timeservice/provider/rest/common/TimeServiceRestNamespace.java
index 74bb06f48..41fd04a74 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.provider.rest.common/src/com/mycorp/examples/timeservice/provider/rest/common/TimeServiceRestNamespace.java
+++ b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.common/src/com/mycorp/examples/timeservice/provider/rest/common/TimeServiceRestNamespace.java
@@ -23,6 +23,10 @@ public class TimeServiceRestNamespace extends RestNamespace {
private static final long serialVersionUID = -3632048418135041788L;
+ public TimeServiceRestNamespace() {
+ super(NAME,"Time Service REST Namespace");
+ }
+
@Override
public ID createInstance(Object[] parameters) throws IDCreateException {
return new TimeServiceRestID(this, URI.create((String) parameters[0]));
diff --git a/examples/bundles/com.mycorp.examples.timeservice.provider.rest.consumer/META-INF/MANIFEST.MF b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.consumer/META-INF/MANIFEST.MF
index fd2794e10..19fe3025b 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.provider.rest.consumer/META-INF/MANIFEST.MF
+++ b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.consumer/META-INF/MANIFEST.MF
@@ -1,9 +1,9 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
-Bundle-Name: Timeservice Provider Rest Consumer
+Bundle-Name: ECF RS Example Timeservice REST Provider Consumer
Bundle-SymbolicName: com.mycorp.examples.timeservice.provider.rest.consumer;singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: MyCorp
+Bundle-Version: 1.1.0.qualifier
+Bundle-Vendor: Eclipse.org - ECF
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ActivationPolicy: lazy
Import-Package: com.mycorp.examples.timeservice;version="1.0.0",
@@ -17,4 +17,5 @@ Import-Package: com.mycorp.examples.timeservice;version="1.0.0",
org.json,
org.osgi.framework
Require-Bundle: org.eclipse.ecf,
- org.eclipse.equinox.common;bundle-version="3.6.200"
+ org.eclipse.equinox.common
+Bundle-Activator: com.mycorp.examples.timeservice.internal.provider.rest.consumer.Activator
diff --git a/examples/bundles/com.mycorp.examples.timeservice.provider.rest.consumer/about.html b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.consumer/about.html
new file mode 100644
index 000000000..4c79781a5
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.consumer/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 25, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/examples/bundles/com.mycorp.examples.timeservice.provider.rest.consumer/build.properties b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.consumer/build.properties
index e9863e281..e5a949cc4 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.provider.rest.consumer/build.properties
+++ b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.consumer/build.properties
@@ -2,4 +2,6 @@ source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
- plugin.xml
+ plugin.xml,\
+ about.html
+src.includes = about.html
diff --git a/examples/bundles/com.mycorp.examples.timeservice.provider.rest.consumer/src/com/mycorp/examples/timeservice/internal/provider/rest/consumer/Activator.java b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.consumer/src/com/mycorp/examples/timeservice/internal/provider/rest/consumer/Activator.java
new file mode 100644
index 000000000..d160e01aa
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.consumer/src/com/mycorp/examples/timeservice/internal/provider/rest/consumer/Activator.java
@@ -0,0 +1,23 @@
+package com.mycorp.examples.timeservice.internal.provider.rest.consumer;
+
+import org.eclipse.core.runtime.SafeRunner;
+import org.eclipse.ecf.core.ContainerTypeDescription;
+import org.eclipse.ecf.core.util.ExtensionRegistryRunnable;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator implements BundleActivator {
+
+ public void start(final BundleContext context) throws Exception {
+ SafeRunner.run(new ExtensionRegistryRunnable(context) {
+ @Override
+ protected void runWithoutRegistry() throws Exception {
+ context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(TimeServiceRestClientContainer.TIMESERVICE_CONSUMER_CONFIG_NAME, new TimeServiceRestClientContainerInstantiator(), "TimeService REST Client", false ,false), null);
+ }
+ });
+ }
+
+ public void stop(BundleContext context) throws Exception {
+ }
+
+}
diff --git a/examples/bundles/com.mycorp.examples.timeservice.provider.rest.host/META-INF/MANIFEST.MF b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.host/META-INF/MANIFEST.MF
index d92c669da..d4b943375 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.provider.rest.host/META-INF/MANIFEST.MF
+++ b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.host/META-INF/MANIFEST.MF
@@ -1,9 +1,9 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
-Bundle-Name: ECF TimeService Rest Provider Host
+Bundle-Name: ECF RS Example TimeService REST Provider Host
Bundle-SymbolicName: com.mycorp.examples.timeservice.provider.rest.host;singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: MyCorp
+Bundle-Version: 1.1.0.qualifier
+Bundle-Vendor: Eclipse.org - ECF
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Require-Bundle: org.eclipse.equinox.common,
org.eclipse.ecf
@@ -21,3 +21,4 @@ Import-Package: com.mycorp.examples.timeservice;version="1.0.0",
org.osgi.service.http
Service-Component: OSGI-INF/httpservicecomponent.xml
Bundle-ActivationPolicy: lazy
+Bundle-Activator: com.mycorp.examples.timeservice.internal.provider.rest.host.Activator
diff --git a/examples/bundles/com.mycorp.examples.timeservice.provider.rest.host/about.html b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.host/about.html
new file mode 100644
index 000000000..4c79781a5
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.host/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 25, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/examples/bundles/com.mycorp.examples.timeservice.provider.rest.host/build.properties b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.host/build.properties
index dfc69c3d5..20ce1e84c 100644
--- a/examples/bundles/com.mycorp.examples.timeservice.provider.rest.host/build.properties
+++ b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.host/build.properties
@@ -3,5 +3,7 @@ bin.includes = META-INF/,\
.,\
OSGI-INF/httpservicecomponent.xml,\
OSGI-INF/,\
- plugin.xml
+ plugin.xml,\
+ about.html
source.. = src/
+src.includes = about.html
diff --git a/examples/bundles/com.mycorp.examples.timeservice.provider.rest.host/src/com/mycorp/examples/timeservice/internal/provider/rest/host/Activator.java b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.host/src/com/mycorp/examples/timeservice/internal/provider/rest/host/Activator.java
new file mode 100644
index 000000000..3be5e913b
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice.provider.rest.host/src/com/mycorp/examples/timeservice/internal/provider/rest/host/Activator.java
@@ -0,0 +1,23 @@
+package com.mycorp.examples.timeservice.internal.provider.rest.host;
+
+import org.eclipse.core.runtime.SafeRunner;
+import org.eclipse.ecf.core.ContainerTypeDescription;
+import org.eclipse.ecf.core.util.ExtensionRegistryRunnable;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator implements BundleActivator {
+
+ public void start(final BundleContext context) throws Exception {
+ SafeRunner.run(new ExtensionRegistryRunnable(context) {
+ @Override
+ protected void runWithoutRegistry() throws Exception {
+ context.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(TimeServiceServerContainer.TIMESERVICE_HOST_CONFIG_NAME, new TimeServiceServerContainerInstantiator(), "TimeService REST Server", true,false), null);
+ }
+ });
+ }
+
+ public void stop(BundleContext context) throws Exception {
+ }
+
+}
diff --git a/examples/bundles/com.mycorp.examples.timeservice/META-INF/MANIFEST.MF b/examples/bundles/com.mycorp.examples.timeservice/META-INF/MANIFEST.MF
index 54763bc07..404197a35 100644
--- a/examples/bundles/com.mycorp.examples.timeservice/META-INF/MANIFEST.MF
+++ b/examples/bundles/com.mycorp.examples.timeservice/META-INF/MANIFEST.MF
@@ -1,9 +1,9 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
-Bundle-Name: Timeservice
+Bundle-Name: ECF RS Example Timeservice API
Bundle-SymbolicName: com.mycorp.examples.timeservice
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: MyCorp, Inc.
+Bundle-Version: 1.1.0.qualifier
+Bundle-Vendor: Eclipse.org - ECF
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ActivationPolicy: lazy
Export-Package: com.mycorp.examples.timeservice;version="1.0.0"
diff --git a/examples/bundles/com.mycorp.examples.timeservice/about.html b/examples/bundles/com.mycorp.examples.timeservice/about.html
new file mode 100644
index 000000000..4c79781a5
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 25, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/examples/bundles/com.mycorp.examples.timeservice/build.properties b/examples/bundles/com.mycorp.examples.timeservice/build.properties
index 34d2e4d2d..9cbab3c13 100644
--- a/examples/bundles/com.mycorp.examples.timeservice/build.properties
+++ b/examples/bundles/com.mycorp.examples.timeservice/build.properties
@@ -1,4 +1,6 @@
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
- .
+ .,\
+ about.html
+src.includes = about.html
diff --git a/examples/bundles/com.mycorp.examples.timeservice/src/com/mycorp/examples/timeservice/ITimeServiceAsync.java b/examples/bundles/com.mycorp.examples.timeservice/src/com/mycorp/examples/timeservice/ITimeServiceAsync.java
new file mode 100644
index 000000000..79e9a7ac2
--- /dev/null
+++ b/examples/bundles/com.mycorp.examples.timeservice/src/com/mycorp/examples/timeservice/ITimeServiceAsync.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Composent, Inc. 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: Scott Lewis - initial API and implementation
+ ******************************************************************************/
+package com.mycorp.examples.timeservice;
+
+import java.util.concurrent.Future;
+
+/**
+ * @since 1.1
+ */
+public interface ITimeServiceAsync {
+
+ public Future<Long> getCurrentTimeAsync();
+}
diff --git a/examples/bundles/org.eclipse.ecf.example.clients/products/ChatRobot.product b/examples/bundles/org.eclipse.ecf.example.clients/products/ChatRobot.product
index 38fdda515..497b45842 100644
--- a/examples/bundles/org.eclipse.ecf.example.clients/products/ChatRobot.product
+++ b/examples/bundles/org.eclipse.ecf.example.clients/products/ChatRobot.product
@@ -45,7 +45,7 @@
<plugin id="org.eclipse.ecf.provider.datashare"/>
<plugin id="org.eclipse.ecf.provider.remoteservice"/>
<plugin id="org.eclipse.ecf.provider.xmpp"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.ecf.ssl" fragment="true"/>
<plugin id="org.eclipse.ecf.ui"/>
diff --git a/examples/bundles/org.eclipse.ecf.example.collab/launchconfigs/ECF Example Collab 1.launch b/examples/bundles/org.eclipse.ecf.example.collab/launchconfigs/ECF Example Collab 1.launch
deleted file mode 100644
index 3fe96ea7e..000000000
--- a/examples/bundles/org.eclipse.ecf.example.collab/launchconfigs/ECF Example Collab 1.launch
+++ /dev/null
@@ -1,381 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="false"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/ECF Example Collab 1"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="includeFragments" value="false"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="${workspace_loc}/../runtime-workspace-collab1"/>
-<stringAttribute key="location1" value="C:\eclipse3.1m4\eclipse\runtime-workspace"/>
-<stringAttribute key="location2" value="C:\eclipse3.1m4\eclipse\second-runtime-workspace"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<mapAttribute key="org.eclipse.debug.core.environmentVariables">
-<mapEntry key="smack.debugEnabled" value="true"/>
-</mapAttribute>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-console -consoleLog"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms512m -Xmx512m"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.platform.ide"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="templateConfig" value="C:\Documents and Settings\slewis\workspace.ecf\org.eclipse.ecf.example.collab\launchconfigs\config\config.ini"/>
-<booleanAttribute key="tracing" value="false"/>
-<mapAttribute key="tracingOptions">
-<mapEntry key="org.eclipse.core.contenttype/debug" value="false"/>
-<mapEntry key="org.eclipse.core.expressions/tracePropertyResolving" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/beginend" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/errorondeadlock" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/shutdown" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/timing" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/delta" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/failure" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/interrupt" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/>
-<mapEntry key="org.eclipse.core.resources/contenttype" value="false"/>
-<mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/>
-<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
-<mapEntry key="org.eclipse.core.resources/history" value="false"/>
-<mapEntry key="org.eclipse.core.resources/natures" value="false"/>
-<mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/>
-<mapEntry key="org.eclipse.core.resources/perf/listeners" value="500"/>
-<mapEntry key="org.eclipse.core.resources/perf/save.participants" value="500"/>
-<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/>
-<mapEntry key="org.eclipse.core.resources/preferences" value="false"/>
-<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/tree" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/markers" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/tree" value="false"/>
-<mapEntry key="org.eclipse.core.resources/strings" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/compatibility/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/debug/context" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/perf" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/preferences/plugin" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug" value="true"/>
-<mapEntry key="org.eclipse.debug.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/commands" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/contentProvider" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/deltas" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/model" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/updateSequence" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/viewer" value="false"/>
-<mapEntry key="org.eclipse.ecf.datashare/ConsistentMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/OrderedMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/SimpleMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/filetransfersharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/genericsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/progsharedobject" value="false"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/transactionsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/urlsharedobject" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.filetransfer/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.identity/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/exceptions/catching" value="true"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/exceptions/throwing" value="true"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/methods/entering" value="true"/>
-<mapEntry key="org.eclipse.ecf.identity/debug/methods/exiting" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.datashare/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/irccontainer" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/ircrootcontainer" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/container" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/jmdns" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.remoteservice/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.rss/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/XMPPClientSOContainer" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/smackconnection" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/smackdebug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/xmppgroupchatsharedobject" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/xmpppresencesharedobject" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.yahoo/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/basesharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/connection" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/container" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/containerfactory" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/catching" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/gmm" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectcontext" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectmanager" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectwrapper" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/transactioneventprocessor" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.sharedobject/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/exceptions/catching" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/exceptions/throwing" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/methods/entering" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/methods/exiting" value="true"/>
-<mapEntry key="org.eclipse.equinox.preferences/general" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/get" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/set" value="false"/>
-<mapEntry key="org.eclipse.equinox.registry/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.registry/debug/events" value="false"/>
-<mapEntry key="org.eclipse.help.base/debug" value="true"/>
-<mapEntry key="org.eclipse.help.base/debug/search" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser/inprocess" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
-<mapEntry key="org.eclipse.help.webapp/debug" value="true"/>
-<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
-<mapEntry key="org.eclipse.help/debug" value="true"/>
-<mapEntry key="org.eclipse.help/debug/context" value="false"/>
-<mapEntry key="org.eclipse.help/debug/protocols" value="false"/>
-<mapEntry key="org.eclipse.jdt.core.manipulation/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/builder" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/indexmanager" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta/verbose" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javamodel/cache" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/sourcemapper" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/formatter/enable_new" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
-<mapEntry key="org.eclipse.jdt.core/perf/containerinitializer" value="5000"/>
-<mapEntry key="org.eclipse.jdt.core/perf/javadeltalistener" value="500"/>
-<mapEntry key="org.eclipse.jdt.core/perf/reconcile" value="1000"/>
-<mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/>
-<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/>
-<mapEntry key="org.eclipse.jdt.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/ASTProvider" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/ResultCollector" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/content_assist/extensions" value="1000"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/content_assist_sorters/extensions" value=""/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/makeActions" value="1000"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/search/participants" value="300"/>
-<mapEntry key="org.eclipse.jface.text.source/debug/RevisionRulerColumn" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/AnnotationPainter" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/FastPartitioner/PositionCache" value="false"/>
-<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/checkConditions" value="300"/>
-<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/>
-<mapEntry key="org.eclipse.osgi/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/bundleTime" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/events" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/filter" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/loader" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/manifest" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/messageBundles" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/monitorbundles" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/security" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/services" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/buffersize" value="256"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/logfilename" value=""/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/logsynchronously" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/activation" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/benchmark" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/>
-<mapEntry key="org.eclipse.osgi/profile/startup" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/cycles" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/grouping" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/imports" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/classLoading" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/filename" value="runtime.traces"/>
-<mapEntry key="org.eclipse.osgi/trace/filters" value="trace.properties"/>
-<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
-<mapEntry key="org.eclipse.pde.core/cache" value="false"/>
-<mapEntry key="org.eclipse.pde.core/classpath" value="false"/>
-<mapEntry key="org.eclipse.pde.core/debug" value="true"/>
-<mapEntry key="org.eclipse.team.core/backgroundevents" value="false"/>
-<mapEntry key="org.eclipse.team.core/debug" value="false"/>
-<mapEntry key="org.eclipse.team.core/refreshjob" value="false"/>
-<mapEntry key="org.eclipse.team.core/streams" value="false"/>
-<mapEntry key="org.eclipse.team.core/threading" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
-<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.ssh/debug" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.ssh/ssh_protocol" value="false"/>
-<mapEntry key="org.eclipse.ui.browser/debug" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/gc" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/undomonitor" value="false"/>
-<mapEntry key="org.eclipse.ui.intro.universal/debug" value="true"/>
-<mapEntry key="org.eclipse.ui.intro.universal/trace/logInfo" value="true"/>
-<mapEntry key="org.eclipse.ui.intro.universal/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/debug" value="true"/>
-<mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/>
-<mapEntry key="org.eclipse.ui.intro/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/trace/printHTML" value="false"/>
-<mapEntry key="org.eclipse.ui.workbench/debug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/contributions" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/declaredImages" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/job.stale" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/showAllJobs" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/swtdebug" value="false"/>
-<mapEntry key="org.eclipse.ui/experimental/menus" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener2" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPartReference" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/contentTypes" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.activate" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.control" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.init" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.input" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
-<mapEntry key="org.eclipse.ui/perf/uijob" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/>
-<mapEntry key="org.eclipse.ui/perf/workbench.start" value="45000"/>
-<mapEntry key="org.eclipse.ui/trace/commands" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts.performance" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/graphics" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.performance" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/operations" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/sources" value="false"/>
-<mapEntry key="org.eclipse.update.configurator/debug" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug" value="true"/>
-<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/install" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/warning" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
-</mapAttribute>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<booleanAttribute key="useNamedJRE" value="true"/>
-<booleanAttribute key="useProduct" value="true"/>
-<booleanAttribute key="usefeatures" value="false"/>
-</launchConfiguration>
diff --git a/examples/bundles/org.eclipse.ecf.example.collab/launchconfigs/ECF Example Collab 2.launch b/examples/bundles/org.eclipse.ecf.example.collab/launchconfigs/ECF Example Collab 2.launch
deleted file mode 100644
index 440ca6b4b..000000000
--- a/examples/bundles/org.eclipse.ecf.example.collab/launchconfigs/ECF Example Collab 2.launch
+++ /dev/null
@@ -1,340 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
-<booleanAttribute key="askclear" value="true"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="org.eclipse.ecf.provider"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="false"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/ECF Example Collab 2"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="includeFragments" value="false"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="${workspace_loc}/../runtime-workspace-collab2"/>
-<stringAttribute key="location1" value="C:\eclipse3.1m4\eclipse\second-runtime-workspace"/>
-<stringAttribute key="location2" value="C:\eclipse3.1m4\eclipse\runtime-workspace"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-console"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dch.ethz.iks.slp.debug=true&#13;&#10;-Dnet.slp.traceMsg=true&#13;&#10;-Dnet.slp.traceReg=true"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.platform.ide"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="templateConfig" value=""/>
-<booleanAttribute key="tracing" value="false"/>
-<mapAttribute key="tracingOptions">
-<mapEntry key="org.eclipse.core.runtime/debug/context" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/basesharedobject" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/beginend" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ui/trace/sources" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/indexmanager" value="false"/>
-<mapEntry key="org.eclipse.team.ftp/requests" value="true"/>
-<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/checkConditions" value="300"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/filetransfersharedobject" value="true"/>
-<mapEntry key="org.eclipse.jface.text.source/debug/RevisionRulerColumn" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/filename" value="runtime.traces"/>
-<mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/trace/printHTML" value="false"/>
-<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/>
-<mapEntry key="org.eclipse.team.core/refreshjob" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
-<mapEntry key="org.eclipse.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
-<mapEntry key="org.eclipse.pde.core/classpath" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/gmm" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug" value="true"/>
-<mapEntry key="org.eclipse.equinox.preferences/general" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.performance" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/>
-<mapEntry key="org.eclipse.team.core/threading" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/>
-<mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/progsharedobject" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewer_cache_debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/textchatcomposite" value="true"/>
-<mapEntry key="org.eclipse.ui/trace/graphics" value="false"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/logsynchronously" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/xmpppresencesharedobject" value="true"/>
-<mapEntry key="org.eclipse.osgi/monitor/activation" value="false"/>
-<mapEntry key="org.eclipse.ecf.sdo/debug" value="true"/>
-<mapEntry key="org.eclipse.debug.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/sharedobjectcontainerfactory" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/>
-<mapEntry key="org.eclipse.help.base/debug/search" value="false"/>
-<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/search/participants" value="300"/>
-<mapEntry key="org.eclipse.osgi/debug/packages" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/>
-<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
-<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/perf/containerinitializer" value="5000"/>
-<mapEntry key="org.eclipse.osgi/profile/benchmark" value="false"/>
-<mapEntry key="org.eclipse.ecf.datashare/debug" value="true"/>
-<mapEntry key="org.eclipse.help.webapp/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/container" value="true"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/ASTProvider" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/showSystemJobs" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts.performance" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
-<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/startup" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/connectionfactory" value="true"/>
-<mapEntry key="org.eclipse.core.resources/perf/save.participants" value="500"/>
-<mapEntry key="org.eclipse.help.base/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/genericsharedobject" value="true"/>
-<mapEntry key="org.eclipse.team.ftp/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectwrapper" value="true"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/timing" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/formatter/enable_new" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/perf/reconcile" value="1000"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener" value="false"/>
-<mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug" value="true"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/debug" value="false"/>
-<mapEntry key="org.eclipse.pde.core/debug" value="true"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPartReference" value="false"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ui/debug/job.stale" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
-<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/>
-<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.core.resources/strings" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/sourcemapper" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.expressions/tracePropertyResolving" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
-<mapEntry key="org.eclipse.core.resources/preferences" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/content_assist_sorters/extensions" value=""/>
-<mapEntry key="org.eclipse.ecf/debug/factoryinit" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javamodel/cache" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf/debug/abstractsharedobject" value="true"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/logfilename" value=""/>
-<mapEntry key="org.eclipse.team.core/backgroundevents" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/part.activate" value="200"/>
-<mapEntry key="org.eclipse.update.core/debug" value="true"/>
-<mapEntry key="org.eclipse.osgi/debug/security" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/>
-<mapEntry key="org.eclipse.core.resources/history" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug" value="true"/>
-<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/brokercontainer" value="true"/>
-<mapEntry key="org.eclipse.jface.text/debug/AnnotationPainter" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/containerfactory" value="true"/>
-<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/set" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/>
-<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/bundleTime" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/workbench.start" value="45000"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/>
-<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/transactioneventprocessor" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/>
-<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/>
-<mapEntry key="org.eclipse.ui.intro/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/container" value="true"/>
-<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/loader" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/grouping" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/makeActions" value="1000"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/smackconnection" value="true"/>
-<mapEntry key="org.eclipse.core.resources/save/markers" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener2" value="false"/>
-<mapEntry key="org.eclipse.ecf.sdo/SharedDataGraph" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/OrderedMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ui/trace/operations" value="false"/>
-<mapEntry key="org.eclipse.ecf.sdo/DataGraphSharingFactory" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/containerfactory" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/install" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/packageadmin/timing" value="false"/>
-<mapEntry key="org.eclipse.equinox.registry/debug/events" value="false"/>
-<mapEntry key="org.eclipse.ecf.datashare/ConsistentMulticaster" value="true"/>
-<mapEntry key="org.eclipse.help/debug/protocols" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/contentTypes" value="200"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser/inprocess" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/perf/javadeltalistener" value="500"/>
-<mapEntry key="org.eclipse.core.resources/perf/listeners" value="500"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ui/perf/part.init" value="800"/>
-<mapEntry key="org.eclipse.core.contenttype/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/imports" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/tree" value="false"/>
-<mapEntry key="org.eclipse.ui.intro.universal/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.help/debug/context" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.osgi/debug/manifest" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/jmdns" value="true"/>
-<mapEntry key="org.eclipse.ui/debug/swtdebug" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.yahoo/debug" value="true"/>
-<mapEntry key="org.eclipse.team.cvs.ssh/debug" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/failure" value="false"/>
-<mapEntry key="org.eclipse.team.core/debug" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/builder" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/channel" value="true"/>
-<mapEntry key="org.eclipse.osgi/trace/classLoading" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/errorondeadlock" value="false"/>
-<mapEntry key="org.eclipse.core.resources/contenttype" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/FastPartitioner/PositionCache" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/events" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/commands" value="false"/>
-<mapEntry key="org.eclipse.equinox.preferences/get" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/monitorbundles" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/ResultCollector" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/twophasecommiteventprocessor" value="true"/>
-<mapEntry key="org.eclipse.equinox.registry/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf/debug/idfactory" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ui.intro/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/XMPPClientSOContainer" value="true"/>
-<mapEntry key="org.eclipse.pde.core/cache" value="false"/>
-<mapEntry key="org.eclipse.team.ftp/responses" value="true"/>
-<mapEntry key="org.eclipse.jdt.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/part.input" value="200"/>
-<mapEntry key="org.eclipse.ui.intro.universal/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/transactionsharedobject" value="true"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/messageBundles" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta/verbose" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/tree" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/contributions" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/warning" value="false"/>
-<mapEntry key="org.eclipse.core.resources/natures" value="false"/>
-<mapEntry key="org.eclipse.jdt.core.manipulation/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/urlsharedobject" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.ssh/ssh_protocol" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
-<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectcontext" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/>
-<mapEntry key="org.eclipse.team.core/streams" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/xmppgroupchatsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug/irccontainer" value="true"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/>
-<mapEntry key="org.eclipse.ui/experimental/menus" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/shutdown" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/compatibility/debug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/declaredImages" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/gc" value="false"/>
-<mapEntry key="org.eclipse.ecf.sdo/EMFUpdateManager" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/clientcontainer" value="true"/>
-<mapEntry key="org.eclipse.osgi/debug/services" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectmanager" value="true"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/content_assist/extensions" value="1000"/>
-<mapEntry key="org.eclipse.osgi/debug/filter" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug" value="true"/>
-<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/smackdebug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/connection" value="true"/>
-<mapEntry key="org.eclipse.ui.browser/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/>
-<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/>
-<mapEntry key="org.eclipse.help/debug" value="true"/>
-<mapEntry key="org.eclipse.core.runtime/perf" value="false"/>
-<mapEntry key="org.eclipse.team.ftp/list" value="true"/>
-<mapEntry key="org.eclipse.osgi/trace/filters" value="trace.properties"/>
-<mapEntry key="org.eclipse.ui/perf/part.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug" value="true"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/buffersize" value="256"/>
-<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug" value="true"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/part.control" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/uijob" value="200"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/servercontainer" value="true"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/delta" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.core.resources/build/interrupt" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/preferences/plugin" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/cycles" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.ecf.datashare/SimpleMulticaster" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/>
-<mapEntry key="org.eclipse.update.configurator/debug" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/>
-<mapEntry key="org.eclipse.ui.intro.universal/trace/logInfo" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.irc/debug" value="true"/>
-</mapAttribute>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<booleanAttribute key="useNamedJRE" value="true"/>
-<booleanAttribute key="useProduct" value="false"/>
-<booleanAttribute key="usefeatures" value="false"/>
-</launchConfiguration>
diff --git a/examples/bundles/org.eclipse.ecf.example.collab/launchconfigs/ECF Example Collab 3.launch b/examples/bundles/org.eclipse.ecf.example.collab/launchconfigs/ECF Example Collab 3.launch
deleted file mode 100644
index 11c348f3c..000000000
--- a/examples/bundles/org.eclipse.ecf.example.collab/launchconfigs/ECF Example Collab 3.launch
+++ /dev/null
@@ -1,336 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
-<booleanAttribute key="askclear" value="true"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="org.eclipse.ecf,org.eclipse.ecf.example.collab,org.eclipse.ecf.provider,org.eclipse.ecf.provider.jms"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="false"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/ECF Example Collab 3"/>
-<booleanAttribute key="default" value="false"/>
-<booleanAttribute key="includeFragments" value="false"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="${workspace_loc}/../runtime-workspace-collab3"/>
-<stringAttribute key="location1" value="C:\eclipse3.1m4\eclipse\third-runtime-workspace"/>
-<stringAttribute key="location2" value="C:\eclipse3.1m4\eclipse\second-runtime-workspace"/>
-<stringAttribute key="location3" value="C:\eclipse3.1m4\eclipse\runtime-workspace"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.platform.ide"/>
-<stringAttribute key="selectedPlugin" value="org.eclipse.ecf.provider"/>
-<stringAttribute key="selected_target_plugins" value="org.eclipse.ui.views@default:default,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.core.expressions@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.search@default:default,org.eclipse.help@default:default,org.eclipse.ui@default:default,org.eclipse.ui.forms@default:default,org.eclipse.jface.text@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.ant.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.jface@default:default,org.junit*4.8.1.v4_8_1_v20100114-1600@default:default,org.eclipse.equinox.app@default:default,org.eclipse.jdt.core@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.ui.win32@default:false,org.eclipse.text@default:default,org.eclipse.ui.console@default:default,org.eclipse.ui.navigator@default:default,org.junit*3.8.2.v20090203-1005@default:default,org.eclipse.team.ui@default:default,org.eclipse.core.resources@default:default,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.team.core@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.help.base@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.equinox.common@2:true,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.update.core@default:default,org.eclipse.help.appserver@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.debug.core@default:default,org.eclipse.update.configurator@3:true,org.eclipse.swt@default:default,org.eclipse.update.ui@default:default,org.eclipse.update.core.win32@default:false,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.core.runtime@default:true,org.apache.lucene@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.core.variables@default:default,org.eclipse.ui.ide@default:default,org.eclipse.osgi@-1:true,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.equinox.preferences@default:default,org.eclipse.compare@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ltk.core.refactoring@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.ecf.provider.twitter.ui.hub@default:default,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.ecf.services.quotes.oldskool@default:default,osgi.cloud.node@default:default,org.eclipse.ecf.client.jgroups@default:default,eclipse.p2@default:default,org.eclipse.ecf.server@default:default,org.jivesoftware.smack@default:default,org.eclipse.ecf.tests.osgi.services.discovery.local.poststarted2@default:default,ch.ethz.iks.r_osgi.remote@default:default,org.eclipse.ecf.provider.jms.qpid@default:default,org.eclipse.ecf.mgmt.framework@default:default,org.eclipse.ecf.tests.provider.filetransfer.scp@default:default,org.eclipse.ecf.presence.bot@default:default,org.eclipse.ecf.tests.osgi.services.distribution.localdiscovery@default:default,org.eclipse.ecf.examples.loadbalancing.consumer@default:default,org.eclipse.ecf.console@default:default,org.eclipse.ecf.tests.mgmt.ds@default:default,org.eclipse.ecf.examples.remoteservices.dictionary.common@default:default,org.eclipse.ecf.server.generic@default:default,org.eclipse.ecf.tests.sharedobject@default:default,org.eclipse.ecf.provider.r_osgi@default:default,org.eclipse.ecf.tests.mgmt.app@default:default,org.eclipse.ecf.tests.presence@default:default,org.eclipse.ecf.tests.provider.jms.weblogic@default:default,org.eclipse.ecf.tests.filetransfer.httpserver@default:default,org.eclipse.ecf.telephony.call@default:default,org.eclipse.ecf.provider.xmpp@default:default,org.eclipse.ecf.provider.nntp.ui@default:false,org.eclipse.ecf.mgmt.app@default:default,org.eclipse.ecf.tests.provider.datashare.nio@default:false,org.eclipse.ecf.tests.discovery@default:default,org.eclipse.ecf.provider.jms@default:default,org.eclipse.ecf.provider.twitter.ui@default:default,org.eclipse.team.ecf.core@default:default,org.eclipse.ecf.examples.remoteservices.hello.dm.host@default:default,org.eclipse.ecf.examples.remoteservices.hello2@default:default,org.eclipse.ecf.provider.localdiscovery@default:default,org.eclipse.ecf.remoteservice.soap.host@default:default,org.eclipse.ecf.examples.datashare.app@default:default,org.eclipse.ecf.examples.loadbalancing@default:default,org.eclipse.ecf.tests.osgi.services.discovery.local@default:default,org.json@default:default,org.eclipse.ecf.provider.twitter.ui.hub.product@default:default,org.eclipse.ecf.osgi.services.distribution@default:default,org.eclipse.ecf.ui.capabilities@default:default,org.eclipse.ecf.services.quotes.eclipsetwitter@default:default,org.eclipse.ecf.tests.mgmt.p2@default:default,org.eclipse.ecf.examples.loadbalancing.servicehost@default:default,org.eclipse.ecf.protocol.bittorrent@default:default,org.eclipse.ecf.protocol.nntp.store.filesystem@default:default,org.eclipse.ecf.provider.yahoo@default:default,org.eclipse.ecf.examples.remoteservices.hello.dm.config.log4j@default:false,org.eclipse.emf.edit.ui@default:default,org.eclipse.ecf.mgmt.p2.install.host@default:default,org.eclipse.ecf.provider.nntp.security@default:default,org.eclipse.ecf.provider.skype@default:default,org.eclipse.ecf.mgmt.ds.host@default:default,org.eclipse.ecf.tests.provider.filetransfer.xmpp@default:default,org.eclipse.ecf.remoteservice.soap@default:default,org.eclipse.ecf.tests.provider.discovery@default:default,org.eclipse.ecf.remoteservice.eventadmin@default:default,org.eclipse.ecf.tests.provider.jms.activemq@default:default,org.eclipse.emf@default:default,org.eclipse.ecf.provider.remoteservice@default:default,org.eclipse.ecf.provider.xmpp.ui@default:default,org.eclipse.ecf.examples.updatesite.server@default:default,org.eclipse.ecf.provider.msn.ui@default:default,org.eclipse.ecf.provider.bittorrent@default:default,org.eclipse.ecf.examples.remoteservices.common@default:default,org.eclipse.ecf.provider.zookeeper@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.ecf.examples.tests.remoteservice.soap.host.hello@default:default,org.apache.httpcomponents.httpcore@default:default,ch.ethz.iks.slp@default:default,org.eclipse.ecf.mgmt.app.host@default:default,org.eclipse.ecf.provider.irc@default:default,org.eclipse.ecf.examples.remoteservices.hello.ds.consumer@default:default,org.eclipse.ecf.example.clients@default:default,org.eclipse.ecf.protocol.nntp.model.test@default:false,org.eclipse.ecf.provider.jms.activemq@default:default,org.eclipse.ecf.tests.provider.jslp@default:default,org.eclipse.ecf.provider.filetransfer.scp@default:default,org.eclipse.ecf.protocol.msn@default:default,org.eclipse.emf.common@default:default,org.eclipse.ecf.provider.jms.weblogic.ui@default:default,org.eclipse.ecf.examples.eventadmin.app@default:default,org.eclipse.team.ecf.ui@default:default,org.eclipse.ecf.discovery.ui.properties@default:false,org.eclipse.ecf.tests.protocol.msn@default:false,org.eclipse.ecf.examples.provider.dictionary.soap.client@default:default,org.eclipse.ecf.provider.msn@default:default,eclipse.p2.host@default:default,org.eclipse.ecf.doc@default:default,org.eclipse.ecf.tests.provider.twitter@default:default,org.eclipse.ecf.tests.datashare@default:default,org.eclipse.ecf.tests.remoteservice@default:default,org.eclipse.ecf.services.quotes.starwars@default:default,org.eclipse.ecf.tests.osgi.services.discovery@default:default,org.eclipse.ecf.provider.datashare@default:default,org.example.processor.assignment2@default:default,org.eclipse.ecf.examples.provider.trivial@default:default,org.eclipse.ecf.presence.ui@default:default,org.eclipse.ecf.provider.bittorrent.ui@default:default,org.eclipse.ecf.discovery.ui.browser@default:default,org.eclipse.ecf.provider.jms.activemq.ui@default:default,org.eclipse.ecf.sharedobject@default:default,org.eclipse.helios.tools@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.ecf.tests.sync@default:default,org.eclipse.ecf.provider.rss@default:default,org.eclipse.ecf.example.collab@default:default,com.skype@default:default,org.eclipse.ecf.examples.updatesite.client@default:default,org.eclipse.ecf.remoteservice.apt.java6@default:default,org.eclipse.ecf.tests.provider.xmpp@default:default,org.eclipse.ecf.provider.nntp@default:default,org.eclipse.ecf.remoteservice.rest@default:default,org.eclipse.ecf.provider.filetransfer.sharedobject@default:default,org.eclipse.ecf.tests.protocol.nntp.store.derby.tests@default:false,org.eclipse.ecf.discovery.ui@default:default,org.eclipse.ecf.provider.riena@default:default,org.eclipse.ecf.provider.ui@default:default,org.example.processor.solution@default:default,org.eclipse.ecf.springframework@default:default,org.eclipse.ecf.provider.jms.weblogic@default:default,org.eclipse.ecf.protocol.nntp.store.derby@default:default,org.eclipse.ecf.examples.remoteservice.discovery.local@default:default,org.eclipse.ecf.tests.remoteservice.rest@default:default,org.eclipse.ecf.protocol.nntp.core@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.remoteservice.ui.dosgi@default:false,org.eclipse.ecf.provider.twitter@default:default,org.eclipse.ecf.provider.yahoo.ui@default:default,org.example.processor.assignment3@default:default,osgi.cloud.node.client@default:default,org.eclipse.ecf.ui@default:default,org.apache.zookeeper@default:default,org.eclipse.ecf.examples.loadbalancing.ds.consumer@default:default,org.eclipse.ecf.salvo.application@default:default,org.eclipse.ecf.tests.server.generic@default:default,org.eclipse.ecf.tests.storage@default:default,org.eclipse.ecf.tests.osgi.services.distribution@default:default,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.tests.filetransfer.jreprovider@default:default,org.eclipse.ecf.mgmt.p2.profile.host@default:default,org.eclipse.ecf.examples.remoteservices.hello@default:default,org.eclipse.ecf.examples.remoteservices.hello.host@default:default,org.eclipse.ecf.tests.provider.jmdns@default:default,org.eclipse.ecf.provider.irc.bot@default:default,org.eclipse.ecf.provider.discovery@default:default,org.eclipse.ecf.presence.collab.ui@default:default,org.eclipse.ecf.tests.provider.filetransfer.efs@default:default,org.eclipse.ecf.examples.loadbalancing.server@default:default,org.eclipse.ecf.tests.filetransfer@default:default,org.eclipse.ecf.osgi.services.discovery@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.telephony.call.ui@default:default,org.eclipse.ecf.server.jgroups@default:default,org.eclipse.ecf.salvo.ui@default:default,org.eclipse.ecf.osgi.services.discovery.local@default:default,org.eclipse.ecf.examples.tests.remoteservices.dictionary.soap.client@default:default,org.eclipse.ecf.services.quotes@default:default,org.eclipse.ecf.storage@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf.protocol.nntp.model@default:default,org.eclipse.ecf.provider.datashare.nio@default:default,org.apache.mime4j@default:default,org.eclipse.ecf.tests.provider.jms@default:default,org.eclipse.ecf.examples.remoteservice.rest.twitter@default:default,org.eclipse.ecf.sync@default:default,org.eclipse.ecf.discovery.ui.edit@default:default,org.eclipse.ecf.tests.provider.discovery.local@default:default,org.eclipse.ecf.provider.jslp@default:default,org.eclipse.ecf.mgmt.p2@default:default,org.eclipse.ecf.tests.provider.jgroups@default:default,org.eclipse.ecf.examples.remoteservices.client@default:false,org.apache.log4j@default:default,org.eclipse.ecf.docshare@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.ecf.examples.remoteservices.hello.consumer@default:default,org.example.processor@default:default,org.eclipse.ecf.tests.mgmt.framework@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.ecf.provider.skype.ui@default:default,com.skype.win32.win32.x86@default:false,org.eclipse.ecf.provider@default:default,org.eclipse.ecf.discovery@default:default,org.eclipse.ecf.examples.remoteservices.hello.ds.host@default:default,org.eclipse.ecf.remoteservice.ui@default:default,org.eclipse.ecf.protocol.nntp.store.filesystem.tests@default:false,org.eclipse.ecf.provider.jgroups@default:default,org.eclipse.ecf.examples.remoteservices.server@default:default,org.eclipse.ecf.mgmt.ds@default:default,org.eclipse.ecf.examples.remoteservices.hello.dm.consumer@default:default,org.eclipse.ecf.provider.filetransfer.efs@default:default,org.eclipse.ecf@default:default,org.eclipse.ecf.example.collab.editor@default:default,org.eclipse.ecf.example.remoteservice.soap.host.hello@default:default,org.apache.httpcomponents.httpcore.nio@default:default,org.eclipse.ecf.tests.apache.httpclient.server@default:default,org.eclipse.ecf.presence@default:default,org.eclipse.ecf.salvo.ui.navigator@default:false,org.eclipse.ecf.mgmt.p2.repository.host@default:default,org.eclipse.ecf.tests.osgi.services.discovery.local.poststarted@default:default,org.eclipse.ecf.provider.irc.ui@default:default,com.commonsense.backstop.tests.client.axis@default:default,org.eclipse.ecf.mgmt.framework.host@default:default,org.eclipse.ecf.tests.call@default:default,org.eclipse.ecf.samples.nntp@default:default,org.eclipse.emf.edit@default:default,org.eclipse.helios.tests@default:default,org.eclipse.ecf.provider.aim@default:default,org.eclipse.ecf.discovery.ui.model@default:default,org.eclipse.ecf.datashare@default:default,org.eclipse.ecf.remoteservice@default:default,org.eclipse.ecf.provider.jmdns@default:default,com.commonsense.backstop.client.axis@default:default,org.eclipse.ecf.tests.provider.skype@default:default,org.example.processor.assignment1@default:default,org.eclipse.ecf.discovery.ui.properties.tabbed@default:false,org.eclipse.ecf.tests.httpservice.util@default:default,org.eclipse.ecf.tests@default:default,org.eclipse.ecf.filetransfer.ui@default:default,com.skype.examples@default:default,org.eclipse.ecf.tests.provider.nntp@default:default"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="templateConfig" value=""/>
-<booleanAttribute key="tracing" value="true"/>
-<mapAttribute key="tracingOptions">
-<mapEntry key="org.eclipse.core.expressions/tracePropertyResolving" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/delta" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/failure" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/>
-<mapEntry key="org.eclipse.core.resources/contenttype" value="false"/>
-<mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/>
-<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
-<mapEntry key="org.eclipse.core.resources/history" value="false"/>
-<mapEntry key="org.eclipse.core.resources/natures" value="false"/>
-<mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/>
-<mapEntry key="org.eclipse.core.resources/perf/listeners" value="500"/>
-<mapEntry key="org.eclipse.core.resources/perf/save.participants" value="500"/>
-<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/>
-<mapEntry key="org.eclipse.core.resources/preferences" value="false"/>
-<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/tree" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/markers" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/tree" value="false"/>
-<mapEntry key="org.eclipse.core.resources/strings" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/compatibility/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/config/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/contenttypes/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/debug/context" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/debug/pluginstopper" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/jobs" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/jobs/beginend" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/jobs/errorondeadlock" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/jobs/locks" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/jobs/timing" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/actions" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/activateplugin" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/create" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/failure" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/filter/class" value="*"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/filter/loader" value="*"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/filter/native" value="*"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/filter/resource" value="*"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/prefixes" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/prefixes/failure" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/prefixes/success" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/properties" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/loader/debug/success" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/perf" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/preferences/general" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/preferences/get" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/preferences/set" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/registry/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/registry/debug/dump" value=""/>
-<mapEntry key="org.eclipse.core.runtime/registry/debug/events/extension" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/registry/debug/events/plugin" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/registry/debug/resolve" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/timing/startup" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
-<mapEntry key="org.eclipse.debug.core/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/ConsistentMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/OrderedMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/SimpleMulticaster" value="true"/>
-<mapEntry key="org.eclipse.ecf.datashare/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/filetransfersharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/genericsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/progsharedobject" value="false"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/transactionsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.example.collab/debug/urlsharedobject" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/jmdns" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/brokercontainer" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/channel" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/clientcontainer" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/servercontainer" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/smackconnection" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/smackdebug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/xmpppresencesharedobject" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/xmppsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/basesharedobject" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/connection" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/container" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/containerfactory" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/gmm" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectcontext" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectmanager" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectwrapper" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/transactioneventprocessor" value="false"/>
-<mapEntry key="org.eclipse.ecf.sdo/DataGraphSharingFactory" value="true"/>
-<mapEntry key="org.eclipse.ecf.sdo/EMFUpdateManager" value="true"/>
-<mapEntry key="org.eclipse.ecf.sdo/SharedDataGraph" value="true"/>
-<mapEntry key="org.eclipse.ecf.sdo/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf.ui/debug/textchatcomposite" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/connectionfactory" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/containerfactory" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/factoryinit" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/idfactory" value="true"/>
-<mapEntry key="org.eclipse.help.base/debug" value="true"/>
-<mapEntry key="org.eclipse.help.base/debug/search" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser/inprocess" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
-<mapEntry key="org.eclipse.help.webapp/debug" value="true"/>
-<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
-<mapEntry key="org.eclipse.help/debug" value="true"/>
-<mapEntry key="org.eclipse.help/debug/context" value="false"/>
-<mapEntry key="org.eclipse.help/debug/protocols" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/builder" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/indexmanager" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta/verbose" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/sourcemapper" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
-<mapEntry key="org.eclipse.jdt.core/perf/containerinitializer" value="5000"/>
-<mapEntry key="org.eclipse.jdt.core/perf/javadeltalistener" value="500"/>
-<mapEntry key="org.eclipse.jdt.core/perf/reconcile" value="1000"/>
-<mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/>
-<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/>
-<mapEntry key="org.eclipse.jdt.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/ASTProvider" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/ResultCollector" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/allTypesCache" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/checkCoreBindingGetJavaElement" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/checkCoreBindingIsEqualTo" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/debug/useUIBindingGetJavaElement" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/makeActions" value="1000"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/search/participants" value="300"/>
-<mapEntry key="org.eclipse.jface.text/debug/AnnotationPainter" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/>
-<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/checkConditions" value="300"/>
-<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/>
-<mapEntry key="org.eclipse.osgi/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/bundleTime" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/events" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/filter" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/loader" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/manifest" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/messageBundles" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/monitorbundles" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/packageadmin/timing" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/packages" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/security" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/services" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/buffersize" value="256"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/logfilename" value=""/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/logsynchronously" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin" value="false"/>
-<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/activation" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
-<mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/benchmark" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/>
-<mapEntry key="org.eclipse.osgi/profile/startup" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/cycles" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/grouping" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/imports" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/classLoading" value="false"/>
-<mapEntry key="org.eclipse.osgi/trace/filename" value="runtime.traces"/>
-<mapEntry key="org.eclipse.osgi/trace/filters" value="trace.properties"/>
-<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
-<mapEntry key="org.eclipse.pde.core/cache" value="false"/>
-<mapEntry key="org.eclipse.pde.core/classpath" value="false"/>
-<mapEntry key="org.eclipse.pde.core/debug" value="true"/>
-<mapEntry key="org.eclipse.team.core/backgroundevents" value="false"/>
-<mapEntry key="org.eclipse.team.core/debug" value="false"/>
-<mapEntry key="org.eclipse.team.core/refreshjob" value="false"/>
-<mapEntry key="org.eclipse.team.core/streams" value="false"/>
-<mapEntry key="org.eclipse.team.core/threading" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
-<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.ssh/debug" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.ssh/ssh_protocol" value="false"/>
-<mapEntry key="org.eclipse.team.ftp/debug" value="false"/>
-<mapEntry key="org.eclipse.team.ftp/list" value="true"/>
-<mapEntry key="org.eclipse.team.ftp/requests" value="true"/>
-<mapEntry key="org.eclipse.team.ftp/responses" value="true"/>
-<mapEntry key="org.eclipse.ui.browser/debug" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/gc" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/debug" value="true"/>
-<mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/>
-<mapEntry key="org.eclipse.ui.intro/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.ui.intro/trace/printHTML" value="false"/>
-<mapEntry key="org.eclipse.ui/debug" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/contributions" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/declaredImages" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/job.stale" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/showSystemJobs" value="false"/>
-<mapEntry key="org.eclipse.ui/debug/swtdebug" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener2" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPartReference" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/contentTypes" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.activate" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.control" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.init" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/part.input" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/part.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/>
-<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
-<mapEntry key="org.eclipse.ui/perf/uijob" value="200"/>
-<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/>
-<mapEntry key="org.eclipse.ui/perf/workbench.start" value="45000"/>
-<mapEntry key="org.eclipse.ui/trace/contexts" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/graphics" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/operations" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/>
-<mapEntry key="org.eclipse.update.configurator/debug" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug" value="true"/>
-<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/install" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/warning" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
-<mapEntry key="ort.eclipse.ecf/debug/sharedobjectcontainerfactory" value="true"/>
-</mapAttribute>
-<booleanAttribute key="useCustomFeatures" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<booleanAttribute key="useProduct" value="false"/>
-<booleanAttribute key="usefeatures" value="false"/>
-</launchConfiguration>
diff --git a/examples/bundles/org.eclipse.ecf.examples.datashare.app/products/Datashare Receiver (activemq).product b/examples/bundles/org.eclipse.ecf.examples.datashare.app/products/Datashare Receiver (activemq).product
index 27975304f..abf264546 100644
--- a/examples/bundles/org.eclipse.ecf.examples.datashare.app/products/Datashare Receiver (activemq).product
+++ b/examples/bundles/org.eclipse.ecf.examples.datashare.app/products/Datashare Receiver (activemq).product
@@ -24,7 +24,7 @@
<plugin id="org.eclipse.ecf.provider.jms"/>
<plugin id="org.eclipse.ecf.provider.jms.activemq"/>
<plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
diff --git a/examples/bundles/org.eclipse.ecf.examples.datashare.app/products/Datashare Receiver (jgroups).product b/examples/bundles/org.eclipse.ecf.examples.datashare.app/products/Datashare Receiver (jgroups).product
index 7f1555c62..41bfa20de 100644
--- a/examples/bundles/org.eclipse.ecf.examples.datashare.app/products/Datashare Receiver (jgroups).product
+++ b/examples/bundles/org.eclipse.ecf.examples.datashare.app/products/Datashare Receiver (jgroups).product
@@ -35,7 +35,7 @@
<plugin id="org.eclipse.ecf.provider.datashare"/>
<plugin id="org.eclipse.ecf.provider.jgroups"/>
<plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
diff --git a/examples/bundles/org.eclipse.ecf.examples.datashare.app/products/Datashare Sender (activemq).product b/examples/bundles/org.eclipse.ecf.examples.datashare.app/products/Datashare Sender (activemq).product
index 2f4abf77f..9f7fb3ceb 100644
--- a/examples/bundles/org.eclipse.ecf.examples.datashare.app/products/Datashare Sender (activemq).product
+++ b/examples/bundles/org.eclipse.ecf.examples.datashare.app/products/Datashare Sender (activemq).product
@@ -24,7 +24,7 @@
<plugin id="org.eclipse.ecf.provider.jms"/>
<plugin id="org.eclipse.ecf.provider.jms.activemq"/>
<plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
diff --git a/examples/bundles/org.eclipse.ecf.examples.datashare.app/products/Datashare Sender (jgroups).product b/examples/bundles/org.eclipse.ecf.examples.datashare.app/products/Datashare Sender (jgroups).product
index 7f1fb95e3..6b1c3f6d3 100644
--- a/examples/bundles/org.eclipse.ecf.examples.datashare.app/products/Datashare Sender (jgroups).product
+++ b/examples/bundles/org.eclipse.ecf.examples.datashare.app/products/Datashare Sender (jgroups).product
@@ -35,7 +35,7 @@
<plugin id="org.eclipse.ecf.provider.datashare"/>
<plugin id="org.eclipse.ecf.provider.jgroups"/>
<plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
diff --git a/examples/bundles/org.eclipse.ecf.examples.eventadmin.app/products/EventAdmin Client (activemq).product b/examples/bundles/org.eclipse.ecf.examples.eventadmin.app/products/EventAdmin Client (activemq).product
index db04a220e..2805a7ec4 100644
--- a/examples/bundles/org.eclipse.ecf.examples.eventadmin.app/products/EventAdmin Client (activemq).product
+++ b/examples/bundles/org.eclipse.ecf.examples.eventadmin.app/products/EventAdmin Client (activemq).product
@@ -35,7 +35,7 @@
<plugin id="org.eclipse.ecf.provider.jms"/>
<plugin id="org.eclipse.ecf.provider.jms.activemq"/>
<plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.remoteservice.eventadmin"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
diff --git a/examples/bundles/org.eclipse.ecf.examples.eventadmin.app/products/EventAdmin Client (generic).product b/examples/bundles/org.eclipse.ecf.examples.eventadmin.app/products/EventAdmin Client (generic).product
index d64763760..9d2524597 100644
--- a/examples/bundles/org.eclipse.ecf.examples.eventadmin.app/products/EventAdmin Client (generic).product
+++ b/examples/bundles/org.eclipse.ecf.examples.eventadmin.app/products/EventAdmin Client (generic).product
@@ -36,7 +36,7 @@
<plugin id="org.eclipse.ecf.provider.jms"/>
<plugin id="org.eclipse.ecf.provider.jms.activemq"/>
<plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.remoteservice.eventadmin"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
diff --git a/examples/bundles/org.eclipse.ecf.examples.eventadmin.app/products/EventAdmin Server (activemq).product b/examples/bundles/org.eclipse.ecf.examples.eventadmin.app/products/EventAdmin Server (activemq).product
index 5fa5b3610..9026cfb6f 100644
--- a/examples/bundles/org.eclipse.ecf.examples.eventadmin.app/products/EventAdmin Server (activemq).product
+++ b/examples/bundles/org.eclipse.ecf.examples.eventadmin.app/products/EventAdmin Server (activemq).product
@@ -35,7 +35,7 @@
<plugin id="org.eclipse.ecf.provider.jms"/>
<plugin id="org.eclipse.ecf.provider.jms.activemq"/>
<plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.remoteservice.eventadmin"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
diff --git a/examples/bundles/org.eclipse.ecf.examples.eventadmin.app/products/EventAdmin Server (generic).product b/examples/bundles/org.eclipse.ecf.examples.eventadmin.app/products/EventAdmin Server (generic).product
index c06e8b264..efb812087 100644
--- a/examples/bundles/org.eclipse.ecf.examples.eventadmin.app/products/EventAdmin Server (generic).product
+++ b/examples/bundles/org.eclipse.ecf.examples.eventadmin.app/products/EventAdmin Server (generic).product
@@ -34,7 +34,7 @@
<plugin id="org.eclipse.ecf.provider"/>
<plugin id="org.eclipse.ecf.provider.datashare"/>
<plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.remoteservice.eventadmin"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
diff --git a/examples/bundles/org.eclipse.ecf.examples.loadbalancing.consumer/products/Data Processor Consumer (activemq).product b/examples/bundles/org.eclipse.ecf.examples.loadbalancing.consumer/products/Data Processor Consumer (activemq).product
index ba7bb7fc2..d7b6b1657 100644
--- a/examples/bundles/org.eclipse.ecf.examples.loadbalancing.consumer/products/Data Processor Consumer (activemq).product
+++ b/examples/bundles/org.eclipse.ecf.examples.loadbalancing.consumer/products/Data Processor Consumer (activemq).product
@@ -40,7 +40,7 @@
<plugin id="org.eclipse.ecf.provider.jms"/>
<plugin id="org.eclipse.ecf.provider.jms.activemq"/>
<plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
diff --git a/examples/bundles/org.eclipse.ecf.examples.loadbalancing.ds.consumer/products/Data Processor Consumer DS (activemq).product b/examples/bundles/org.eclipse.ecf.examples.loadbalancing.ds.consumer/products/Data Processor Consumer DS (activemq).product
index 3f419e93a..8ee6b0338 100644
--- a/examples/bundles/org.eclipse.ecf.examples.loadbalancing.ds.consumer/products/Data Processor Consumer DS (activemq).product
+++ b/examples/bundles/org.eclipse.ecf.examples.loadbalancing.ds.consumer/products/Data Processor Consumer DS (activemq).product
@@ -41,7 +41,7 @@
<plugin id="org.eclipse.ecf.provider.jms"/>
<plugin id="org.eclipse.ecf.provider.jms.activemq"/>
<plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
diff --git a/examples/bundles/org.eclipse.ecf.examples.loadbalancing.server/products/Data Processor Server (activemq).product b/examples/bundles/org.eclipse.ecf.examples.loadbalancing.server/products/Data Processor Server (activemq).product
index 3a58bc505..7ca8d9042 100644
--- a/examples/bundles/org.eclipse.ecf.examples.loadbalancing.server/products/Data Processor Server (activemq).product
+++ b/examples/bundles/org.eclipse.ecf.examples.loadbalancing.server/products/Data Processor Server (activemq).product
@@ -40,7 +40,7 @@
<plugin id="org.eclipse.ecf.provider.jms"/>
<plugin id="org.eclipse.ecf.provider.jms.activemq"/>
<plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
diff --git a/examples/bundles/org.eclipse.ecf.examples.loadbalancing.servicehost/products/Data Processor Service Host (activemq).product b/examples/bundles/org.eclipse.ecf.examples.loadbalancing.servicehost/products/Data Processor Service Host (activemq).product
index 5e33533c3..34d7c79d4 100644
--- a/examples/bundles/org.eclipse.ecf.examples.loadbalancing.servicehost/products/Data Processor Service Host (activemq).product
+++ b/examples/bundles/org.eclipse.ecf.examples.loadbalancing.servicehost/products/Data Processor Service Host (activemq).product
@@ -40,7 +40,7 @@
<plugin id="org.eclipse.ecf.provider.jms"/>
<plugin id="org.eclipse.ecf.provider.jms.activemq"/>
<plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
diff --git a/examples/bundles/org.eclipse.ecf.examples.loadbalancing/src/org/eclipse/ecf/examples/loadbalancing/IDataProcessorAsync.java b/examples/bundles/org.eclipse.ecf.examples.loadbalancing/src/org/eclipse/ecf/examples/loadbalancing/IDataProcessorAsync.java
index 8df7cd69f..df6f922c9 100644
--- a/examples/bundles/org.eclipse.ecf.examples.loadbalancing/src/org/eclipse/ecf/examples/loadbalancing/IDataProcessorAsync.java
+++ b/examples/bundles/org.eclipse.ecf.examples.loadbalancing/src/org/eclipse/ecf/examples/loadbalancing/IDataProcessorAsync.java
@@ -8,9 +8,8 @@
package org.eclipse.ecf.examples.loadbalancing;
import org.eclipse.ecf.remoteservice.IAsyncCallback;
-import org.eclipse.ecf.remoteservice.IAsyncRemoteServiceProxy;
-public interface IDataProcessorAsync extends IAsyncRemoteServiceProxy {
+public interface IDataProcessorAsync {
public void processDataAsync(String data, IAsyncCallback<String> callback);
diff --git a/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/META-INF/MANIFEST.MF b/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/META-INF/MANIFEST.MF
index 734f0f6e3..f932ed101 100644
--- a/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/META-INF/MANIFEST.MF
+++ b/examples/bundles/org.eclipse.ecf.examples.provider.remoteservice/META-INF/MANIFEST.MF
@@ -2,8 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %bundle.name
Bundle-SymbolicName: org.eclipse.ecf.examples.provider.remoteservice;singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: %bundle.provider
+Bundle-Version: 1.1.0.qualifier
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Import-Package: org.eclipse.ecf.core;version="3.0.0",
org.eclipse.ecf.core.events,
@@ -16,7 +15,7 @@ Import-Package: org.eclipse.ecf.core;version="3.0.0",
org.eclipse.ecf.remoteservice.util;version="6.0.0",
org.eclipse.equinox.concurrent.future;version="1.0.0",
org.osgi.framework;version="1.6.0"
-Require-Bundle: org.eclipse.equinox.common;bundle-version="3.6.0"
+Require-Bundle: org.eclipse.equinox.common
Export-Package: org.eclipse.ecf.examples.provider.remoteservice.identity;version="1.0.0",
org.eclipse.ecf.internal.examples.provider.remoteservice.container;x-internal:=true
Bundle-Localization: plugin
diff --git a/examples/bundles/org.eclipse.ecf.examples.provider.trivial/META-INF/MANIFEST.MF b/examples/bundles/org.eclipse.ecf.examples.provider.trivial/META-INF/MANIFEST.MF
index beb52f0c5..90cc2b997 100644
--- a/examples/bundles/org.eclipse.ecf.examples.provider.trivial/META-INF/MANIFEST.MF
+++ b/examples/bundles/org.eclipse.ecf.examples.provider.trivial/META-INF/MANIFEST.MF
@@ -5,8 +5,8 @@ Bundle-SymbolicName: org.eclipse.ecf.examples.provider.trivial;singleton:=true
Bundle-Version: 1.0.200.provider
Bundle-Activator: org.eclipse.ecf.internal.examples.provider.trivial.Activator
Bundle-Vendor: %bundle.provider
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.ecf
+Require-Bundle: org.eclipse.ecf,
+ org.eclipse.equinox.common;bundle-version="3.6.200"
Eclipse-LazyStart: true
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
@@ -16,3 +16,4 @@ Export-Package: org.eclipse.ecf.examples.provider.trivial;version="1.0.0",
org.eclipse.ecf.internal.examples.provider.trivial;x-internal:=true,
org.eclipse.ecf.internal.examples.provider.trivial.container;x-internal:=true
Bundle-Localization: bundle
+Import-Package: org.osgi.framework
diff --git a/examples/bundles/org.eclipse.ecf.examples.provider.trivial/plugin.xml b/examples/bundles/org.eclipse.ecf.examples.provider.trivial/plugin.xml
index 7ace60c3d..4f21bafb2 100644
--- a/examples/bundles/org.eclipse.ecf.examples.provider.trivial/plugin.xml
+++ b/examples/bundles/org.eclipse.ecf.examples.provider.trivial/plugin.xml
@@ -19,17 +19,5 @@
server="false">
</containerFactory>
</extension>
- <extension
- id="Trivial"
- point="org.eclipse.core.runtime.applications">
- <application
- cardinality="*"
- thread="any"
- visible="true">
- <run
- class="org.eclipse.ecf.examples.provider.trivial.TrivialApplication">
- </run>
- </application>
- </extension>
</plugin>
diff --git a/examples/bundles/org.eclipse.ecf.examples.provider.trivial/src/org/eclipse/ecf/examples/provider/trivial/TrivialApplication.java b/examples/bundles/org.eclipse.ecf.examples.provider.trivial/src/org/eclipse/ecf/examples/provider/trivial/TrivialApplication.java
deleted file mode 100644
index b34ad23d4..000000000
--- a/examples/bundles/org.eclipse.ecf.examples.provider.trivial/src/org/eclipse/ecf/examples/provider/trivial/TrivialApplication.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package org.eclipse.ecf.examples.provider.trivial;
-
-import org.eclipse.ecf.core.IContainer;
-import org.eclipse.ecf.core.IContainerFactory;
-import org.eclipse.ecf.core.IContainerManager;
-import org.eclipse.ecf.core.identity.ID;
-import org.eclipse.ecf.core.identity.IDFactory;
-import org.eclipse.ecf.core.util.ECFException;
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.osgi.util.tracker.ServiceTracker;
-
-public class TrivialApplication implements IApplication {
-
- private boolean done = false;
-
- private ServiceTracker containerManagerTracker;
-
- public Object start(IApplicationContext context) throws Exception {
- try {
- IContainerFactory factory = getContainerManager().getContainerFactory();
- // Create instance of trivial container
- IContainer container = factory.createContainer("ecf.container.trivial");
-
- // Get appropriate container adapter...e.g. IChannelContainerAdapter
- // IChannelContainerAdapter containerAdapter =
- // (IChannelContainerAdapter)
- // container.getAdapter(IChannelContainerAdapter.class);
-
- // Connect
- ID targetID = IDFactory.getDefault().createID(
- container.getConnectNamespace(), "myid");
- container.connect(targetID, null);
-
- synchronized (this) {
- while (!done) {
- wait();
- }
- }
-
- } catch (ECFException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return null;
- }
-
- public void stop() {
- if (containerManagerTracker != null) {
- containerManagerTracker.close();
- containerManagerTracker = null;
- }
- synchronized (this) {
- done = true;
- notify();
- }
- }
-
- protected IContainerManager getContainerManager() {
- if (containerManagerTracker == null) {
- containerManagerTracker = new ServiceTracker(
- org.eclipse.ecf.internal.examples.provider.trivial.Activator.getDefault().getContext(), IContainerManager.class.getName(),
- null);
- containerManagerTracker.open();
- }
- return (IContainerManager) containerManagerTracker.getService();
- }
-
-
-}
diff --git a/examples/bundles/org.eclipse.ecf.examples.provider.trivial/src/org/eclipse/ecf/examples/provider/trivial/identity/TrivialNamespace.java b/examples/bundles/org.eclipse.ecf.examples.provider.trivial/src/org/eclipse/ecf/examples/provider/trivial/identity/TrivialNamespace.java
index 3b7ab1439..907f5436c 100644
--- a/examples/bundles/org.eclipse.ecf.examples.provider.trivial/src/org/eclipse/ecf/examples/provider/trivial/identity/TrivialNamespace.java
+++ b/examples/bundles/org.eclipse.ecf.examples.provider.trivial/src/org/eclipse/ecf/examples/provider/trivial/identity/TrivialNamespace.java
@@ -21,6 +21,10 @@ public class TrivialNamespace extends Namespace {
public static final String SCHEME = "trivial";
public static final String NAME = "ecf.namespace.trivial";
+ public TrivialNamespace(String name) {
+ super(name,null);
+ }
+
/* (non-Javadoc)
* @see org.eclipse.ecf.core.identity.Namespace#createInstance(java.lang.Object[])
*/
diff --git a/examples/bundles/org.eclipse.ecf.examples.provider.trivial/src/org/eclipse/ecf/internal/examples/provider/trivial/Activator.java b/examples/bundles/org.eclipse.ecf.examples.provider.trivial/src/org/eclipse/ecf/internal/examples/provider/trivial/Activator.java
index 262938561..04fdb6761 100755
--- a/examples/bundles/org.eclipse.ecf.examples.provider.trivial/src/org/eclipse/ecf/internal/examples/provider/trivial/Activator.java
+++ b/examples/bundles/org.eclipse.ecf.examples.provider.trivial/src/org/eclipse/ecf/internal/examples/provider/trivial/Activator.java
@@ -1,12 +1,19 @@
package org.eclipse.ecf.internal.examples.provider.trivial;
-import org.eclipse.core.runtime.Plugin;
+import org.eclipse.core.runtime.SafeRunner;
+import org.eclipse.ecf.core.ContainerTypeDescription;
+import org.eclipse.ecf.core.identity.Namespace;
+import org.eclipse.ecf.core.provider.IContainerInstantiator;
+import org.eclipse.ecf.core.util.ExtensionRegistryRunnable;
+import org.eclipse.ecf.examples.provider.trivial.identity.TrivialNamespace;
+import org.eclipse.ecf.internal.examples.provider.trivial.container.TrivialContainerInstantiator;
+import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
/**
* The activator class controls the plug-in life cycle
*/
-public class Activator extends Plugin {
+public class Activator implements BundleActivator {
// The plug-in ID
public static final String PLUGIN_ID = "org.eclipse.ecf.internal.examples.provider.trivial";
@@ -27,9 +34,23 @@ public class Activator extends Plugin {
* @see org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext)
*/
public void start(BundleContext context) throws Exception {
- super.start(context);
this.context = context;
plugin = this;
+ SafeRunner.run(new ExtensionRegistryRunnable(this.context) {
+ protected void runWithoutRegistry() throws Exception {
+ // If we don't have a registry, then register trivial namespace
+ Activator.this.context.registerService(Namespace.class,
+ new TrivialNamespace(TrivialNamespace.NAME), null);
+ // And create and register ContainerTypeDescription
+ Activator.this.context
+ .registerService(
+ ContainerTypeDescription.class,
+ new ContainerTypeDescription(
+ TrivialContainerInstantiator.NAME,
+ (IContainerInstantiator) new TrivialContainerInstantiator()),
+ null);
+ }
+ });
}
/*
@@ -38,7 +59,6 @@ public class Activator extends Plugin {
*/
public void stop(BundleContext context) throws Exception {
plugin = null;
- super.stop(context);
this.context = null;
}
diff --git a/examples/bundles/org.eclipse.ecf.examples.provider.trivial/src/org/eclipse/ecf/internal/examples/provider/trivial/container/TrivialContainerInstantiator.java b/examples/bundles/org.eclipse.ecf.examples.provider.trivial/src/org/eclipse/ecf/internal/examples/provider/trivial/container/TrivialContainerInstantiator.java
index c67829469..489adae6e 100644
--- a/examples/bundles/org.eclipse.ecf.examples.provider.trivial/src/org/eclipse/ecf/internal/examples/provider/trivial/container/TrivialContainerInstantiator.java
+++ b/examples/bundles/org.eclipse.ecf.examples.provider.trivial/src/org/eclipse/ecf/internal/examples/provider/trivial/container/TrivialContainerInstantiator.java
@@ -21,6 +21,8 @@ import org.eclipse.ecf.core.provider.BaseContainerInstantiator;
public class TrivialContainerInstantiator extends BaseContainerInstantiator {
+ public static final String NAME = "ecf.container.trivial";
+
/* (non-Javadoc)
* @see org.eclipse.ecf.core.provider.BaseContainerInstantiator#createInstance(org.eclipse.ecf.core.ContainerTypeDescription, java.lang.Object[])
*/
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/.classpath b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/.classpath
new file mode 100644
index 000000000..eca7bdba8
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/.gitignore b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/.gitignore
new file mode 100644
index 000000000..5e56e040e
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/.gitignore
@@ -0,0 +1 @@
+/bin
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/.project b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/.project
new file mode 100644
index 000000000..5f4a6c571
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ecf.examples.raspberrypi.management.consumer</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ds.core.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/.settings/org.eclipse.jdt.core.prefs b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..0c68a61dc
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/META-INF/MANIFEST.MF b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..6983f4e92
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/META-INF/MANIFEST.MF
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Raspberry Pi Management Consumer
+Bundle-SymbolicName: org.eclipse.ecf.examples.raspberrypi.management.consumer
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: Eclipse.org - ECF
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Import-Package: org.eclipse.ecf.examples.raspberrypi.management;version="1.0.0"
+Service-Component: OSGI-INF/raspberrypicomponent.xml
+Bundle-ActivationPolicy: lazy
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/OSGI-INF/raspberrypicomponent.xml b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/OSGI-INF/raspberrypicomponent.xml
new file mode 100644
index 000000000..ab85d90ae
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/OSGI-INF/raspberrypicomponent.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" enabled="true" name="org.eclipse.ecf.examples.raspberrypi.management.consumer">
+ <implementation class="org.eclipse.ecf.internal.examples.raspberrypi.management.consumer.RaspberryPiComponent"/>
+ <reference bind="bindRaspberryPi" cardinality="0..n" interface="org.eclipse.ecf.examples.raspberrypi.management.IRaspberryPiAsync" name="IRaspberryPiAsync" policy="dynamic"/>
+</scr:component>
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/build.properties b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/build.properties
new file mode 100644
index 000000000..9d72e6625
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/build.properties
@@ -0,0 +1,6 @@
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ OSGI-INF/raspberrypicomponent.xml,\
+ OSGI-INF/
+source.. = src/
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/src/org/eclipse/ecf/internal/examples/raspberrypi/management/consumer/RaspberryPiComponent.java b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/src/org/eclipse/ecf/internal/examples/raspberrypi/management/consumer/RaspberryPiComponent.java
new file mode 100644
index 000000000..a9c081020
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.consumer/src/org/eclipse/ecf/internal/examples/raspberrypi/management/consumer/RaspberryPiComponent.java
@@ -0,0 +1,18 @@
+package org.eclipse.ecf.internal.examples.raspberrypi.management.consumer;
+
+import java.util.Map;
+import java.util.concurrent.CompletableFuture;
+
+import org.eclipse.ecf.examples.raspberrypi.management.IRaspberryPiAsync;
+
+public class RaspberryPiComponent {
+
+ void bindRaspberryPi(IRaspberryPiAsync rpi) {
+ CompletableFuture<Map<String,String>> future = rpi.getSystemPropertiesAsync();
+ future.thenAccept((map) -> {
+ System.out.println("Found RaspberryPi");
+ for(String key: map.keySet())
+ System.out.println(" "+key+"="+map.get(key));
+ });
+ }
+}
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/.project b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/.project
new file mode 100644
index 000000000..33105235f
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ecf.examples.raspberrypi.management.host.feature</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/build.properties b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/build.properties
new file mode 100644
index 000000000..db8f76477
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/build.properties
@@ -0,0 +1,2 @@
+bin.includes = feature.xml
+root=rootfiles
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/feature.xml b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/feature.xml
new file mode 100644
index 000000000..c751ecf7f
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/feature.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.ecf.examples.raspberrypi.management.host.feature"
+ label="Raspberry Pi Host Feature"
+ version="1.0.0.qualifier">
+
+ <description url="http://www.example.com/description">
+ [Enter Feature Description here.]
+ </description>
+
+ <copyright url="http://www.example.com/copyright">
+ [Enter Copyright Description here.]
+ </copyright>
+
+ <license url="http://www.example.com/license">
+ [Enter License Description here.]
+ </license>
+
+ <plugin
+ id="org.eclipse.ecf.examples.raspberrypi.management"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.examples.raspberrypi.management.host"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.apache.felix.gogo.command"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.apache.felix.gogo.runtime"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.apache.felix.gogo.shell"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.console"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.discovery"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.identity"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.osgi.services.distribution"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.osgi.services.remoteserviceadmin"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.remoteservice"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.remoteservice.asyncproxy"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.sharedobject"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.equinox.common"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.equinox.concurrent"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.equinox.console"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.equinox.event"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.core.jobs"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.osgi"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.osgi.services"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.osgi.services.remoteserviceadmin"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.remoteservice"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="ch.ethz.iks.slp"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ecf.provider.jslp"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/products/RaspberryPiManagmentHost.product b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/products/RaspberryPiManagmentHost.product
new file mode 100644
index 000000000..c9f2e5e23
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/products/RaspberryPiManagmentHost.product
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="ECF RaspberryPi Remote Service Example" uid="org.eclipse.ecf.examples.raspberrypi.management.host.feature" version="1.0.0.qualifier" useFeatures="true" includeLaunchers="false">
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <programArgs>-console
+-consoleLog
+-debug
+ </programArgs>
+ <programArgsLin>-os linux
+-ws gtk
+-arch arm
+ </programArgsLin>
+ <vmArgs>-Declipse.ignoreApp=true
+-Dosgi.noShutdown=true
+-DverboseRemoteServiceAdmin=true
+-Dservice.exported.configs=ecf.generic.server
+-Decf.generic.server.port=3288
+-Decf.generic.server.hostname=localhost
+-Decf.exported.async.interfaces=*
+ </vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
+ </launcherArgs>
+
+ <launcher>
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ <linux include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8</linux>
+ <windows include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8</windows>
+ </vm>
+
+ <plugins>
+ <plugin id="org.apache.felix.gogo.command"/>
+ <plugin id="org.apache.felix.gogo.runtime"/>
+ <plugin id="org.apache.felix.gogo.shell"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.ecf"/>
+ <plugin id="org.eclipse.ecf.console"/>
+ <plugin id="org.eclipse.ecf.discovery"/>
+ <plugin id="org.eclipse.ecf.examples.raspberrypi.management"/>
+ <plugin id="org.eclipse.ecf.examples.raspberrypi.management.host"/>
+ <plugin id="org.eclipse.ecf.identity"/>
+ <plugin id="org.eclipse.ecf.osgi.services.distribution"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin"/>
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
+ <plugin id="org.eclipse.ecf.provider"/>
+ <plugin id="org.eclipse.ecf.provider.jmdns"/>
+ <plugin id="org.eclipse.ecf.provider.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" version="2.0.0.v20140410-1838"/>
+ <plugin id="org.eclipse.ecf.sharedobject"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.concurrent"/>
+ <plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.event"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.services"/>
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
+ </plugins>
+
+ <features>
+ <feature id="org.eclipse.ecf.examples.raspberrypi.management.host.feature" version="1.0.0.qualifier"/>
+ </features>
+
+ <configurations>
+ <plugin id="ch.ethz.iks.slp" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.command" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.runtime" autoStart="true" startLevel="0" />
+ <plugin id="org.apache.felix.gogo.shell" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.core.jobs" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.examples.raspberrypi.management" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.examples.raspberrypi.management.host" autoStart="true" startLevel="6" />
+ <plugin id="org.eclipse.ecf.identity" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="5" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="5" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="5" />
+ <plugin id="org.eclipse.ecf.provider" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.jmdns" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.jslp" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.provider.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.ecf.sharedobject" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.concurrent" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.console" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="-1" />
+ <plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ </configurations>
+
+</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/rootfiles/rpimgmthost.bat b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/rootfiles/rpimgmthost.bat
new file mode 100644
index 000000000..050723918
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/rootfiles/rpimgmthost.bat
@@ -0,0 +1,19 @@
+@echo off
+set JAVAPROG=java
+set GENERICHOSTNAME=localhost
+set GENERICPORT=3288
+if "%1"=="" goto usage
+set GENERICHOSTNAME=%1
+:runjava
+set JAVAPROPS=-Decf.generic.server.hostname=%GENERICHOSTNAME% -Decf.generic.server.port=%GENERICPORT% -Declipse.ignoreApp=true -Dosgi.noShutdown=true
+echo javaprops=%JAVAPROPS%
+set EQUINOXJAR=plugins/org.eclipse.osgi_3.10.0.v20140407-2102.jar
+echo equinoxjar=%EQUINOXJAR%
+set ARGS=-configuration file:configuration -os linux -ws gtk -arch arm -console -consoleLog -debug
+echo program args=%ARGS%
+%JAVAPROG% %JAVAPROPS% -jar %EQUINOXJAR% %ARGS%
+goto end
+:usage
+ECHO No arguments supplied. Usage: %0 hostname [port]
+:end
+@echo on
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/rootfiles/rpimgmthost.sh b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/rootfiles/rpimgmthost.sh
new file mode 100644
index 000000000..fdfe0f727
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host.feature/rootfiles/rpimgmthost.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+JAVAPROG=java
+if [ "$#" -eq "0" ];then
+ echo "No arguments supplied. Usage: rpimgmthost.sh hostname port"
+ exit 1
+fi
+GENERICHOSTNAME="${1}"
+if [ "${2}" != "" ];then
+ GENERICPORT="${2}"
+else
+ GENERICPORT=3288
+fi
+echo "Hostname: ${GENERICHOSTNAME}"
+echo "Port: ${GENERICPORT}"
+JAVAPROPS="-Decf.generic.server.hostname=${GENERICHOSTNAME} -Decf.generic.server.port=${GENERICPORT} -Declipse.ignoreApp=true -Dosgi.noShutdown=true"
+echo "javaprops=${JAVAPROPS}"
+EQUINOXJAR=plugins/org.eclipse.osgi_3.10.0.v20140407-2102.jar
+echo "equinox=${EQUINOXJAR}"
+PROGARGS="-configuration file:configuration -os linux -ws gtk -arch arm -console -consoleLog -debug"
+${JAVAPROG} ${JAVAPROPS} -jar ${EQUINOXJAR} ${PROGARGS}
+
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/.classpath b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/.classpath
new file mode 100644
index 000000000..eca7bdba8
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/.gitignore b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/.gitignore
new file mode 100644
index 000000000..5e56e040e
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/.gitignore
@@ -0,0 +1 @@
+/bin
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/.project b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/.project
new file mode 100644
index 000000000..5c180fa26
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ecf.examples.raspberrypi.management.host</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/.settings/org.eclipse.jdt.core.prefs b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..0c68a61dc
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/.settings/org.eclipse.pde.core.prefs b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 000000000..f29e940a0
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/META-INF/MANIFEST.MF b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..617e228c5
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/META-INF/MANIFEST.MF
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Raspberry Pi Management Remote Service Host
+Bundle-SymbolicName: org.eclipse.ecf.examples.raspberrypi.management.host
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: Eclipse.org - ECF
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Bundle-Activator: org.eclipse.ecf.internal.examples.raspberrypi.management.host.Activator
+Import-Package: org.eclipse.ecf.examples.raspberrypi.management,
+ org.osgi.framework;version="1.8.0"
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/build.properties b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/build.properties
new file mode 100644
index 000000000..34d2e4d2d
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/src/org/eclipse/ecf/internal/examples/raspberrypi/management/host/Activator.java b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/src/org/eclipse/ecf/internal/examples/raspberrypi/management/host/Activator.java
new file mode 100644
index 000000000..357d4ec07
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/src/org/eclipse/ecf/internal/examples/raspberrypi/management/host/Activator.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Composent, Inc. 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: Scott Lewis (slewis@composent.com) - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.ecf.internal.examples.raspberrypi.management.host;
+
+import java.util.Dictionary;
+import java.util.Hashtable;
+
+import org.eclipse.ecf.examples.raspberrypi.management.IRaspberryPi;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+
+public class Activator implements BundleActivator {
+
+ private static final String OSGI_SERVICE_EXPORTED_INTERFACES = "service.exported.interfaces";
+
+ private ServiceRegistration<IRaspberryPi> registration;
+
+ @Override
+ public void start(BundleContext context) throws Exception {
+ Dictionary<String,Object> props = new Hashtable<String,Object>();
+ // Add OSGi required remote service properties
+ props.put(OSGI_SERVICE_EXPORTED_INTERFACES, System.getProperty(OSGI_SERVICE_EXPORTED_INTERFACES,"*"));
+ // Use ECF generic server config.
+ props.put("service.exported.configs", "ecf.generic.server");
+ // Setup hostname config (default:localhost)
+ String hostname = System.getProperty("ecf.generic.server.hostname");
+ if (hostname != null)
+ props.put("ecf.generic.server.hostname",hostname);
+ // Setup port config (default:-1)
+ props.put("ecf.generic.server.port",new Integer(System.getProperty("ecf.generic.server.port","-1")));
+ // Setup IRaspberryPiAsync as async remote service
+ props.put("ecf.exported.async.interfaces", "*");
+ // This remote service registration will trigger export, and publishing via zeroconf
+ registration = context.registerService(IRaspberryPi.class, new RaspberryPi(), props);
+
+ System.out.println("IRaspberryPi remote service registered="+registration);
+ }
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ registration.unregister();
+ System.out.println("IRaspberryPi remote service unregistered");
+ }
+
+}
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/src/org/eclipse/ecf/internal/examples/raspberrypi/management/host/RaspberryPi.java b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/src/org/eclipse/ecf/internal/examples/raspberrypi/management/host/RaspberryPi.java
new file mode 100644
index 000000000..2c011eca0
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management.host/src/org/eclipse/ecf/internal/examples/raspberrypi/management/host/RaspberryPi.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Composent, Inc. 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: Scott Lewis (slewis@composent.com) - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.ecf.internal.examples.raspberrypi.management.host;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+import org.eclipse.ecf.examples.raspberrypi.management.IRaspberryPi;
+
+/**
+ * Implementation of IRaspberryPi service interface.
+ */
+public class RaspberryPi implements IRaspberryPi {
+
+ @Override
+ public Map<String, String> getSystemProperties() {
+ Properties props = System.getProperties();
+
+ Map<String, String> result = new HashMap<String,String>();
+ for (final String name: props.stringPropertyNames())
+ result.put(name, props.getProperty(name));
+
+ System.out.println("REMOTE CALL: getSystemProperties()");
+ return result;
+ }
+
+}
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/.classpath b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/.classpath
new file mode 100644
index 000000000..eca7bdba8
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/.gitignore b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/.gitignore
new file mode 100644
index 000000000..5e56e040e
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/.gitignore
@@ -0,0 +1 @@
+/bin
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/.project b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/.project
new file mode 100644
index 000000000..d0e47d39e
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ecf.examples.raspberrypi.management</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/.settings/org.eclipse.jdt.core.prefs b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..0c68a61dc
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/.settings/org.eclipse.pde.core.prefs b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 000000000..f29e940a0
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/META-INF/MANIFEST.MF b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..c2372a28b
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/META-INF/MANIFEST.MF
@@ -0,0 +1,8 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Raspberry Pi Management API
+Bundle-SymbolicName: org.eclipse.ecf.examples.raspberrypi.management
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: Eclipse.org - ECF
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.ecf.examples.raspberrypi.management;version="1.0.0"
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/build.properties b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/build.properties
new file mode 100644
index 000000000..34d2e4d2d
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/src/org/eclipse/ecf/examples/raspberrypi/management/IRaspberryPi.java b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/src/org/eclipse/ecf/examples/raspberrypi/management/IRaspberryPi.java
new file mode 100644
index 000000000..a3b07aee7
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/src/org/eclipse/ecf/examples/raspberrypi/management/IRaspberryPi.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Composent, Inc. 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: Scott Lewis (slewis@composent.com) - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.ecf.examples.raspberrypi.management;
+
+import java.util.Map;
+
+public interface IRaspberryPi {
+
+ /**
+ * Get system properties for the Raspberry Pi remote service host.
+ * @return Map<String,String> the system properties for the remote RP
+ */
+ public Map<String,String> getSystemProperties();
+
+}
diff --git a/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/src/org/eclipse/ecf/examples/raspberrypi/management/IRaspberryPiAsync.java b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/src/org/eclipse/ecf/examples/raspberrypi/management/IRaspberryPiAsync.java
new file mode 100644
index 000000000..da7016cac
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.raspberrypi.management/src/org/eclipse/ecf/examples/raspberrypi/management/IRaspberryPiAsync.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Composent, Inc. 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: Scott Lewis (slewis@composent.com) - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.ecf.examples.raspberrypi.management;
+
+import java.util.Map;
+import java.util.concurrent.CompletableFuture;
+
+public interface IRaspberryPiAsync {
+
+ /**
+ * Get remote system properties via CompletableFuture for non-blocking.
+ * Note: signature of this method is connected to {@link IRaspberryPi#getSystemProperties()}.
+ *
+ * @return CompletableFuture
+ */
+ public CompletableFuture<Map<String,String>> getSystemPropertiesAsync();
+
+}
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/META-INF/MANIFEST.MF b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/META-INF/MANIFEST.MF
index fa04dd81d..eb74872fd 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/META-INF/MANIFEST.MF
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: ECF RemoteServices Hello Example Endpoint Description Extender Format
Bundle-SymbolicName: org.eclipse.ecf.examples.remoteservices.hello.consumer.edef
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 1.1.0.qualifier
Bundle-Vendor: Eclipse.org - ECF
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Remote-Service: generic_hello.xml
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/generic_hello.xml b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/generic_hello.xml
index 79573e466..b6430fc98 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/generic_hello.xml
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef/generic_hello.xml
@@ -1,11 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0">
<endpoint-description>
+ <property name="ecf.endpoint.id" value-type="String" value="ecftcp://localhost:3787/server"/>
<property name="ecf.endpoint.id.ns" value-type="String" value="org.eclipse.ecf.core.identity.StringID"/>
+ <property name="ecf.endpoint.ts" value-type="Long" value="1387233380373"/>
<property name="endpoint.framework.uuid" value-type="String" value="70cd3d4b-4931-0010-1b63-d64101cefd5e"/>
- <property name="endpoint.id" value-type="String" value="ecftcp://localhost:3787/server"/>
+ <property name="endpoint.id" value-type="String" value="87d3ef4f-8e8f-4187-873e-166dcc58c9ed"/>
<property name="endpoint.service.id" value-type="Long" value="0"/>
- <property name="endpoint.package.version.org.eclipse.ecf.examples.remoteservices.hello" value-type="String" value="3.0.0"/>
+ <property name="endpoint.package.version.org.eclipse.ecf.examples.remoteservices.hello" value-type="String" value="4.0.0"/>
<property name="objectClass" value-type="String">
<array>
<value>org.eclipse.ecf.examples.remoteservices.hello.IHello</value>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.rs/META-INF/MANIFEST.MF b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.rs/META-INF/MANIFEST.MF
index d450a4188..4c89d6eda 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.rs/META-INF/MANIFEST.MF
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.rs/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %bundleName
Bundle-SymbolicName: org.eclipse.ecf.examples.remoteservices.hello.consumer.rs
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 1.1.0.qualifier
Bundle-Activator: org.eclipse.ecf.internal.examples.remoteservices.hello.consumer.rs.Activator
Bundle-Vendor: %bundleProvider
Require-Bundle: org.eclipse.equinox.common
@@ -12,8 +12,9 @@ Bundle-ActivationPolicy: lazy
Bundle-Localization: bundle
Import-Package: org.eclipse.ecf.core,
org.eclipse.ecf.core.identity;version="3.0.0",
- org.eclipse.ecf.examples.remoteservices.hello;version="3.0.0",
+ org.eclipse.ecf.examples.remoteservices.hello;version="4.0.0",
org.eclipse.ecf.remoteservice,
+ org.eclipse.ecf.remoteservice.asyncproxy;version="1.0.0",
org.eclipse.ecf.remoteservice.events,
org.osgi.framework;version="1.5.0",
org.osgi.util.tracker
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.rs/products/Hello Service Consumer RS.product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.rs/products/Hello Service Consumer RS.product
index c553973e6..9c5f22097 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.rs/products/Hello Service Consumer RS.product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.rs/products/Hello Service Consumer RS.product
@@ -14,12 +14,12 @@
<plugins>
<plugin id="ch.ethz.iks.r_osgi.remote"/>
+ <plugin id="javax.xml"/>
<plugin id="org.apache.felix.gogo.command"/>
<plugin id="org.apache.felix.gogo.runtime"/>
<plugin id="org.apache.felix.gogo.shell"/>
<plugin id="org.eclipse.core.contenttype"/>
<plugin id="org.eclipse.core.jobs"/>
- <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
<plugin id="org.eclipse.ecf"/>
<plugin id="org.eclipse.ecf.discovery"/>
<plugin id="org.eclipse.ecf.examples.remoteservices.hello"/>
@@ -28,13 +28,13 @@
<plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
<plugin id="org.eclipse.ecf.provider"/>
<plugin id="org.eclipse.ecf.provider.r_osgi"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
- <plugin id="org.eclipse.ecf.ssl" fragment="true"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
<plugin id="org.eclipse.equinox.concurrent"/>
<plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.event"/>
<plugin id="org.eclipse.equinox.preferences"/>
<plugin id="org.eclipse.equinox.registry"/>
<plugin id="org.eclipse.osgi"/>
@@ -45,6 +45,7 @@
<configurations>
<plugin id="org.eclipse.ecf.examples.remoteservices.hello.consumer.rs" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.osgi" autoStart="true" startLevel="-1" />
</configurations>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/META-INF/MANIFEST.MF b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/META-INF/MANIFEST.MF
index 7a9e3b753..2ff8655aa 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/META-INF/MANIFEST.MF
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/META-INF/MANIFEST.MF
@@ -10,7 +10,7 @@ Bundle-RequiredExecutionEnvironment: J2SE-1.5,
CDC-1.1/Foundation-1.1
Import-Package: org.eclipse.ecf.core;version="3.0.0",
org.eclipse.ecf.core.identity;version="3.0.0",
- org.eclipse.ecf.examples.remoteservices.hello;version="3.0.0",
+ org.eclipse.ecf.examples.remoteservices.hello;version="4.0.0",
org.eclipse.ecf.osgi.services.distribution;version="1.0.0",
org.eclipse.ecf.remoteservice,
org.eclipse.ecf.remoteservice.events,
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (edef,generic).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (edef,generic).product
index 6fa56c3ed..0cc3b9bf1 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (edef,generic).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (edef,generic).product
@@ -22,6 +22,7 @@
</vm>
<plugins>
+ <plugin id="javax.xml"/>
<plugin id="org.apache.felix.gogo.command"/>
<plugin id="org.apache.felix.gogo.runtime"/>
<plugin id="org.apache.felix.gogo.shell"/>
@@ -39,12 +40,13 @@
<plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
<plugin id="org.eclipse.ecf.provider"/>
<plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
<plugin id="org.eclipse.equinox.concurrent"/>
<plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.event"/>
<plugin id="org.eclipse.equinox.preferences"/>
<plugin id="org.eclipse.equinox.registry"/>
<plugin id="org.eclipse.osgi"/>
@@ -55,6 +57,7 @@
<configurations>
<plugin id="org.eclipse.ecf" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="0" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
</configurations>
</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zeroconf,generic).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zeroconf,generic).product
index 35229a676..9ab46a69e 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zeroconf,generic).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zeroconf,generic).product
@@ -22,6 +22,7 @@
</vm>
<plugins>
+ <plugin id="javax.xml"/>
<plugin id="org.apache.felix.gogo.command"/>
<plugin id="org.apache.felix.gogo.runtime"/>
<plugin id="org.apache.felix.gogo.shell"/>
@@ -39,12 +40,13 @@
<plugin id="org.eclipse.ecf.provider"/>
<plugin id="org.eclipse.ecf.provider.jmdns"/>
<plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
<plugin id="org.eclipse.equinox.concurrent"/>
<plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.event"/>
<plugin id="org.eclipse.equinox.preferences"/>
<plugin id="org.eclipse.equinox.registry"/>
<plugin id="org.eclipse.osgi"/>
@@ -52,5 +54,8 @@
<plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
</plugins>
+ <configurations>
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ </configurations>
</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zeroconf,r-osgi).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zeroconf,r-osgi).product
index 64a0976b6..8e45160a1 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zeroconf,r-osgi).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zeroconf,r-osgi).product
@@ -26,6 +26,7 @@
<plugins>
<plugin id="ch.ethz.iks.r_osgi.remote"/>
<plugin id="ch.ethz.iks.slp"/>
+ <plugin id="javax.xml"/>
<plugin id="org.apache.felix.gogo.command"/>
<plugin id="org.apache.felix.gogo.runtime"/>
<plugin id="org.apache.felix.gogo.shell"/>
@@ -43,12 +44,13 @@
<plugin id="org.eclipse.ecf.provider"/>
<plugin id="org.eclipse.ecf.provider.jmdns"/>
<plugin id="org.eclipse.ecf.provider.r_osgi"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
<plugin id="org.eclipse.equinox.concurrent"/>
<plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.event"/>
<plugin id="org.eclipse.equinox.preferences"/>
<plugin id="org.eclipse.equinox.registry"/>
<plugin id="org.eclipse.osgi"/>
@@ -57,5 +59,8 @@
<plugin id="org.objectweb.asm"/>
</plugins>
+ <configurations>
+ <plugin id="org.eclipse.equinox.event" autoStart="false" startLevel="0" />
+ </configurations>
</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zookeeper,generic).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zookeeper,generic).product
index 5759b3e4d..4bb1c6113 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zookeeper,generic).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zookeeper,generic).product
@@ -30,6 +30,7 @@
</vm>
<plugins>
+ <plugin id="javax.xml"/>
<plugin id="org.apache.felix.gogo.command"/>
<plugin id="org.apache.felix.gogo.runtime"/>
<plugin id="org.apache.felix.gogo.shell"/>
@@ -49,12 +50,13 @@
<plugin id="org.eclipse.ecf.provider"/>
<plugin id="org.eclipse.ecf.provider.remoteservice"/>
<plugin id="org.eclipse.ecf.provider.zookeeper"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
<plugin id="org.eclipse.equinox.concurrent"/>
<plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.event"/>
<plugin id="org.eclipse.equinox.preferences"/>
<plugin id="org.eclipse.equinox.registry"/>
<plugin id="org.eclipse.osgi"/>
@@ -62,5 +64,8 @@
<plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
</plugins>
+ <configurations>
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ </configurations>
</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zookeeper,r-osgi).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zookeeper,r-osgi).product
index a18c8fc64..300633f97 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zookeeper,r-osgi).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/products/Hello Service Consumer (zookeeper,r-osgi).product
@@ -29,6 +29,7 @@
<plugins>
<plugin id="ch.ethz.iks.r_osgi.remote"/>
+ <plugin id="javax.xml"/>
<plugin id="org.apache.felix.gogo.command"/>
<plugin id="org.apache.felix.gogo.runtime"/>
<plugin id="org.apache.felix.gogo.shell"/>
@@ -48,12 +49,13 @@
<plugin id="org.eclipse.ecf.provider"/>
<plugin id="org.eclipse.ecf.provider.r_osgi"/>
<plugin id="org.eclipse.ecf.provider.zookeeper"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
<plugin id="org.eclipse.equinox.concurrent"/>
<plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.event"/>
<plugin id="org.eclipse.equinox.preferences"/>
<plugin id="org.eclipse.equinox.registry"/>
<plugin id="org.eclipse.osgi"/>
@@ -62,5 +64,8 @@
<plugin id="org.objectweb.asm"/>
</plugins>
+ <configurations>
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ </configurations>
</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/src/org/eclipse/ecf/internal/examples/remoteservices/hello/consumer/HelloConsumerApplication.java b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/src/org/eclipse/ecf/internal/examples/remoteservices/hello/consumer/HelloConsumerApplication.java
index bc8fe36ff..d6ae77818 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/src/org/eclipse/ecf/internal/examples/remoteservices/hello/consumer/HelloConsumerApplication.java
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer/src/org/eclipse/ecf/internal/examples/remoteservices/hello/consumer/HelloConsumerApplication.java
@@ -10,6 +10,9 @@
*****************************************************************************/
package org.eclipse.ecf.internal.examples.remoteservices.hello.consumer;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.ecf.core.IContainerFactory;
@@ -184,7 +187,7 @@ public class HelloConsumerApplication implements IApplication,
// Call asynchronously with future
System.out.println("STARTING async remote call via future...");
- IFuture future = helloA.helloAsync(CONSUMER_NAME + " via async proxy with future");
+ Future<String> future = helloA.helloAsync(CONSUMER_NAME + " via async proxy with future");
System.out.println("LOCAL async future invocation complete");
System.out.println();
try {
@@ -194,7 +197,7 @@ public class HelloConsumerApplication implements IApplication,
Thread.sleep(200);
}
// Now it's done, so this will not block
- Object result = future.get();
+ String result = future.get();
System.out.println("COMPLETED remote call with future SUCCEEDED with result="+result);
System.out.println();
} catch (OperationCanceledException e) {
@@ -205,6 +208,10 @@ public class HelloConsumerApplication implements IApplication,
System.out.println("COMPLETED remote call with callback INTERRUPTED with exception="+e);
System.out.println();
e.printStackTrace();
+ } catch (ExecutionException e) {
+ System.out.println("COMPLETED remote call with callback INTERRUPTED with exception="+e);
+ System.out.println();
+ e.printStackTrace();
}
// Call other helloMessage method
@@ -226,7 +233,7 @@ public class HelloConsumerApplication implements IApplication,
Thread.sleep(200);
}
// Now it's done, so this will not block
- Object result = future.get();
+ String result = future.get();
System.out.println("COMPLETED remote call with future SUCCEEDED with result="+result);
System.out.println();
} catch (OperationCanceledException e) {
@@ -237,6 +244,10 @@ public class HelloConsumerApplication implements IApplication,
System.out.println("COMPLETED remote call with callback INTERRUPTED with exception="+e);
System.out.println();
e.printStackTrace();
+ } catch (ExecutionException e) {
+ System.out.println("COMPLETED remote call with callback INTERRUPTED with exception="+e);
+ System.out.println();
+ e.printStackTrace();
}
}
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer2/.gitignore b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer2/.gitignore
new file mode 100644
index 000000000..5e56e040e
--- /dev/null
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer2/.gitignore
@@ -0,0 +1 @@
+/bin
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer2/bin/org/eclipse/ecf/examples/internal/remoteservices/hello/consumer2/Activator$HelloTrackerCustomizer$1.class b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer2/bin/org/eclipse/ecf/examples/internal/remoteservices/hello/consumer2/Activator$HelloTrackerCustomizer$1.class
deleted file mode 100644
index 2621e2aca..000000000
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer2/bin/org/eclipse/ecf/examples/internal/remoteservices/hello/consumer2/Activator$HelloTrackerCustomizer$1.class
+++ /dev/null
Binary files differ
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer2/bin/org/eclipse/ecf/examples/internal/remoteservices/hello/consumer2/Activator$HelloTrackerCustomizer.class b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer2/bin/org/eclipse/ecf/examples/internal/remoteservices/hello/consumer2/Activator$HelloTrackerCustomizer.class
deleted file mode 100644
index 84486b06b..000000000
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer2/bin/org/eclipse/ecf/examples/internal/remoteservices/hello/consumer2/Activator$HelloTrackerCustomizer.class
+++ /dev/null
Binary files differ
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer2/bin/org/eclipse/ecf/examples/internal/remoteservices/hello/consumer2/Activator.class b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer2/bin/org/eclipse/ecf/examples/internal/remoteservices/hello/consumer2/Activator.class
deleted file mode 100644
index 9ed2ef43a..000000000
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer2/bin/org/eclipse/ecf/examples/internal/remoteservices/hello/consumer2/Activator.class
+++ /dev/null
Binary files differ
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer2/src/org/eclipse/ecf/examples/internal/remoteservices/hello/consumer2/Activator.java b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer2/src/org/eclipse/ecf/examples/internal/remoteservices/hello/consumer2/Activator.java
index 6a64df589..8d58e2fcb 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer2/src/org/eclipse/ecf/examples/internal/remoteservices/hello/consumer2/Activator.java
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer2/src/org/eclipse/ecf/examples/internal/remoteservices/hello/consumer2/Activator.java
@@ -10,13 +10,15 @@
*****************************************************************************/
package org.eclipse.ecf.examples.internal.remoteservices.hello.consumer2;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+
import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.ecf.examples.remoteservices.hello.HelloMessage;
import org.eclipse.ecf.examples.remoteservices.hello.IHello;
import org.eclipse.ecf.examples.remoteservices.hello.IHelloAsync;
import org.eclipse.ecf.osgi.services.distribution.IDistributionConstants;
import org.eclipse.ecf.remoteservice.IAsyncCallback;
-import org.eclipse.equinox.concurrent.future.IFuture;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Filter;
@@ -94,7 +96,7 @@ public class Activator implements BundleActivator, IDistributionConstants {
// Call asynchronously with future
System.out.println("STARTING async remote call via future...");
- IFuture future = helloA.helloAsync(CONSUMER_NAME + " via async proxy with future");
+ Future<String> future = helloA.helloAsync(CONSUMER_NAME + " via async proxy with future");
System.out.println("LOCAL async future invocation complete");
System.out.println();
try {
@@ -104,7 +106,7 @@ public class Activator implements BundleActivator, IDistributionConstants {
Thread.sleep(200);
}
// Now it's done, so this will not block
- Object result = future.get();
+ String result = future.get();
System.out.println("COMPLETED remote call with future SUCCEEDED with result="+result);
System.out.println();
} catch (OperationCanceledException e) {
@@ -115,6 +117,10 @@ public class Activator implements BundleActivator, IDistributionConstants {
System.out.println("COMPLETED remote call with callback INTERRUPTED with exception="+e);
System.out.println();
e.printStackTrace();
+ } catch (ExecutionException e) {
+ System.out.println("COMPLETED remote call with callback INTERRUPTED with exception="+e);
+ System.out.println();
+ e.printStackTrace();
}
// Call other helloMessage method
@@ -136,7 +142,7 @@ public class Activator implements BundleActivator, IDistributionConstants {
Thread.sleep(200);
}
// Now it's done, so this will not block
- Object result = future.get();
+ String result = future.get();
System.out.println("COMPLETED remote call with future SUCCEEDED with result="+result);
System.out.println();
} catch (OperationCanceledException e) {
@@ -147,10 +153,12 @@ public class Activator implements BundleActivator, IDistributionConstants {
System.out.println("COMPLETED remote call with callback INTERRUPTED with exception="+e);
System.out.println();
e.printStackTrace();
+ } catch (ExecutionException e) {
+ System.out.println("COMPLETED remote call with callback INTERRUPTED with exception="+e);
+ System.out.println();
+ e.printStackTrace();
}
-
}
-
}
public void modifiedService(ServiceReference<IHello> reference,
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.consumer/META-INF/MANIFEST.MF b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.consumer/META-INF/MANIFEST.MF
index 23f824a85..790a5863b 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.consumer/META-INF/MANIFEST.MF
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.consumer/META-INF/MANIFEST.MF
@@ -7,7 +7,7 @@ Bundle-Vendor: %bundleProvider
Bundle-RequiredExecutionEnvironment: J2SE-1.5,
J2SE-1.4,
CDC-1.1/Foundation-1.1
-Import-Package: org.eclipse.ecf.examples.remoteservices.hello;version="3.0.0",
+Import-Package: org.eclipse.ecf.examples.remoteservices.hello;version="4.0.0",
org.eclipse.ecf.remoteservice,
org.eclipse.ecf.remoteservice.events,
org.eclipse.equinox.app;version="1.0.0",
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.consumer/products/Hello Service Consumer DS (zeroconf,generic).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.consumer/products/Hello Service Consumer DS (zeroconf,generic).product
index 04f57ca56..cff17d4eb 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.consumer/products/Hello Service Consumer DS (zeroconf,generic).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.consumer/products/Hello Service Consumer DS (zeroconf,generic).product
@@ -22,6 +22,7 @@
</vm>
<plugins>
+ <plugin id="javax.xml"/>
<plugin id="org.apache.felix.gogo.command"/>
<plugin id="org.apache.felix.gogo.runtime"/>
<plugin id="org.apache.felix.gogo.shell"/>
@@ -39,13 +40,14 @@
<plugin id="org.eclipse.ecf.provider"/>
<plugin id="org.eclipse.ecf.provider.jmdns"/>
<plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
<plugin id="org.eclipse.equinox.concurrent"/>
<plugin id="org.eclipse.equinox.console"/>
<plugin id="org.eclipse.equinox.ds"/>
+ <plugin id="org.eclipse.equinox.event"/>
<plugin id="org.eclipse.equinox.preferences"/>
<plugin id="org.eclipse.equinox.registry"/>
<plugin id="org.eclipse.equinox.util"/>
@@ -66,6 +68,7 @@
<plugin id="org.eclipse.equinox.app" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
</configurations>
</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.consumer/src/org/eclipse/ecf/examples/internal/remoteservices/hello/ds/consumer/HelloClientComponent.java b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.consumer/src/org/eclipse/ecf/examples/internal/remoteservices/hello/ds/consumer/HelloClientComponent.java
index dea199bb1..89940d62b 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.consumer/src/org/eclipse/ecf/examples/internal/remoteservices/hello/ds/consumer/HelloClientComponent.java
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.consumer/src/org/eclipse/ecf/examples/internal/remoteservices/hello/ds/consumer/HelloClientComponent.java
@@ -9,6 +9,9 @@
******************************************************************************/
package org.eclipse.ecf.examples.internal.remoteservices.hello.ds.consumer;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.ecf.examples.remoteservices.hello.IHello;
@@ -58,7 +61,7 @@ public class HelloClientComponent {
// Call asynchronously with future
System.out.println("STARTING async remote call via future...");
- IFuture future = helloA.helloAsync(CONSUMER_NAME + " via async proxy with future");
+ Future<String> future = helloA.helloAsync(CONSUMER_NAME + " via async proxy with future");
System.out.println("LOCAL async future invocation complete");
System.out.println();
try {
@@ -68,7 +71,7 @@ public class HelloClientComponent {
Thread.sleep(200);
}
// Now it's done, so this will not block
- Object result = future.get();
+ String result = future.get();
System.out.println("COMPLETED remote call with future SUCCEEDED with result="+result);
System.out.println();
} catch (OperationCanceledException e) {
@@ -79,6 +82,10 @@ public class HelloClientComponent {
System.out.println("COMPLETED remote call with callback INTERRUPTED with exception="+e);
System.out.println();
e.printStackTrace();
+ } catch (ExecutionException e) {
+ System.out.println("COMPLETED remote call with callback INTERRUPTED with exception="+e);
+ System.out.println();
+ e.printStackTrace();
}
}
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.host/META-INF/MANIFEST.MF b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.host/META-INF/MANIFEST.MF
index 2e9073a46..942604730 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.host/META-INF/MANIFEST.MF
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.host/META-INF/MANIFEST.MF
@@ -2,14 +2,14 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %bundleName
Bundle-SymbolicName: org.eclipse.ecf.examples.remoteservices.hello.ds.host;singleton:=true
-Bundle-Version: 3.0.0.qualifier
+Bundle-Version: 3.1.0.qualifier
Bundle-Vendor: %bundleProvider
Bundle-RequiredExecutionEnvironment: J2SE-1.5,
J2SE-1.4,
CDC-1.1/Foundation-1.1
-Import-Package: org.eclipse.ecf.examples.remoteservices.hello;version="3.0.0",
+Import-Package: org.eclipse.ecf.examples.remoteservices.hello;version="4.0.0",
org.eclipse.equinox.app;version="1.1.0"
Service-Component: OSGI-INF/hello.xml
Bundle-Localization: bundle
Bundle-ActivationPolicy: lazy
-Require-Bundle: org.eclipse.equinox.common;bundle-version="3.6.0"
+Require-Bundle: org.eclipse.equinox.common
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.host/OSGI-INF/hello.xml b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.host/OSGI-INF/hello.xml
index 81a128631..ea0f057c6 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.host/OSGI-INF/hello.xml
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.host/OSGI-INF/hello.xml
@@ -3,7 +3,7 @@
<implementation class="org.eclipse.ecf.examples.internal.remoteservices.hello.ds.host.HelloComponent"/>
<property name="service.exported.interfaces" type="String" value="*"/>
<property name="service.exported.configs" type="String" value="ecf.generic.server"/>
- <property name="ecf.exported.containerfactoryargs" type="String" value="ecftcp://localhost:3787/server"/>
+ <property name="ecf.generic.server.id" type="String" value="ecftcp://localhost:3787/server"/>
<service>
<provide interface="org.eclipse.ecf.examples.remoteservices.hello.IHello"/>
</service>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.host/products/Hello Service DS Host (zeroconf,generic).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.host/products/Hello Service DS Host (zeroconf,generic).product
index 5183f5464..eb2a11f7f 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.host/products/Hello Service DS Host (zeroconf,generic).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.host/products/Hello Service DS Host (zeroconf,generic).product
@@ -1,14 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>
-<product name="ECF Remote Service Example DS Host" uid="org.eclipse.ecf.examples.remoteservices.hello.ds.host.product" application="org.eclipse.ecf.examples.remoteservices.hello.ds.host.HelloHostDS" version="2.0.1.qualifier" useFeatures="false" includeLaunchers="false">
+<product name="ECF Remote Service Example DS Host" uid="org.eclipse.ecf.examples.remoteservices.hello.ds.host.product" application="org.eclipse.ecf.examples.remoteservices.hello.ds.host.HelloHostDS" version="2.1.0.qualifier" useFeatures="false" includeLaunchers="false">
<configIni use="default">
</configIni>
<launcherArgs>
- <programArgs>-console -consoleLog</programArgs>
- <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+ <programArgs>-console -consoleLog
+ </programArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+ </vmArgsMac>
</launcherArgs>
<windowImages/>
@@ -24,6 +26,7 @@
</vm>
<plugins>
+ <plugin id="javax.xml"/>
<plugin id="org.apache.felix.gogo.command"/>
<plugin id="org.apache.felix.gogo.runtime"/>
<plugin id="org.apache.felix.gogo.shell"/>
@@ -42,12 +45,14 @@
<plugin id="org.eclipse.ecf.provider.jmdns"/>
<plugin id="org.eclipse.ecf.provider.remoteservice"/>
<plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice.asyncproxy" version="2.0.0"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
<plugin id="org.eclipse.equinox.concurrent"/>
<plugin id="org.eclipse.equinox.console"/>
<plugin id="org.eclipse.equinox.ds"/>
+ <plugin id="org.eclipse.equinox.event"/>
<plugin id="org.eclipse.equinox.preferences"/>
<plugin id="org.eclipse.equinox.registry"/>
<plugin id="org.eclipse.equinox.util"/>
@@ -57,14 +62,18 @@
</plugins>
<configurations>
- <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="2" />
- <plugin id="org.eclipse.ecf" autoStart="true" startLevel="1" />
- <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="1" />
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="1" />
- <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="1" />
- <plugin id="org.eclipse.equinox.app" autoStart="true" startLevel="2" />
- <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
- <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="1" />
+ <plugin id="org.eclipse.ecf.discovery" autoStart="true" startLevel="1" />
+ <plugin id="org.eclipse.ecf.osgi.services.distribution" autoStart="true" startLevel="3" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin" autoStart="true" startLevel="3" />
+ <plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy" autoStart="true" startLevel="3" />
+ <plugin id="org.eclipse.ecf.provider.jmdns" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.equinox.app" autoStart="true" startLevel="4" />
+ <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="1" />
+ <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="3" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.equinox.registry" autoStart="true" startLevel="1" />
+ <plugin id="org.eclipse.osgi" autoStart="true" startLevel="-1" />
</configurations>
</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host.rs/META-INF/MANIFEST.MF b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host.rs/META-INF/MANIFEST.MF
index a1e45f081..a3918b08b 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host.rs/META-INF/MANIFEST.MF
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host.rs/META-INF/MANIFEST.MF
@@ -15,5 +15,5 @@ Import-Package: org.eclipse.ecf.core;version="3.0.0",
org.eclipse.ecf.remoteservice,
org.osgi.framework;version="1.3.0",
org.osgi.util.tracker
-Require-Bundle: org.eclipse.equinox.common;bundle-version="3.5.0"
+Require-Bundle: org.eclipse.equinox.common
Bundle-Localization: bundle
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host.rs/products/Hello Service Host RS.product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host.rs/products/Hello Service Host RS.product
index ab199fb43..744a52b65 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host.rs/products/Hello Service Host RS.product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host.rs/products/Hello Service Host RS.product
@@ -24,6 +24,7 @@
<plugins>
<plugin id="ch.ethz.iks.r_osgi.remote"/>
+ <plugin id="javax.xml"/>
<plugin id="org.apache.felix.gogo.command"/>
<plugin id="org.apache.felix.gogo.runtime"/>
<plugin id="org.apache.felix.gogo.shell"/>
@@ -36,12 +37,12 @@
<plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
<plugin id="org.eclipse.ecf.provider"/>
<plugin id="org.eclipse.ecf.provider.r_osgi"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
- <plugin id="org.eclipse.ecf.ssl" fragment="true"/>
<plugin id="org.eclipse.equinox.common"/>
<plugin id="org.eclipse.equinox.concurrent"/>
<plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.event"/>
<plugin id="org.eclipse.equinox.registry"/>
<plugin id="org.eclipse.osgi"/>
<plugin id="org.eclipse.osgi.services"/>
@@ -51,6 +52,7 @@
<configurations>
<plugin id="org.eclipse.ecf.examples.remoteservices.hello.host.rs" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.osgi" autoStart="true" startLevel="-1" />
</configurations>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/META-INF/MANIFEST.MF b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/META-INF/MANIFEST.MF
index 7b7d39b76..ed142c040 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/META-INF/MANIFEST.MF
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %bundleName
Bundle-SymbolicName: org.eclipse.ecf.examples.remoteservices.hello.host;singleton:=true
-Bundle-Version: 3.0.0.qualifier
+Bundle-Version: 3.1.0.qualifier
Bundle-Activator: org.eclipse.ecf.internal.examples.remoteservices.hello.host.Activator
Bundle-Vendor: %bundleProvider
Bundle-RequiredExecutionEnvironment: J2SE-1.4,
@@ -10,7 +10,7 @@ Bundle-RequiredExecutionEnvironment: J2SE-1.4,
CDC-1.1/Foundation-1.1
Import-Package: org.eclipse.ecf.core;version="3.0.0",
org.eclipse.ecf.core.identity;version="3.0.0",
- org.eclipse.ecf.examples.remoteservices.hello;version="3.0.0",
+ org.eclipse.ecf.examples.remoteservices.hello;version="4.0.0",
org.eclipse.ecf.examples.remoteservices.hello.impl;version="3.0.0",
org.eclipse.ecf.osgi.services.distribution;version="1.0.0",
org.eclipse.equinox.app;version="1.0.0",
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (edef,generic).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (edef,generic).product
index 182c824f4..06140c47e 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (edef,generic).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (edef,generic).product
@@ -24,6 +24,7 @@
</vm>
<plugins>
+ <plugin id="javax.xml"/>
<plugin id="org.apache.felix.gogo.command"/>
<plugin id="org.apache.felix.gogo.runtime"/>
<plugin id="org.apache.felix.gogo.shell"/>
@@ -40,12 +41,13 @@
<plugin id="org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy"/>
<plugin id="org.eclipse.ecf.provider"/>
<plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
<plugin id="org.eclipse.equinox.concurrent"/>
<plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.event"/>
<plugin id="org.eclipse.equinox.preferences"/>
<plugin id="org.eclipse.equinox.registry"/>
<plugin id="org.eclipse.osgi"/>
@@ -56,6 +58,7 @@
<configurations>
<plugin id="org.eclipse.ecf.examples.remoteservices.hello.host" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.osgi" autoStart="true" startLevel="-1" />
</configurations>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zeroconf,generic).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zeroconf,generic).product
index 5376fe1ff..cef4d4224 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zeroconf,generic).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zeroconf,generic).product
@@ -25,6 +25,7 @@
</vm>
<plugins>
+ <plugin id="javax.xml"/>
<plugin id="org.apache.felix.gogo.command"/>
<plugin id="org.apache.felix.gogo.runtime"/>
<plugin id="org.apache.felix.gogo.shell"/>
@@ -42,15 +43,17 @@
<plugin id="org.eclipse.ecf.provider"/>
<plugin id="org.eclipse.ecf.provider.jmdns"/>
<plugin id="org.eclipse.ecf.provider.remoteservice"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
<plugin id="org.eclipse.equinox.concurrent"/>
<plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.event"/>
<plugin id="org.eclipse.equinox.preferences"/>
<plugin id="org.eclipse.equinox.registry"/>
<plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.compatibility.state" fragment="true"/>
<plugin id="org.eclipse.osgi.services"/>
<plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
</plugins>
@@ -58,6 +61,7 @@
<configurations>
<plugin id="org.eclipse.ecf.examples.remoteservices.hello.host" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.osgi" autoStart="true" startLevel="-1" />
</configurations>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zeroconf,rosgi).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zeroconf,rosgi).product
index 6b7bff3d3..fc3acbcb9 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zeroconf,rosgi).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zeroconf,rosgi).product
@@ -24,6 +24,7 @@
<plugins>
<plugin id="ch.ethz.iks.r_osgi.remote"/>
+ <plugin id="javax.xml"/>
<plugin id="org.apache.felix.gogo.command"/>
<plugin id="org.apache.felix.gogo.runtime"/>
<plugin id="org.apache.felix.gogo.shell"/>
@@ -41,19 +42,24 @@
<plugin id="org.eclipse.ecf.provider"/>
<plugin id="org.eclipse.ecf.provider.jmdns"/>
<plugin id="org.eclipse.ecf.provider.r_osgi"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
<plugin id="org.eclipse.equinox.concurrent"/>
<plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.event"/>
<plugin id="org.eclipse.equinox.preferences"/>
<plugin id="org.eclipse.equinox.registry"/>
<plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.osgi.compatibility.state" fragment="true"/>
<plugin id="org.eclipse.osgi.services"/>
<plugin id="org.eclipse.osgi.services.remoteserviceadmin"/>
<plugin id="org.objectweb.asm"/>
</plugins>
+ <configurations>
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ </configurations>
</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zookeeper,generic).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zookeeper,generic).product
index 993683f9e..4a92d5493 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zookeeper,generic).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zookeeper,generic).product
@@ -31,6 +31,7 @@
</vm>
<plugins>
+ <plugin id="javax.xml"/>
<plugin id="org.apache.felix.gogo.command"/>
<plugin id="org.apache.felix.gogo.runtime"/>
<plugin id="org.apache.felix.gogo.shell"/>
@@ -50,12 +51,13 @@
<plugin id="org.eclipse.ecf.provider"/>
<plugin id="org.eclipse.ecf.provider.remoteservice"/>
<plugin id="org.eclipse.ecf.provider.zookeeper"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
<plugin id="org.eclipse.equinox.concurrent"/>
<plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.event"/>
<plugin id="org.eclipse.equinox.preferences"/>
<plugin id="org.eclipse.equinox.registry"/>
<plugin id="org.eclipse.osgi"/>
@@ -66,6 +68,7 @@
<configurations>
<plugin id="org.eclipse.ecf.examples.remoteservices.hello.host" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.osgi" autoStart="true" startLevel="-1" />
</configurations>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zookeeper,rosgi).product b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zookeeper,rosgi).product
index 5aef240fa..ddbb404c1 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zookeeper,rosgi).product
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/products/Hello Service Host (zookeeper,rosgi).product
@@ -29,6 +29,7 @@
<plugins>
<plugin id="ch.ethz.iks.r_osgi.remote"/>
+ <plugin id="javax.xml"/>
<plugin id="org.apache.felix.gogo.command"/>
<plugin id="org.apache.felix.gogo.runtime"/>
<plugin id="org.apache.felix.gogo.shell"/>
@@ -48,12 +49,13 @@
<plugin id="org.eclipse.ecf.provider"/>
<plugin id="org.eclipse.ecf.provider.r_osgi"/>
<plugin id="org.eclipse.ecf.provider.zookeeper"/>
- <plugin id="org.eclipse.ecf.remoteservice"/>
+ <plugin id="org.eclipse.ecf.remoteservice"/> <plugin id="org.eclipse.ecf.remoteservice.asyncproxy"/>
<plugin id="org.eclipse.ecf.sharedobject"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
<plugin id="org.eclipse.equinox.concurrent"/>
<plugin id="org.eclipse.equinox.console"/>
+ <plugin id="org.eclipse.equinox.event"/>
<plugin id="org.eclipse.equinox.preferences"/>
<plugin id="org.eclipse.equinox.registry"/>
<plugin id="org.eclipse.osgi"/>
@@ -62,5 +64,8 @@
<plugin id="org.objectweb.asm"/>
</plugins>
+ <configurations>
+ <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="0" />
+ </configurations>
</product>
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/src/org/eclipse/ecf/internal/examples/remoteservices/hello/host/HelloHostApplication.java b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/src/org/eclipse/ecf/internal/examples/remoteservices/hello/host/HelloHostApplication.java
index 524de1013..0fe44903d 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/src/org/eclipse/ecf/internal/examples/remoteservices/hello/host/HelloHostApplication.java
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host/src/org/eclipse/ecf/internal/examples/remoteservices/hello/host/HelloHostApplication.java
@@ -15,6 +15,7 @@ import java.util.Hashtable;
import java.util.Properties;
import org.eclipse.ecf.examples.remoteservices.hello.IHello;
+import org.eclipse.ecf.examples.remoteservices.hello.IHelloAsync;
import org.eclipse.ecf.examples.remoteservices.hello.impl.Hello;
import org.eclipse.ecf.osgi.services.distribution.IDistributionConstants;
import org.eclipse.equinox.app.IApplication;
@@ -72,6 +73,7 @@ public class HelloHostApplication implements IApplication,
props.put(
IDistributionConstants.SERVICE_EXPORTED_CONTAINER_FACTORY_ARGUMENTS,
containerId);
+ props.put("ecf.exported.async.objectClass",new String[] { IHelloAsync.class.getName() });
// register remote service
helloRegistration = bundleContext.registerService(
IHello.class.getName(), new Hello(), props);
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello/META-INF/MANIFEST.MF b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello/META-INF/MANIFEST.MF
index e13141189..8f84a1531 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello/META-INF/MANIFEST.MF
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello/META-INF/MANIFEST.MF
@@ -2,12 +2,12 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %bundleName
Bundle-SymbolicName: org.eclipse.ecf.examples.remoteservices.hello
-Bundle-Version: 3.0.100.qualifier
+Bundle-Version: 4.0.0.qualifier
Bundle-Vendor: %bundleProvider
Bundle-RequiredExecutionEnvironment: J2SE-1.5,
J2SE-1.4,
CDC-1.1/Foundation-1.1
-Export-Package: org.eclipse.ecf.examples.remoteservices.hello;version="3.0.0",
+Export-Package: org.eclipse.ecf.examples.remoteservices.hello;version="4.0.0",
org.eclipse.ecf.examples.remoteservices.hello.impl;version="3.0.0"
Bundle-Localization: bundle
Import-Package: org.eclipse.ecf.remoteservice,
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello/src/org/eclipse/ecf/examples/remoteservices/hello/IHelloAsync.java b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello/src/org/eclipse/ecf/examples/remoteservices/hello/IHelloAsync.java
index ef2900ca2..4f71d6511 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello/src/org/eclipse/ecf/examples/remoteservices/hello/IHelloAsync.java
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.hello/src/org/eclipse/ecf/examples/remoteservices/hello/IHelloAsync.java
@@ -9,25 +9,28 @@
******************************************************************************/
package org.eclipse.ecf.examples.remoteservices.hello;
+import java.util.concurrent.Future;
+
import org.eclipse.ecf.remoteservice.IAsyncCallback;
-import org.eclipse.ecf.remoteservice.IAsyncRemoteServiceProxy;
-import org.eclipse.equinox.concurrent.future.IFuture;
/**
* @since 2.0
*/
-public interface IHelloAsync extends IAsyncRemoteServiceProxy {
+public interface IHelloAsync {
public void helloAsync(String from, IAsyncCallback<String> callback);
- public IFuture helloAsync(String from);
+ /**
+ * @since 4.0
+ */
+ public Future<String> helloAsync(String from);
/**
* @since 3.0
*/
public void helloMessageAsync(HelloMessage message, IAsyncCallback<String> callback);
/**
- * @since 3.0
+ * @since 4.0
*/
- public IFuture helloMessageAsync(HelloMessage message);
+ public Future<String> helloMessageAsync(HelloMessage message);
}
diff --git a/examples/bundles/org.eclipse.ecf.examples.remoteservices.rest.rss/META-INF/MANIFEST.MF b/examples/bundles/org.eclipse.ecf.examples.remoteservices.rest.rss/META-INF/MANIFEST.MF
index 1ef999c86..da1ed3891 100644
--- a/examples/bundles/org.eclipse.ecf.examples.remoteservices.rest.rss/META-INF/MANIFEST.MF
+++ b/examples/bundles/org.eclipse.ecf.examples.remoteservices.rest.rss/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %plugin.name
Bundle-SymbolicName: org.eclipse.ecf.examples.remoteservices.rest.rss
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 1.1.0.qualifier
Bundle-Activator: org.eclipse.ecf.remoteservices.rest.rss.Activator
Bundle-Vendor: %plugin.provider
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
@@ -10,6 +10,7 @@ Import-Package: com.sun.syndication.feed.synd;version="0.9.0",
org.eclipse.ecf.core;version="3.0.0",
org.eclipse.ecf.core.identity;version="3.0.0",
org.eclipse.ecf.remoteservice,
+ org.eclipse.ecf.remoteservice.asyncproxy;version="1.0.0",
org.eclipse.ecf.remoteservice.client,
org.eclipse.ecf.remoteservice.events,
org.eclipse.ecf.remoteservice.rest,
@@ -20,5 +21,5 @@ Import-Package: com.sun.syndication.feed.synd;version="0.9.0",
org.osgi.framework;version="1.3.0",
org.osgi.util.tracker
Bundle-ActivationPolicy: lazy
-Require-Bundle: org.eclipse.equinox.common;bundle-version="3.6.0"
+Require-Bundle: org.eclipse.equinox.common
Bundle-Localization: plugin

Back to the top