diff options
| author | slewis | 2005-06-11 07:04:58 +0000 |
|---|---|---|
| committer | slewis | 2005-06-11 07:04:58 +0000 |
| commit | 9278f738d269387ccd7cfae68be9710e36353ffa (patch) | |
| tree | dabdc556a2fbca0a5b8b27361c9af762eee1405f | |
| parent | d088a557096f1cf6a3cb15bf192f947ecc8f2a6d (diff) | |
| download | org.eclipse.ecf-9278f738d269387ccd7cfae68be9710e36353ffa.tar.gz org.eclipse.ecf-9278f738d269387ccd7cfae68be9710e36353ffa.tar.xz org.eclipse.ecf-9278f738d269387ccd7cfae68be9710e36353ffa.zip | |
Updates to allow server creation and discovery container creation upon startup of example client plugin
7 files changed, 357 insertions, 89 deletions
diff --git a/examples/bundles/org.eclipse.ecf.example.collab/META-INF/MANIFEST.MF b/examples/bundles/org.eclipse.ecf.example.collab/META-INF/MANIFEST.MF index 307380482..3c05dbf2a 100644 --- a/examples/bundles/org.eclipse.ecf.example.collab/META-INF/MANIFEST.MF +++ b/examples/bundles/org.eclipse.ecf.example.collab/META-INF/MANIFEST.MF @@ -15,8 +15,9 @@ Require-Bundle: org.eclipse.ui, org.eclipse.jface.text, org.eclipse.ecf.presence, org.eclipse.ecf.ui, - org.eclipse.ecf.discovery -Export-Package: org.eclipse.ecf.example.collab.share, org.eclipse.ecf.example.collab.share.url, org.eclipse.ecf.example.collab.share.io + org.eclipse.ecf.discovery, + org.eclipse.ecf.provider +Export-Package: org.eclipse.ecf.example.collab, org.eclipse.ecf.example.collab.share, org.eclipse.ecf.example.collab.share.url, org.eclipse.ecf.example.collab.share.io Eclipse-AutoStart: true Provide-Package: org.eclipse.ecf.example.collab DynamicImport-Package: org.eclipse.ecf.presence, org.eclipse.ecf.presence.impl diff --git a/examples/bundles/org.eclipse.ecf.example.collab/launchconfigs/ECF Example Collab Client 1.launch b/examples/bundles/org.eclipse.ecf.example.collab/launchconfigs/ECF Example Collab Client 1.launch index 93c9c302e..124cd6bf9 100644 --- a/examples/bundles/org.eclipse.ecf.example.collab/launchconfigs/ECF Example Collab Client 1.launch +++ b/examples/bundles/org.eclipse.ecf.example.collab/launchconfigs/ECF Example Collab Client 1.launch @@ -8,37 +8,37 @@ <stringAttribute key="location2" value="C:\eclipse3.1m4\eclipse\second-runtime-workspace"/> <mapAttribute key="tracingOptions"> <mapEntry key="org.eclipse.ecf.example.collab/debug/urlsharedobject" value="false"/> -<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/xmppsharedobject" value="true"/> <mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/> +<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/xmppsharedobject" value="true"/> <mapEntry key="org.eclipse.ecf.provider.xmpp/debug/smackconnection" value="true"/> <mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/> -<mapEntry key="org.eclipse.ecf.example.collab/debug" value="true"/> <mapEntry key="org.eclipse.core.runtime/strings" value="false"/> +<mapEntry key="org.eclipse.ecf.example.collab/debug" value="true"/> <mapEntry key="org.eclipse.core.runtime/loader/debug/filter/loader" value="*"/> <mapEntry key="org.eclipse.core.runtime/loader/debug/actions" value="false"/> <mapEntry key="org.eclipse.core.runtime/timing/shutdown" value="false"/> -<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/> <mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/> +<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/> <mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/> <mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/> <mapEntry key="org.eclipse.ui/trace/graphics" value="false"/> <mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/> -<mapEntry key="org.eclipse.update.configurator/debug" value="false"/> <mapEntry key="org.eclipse.team.cvs.ssh/ssh_protocol" value="false"/> +<mapEntry key="org.eclipse.update.configurator/debug" value="false"/> <mapEntry key="org.eclipse.ecf.provider/debug/filter" value="*"/> <mapEntry key="org.eclipse.osgi/monitor/activation" value="false"/> <mapEntry key="org.eclipse.core.runtime/registry/debug" value="false"/> <mapEntry key="org.eclipse.osgi/debug/packages" value="false"/> -<mapEntry key="org.eclipse.core.runtime/loader/debug" value="false"/> <mapEntry key="org.eclipse.ui/debug/showSystemJobs" value="false"/> +<mapEntry key="org.eclipse.core.runtime/loader/debug" value="false"/> <mapEntry key="org.eclipse.core.resources/monitor/listeners" value="false"/> <mapEntry key="org.eclipse.ant.core/debug" value="true"/> <mapEntry key="org.eclipse.core.runtime/loader/debug/prefixes" value="false"/> <mapEntry key="org.eclipse.core.runtime/url/debug" value="false"/> <mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/> <mapEntry key="org.eclipse.update.core/debug" value="true"/> -<mapEntry key="org.eclipse.core.runtime/debug/context" value="false"/> <mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/> +<mapEntry key="org.eclipse.core.runtime/debug/context" value="false"/> <mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin" value="false"/> <mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/> <mapEntry key="org.eclipse.ui/debug/swtdebug" value="false"/> @@ -49,14 +49,14 @@ <mapEntry key="org.eclipse.ecf/debug" value="true"/> <mapEntry key="org.eclipse.ui/trace/keyBindings" value="false"/> <mapEntry key="org.eclipse.ui.intro/trace/printHTML" value="false"/> -<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/> <mapEntry key="org.eclipse.core.runtime/registry/debug/dump" value=""/> +<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/> <mapEntry key="org.eclipse.jdt.core/debug/javadelta/verbose" value="false"/> <mapEntry key="org.eclipse.jdt.core/debug" value="true"/> <mapEntry key="org.eclipse.core.expressions/tracePropertyResolving" value="false"/> <mapEntry key="org.eclipse.core.resources/restore" value="false"/> -<mapEntry key="org.eclipse.ecf.ui/debug/flag" value="true"/> <mapEntry key="org.eclipse.ecf/debug/filter" value="*"/> +<mapEntry key="org.eclipse.ecf.ui/debug/flag" value="true"/> <mapEntry key="org.eclipse.osgi/trace/filename" value="runtime.traces"/> <mapEntry key="org.eclipse.update.core/debug/web" value="false"/> <mapEntry key="org.eclipse.ecf.example.collab/debug/progsharedobject" value="false"/> @@ -64,8 +64,8 @@ <mapEntry key="org.eclipse.ecf.provider.xmpp/debug/flag" value="true"/> <mapEntry key="org.eclipse.core.runtime/registry/debug/resolve" value="false"/> <mapEntry key="org.eclipse.osgi/debug" value="false"/> -<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/> <mapEntry key="org.eclipse.core.resources/build/delta" value="false"/> +<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/> <mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/> <mapEntry key="org.eclipse.ecf/debug/idfactory" value="false"/> <mapEntry key="org.eclipse.ecf/debug/connectionfactory" value="false"/> @@ -80,15 +80,15 @@ <mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/> <mapEntry key="org.eclipse.ecf/debug/factoryinit" value="true"/> <mapEntry key="org.eclipse.ui/trace/part.activate" value="false"/> -<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/> -<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver" value="false"/> <mapEntry key="org.eclipse.osgi/trace/filters" value="trace.properties"/> +<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver" value="false"/> +<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/> <mapEntry key="org.eclipse.core.runtime/registry/debug/events/extension" value="false"/> -<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/> <mapEntry key="org.eclipse.help.webapp/debug" value="true"/> +<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/> <mapEntry key="org.eclipse.ecf.example.collab/debug/transactionsharedobject" value="true"/> -<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/> <mapEntry key="org.eclipse.core.resources/refresh" value="false"/> +<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/> <mapEntry key="org.eclipse.team.core/backgroundevents" value="false"/> <mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/> <mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/> @@ -96,12 +96,12 @@ <mapEntry key="org.eclipse.ecf.example.collab/debug/flag" value="true"/> <mapEntry key="org.eclipse.update.core/debug/warning" value="false"/> <mapEntry key="org.eclipse.core.resources/save" value="false"/> -<mapEntry key="org.eclipse.ui/debug/internalerror/openDialog" value="false"/> <mapEntry key="org.eclipse.update.core/debug/install" value="false"/> -<mapEntry key="org.eclipse.core.runtime/jobs/errorondeadlock" value="false"/> +<mapEntry key="org.eclipse.ui/debug/internalerror/openDialog" value="false"/> <mapEntry key="org.eclipse.ecf.provider/debug/flag" value="true"/> -<mapEntry key="org.eclipse.core.resources/debug" value="false"/> +<mapEntry key="org.eclipse.core.runtime/jobs/errorondeadlock" value="false"/> <mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser/inprocess" value="false"/> +<mapEntry key="org.eclipse.core.resources/debug" value="false"/> <mapEntry key="org.eclipse.ecf.provider.xmpp/debug" value="true"/> <mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/> <mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/> @@ -121,31 +121,31 @@ <mapEntry key="org.eclipse.ecf.ui/debug/filter" value="*"/> <mapEntry key="org.eclipse.ecf.provider/debug/basesharedobject" value="false"/> <mapEntry key="org.eclipse.osgi/debug/services" value="false"/> -<mapEntry key="org.eclipse.team.cvs.ssh/debug" value="false"/> <mapEntry key="org.eclipse.core.runtime/loader/debug/activateplugin" value="false"/> +<mapEntry key="org.eclipse.team.cvs.ssh/debug" value="false"/> <mapEntry key="org.eclipse.core.resources/monitor/builders" value="false"/> <mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/> <mapEntry key="org.eclipse.core.resources/save/markers" value="false"/> -<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/filter" value="*"/> -<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/> <mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/> +<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/> +<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/filter" value="*"/> <mapEntry key="org.eclipse.ecf.provider/debug/gmm" value="false"/> <mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/> -<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/> <mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/> -<mapEntry key="org.eclipse.ui/trace/workbench.restore" value="false"/> -<mapEntry key="org.eclipse.core.resources/restore/tree" value="false"/> +<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/> <mapEntry key="org.eclipse.core.resources/preferences" value="false"/> +<mapEntry key="org.eclipse.core.resources/restore/tree" value="false"/> +<mapEntry key="org.eclipse.ui/trace/workbench.restore" value="false"/> <mapEntry key="org.eclipse.ui/trace/part.create" value="false"/> <mapEntry key="org.eclipse.help/debug/protocols" value="false"/> <mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/> -<mapEntry key="org.eclipse.help.base/debug/search" value="false"/> <mapEntry key="org.eclipse.core.resources/natures" value="false"/> +<mapEntry key="org.eclipse.help.base/debug/search" value="false"/> <mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/> <mapEntry key="org.eclipse.core.runtime/loader/debug/filter/native" value="*"/> <mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/> -<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/> <mapEntry key="org.eclipse.core.runtime/loader/debug/properties" value="false"/> +<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/> <mapEntry key="org.eclipse.core.runtime/loader/debug/create" value="false"/> <mapEntry key="org.eclipse.ui/trace/include.timings" value="true"/> <mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/> @@ -156,15 +156,15 @@ <mapEntry key="org.eclipse.osgi/debug/events" value="false"/> <mapEntry key="org.eclipse.core.runtime/compatibility/debug" value="false"/> <mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectcontext" value="false"/> -<mapEntry key="org.eclipse.core.runtime/loader/debug/prefixes/success" value="false"/> <mapEntry key="org.eclipse.osgi/debug/monitorbundles" value="false"/> +<mapEntry key="org.eclipse.core.runtime/loader/debug/prefixes/success" value="false"/> <mapEntry key="org.eclipse.pde.build/debug" value="false"/> <mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/> -<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectwrapper" value="false"/> <mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/> +<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectwrapper" value="false"/> <mapEntry key="org.eclipse.help.base/debug" value="true"/> -<mapEntry key="org.eclipse.core.runtime/jobs" value="false"/> <mapEntry key="org.eclipse.core.runtime/debug/pluginstopper" value="false"/> +<mapEntry key="org.eclipse.core.runtime/jobs" value="false"/> <mapEntry key="org.eclipse.ecf.provider.xmpp/debug/smackdebug" value="true"/> <mapEntry key="org.eclipse.ui/trace/workbench.start" value="false"/> <mapEntry key="org.eclipse.core.runtime/contenttypes/debug" value="false"/> @@ -173,8 +173,8 @@ <mapEntry key="org.eclipse.ecf.provider/debug/connectionping" value="false"/> <mapEntry key="org.eclipse.ui/trace/contexts" value="false"/> <mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/> -<mapEntry key="org.eclipse.ui/debug/uijob.longwarning" value="false"/> <mapEntry key="org.eclipse.core.runtime/loader/debug/failure" value="false"/> +<mapEntry key="org.eclipse.ui/debug/uijob.longwarning" value="false"/> <mapEntry key="org.eclipse.update.core/debug/type" value="false"/> <mapEntry key="org.eclipse.ui/trace/page.listeners" value="false"/> <mapEntry key="org.eclipse.ui/debug/job.stale" value="false"/> @@ -184,36 +184,36 @@ <mapEntry key="org.eclipse.ui.intro/debug" value="true"/> <mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/> <mapEntry key="org.eclipse.jdt.debug.ui/debug" value="true"/> -<mapEntry key="org.eclipse.debug.core/debug" value="true"/> <mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/> +<mapEntry key="org.eclipse.debug.core/debug" value="true"/> <mapEntry key="org.eclipse.help/debug" value="true"/> <mapEntry key="org.eclipse.ui/trace/perspective" value="false"/> <mapEntry key="org.eclipse.ui/debug" value="false"/> <mapEntry key="org.eclipse.jdt.core/debug/indexmanager" value="false"/> <mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/> <mapEntry key="org.eclipse.osgi/debug/loader" value="false"/> -<mapEntry key="org.eclipse.ecf.provider/debug/container" value="true"/> <mapEntry key="org.eclipse.core.resources/build/failure" value="false"/> +<mapEntry key="org.eclipse.ecf.provider/debug/container" value="true"/> <mapEntry key="org.eclipse.ui/trace/handlers" value="false"/> <mapEntry key="org.eclipse.ecf.ui/debug" value="true"/> <mapEntry key="org.eclipse.core.resources/save/tree" value="false"/> <mapEntry key="org.eclipse.core.runtime/config/debug" value="false"/> -<mapEntry key="org.eclipse.help.ui/debug" value="true"/> <mapEntry key="org.eclipse.osgi/trace/classLoading" value="false"/> +<mapEntry key="org.eclipse.help.ui/debug" value="true"/> <mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/> -<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/> <mapEntry key="org.eclipse.debug.ui/debug" value="true"/> +<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/> <mapEntry key="org.eclipse.jdt.debug/debug" value="true"/> <mapEntry key="org.eclipse.core.runtime/debug" value="false"/> <mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/> -<mapEntry key="org.eclipse.osgi/debug/filter" value="false"/> <mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/> -<mapEntry key="org.eclipse.jdt.ui/debug/ASTProvider" value="false"/> +<mapEntry key="org.eclipse.osgi/debug/filter" value="false"/> <mapEntry key="org.eclipse.ui/trace/part.listeners" value="false"/> +<mapEntry key="org.eclipse.jdt.ui/debug/ASTProvider" value="false"/> <mapEntry key="org.eclipse.core.runtime/loader/debug/success" value="false"/> -<mapEntry key="org.eclipse.ecf.example.collab/debug/filter" value="*"/> -<mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/> <mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/> +<mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/> +<mapEntry key="org.eclipse.ecf.example.collab/debug/filter" value="*"/> <mapEntry key="org.eclipse.core.runtime/loader/debug/filter/class" value="*"/> <mapEntry key="org.eclipse.ecf.provider/debug" value="true"/> <mapEntry key="org.eclipse.core.runtime/preferences/debug" value="false"/> @@ -224,21 +224,21 @@ <stringAttribute key="checked" value="org.eclipse.ecf.provider.xmpp"/> <booleanAttribute key="includeFragments" value="false"/> <stringAttribute key="configLocation" value=""/> -<booleanAttribute key="clearws" value="false"/> +<booleanAttribute key="clearws" value="true"/> <stringAttribute key="location1" value="C:\eclipse3.1m4\eclipse\runtime-workspace"/> <stringAttribute key="templateConfig" value=""/> -<stringAttribute key="vmargs" value=""/> <booleanAttribute key="default" value="true"/> +<stringAttribute key="vmargs" value=""/> <booleanAttribute key="clearConfig" value="true"/> <booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/> -<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/> <booleanAttribute key="useDefaultConfigArea" value="true"/> -<booleanAttribute key="useDefaultConfig" value="true"/> +<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/> <stringAttribute key="progargs" value=""/> +<booleanAttribute key="useDefaultConfig" value="true"/> <booleanAttribute key="askclear" value="true"/> +<booleanAttribute key="includeOptional" value="true"/> <mapAttribute key="org.eclipse.debug.core.environmentVariables"> <mapEntry key="smack.debugEnabled" value="true"/> </mapAttribute> -<booleanAttribute key="includeOptional" value="true"/> <stringAttribute key="location0" value="C:\eclipse3.1m4\eclipse\runtime-workspace"/> </launchConfiguration> diff --git a/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ClientPlugin.java b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ClientPlugin.java index 181b7a8b2..3063d648c 100644 --- a/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ClientPlugin.java +++ b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ClientPlugin.java @@ -1,13 +1,13 @@ /**************************************************************************** -* Copyright (c) 2004 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 -* -* Contributors: -* Composent, Inc. - initial API and implementation -*****************************************************************************/ + * Copyright (c) 2004 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 + * + * Contributors: + * Composent, Inc. - initial API and implementation + *****************************************************************************/ package org.eclipse.ecf.example.collab; @@ -28,34 +28,36 @@ import org.osgi.framework.BundleContext; /** * The main plugin class to be used in the desktop. */ -public class ClientPlugin extends AbstractUIPlugin implements ClientPluginConstants { +public class ClientPlugin extends AbstractUIPlugin implements + ClientPluginConstants { - public static final String PLUGIN_ID = "org.eclipse.ecf.example.collab"; - - //The shared instance. + public static final String PLUGIN_ID = "org.eclipse.ecf.example.collab"; + + // The shared instance. private static ClientPlugin plugin; - //Resource bundle. + + // Resource bundle. private ResourceBundle resourceBundle; - private static String appShareBinPath; private static URL pluginLocation; - private ImageRegistry registry = null; - private FontRegistry fontRegistry = null; + + private ServerStartup serverStartup = null; - public static String getAppShareBinPath() { - return appShareBinPath; - } public static URL getPluginTopLocation() { return pluginLocation; } + public static void log(String message) { - getDefault().getLog().log(new Status(IStatus.OK, PLUGIN_ID, IStatus.OK, message, null)); + getDefault().getLog().log( + new Status(IStatus.OK, PLUGIN_ID, IStatus.OK, message, null)); } public static void log(String message, Throwable e) { - getDefault().getLog().log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, "Caught exception", e)); + getDefault().getLog().log( + new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, + "Caught exception", e)); } /** @@ -68,17 +70,18 @@ public class ClientPlugin extends AbstractUIPlugin implements ClientPluginConsta /* * The the plugin preferences to automatically define defaults. */ - /*ClientPreferencePage prefs = new ClientPreferencePage(); - prefs.performDefaults(); - prefs.dispose();*/ + /* + * ClientPreferencePage prefs = new ClientPreferencePage(); + * prefs.performDefaults(); prefs.dispose(); + */ } - /** * This method is called upon plug-in activation */ public void start(BundleContext context) throws Exception { super.start(context); + serverStartup = new ServerStartup(); } /** @@ -88,35 +91,56 @@ public class ClientPlugin extends AbstractUIPlugin implements ClientPluginConsta super.stop(context); plugin = null; resourceBundle = null; + if (serverStartup != null) { + serverStartup.dispose(); + serverStartup = null; + } } - + public FontRegistry getFontRegistry() { return this.fontRegistry; } - + public Shell getActiveShell() { return this.getWorkbench().getDisplay().getActiveShell(); } - - - /* (non-Javadoc) + + /* + * (non-Javadoc) + * * @see org.eclipse.ui.plugin.AbstractUIPlugin#createImageRegistry() */ protected ImageRegistry createImageRegistry() { registry = super.createImageRegistry(); - - - registry.put(ClientPluginConstants.DECORATION_PROJECT, PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER)); - registry.put(ClientPluginConstants.DECORATION_USER, AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.ecf.example.collab", "icons/presence_member.gif").createImage()); - registry.put(ClientPluginConstants.DECORATION_TIME, PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_TOOL_FORWARD)); - registry.put(ClientPluginConstants.DECORATION_TASK, PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ELEMENT)); - - registry.put(ClientPluginConstants.DECORATION_SEND , PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_TOOL_UNDO)); - registry.put(ClientPluginConstants.DECORATION_RECEIVE , PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_TOOL_REDO)); - registry.put(ClientPluginConstants.DECORATION_PRIVATE , PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_WARN_TSK)); - registry.put(ClientPluginConstants.DECORATION_SYSTEM_MESSAGE , PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_INFO_TSK)); + + registry.put(ClientPluginConstants.DECORATION_PROJECT, PlatformUI + .getWorkbench().getSharedImages().getImage( + ISharedImages.IMG_OBJ_FOLDER)); + registry.put(ClientPluginConstants.DECORATION_USER, AbstractUIPlugin + .imageDescriptorFromPlugin("org.eclipse.ecf.example.collab", + "icons/presence_member.gif").createImage()); + registry.put(ClientPluginConstants.DECORATION_TIME, PlatformUI + .getWorkbench().getSharedImages().getImage( + ISharedImages.IMG_TOOL_FORWARD)); + registry.put(ClientPluginConstants.DECORATION_TASK, PlatformUI + .getWorkbench().getSharedImages().getImage( + ISharedImages.IMG_OBJ_ELEMENT)); + + registry.put(ClientPluginConstants.DECORATION_SEND, PlatformUI + .getWorkbench().getSharedImages().getImage( + ISharedImages.IMG_TOOL_UNDO)); + registry.put(ClientPluginConstants.DECORATION_RECEIVE, PlatformUI + .getWorkbench().getSharedImages().getImage( + ISharedImages.IMG_TOOL_REDO)); + registry.put(ClientPluginConstants.DECORATION_PRIVATE, PlatformUI + .getWorkbench().getSharedImages().getImage( + ISharedImages.IMG_OBJS_WARN_TSK)); + registry.put(ClientPluginConstants.DECORATION_SYSTEM_MESSAGE, + PlatformUI.getWorkbench().getSharedImages().getImage( + ISharedImages.IMG_OBJS_INFO_TSK)); return registry; } + /** * Returns the shared instance. */ @@ -125,8 +149,8 @@ public class ClientPlugin extends AbstractUIPlugin implements ClientPluginConsta } /** - * Returns the string from the plugin's resource bundle, - * or 'key' if not found. + * Returns the string from the plugin's resource bundle, or 'key' if not + * found. */ public static String getResourceString(String key) { ResourceBundle bundle = ClientPlugin.getDefault().getResourceBundle(); @@ -143,7 +167,8 @@ public class ClientPlugin extends AbstractUIPlugin implements ClientPluginConsta public ResourceBundle getResourceBundle() { try { if (resourceBundle == null) - resourceBundle = ResourceBundle.getBundle("org.eclipse.ecf.example.collab.ClientPluginResources"); + resourceBundle = ResourceBundle + .getBundle("org.eclipse.ecf.example.collab.ClientPluginResources"); } catch (MissingResourceException x) { resourceBundle = null; } diff --git a/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/DiscoveryStartup.java b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/DiscoveryStartup.java new file mode 100644 index 000000000..23f3ff9bc --- /dev/null +++ b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/DiscoveryStartup.java @@ -0,0 +1,129 @@ +package org.eclipse.ecf.example.collab; + +import java.net.InetAddress; +import java.net.URI; +import java.util.Properties; + +import org.eclipse.ecf.core.ISharedObjectContainer; +import org.eclipse.ecf.core.SharedObjectContainerFactory; +import org.eclipse.ecf.core.identity.ID; +import org.eclipse.ecf.core.identity.ServiceID; +import org.eclipse.ecf.discovery.IDiscoveryContainer; +import org.eclipse.ecf.discovery.IServiceEvent; +import org.eclipse.ecf.discovery.IServiceTypeListener; +import org.eclipse.ecf.discovery.ServiceInfo; + +public class DiscoveryStartup { + + public static final String DISCOVERY_CONTAINER = "org.eclipse.ecf.provider.jmdns.container.JmDNS"; + public static final String TCPSERVER_DISCOVERY_TYPE = "_http._tcp._local."; + + static IDiscoveryContainer discovery = null; + + public static IDiscoveryContainer getDefault() { + return discovery; + } + + public DiscoveryStartup() { + setupDiscovery(); + } + + public void dispose() { + unregisterServerType(); + } + protected void setupDiscovery() { + try { + ISharedObjectContainer container = SharedObjectContainerFactory + .makeSharedObjectContainer(DISCOVERY_CONTAINER); + discovery = (IDiscoveryContainer) container + .getAdapter(IDiscoveryContainer.class); + if (discovery != null) { + setupDiscoveryContainer(discovery); + container.joinGroup(new ServiceID(TCPSERVER_DISCOVERY_TYPE, null),null); + //registerServerType(); + } + else { + ClientPlugin.log("No discovery container available"); + } + } catch (Exception e) { + ClientPlugin.log("Exception creating discovery container",e); + } + + } + + protected void setupDiscoveryContainer(final IDiscoveryContainer dc) { + dc.addServiceTypeListener(new IServiceTypeListener() { + public void serviceTypeAdded(IServiceEvent event) { + System.out.println("serviceTypeAdded("+event.getServiceInfo()); + //ServiceID svcID = event.getServiceInfo().getServiceID(); + /* + dc.addServiceListener(event.getServiceInfo().getServiceID(), + new IServiceListener() { + public void serviceAdded(IServiceEvent event) { + System.out.println("serviceAdded(" + event.getServiceInfo()); + log("serviceAdded(" + event.getServiceInfo()); + dc.requestServiceInfo(event.getServiceInfo() + .getServiceID(), 3000); + } + + public void serviceRemoved(IServiceEvent event) { + System.out.println("serviceRemoved(" + event.getServiceInfo()); + log("serviceRemoved(" + event.getServiceInfo()); + } + + public void serviceResolved(IServiceEvent event) { + System.out.println("serviceResolved(" + event.getServiceInfo()); + log("serviceResolved(" + event.getServiceInfo()); + } + }); + dc.registerServiceType(svcID); + */ + } + }); + + } + + public static void unregisterServerType() { + if (discovery != null) { + discovery.unregisterAllServices(); + } + } + public static void registerServer(ID id) { + if (discovery != null) { + // Make service info + String name = id.getName(); + try { + URI uri = id.toURI(); + String path = uri.getPath(); + Properties props = new Properties(); + props.setProperty("id", name); + props.setProperty("passwordrequired", "false"); + props.setProperty("defaultuser", "guest"); + props.setProperty("path", path); + // Get localhost InetAddress + InetAddress host = InetAddress.getByName(uri.getHost()); + int port = uri.getPort(); + ServiceID svcID = new ServiceID(TCPSERVER_DISCOVERY_TYPE,"foo"); + ServiceInfo svcinfo = new ServiceInfo(host, svcID, port, 0, + 0, props); + // Then register service + System.out.println("registering serviceinfo "+svcinfo); + discovery.registerService(svcinfo); + } catch (Exception e) { + ClientPlugin.log("Exception registering server " + name, e); + } + } + } + + public static void unregisterServer(ISharedObjectContainer container) { + + } + + public static void registerServerType() { + if (discovery != null) { + discovery.registerServiceType(TCPSERVER_DISCOVERY_TYPE); + } + } + + +} diff --git a/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ServerStartup.java b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ServerStartup.java new file mode 100644 index 000000000..237e27067 --- /dev/null +++ b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ServerStartup.java @@ -0,0 +1,109 @@ +package org.eclipse.ecf.example.collab; + +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import org.eclipse.ecf.core.identity.ID; +import org.eclipse.ecf.core.identity.IDFactory; +import org.eclipse.ecf.core.identity.IDInstantiationException; +import org.eclipse.ecf.provider.app.Connector; +import org.eclipse.ecf.provider.app.NamedGroup; +import org.eclipse.ecf.provider.app.ServerConfigParser; +import org.eclipse.ecf.provider.generic.SOContainerConfig; +import org.eclipse.ecf.provider.generic.TCPServerSOContainer; +import org.eclipse.ecf.provider.generic.TCPServerSOContainerGroup; + +public class ServerStartup { + + static TCPServerSOContainerGroup serverGroups[] = null; + static final String SERVER_FILE_NAME = "ServerStartup.xml"; + + static List servers = new ArrayList(); + + public ServerStartup() { + try { + InputStream ins = this.getClass().getResourceAsStream(SERVER_FILE_NAME); + if (ins != null) { + createServers(ins); + } + } catch (Exception e) { + ClientPlugin.log("Exception in ServerStartup initialization",e); + } + + } + + public void dispose() { + destroyServers(); + } + protected synchronized void destroyServers() { + if (servers != null) { + for (Iterator i = servers.iterator(); i.hasNext();) { + TCPServerSOContainer s = (TCPServerSOContainer) i.next(); + DiscoveryStartup.unregisterServer(s); + if (s != null) { + try { + s.dispose(5000); + } catch (Exception e) { + ClientPlugin.log("Exception destroying server " + + s.getConfig().getID()); + } + } + } + servers.clear(); + servers = null; + } + + if (serverGroups != null) { + for (int i = 0; i < serverGroups.length; i++) { + serverGroups[i].takeOffTheAir(); + } + serverGroups = null; + } + } + + protected synchronized void createServers(InputStream ins) throws Exception { + ServerConfigParser scp = new ServerConfigParser(); + List connectors = scp.load(ins); + if (connectors != null) { + serverGroups = new TCPServerSOContainerGroup[connectors.size()]; + int j = 0; + for (Iterator i = connectors.iterator(); i.hasNext();) { + Connector connect = (Connector) i.next(); + serverGroups[j] = makeServerGroup(connect.getHostname(), + connect.getPort()); + List groups = connect.getGroups(); + + for (Iterator g = groups.iterator(); g.hasNext();) { + NamedGroup group = (NamedGroup) g.next(); + TCPServerSOContainer cont = makeServerContainer(group + .getIDForGroup(), serverGroups[j], group.getName(), + connect.getTimeout()); + DiscoveryStartup.registerServer(cont.getConfig().getID()); + servers.add(cont); + } + serverGroups[j].putOnTheAir(); + ClientPlugin.log("Server listening on local port: "+serverGroups[j].getPort()+" with path "+serverGroups[j].getName()); + j++; + } + } + + } + + protected TCPServerSOContainerGroup makeServerGroup(String name, int port) { + TCPServerSOContainerGroup group = new TCPServerSOContainerGroup(name, + port); + return group; + } + + protected TCPServerSOContainer makeServerContainer(String id, + TCPServerSOContainerGroup group, String path, int keepAlive) + throws IDInstantiationException { + ID newServerID = IDFactory.makeStringID(id); + ClientPlugin.log("Created server " + newServerID); + SOContainerConfig config = new SOContainerConfig(newServerID); + return new TCPServerSOContainer(config, group, path, keepAlive); + } + +} diff --git a/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ServerStartup.xml b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ServerStartup.xml new file mode 100644 index 000000000..61399a028 --- /dev/null +++ b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ServerStartup.xml @@ -0,0 +1,5 @@ +<server> + <connector protocol="ecftcp" hostname="localhost" port="3282" timeout="10000"> + <group name="server"/> + </connector> +</server>
\ No newline at end of file diff --git a/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ui/ClientPreferencePage.java b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ui/ClientPreferencePage.java index 1b384de58..d03a7c130 100644 --- a/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ui/ClientPreferencePage.java +++ b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/ui/ClientPreferencePage.java @@ -26,7 +26,6 @@ public class ClientPreferencePage extends FieldEditorPreferencePage implements * @see org.eclipse.jface.preference.PreferencePage#performDefaults() */ protected void performDefaults() { - // TODO Auto-generated method stub super.performDefaults(); this.getPreferenceStore().setDefault(ClientPlugin.PREF_USE_CHAT_WINDOW, false); |
