Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2013-01-24 07:14:31 +0000
committerslewis2013-01-24 07:14:31 +0000
commit03d63de7cfcb1097491acc5038ab417aab7ec87e (patch)
tree33ad477e565e62e60e01f7b8488a8318684ed2e1 /tooling
parent74e4eded413a6ce5aa05ccb83fd2d46e5984c687 (diff)
downloadorg.eclipse.ecf-03d63de7cfcb1097491acc5038ab417aab7ec87e.tar.gz
org.eclipse.ecf-03d63de7cfcb1097491acc5038ab417aab7ec87e.tar.xz
org.eclipse.ecf-03d63de7cfcb1097491acc5038ab417aab7ec87e.zip
Added new tooling plugin: org.eclipse.ecf.remoteservices.tooling.pde.
This plugin provides two new PDE pluginContent extensions, which show up on the new plugin wizard under examples. Two new examples are added: OSGi Remote Service Host, and OSGi Remote Service Consumer
Diffstat (limited to 'tooling')
-rw-r--r--tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/.classpath7
-rw-r--r--tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/.project34
-rw-r--r--tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/ECF Remote Service PDE Tooling.launch31
-rw-r--r--tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/META-INF/MANIFEST.MF15
-rw-r--r--tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/bin/org/eclipse/ecf/remoteservices/internal/tooling/pde/Activator.classbin0 -> 1001 bytes
-rw-r--r--tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/bin/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceConsumerExample1Template.classbin0 -> 5645 bytes
-rw-r--r--tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/bin/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceConsumerExample1Wizard.classbin0 -> 1696 bytes
-rw-r--r--tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/bin/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceHostExample1Template.classbin0 -> 5565 bytes
-rw-r--r--tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/bin/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceHostExample1Wizard.classbin0 -> 1596 bytes
-rw-r--r--tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/build.properties6
-rw-r--r--tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/icons/newconsumer.gifbin0 -> 875 bytes
-rw-r--r--tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/icons/newhost.gifbin0 -> 874 bytes
-rw-r--r--tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/plugin.properties29
-rw-r--r--tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/plugin.xml36
-rw-r--r--tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/src/org/eclipse/ecf/remoteservices/internal/tooling/pde/Activator.java50
-rw-r--r--tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/src/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceConsumerExample1Template.java125
-rw-r--r--tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/src/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceConsumerExample1Wizard.java30
-rw-r--r--tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/src/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceHostExample1Template.java125
-rw-r--r--tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/src/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceHostExample1Wizard.java30
-rw-r--r--tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/templates/helloRemoteServiceConsumerExample1/java/$activator$.java164
-rw-r--r--tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/templates/helloRemoteServiceHostExample1/java/$activator$.java52
22 files changed, 741 insertions, 0 deletions
diff --git a/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/.classpath b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/.classpath
new file mode 100644
index 000000000..ad32c83a7
--- /dev/null
+++ b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/.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.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/.project b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/.project
new file mode 100644
index 000000000..49f6ff6d4
--- /dev/null
+++ b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ecf.remoteservices.tooling.pde</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.api.tools.apiAnalysisBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+ </natures>
+</projectDescription>
diff --git a/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/.settings/org.eclipse.jdt.core.prefs b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..c537b6306
--- /dev/null
+++ b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/.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.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/ECF Remote Service PDE Tooling.launch b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/ECF Remote Service PDE Tooling.launch
new file mode 100644
index 000000000..aa0f3799d
--- /dev/null
+++ b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/ECF Remote Service PDE Tooling.launch
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="true"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="false"/>
+<booleanAttribute key="clearws" value="false"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/ECF Remote Service PDE Tooling"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="deselected_workspace_plugins" value="ch.ethz.iks.r_osgi.remote,ch.ethz.iks.slp,com.composent.simulation,com.twitter,edu.emory.mathcs.backport,org.apache.hadoop.zookeeper,org.apache.httpcomponents.httpclient,org.apache.httpcomponents.httpcore,org.apache.log4j,org.apache.ws.commons.util,org.apache.xmlrpc,org.eclipse.ecf.console,org.eclipse.ecf.datashare,org.eclipse.ecf.discovery.ui,org.eclipse.ecf.discovery.ui.browser,org.eclipse.ecf.discovery.ui.edit,org.eclipse.ecf.discovery.ui.model,org.eclipse.ecf.discovery.ui.properties,org.eclipse.ecf.discovery.ui.properties.tabbed,org.eclipse.ecf.discovery.ui.userinput,org.eclipse.ecf.doc,org.eclipse.ecf.docshare,org.eclipse.ecf.example.clients,org.eclipse.ecf.example.collab,org.eclipse.ecf.example.collab.editor,org.eclipse.ecf.examples.datashare.app,org.eclipse.ecf.examples.eventadmin.app,org.eclipse.ecf.examples.loadbalancing,org.eclipse.ecf.examples.loadbalancing.consumer,org.eclipse.ecf.examples.loadbalancing.ds.consumer,org.eclipse.ecf.examples.loadbalancing.server,org.eclipse.ecf.examples.loadbalancing.servicehost,org.eclipse.ecf.examples.provider.remoteservice,org.eclipse.ecf.examples.provider.trivial,org.eclipse.ecf.examples.remoteservice.restlet.hello,org.eclipse.ecf.examples.remoteservice.restlet.hello.consumer,org.eclipse.ecf.examples.remoteservice.restlet.hello.consumer.edef,org.eclipse.ecf.examples.remoteservice.restlet.hello.host,org.eclipse.ecf.examples.remoteservices.client,org.eclipse.ecf.examples.remoteservices.common,org.eclipse.ecf.examples.remoteservices.hello.consumer,org.eclipse.ecf.examples.remoteservices.hello.consumer.edef,org.eclipse.ecf.examples.remoteservices.hello.consumer.rs,org.eclipse.ecf.examples.remoteservices.hello.ds.consumer,org.eclipse.ecf.examples.remoteservices.hello.ds.host,org.eclipse.ecf.examples.remoteservices.hello.host,org.eclipse.ecf.examples.remoteservices.hello.host.rs,org.eclipse.ecf.examples.remoteservices.rest.rss,org.eclipse.ecf.examples.updatesite.client,org.eclipse.ecf.examples.updatesite.server,org.eclipse.ecf.filetransfer,org.eclipse.ecf.filetransfer.ui,org.eclipse.ecf.presence,org.eclipse.ecf.presence.bot,org.eclipse.ecf.presence.bot.kosmos,org.eclipse.ecf.presence.collab.ui,org.eclipse.ecf.presence.ui,org.eclipse.ecf.protocol.bittorrent,org.eclipse.ecf.protocol.msn,org.eclipse.ecf.provider.bittorrent,org.eclipse.ecf.provider.bittorrent.ui,org.eclipse.ecf.provider.datashare,org.eclipse.ecf.provider.datashare.nio,org.eclipse.ecf.provider.discovery,org.eclipse.ecf.provider.dnssd,org.eclipse.ecf.provider.endpointdescription.localdiscovery,org.eclipse.ecf.provider.filetransfer,org.eclipse.ecf.provider.filetransfer.efs,org.eclipse.ecf.provider.filetransfer.httpclient,org.eclipse.ecf.provider.filetransfer.httpclient.ssl,org.eclipse.ecf.provider.filetransfer.httpclient4,org.eclipse.ecf.provider.filetransfer.httpclient4.ssl,org.eclipse.ecf.provider.filetransfer.scp,org.eclipse.ecf.provider.filetransfer.ssl,org.eclipse.ecf.provider.irc,org.eclipse.ecf.provider.irc.bot,org.eclipse.ecf.provider.irc.ui,org.eclipse.ecf.provider.jslp,org.eclipse.ecf.provider.local,org.eclipse.ecf.provider.msn,org.eclipse.ecf.provider.msn.ui,org.eclipse.ecf.provider.r_osgi,org.eclipse.ecf.provider.restlet,org.eclipse.ecf.provider.rss,org.eclipse.ecf.provider.twitter,org.eclipse.ecf.provider.ui,org.eclipse.ecf.provider.xmpp,org.eclipse.ecf.provider.xmpp.datashare,org.eclipse.ecf.provider.xmpp.remoteservice,org.eclipse.ecf.provider.xmpp.ui,org.eclipse.ecf.provider.zookeeper,org.eclipse.ecf.remoteservice.apt.java6,org.eclipse.ecf.remoteservice.eventadmin,org.eclipse.ecf.remoteservice.rest,org.eclipse.ecf.remoteservice.rest.synd,org.eclipse.ecf.remoteservice.rpc,org.eclipse.ecf.remoteservice.soap,org.eclipse.ecf.remoteservice.tm.restlet,org.eclipse.ecf.remoteservice.ui,org.eclipse.ecf.remoteservice.ui.dosgi,org.eclipse.ecf.server,org.eclipse.ecf.server.generic,org.eclipse.ecf.ssl,org.eclipse.ecf.storage,org.eclipse.ecf.sync,org.eclipse.ecf.telephony.call,org.eclipse.ecf.telephony.call.ui,org.eclipse.ecf.tests,org.eclipse.ecf.tests.apache.httpclient.server,org.eclipse.ecf.tests.datashare,org.eclipse.ecf.tests.discovery,org.eclipse.ecf.tests.filetransfer,org.eclipse.ecf.tests.filetransfer.httpclient,org.eclipse.ecf.tests.filetransfer.httpclient4,org.eclipse.ecf.tests.filetransfer.httpserver,org.eclipse.ecf.tests.filetransfer.jreprovider,org.eclipse.ecf.tests.httpservice.util,org.eclipse.ecf.tests.osgi.services.distribution,org.eclipse.ecf.tests.osgi.services.distribution.generic,org.eclipse.ecf.tests.osgi.services.distribution.r-osgi,org.eclipse.ecf.tests.osgi.services.remoteserviceadmin,org.eclipse.ecf.tests.osgi.services.remoteserviceadmin.generic,org.eclipse.ecf.tests.presence,org.eclipse.ecf.tests.protocol.msn,org.eclipse.ecf.tests.provider.datashare.nio,org.eclipse.ecf.tests.provider.discovery,org.eclipse.ecf.tests.provider.dnssd,org.eclipse.ecf.tests.provider.filetransfer.efs,org.eclipse.ecf.tests.provider.filetransfer.scp,org.eclipse.ecf.tests.provider.filetransfer.xmpp,org.eclipse.ecf.tests.provider.jmdns,org.eclipse.ecf.tests.provider.jslp,org.eclipse.ecf.tests.provider.local,org.eclipse.ecf.tests.provider.xmpp,org.eclipse.ecf.tests.provider.zookeeper,org.eclipse.ecf.tests.remoteservice,org.eclipse.ecf.tests.remoteservice.generic,org.eclipse.ecf.tests.remoteservice.r-osgi,org.eclipse.ecf.tests.remoteservice.rest,org.eclipse.ecf.tests.remoteservice.rpc,org.eclipse.ecf.tests.server.generic,org.eclipse.ecf.tests.servicefactory,org.eclipse.ecf.tests.sharedobject,org.eclipse.ecf.tests.storage,org.eclipse.ecf.tests.sync,org.eclipse.ecf.ui,org.eclipse.ecf.ui.capabilities,org.eclipse.emf,org.eclipse.emf.common,org.eclipse.emf.common.ui,org.eclipse.emf.ecore,org.eclipse.emf.ecore.change,org.eclipse.emf.edit,org.eclipse.emf.edit.ui,org.eclipse.equinox.p2.artifact.repository,org.eclipse.equinox.p2.core,org.eclipse.equinox.p2.director,org.eclipse.equinox.p2.engine,org.eclipse.equinox.p2.metadata,org.eclipse.equinox.p2.metadata.repository,org.eclipse.equinox.transforms.xslt,org.eclipse.equinox.transforms.xslt.plugin,org.eclipse.help.base,org.eclipse.juno.tests,org.eclipse.juno.tools,org.eclipse.team.ecf.core,org.eclipse.team.ecf.ui,org.example.ecf,org.example.ecf.client,org.example.ecf.server,org.jdom,org.jivesoftware.smack,org.json,org.xbill.dns,test2"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../runtime-ECFRemoteServicePDETooling"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -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="-Xms40m -Xmx384m"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<stringAttribute key="selected_target_plugins" value="com.google.gson@default:default,com.ibm.icu@default:default,com.jcraft.jsch@default:default,com.sun.el@default:default,com.sun.syndication@default:default,javax.el@default:default,javax.servlet.jsp@default:default,javax.servlet@default:default,org.apache.ant@default:default,org.apache.commons.codec@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.lang@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.jasper.glassfish@default:default,org.apache.lucene.analysis@default:default,org.apache.lucene.core@default:default,org.apache.lucene@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.ant.ui@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare.win32@default:default,org.eclipse.compare@default:default,org.eclipse.core.boot@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86_64@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.cvs@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,org.eclipse.egit.core@default:default,org.eclipse.egit.doc@default:default,org.eclipse.egit.github.core@default:default,org.eclipse.egit.import@default:default,org.eclipse.egit.mylyn.ui@default:default,org.eclipse.egit.ui@default:default,org.eclipse.egit@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@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.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.equinox.launcher.win32.win32.x86_64@default:false,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.ql@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.transport.ecf@default:default,org.eclipse.equinox.p2.ui.importexport@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security.win32.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.help.appserver@default:default,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help.webapp@default:default,org.eclipse.help@default:default,org.eclipse.jdt.annotation@default:default,org.eclipse.jdt.apt.core@default:default,org.eclipse.jdt.apt.pluggable.core@default:default,org.eclipse.jdt.apt.ui@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.doc.isv@default:default,org.eclipse.jdt.doc.user@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jdt.junit4.runtime@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.jdt@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.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.jgit.iplog@default:default,org.eclipse.jgit.pgm@default:default,org.eclipse.jgit.ui@default:default,org.eclipse.jgit@default:default,org.eclipse.jsch.core@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.mylyn.commons.core@default:default,org.eclipse.mylyn.commons.identity.core@default:default,org.eclipse.mylyn.commons.identity@default:default,org.eclipse.mylyn.commons.net@default:default,org.eclipse.mylyn.commons.notifications.core@default:default,org.eclipse.mylyn.commons.notifications.feed@default:default,org.eclipse.mylyn.commons.notifications.ui@default:default,org.eclipse.mylyn.commons.notifications@default:default,org.eclipse.mylyn.commons.repositories.core@default:default,org.eclipse.mylyn.commons.repositories.ui@default:default,org.eclipse.mylyn.commons.repositories@default:default,org.eclipse.mylyn.commons.screenshots@default:default,org.eclipse.mylyn.commons.team@default:default,org.eclipse.mylyn.commons.ui@default:default,org.eclipse.mylyn.commons.workbench@default:default,org.eclipse.mylyn.context.core@default:default,org.eclipse.mylyn.context.tasks.ui@default:default,org.eclipse.mylyn.context.ui@default:default,org.eclipse.mylyn.discovery.core@default:default,org.eclipse.mylyn.discovery.ui@default:default,org.eclipse.mylyn.github.core@default:default,org.eclipse.mylyn.github.doc@default:default,org.eclipse.mylyn.github.ui@default:default,org.eclipse.mylyn.monitor.core@default:default,org.eclipse.mylyn.monitor.ui@default:default,org.eclipse.mylyn.resources.ui@default:default,org.eclipse.mylyn.tasks.core@default:default,org.eclipse.mylyn.tasks.index.core@default:default,org.eclipse.mylyn.tasks.index.ui@default:default,org.eclipse.mylyn.tasks.search@default:default,org.eclipse.mylyn.tasks.ui@default:default,org.eclipse.mylyn.team.ui@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.api.tools.ui@default:default,org.eclipse.pde.api.tools@default:default,org.eclipse.pde.build@default:default,org.eclipse.pde.core@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.pde.ds.core@default:default,org.eclipse.pde.ds.ui@default:default,org.eclipse.pde.junit.runtime@default:default,org.eclipse.pde.launching@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.pde.ua.core@default:default,org.eclipse.pde.ua.ui@default:default,org.eclipse.pde.ui.templates@default:default,org.eclipse.pde.ui@default:default,org.eclipse.pde@default:default,org.eclipse.platform.doc.isv@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.platform@default:default,org.eclipse.rcp@default:default,org.eclipse.sdk@default:default,org.eclipse.search@default:default,org.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.team.cvs.core@default:default,org.eclipse.team.cvs.ssh2@default:default,org.eclipse.team.cvs.ui@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.net@default:default,org.eclipse.ui.presentations.r21@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench.compatibility@default:false,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.update.configurator@3:true,org.eclipse.update.core.win32@default:false,org.eclipse.update.core@default:default,org.eclipse.update.scheduler@default:default,org.eclipse.update.ui@default:default,org.hamcrest.core@default:default,org.jdom@default:default,org.junit*3.8.2.v3_8_2_v20100427-1100@default:default,org.junit*4.10.0.v4_10_0_v20120426-0900@default:default,org.junit4@default:default,org.kohsuke.args4j@default:default,org.objectweb.asm@default:default,org.osgi.compendium@default:default,org.osgi.core@default:default,org.restlet.ext.osgi@default:default,org.restlet.ext.servlet@default:default,org.restlet@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="com.sun.syndication@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.logging@default:default,org.eclipse.ecf.discovery@default:default,org.eclipse.ecf.examples.remoteservices.hello.consumer2@default:default,org.eclipse.ecf.examples.remoteservices.hello@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.remoteservices.tooling.pde@default:default,org.eclipse.ecf.sharedobject@default:default,org.eclipse.ecf@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.osgi.services.remoteserviceadmin@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+<booleanAttribute key="useProduct" value="true"/>
+</launchConfiguration>
diff --git a/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/META-INF/MANIFEST.MF b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..9003585da
--- /dev/null
+++ b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %plugin.name
+Bundle-SymbolicName: org.eclipse.ecf.remoteservices.tooling.pde;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.eclipse.ecf.remoteservices.internal.tooling.pde.Activator
+Bundle-Vendor: %plugin.provider
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.pde.ui;bundle-version="3.7.1",
+ org.eclipse.core.resources;bundle-version="3.8.1"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Bundle-Localization: plugin
+Import-Package: org.eclipse.pde.core.plugin
diff --git a/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/bin/org/eclipse/ecf/remoteservices/internal/tooling/pde/Activator.class b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/bin/org/eclipse/ecf/remoteservices/internal/tooling/pde/Activator.class
new file mode 100644
index 000000000..d954922c7
--- /dev/null
+++ b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/bin/org/eclipse/ecf/remoteservices/internal/tooling/pde/Activator.class
Binary files differ
diff --git a/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/bin/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceConsumerExample1Template.class b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/bin/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceConsumerExample1Template.class
new file mode 100644
index 000000000..8ff85daa9
--- /dev/null
+++ b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/bin/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceConsumerExample1Template.class
Binary files differ
diff --git a/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/bin/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceConsumerExample1Wizard.class b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/bin/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceConsumerExample1Wizard.class
new file mode 100644
index 000000000..5572460e6
--- /dev/null
+++ b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/bin/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceConsumerExample1Wizard.class
Binary files differ
diff --git a/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/bin/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceHostExample1Template.class b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/bin/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceHostExample1Template.class
new file mode 100644
index 000000000..277a08a89
--- /dev/null
+++ b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/bin/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceHostExample1Template.class
Binary files differ
diff --git a/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/bin/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceHostExample1Wizard.class b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/bin/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceHostExample1Wizard.class
new file mode 100644
index 000000000..29ebc04b0
--- /dev/null
+++ b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/bin/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceHostExample1Wizard.class
Binary files differ
diff --git a/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/build.properties b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/build.properties
new file mode 100644
index 000000000..30b2fc40b
--- /dev/null
+++ b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.properties,\
+ plugin.xml
diff --git a/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/icons/newconsumer.gif b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/icons/newconsumer.gif
new file mode 100644
index 000000000..ef2c5fd71
--- /dev/null
+++ b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/icons/newconsumer.gif
Binary files differ
diff --git a/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/icons/newhost.gif b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/icons/newhost.gif
new file mode 100644
index 000000000..6ef969084
--- /dev/null
+++ b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/icons/newhost.gif
Binary files differ
diff --git a/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/plugin.properties b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/plugin.properties
new file mode 100644
index 000000000..6430f9d99
--- /dev/null
+++ b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/plugin.properties
@@ -0,0 +1,29 @@
+############################################################################
+# Copyright (c) 2013 Composent Inc. and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+############################################################################
+plugin.name=ECF Remote Services PDE Tooling
+plugin.provider=Eclipse.org - ECF
+
+pluginContent.helloHostService.name=OSGi Remote Service Host Example
+pluginContent.helloHostService.description=\
+<p>This wizard creates and registers an <b>IHello</b> OSGi Remote Service.</p>\
+<p><b>Imports Used</b></p>\
+<li>org.osgi.framework</li>\
+<li>org.eclipse.ecf.osgi.services.distribution</li>\
+<li>org.eclipse.ecf.examples.remoteservices.hello</li>
+
+pluginContent.helloConsumerService.name=OSGi Remote Service Consumer Example
+pluginContent.helloConsumerService.description=\
+<p>This wizard creates a ServiceTracker to discover <b>IHello</b> remote services.</p>\
+<p><b>Imports Used</b></p>\
+<li>org.osgi.framework</li>\
+<li>org.eclipse.ecf.osgi.services.distribution</li>\
+<li>org.eclipse.ecf.examples.remoteservices.hello</li>
+<li>org.eclipse.ecf.remoteservice</li>
+<li>org.eclipse.equinox.concurrent.future</li>
+<li>org.osgi.util.tracker</li>
diff --git a/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/plugin.xml b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/plugin.xml
new file mode 100644
index 000000000..3a3ff5e4a
--- /dev/null
+++ b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/plugin.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.pde.ui.pluginContent">
+ <wizard
+ class="org.eclipse.ecf.remoteservices.internal.tooling.pde.RemoteServiceHostExample1Wizard"
+ icon="icons/newhost.gif"
+ id="org.eclipse.ecf.remoteservices.tooling.pde.helloRemoteServiceHostExample1"
+ java="true"
+ name="%pluginContent.helloHostService.name"
+ pureOSGi="true"
+ rcp="false"
+ requiresActivator="true"
+ ui-content="false">
+ <description>
+ %pluginContent.helloHostService.description
+ </description>
+ </wizard>
+ <wizard
+ class="org.eclipse.ecf.remoteservices.internal.tooling.pde.RemoteServiceConsumerExample1Wizard"
+ icon="icons/newconsumer.gif"
+ id="org.eclipse.ecf.remoteservices.tooling.pde.helloRemoteServiceConsumerExample1"
+ java="true"
+ name="%pluginContent.helloConsumerService.name"
+ pureOSGi="true"
+ rcp="false"
+ requiresActivator="true"
+ ui-content="false">
+ <description>
+ %pluginContent.helloConsumerService.description
+ </description>
+ </wizard>
+ </extension>
+
+</plugin>
diff --git a/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/src/org/eclipse/ecf/remoteservices/internal/tooling/pde/Activator.java b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/src/org/eclipse/ecf/remoteservices/internal/tooling/pde/Activator.java
new file mode 100644
index 000000000..358389113
--- /dev/null
+++ b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/src/org/eclipse/ecf/remoteservices/internal/tooling/pde/Activator.java
@@ -0,0 +1,50 @@
+package org.eclipse.ecf.remoteservices.internal.tooling.pde;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.ecf.remoteservices.tooling.pde"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/src/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceConsumerExample1Template.java b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/src/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceConsumerExample1Template.java
new file mode 100644
index 000000000..7de6bc0cc
--- /dev/null
+++ b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/src/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceConsumerExample1Template.java
@@ -0,0 +1,125 @@
+package org.eclipse.ecf.remoteservices.internal.tooling.pde;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Locale;
+import java.util.ResourceBundle;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.pde.core.plugin.IPluginModelBase;
+import org.eclipse.pde.core.plugin.IPluginReference;
+import org.eclipse.pde.ui.IFieldData;
+import org.eclipse.pde.ui.templates.OptionTemplateSection;
+import org.osgi.framework.Bundle;
+
+public class RemoteServiceConsumerExample1Template extends OptionTemplateSection {
+
+ private String packageName;
+
+ public RemoteServiceConsumerExample1Template() {
+ setPageCount(1);
+ addOption("consumerName", "User Name", System.getProperty("user.name"), 0);
+ }
+
+ public void addPages(Wizard wizard) {
+ WizardPage page = createPage(0, "org.eclipse.pde.doc.user.rcp_mail");
+ page.setTitle("Hello Remote Service Consumer");
+ page.setDescription("This template creates a Hello remote service consumer");
+ wizard.addPage(page);
+ markPagesAdded();
+ }
+
+ public URL getTemplateLocation() {
+ Bundle b = Activator.getDefault().getBundle();
+ String path = "/templates/"+getSectionId();
+ URL url = b.getEntry(path);
+ if (url != null)
+ try {
+ return new URL(getInstallURL(), path);
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public String getSectionId() {
+ return "helloRemoteServiceConsumerExample1"; //$NON-NLS-1$
+ }
+
+ protected void updateModel(IProgressMonitor monitor) {
+ setManifestHeader("Require-Bundle", "org.eclipse.equinox.common");
+ }
+
+ public String getUsedExtensionPoint() {
+ return null;
+ }
+
+ public boolean isDependentOnParentWizard() {
+ return true;
+ }
+
+ public int getNumberOfWorkUnits() {
+ return super.getNumberOfWorkUnits() + 1;
+ }
+
+ public IPluginReference[] getDependencies(String schemaVersion) {
+ return new IPluginReference[0];
+ }
+
+ protected String getFormattedPackageName(String id) {
+ StringBuffer buffer = new StringBuffer();
+ for (int i = 0; i < id.length(); i++) {
+ char ch = id.charAt(i);
+ if (buffer.length() == 0) {
+ if (Character.isJavaIdentifierStart(ch))
+ buffer.append(Character.toLowerCase(ch));
+ } else {
+ if (Character.isJavaIdentifierPart(ch) || ch == '.')
+ buffer.append(ch);
+ }
+ }
+ return buffer.toString().toLowerCase(Locale.ENGLISH);
+ }
+
+
+ protected void initializeFields(IFieldData data) {
+ // In a new project wizard, we don't know this yet - the
+ // model has not been created
+ String packageName = getFormattedPackageName(data.getId());
+ initializeOption(KEY_PACKAGE_NAME, packageName);
+ this.packageName = getFormattedPackageName(data.getId());
+ }
+
+ public void initializeFields(IPluginModelBase model) {
+ String id = model.getPluginBase().getId();
+ String packageName = getFormattedPackageName(id);
+ initializeOption(KEY_PACKAGE_NAME, packageName);
+ this.packageName = getFormattedPackageName(id);
+ }
+
+ public String getStringOption(String name) {
+ if (name.equals(KEY_PACKAGE_NAME)) {
+ return packageName;
+ }
+ return super.getStringOption(name);
+ }
+
+ @Override
+ public String[] getNewFiles() {
+ return new String[0];
+ }
+
+ @Override
+ protected URL getInstallURL() {
+ return Activator.getDefault().getBundle().getEntry("/");
+ }
+
+ @Override
+ protected ResourceBundle getPluginResourceBundle() {
+ return Platform.getResourceBundle(Activator.getDefault().getBundle());
+ }
+
+}
diff --git a/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/src/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceConsumerExample1Wizard.java b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/src/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceConsumerExample1Wizard.java
new file mode 100644
index 000000000..7f799a3d3
--- /dev/null
+++ b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/src/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceConsumerExample1Wizard.java
@@ -0,0 +1,30 @@
+package org.eclipse.ecf.remoteservices.internal.tooling.pde;
+
+import org.eclipse.pde.core.plugin.IPluginReference;
+import org.eclipse.pde.ui.IFieldData;
+import org.eclipse.pde.ui.IPluginContentWizard;
+import org.eclipse.pde.ui.templates.ITemplateSection;
+import org.eclipse.pde.ui.templates.NewPluginTemplateWizard;
+
+public class RemoteServiceConsumerExample1Wizard extends NewPluginTemplateWizard implements
+ IPluginContentWizard {
+
+ public void init(IFieldData data) {
+ super.init(data);
+ setWindowTitle("Remote Services Consumer Example Wizard");
+ }
+
+ public ITemplateSection[] createTemplateSections() {
+ return new ITemplateSection[] {new RemoteServiceConsumerExample1Template()};
+ }
+
+ public String[] getImportPackages() {
+ return new String[] { "org.eclipse.ecf.osgi.services.distribution","org.eclipse.ecf.examples.remoteservices.hello","org.osgi.util.tracker","org.eclipse.ecf.remoteservice","org.eclipse.equinox.concurrent.future" };
+ }
+
+ public IPluginReference[] getDependencies(String schemaVersion) {
+ return new IPluginReference[0];
+ }
+
+}
+
diff --git a/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/src/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceHostExample1Template.java b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/src/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceHostExample1Template.java
new file mode 100644
index 000000000..b4dcbc8c0
--- /dev/null
+++ b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/src/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceHostExample1Template.java
@@ -0,0 +1,125 @@
+package org.eclipse.ecf.remoteservices.internal.tooling.pde;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Locale;
+import java.util.ResourceBundle;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.pde.core.plugin.IPluginModelBase;
+import org.eclipse.pde.core.plugin.IPluginReference;
+import org.eclipse.pde.ui.IFieldData;
+import org.eclipse.pde.ui.templates.OptionTemplateSection;
+import org.osgi.framework.Bundle;
+
+public class RemoteServiceHostExample1Template extends OptionTemplateSection {
+
+ private String packageName;
+
+ public RemoteServiceHostExample1Template() {
+ setPageCount(1);
+ addOption("containerType", "service.exported.configs", "ecf.generic.server", 0);
+ addOption("containerId", "ECF Generic Server URL", "ecftcp://localhost:3282/server", 0);
+ }
+
+ public void addPages(Wizard wizard) {
+ WizardPage page = createPage(0, "org.eclipse.pde.doc.user.rcp_mail");
+ page.setTitle("Hello Remote Service Host");
+ page.setDescription("This template creates and exports a Hello remote service");
+ wizard.addPage(page);
+ markPagesAdded();
+ }
+
+ public URL getTemplateLocation() {
+ Bundle b = Activator.getDefault().getBundle();
+ String path = "/templates/"+getSectionId();
+ URL url = b.getEntry(path);
+ if (url != null)
+ try {
+ return new URL(getInstallURL(), path);
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public String getSectionId() {
+ return "helloRemoteServiceHostExample1"; //$NON-NLS-1$
+ }
+
+ protected void updateModel(IProgressMonitor monitor) {
+ }
+
+ public String getUsedExtensionPoint() {
+ return null;
+ }
+
+ public boolean isDependentOnParentWizard() {
+ return true;
+ }
+
+ public int getNumberOfWorkUnits() {
+ return super.getNumberOfWorkUnits() + 1;
+ }
+
+ public IPluginReference[] getDependencies(String schemaVersion) {
+ return new IPluginReference[0];
+ }
+
+ protected String getFormattedPackageName(String id) {
+ StringBuffer buffer = new StringBuffer();
+ for (int i = 0; i < id.length(); i++) {
+ char ch = id.charAt(i);
+ if (buffer.length() == 0) {
+ if (Character.isJavaIdentifierStart(ch))
+ buffer.append(Character.toLowerCase(ch));
+ } else {
+ if (Character.isJavaIdentifierPart(ch) || ch == '.')
+ buffer.append(ch);
+ }
+ }
+ return buffer.toString().toLowerCase(Locale.ENGLISH);
+ }
+
+
+ protected void initializeFields(IFieldData data) {
+ // In a new project wizard, we don't know this yet - the
+ // model has not been created
+ String packageName = getFormattedPackageName(data.getId());
+ initializeOption(KEY_PACKAGE_NAME, packageName);
+ this.packageName = getFormattedPackageName(data.getId());
+ }
+
+ public void initializeFields(IPluginModelBase model) {
+ String id = model.getPluginBase().getId();
+ String packageName = getFormattedPackageName(id);
+ initializeOption(KEY_PACKAGE_NAME, packageName);
+ this.packageName = getFormattedPackageName(id);
+ }
+
+ public String getStringOption(String name) {
+ if (name.equals(KEY_PACKAGE_NAME)) {
+ return packageName;
+ }
+ return super.getStringOption(name);
+ }
+
+ @Override
+ public String[] getNewFiles() {
+ return new String[0];
+ }
+
+ @Override
+ protected URL getInstallURL() {
+ return Activator.getDefault().getBundle().getEntry("/");
+ }
+
+ @Override
+ protected ResourceBundle getPluginResourceBundle() {
+ return Platform.getResourceBundle(Activator.getDefault().getBundle());
+ }
+
+}
diff --git a/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/src/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceHostExample1Wizard.java b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/src/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceHostExample1Wizard.java
new file mode 100644
index 000000000..1e137a49b
--- /dev/null
+++ b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/src/org/eclipse/ecf/remoteservices/internal/tooling/pde/RemoteServiceHostExample1Wizard.java
@@ -0,0 +1,30 @@
+package org.eclipse.ecf.remoteservices.internal.tooling.pde;
+
+import org.eclipse.pde.core.plugin.IPluginReference;
+import org.eclipse.pde.ui.IFieldData;
+import org.eclipse.pde.ui.IPluginContentWizard;
+import org.eclipse.pde.ui.templates.ITemplateSection;
+import org.eclipse.pde.ui.templates.NewPluginTemplateWizard;
+
+public class RemoteServiceHostExample1Wizard extends NewPluginTemplateWizard implements
+ IPluginContentWizard {
+
+ public void init(IFieldData data) {
+ super.init(data);
+ setWindowTitle("Remote Services Host Example Wizard");
+ }
+
+ public ITemplateSection[] createTemplateSections() {
+ return new ITemplateSection[] {new RemoteServiceHostExample1Template()};
+ }
+
+ public String[] getImportPackages() {
+ return new String[] { "org.eclipse.ecf.osgi.services.distribution","org.eclipse.ecf.examples.remoteservices.hello","org.eclipse.ecf.remoteservice" };
+ }
+
+ public IPluginReference[] getDependencies(String schemaVersion) {
+ return new IPluginReference[0];
+ }
+
+}
+
diff --git a/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/templates/helloRemoteServiceConsumerExample1/java/$activator$.java b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/templates/helloRemoteServiceConsumerExample1/java/$activator$.java
new file mode 100644
index 000000000..bbfd82651
--- /dev/null
+++ b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/templates/helloRemoteServiceConsumerExample1/java/$activator$.java
@@ -0,0 +1,164 @@
+package $packageName$;
+
+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;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
+import org.osgi.util.tracker.ServiceTracker;
+import org.osgi.util.tracker.ServiceTrackerCustomizer;
+
+@SuppressWarnings("restriction")
+public class Activator implements BundleActivator, IDistributionConstants {
+
+ private static BundleContext context;
+
+ private ServiceTracker<IHello, IHello> helloServiceTracker;
+
+ private static final String CONSUMER_NAME = "$consumerName$";
+
+ public void start(BundleContext bundleContext) throws Exception {
+ Activator.context = bundleContext;
+ helloServiceTracker = new ServiceTracker<IHello, IHello>(context,
+ createFilter(), new HelloTrackerCustomizer());
+ helloServiceTracker.open();
+ }
+
+ private Filter createFilter() throws InvalidSyntaxException {
+ return context.createFilter("(&("
+ + org.osgi.framework.Constants.OBJECTCLASS + "="
+ + IHello.class.getName() + ")(" + SERVICE_IMPORTED + "=*))");
+ }
+
+ class HelloTrackerCustomizer implements
+ ServiceTrackerCustomizer<IHello, IHello> {
+
+ public IHello addingService(ServiceReference<IHello> reference) {
+
+ IHello proxy = context.getService(reference);
+
+ useHelloService(proxy);
+
+ return proxy;
+ }
+
+ private void useHelloService(IHello proxy) {
+ System.out.println("STARTING remote call via proxy...");
+ proxy.hello(CONSUMER_NAME+" via proxy");
+ System.out.println("COMPLETED remote call via proxy");
+ System.out.println();
+ // Call other helloMessage method
+ System.out.println("STARTING remote call via proxy...");
+ proxy.helloMessage(new HelloMessage(CONSUMER_NAME+" via proxy","howdy"));
+ System.out.println("COMPLETED remote call via proxy");
+ System.out.println();
+
+ // If the proxy is also an instance of IHelloAsync then use
+ // this asynchronous interface to invoke methods asynchronously
+ if (proxy instanceof IHelloAsync) {
+ IHelloAsync helloA = (IHelloAsync) proxy;
+ // Create callback for use in IHelloAsync
+ IAsyncCallback<String> callback = new IAsyncCallback<String>() {
+ public void onSuccess(String result) {
+ System.out.println("COMPLETED remote call with callback SUCCESS with result="+result);
+ System.out.println();
+ }
+ public void onFailure(Throwable t) {
+ System.out.println("COMPLETED remote call with callback FAILED with exception="+t);
+ System.out.println();
+ }
+ };
+
+ // Call asynchronously with callback
+ System.out.println("STARTING async remote call via callback...");
+ helloA.helloAsync(CONSUMER_NAME + " via async proxy with listener", callback);
+ System.out.println("LOCAL async invocation complete");
+ System.out.println();
+
+ // Call asynchronously with future
+ System.out.println("STARTING async remote call via future...");
+ IFuture future = helloA.helloAsync(CONSUMER_NAME + " via async proxy with future");
+ System.out.println("LOCAL async future invocation complete");
+ System.out.println();
+ try {
+ while (!future.isDone()) {
+ // do some other stuff
+ System.out.println("LOCAL future not yet done...so we're doing other stuff while waiting for future to be done");
+ Thread.sleep(200);
+ }
+ // Now it's done, so this will not block
+ Object result = future.get();
+ System.out.println("COMPLETED remote call with future SUCCEEDED with result="+result);
+ System.out.println();
+ } catch (OperationCanceledException e) {
+ System.out.println("COMPLETED remote call with callback CANCELLED with exception="+e);
+ System.out.println();
+ e.printStackTrace();
+ } catch (InterruptedException e) {
+ System.out.println("COMPLETED remote call with callback INTERRUPTED with exception="+e);
+ System.out.println();
+ e.printStackTrace();
+ }
+
+ // Call other helloMessage method
+ // Call asynchronously with callback
+ System.out.println("STARTING async remote call via callback...");
+ helloA.helloMessageAsync(new HelloMessage(CONSUMER_NAME + " via async proxy with listener","howdy"), callback);
+ System.out.println("LOCAL async invocation complete");
+ System.out.println();
+
+ // Call asynchronously with future
+ System.out.println("STARTING async remote call via future...");
+ future = helloA.helloMessageAsync(new HelloMessage(CONSUMER_NAME + " via async proxy with future","howdy"));
+ System.out.println("LOCAL async future invocation complete");
+ System.out.println();
+ try {
+ while (!future.isDone()) {
+ // do some other stuff
+ System.out.println("LOCAL future not yet done...so we're doing other stuff while waiting for future to be done");
+ Thread.sleep(200);
+ }
+ // Now it's done, so this will not block
+ Object result = future.get();
+ System.out.println("COMPLETED remote call with future SUCCEEDED with result="+result);
+ System.out.println();
+ } catch (OperationCanceledException e) {
+ System.out.println("COMPLETED remote call with callback CANCELLED with exception="+e);
+ System.out.println();
+ e.printStackTrace();
+ } catch (InterruptedException e) {
+ System.out.println("COMPLETED remote call with callback INTERRUPTED with exception="+e);
+ System.out.println();
+ e.printStackTrace();
+ }
+
+ }
+
+ }
+
+ public void modifiedService(ServiceReference<IHello> reference,
+ IHello service) {
+ }
+
+ public void removedService(ServiceReference<IHello> reference,
+ IHello service) {
+ }
+
+ }
+
+ public void stop(BundleContext bundleContext) throws Exception {
+ if (helloServiceTracker != null) {
+ helloServiceTracker.close();
+ helloServiceTracker = null;
+ }
+ Activator.context = null;
+ }
+
+}
diff --git a/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/templates/helloRemoteServiceHostExample1/java/$activator$.java b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/templates/helloRemoteServiceHostExample1/java/$activator$.java
new file mode 100644
index 000000000..6739349dd
--- /dev/null
+++ b/tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde/templates/helloRemoteServiceHostExample1/java/$activator$.java
@@ -0,0 +1,52 @@
+package $packageName$;
+
+import java.util.Dictionary;
+import java.util.Hashtable;
+
+import org.eclipse.ecf.osgi.services.distribution.IDistributionConstants;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+import org.eclipse.ecf.examples.remoteservices.hello.HelloMessage;
+import org.eclipse.ecf.examples.remoteservices.hello.IHello;
+
+@SuppressWarnings("restriction")
+public class $activator$ implements BundleActivator {
+
+ // This is the hello service implementation
+ class Hello implements IHello {
+ public String hello(String from) {
+ System.out.println("received hello from=" + from);
+ return "Server says 'Hi' back to " + from;
+ }
+ public String helloMessage(HelloMessage message) {
+ System.out.println("received HelloMessage=" + message);
+ return "Server says 'Hi' back to " + message.getFrom();
+ }
+ }
+
+ private ServiceRegistration<IHello> helloServiceRegistration;
+
+ public void start(BundleContext context) throws Exception {
+
+ Dictionary<String,Object> props = new Hashtable<String,Object>();
+ // add OSGi service property indicated export of all interfaces exposed
+ // by service (wildcard)
+ props.put("service.exported.interfaces", "*");
+ // add OSGi service property specifying config
+ props.put("service.exported.configs", "$containerType$");
+ // add ECF service property specifying container factory args
+ props.put(IDistributionConstants.SERVICE_EXPORTED_CONTAINER_FACTORY_ARGUMENTS,
+ "$containerId$");
+
+ // register the service with remote service properties
+ helloServiceRegistration = context.registerService(
+ IHello.class, new Hello(), props);
+ }
+
+ public void stop(BundleContext context) throws Exception {
+ if (helloServiceRegistration != null)
+ helloServiceRegistration.unregister();
+ }
+
+}

Back to the top