diff options
author | slewis | 2014-04-30 22:38:30 +0000 |
---|---|---|
committer | slewis | 2014-04-30 22:38:30 +0000 |
commit | 74fde0db9fbfedc833bbd0f37fb62464828e5088 (patch) | |
tree | ebca67e4a2aefcde269285c965779a215f0d2556 /examples | |
parent | d62a2788205625e63c4816323f71edbb2232fe07 (diff) | |
parent | a0a0ad4c42bcb6cedfa5d990666b24893f475845 (diff) | |
download | org.eclipse.ecf-74fde0db9fbfedc833bbd0f37fb62464828e5088.tar.gz org.eclipse.ecf-74fde0db9fbfedc833bbd0f37fb62464828e5088.tar.xz org.eclipse.ecf-74fde0db9fbfedc833bbd0f37fb62464828e5088.zip |
Merge remote-tracking branch 'origin/master' into rfc1.1
Conflicts:
osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/org/osgi/service/remoteserviceadmin/EndpointDescription$1.class
osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/org/osgi/service/remoteserviceadmin/EndpointDescription$UnmodifiableDictionary.class
osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/org/osgi/service/remoteserviceadmin/EndpointDescription.class
osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/org/osgi/service/remoteserviceadmin/EndpointListener.class
osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/org/osgi/service/remoteserviceadmin/EndpointPermission.class
osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/org/osgi/service/remoteserviceadmin/EndpointPermissionCollection.class
osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/org/osgi/service/remoteserviceadmin/ExportReference.class
osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/org/osgi/service/remoteserviceadmin/ExportRegistration.class
osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/org/osgi/service/remoteserviceadmin/ImportReference.class
osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/org/osgi/service/remoteserviceadmin/ImportRegistration.class
osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/org/osgi/service/remoteserviceadmin/RemoteServiceAdmin.class
osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/org/osgi/service/remoteserviceadmin/RemoteServiceAdminEvent.class
osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin/org/osgi/service/remoteserviceadmin/RemoteServiceAdminListener.class
Change-Id: Id7826f6ef093506da29859dd61138637d5efdf9e
Diffstat (limited to 'examples')
33 files changed, 710 insertions, 1 deletions
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 index d38931723..8408c9ac2 100644 --- 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 @@ -52,7 +52,7 @@ <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.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"/> 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(); + +} |