Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2006-07-27 01:51:29 +0000
committerslewis2006-07-27 01:51:29 +0000
commit665eecb0facfc4b84581829e54ea956aac799fbc (patch)
treef0323487559d138fc71dcb495e5270a88b97cd6f
parent9b6f92daa04903d9003b98c75bbec2619d030dbb (diff)
downloadorg.eclipse.ecf-665eecb0facfc4b84581829e54ea956aac799fbc.tar.gz
org.eclipse.ecf-665eecb0facfc4b84581829e54ea956aac799fbc.tar.xz
org.eclipse.ecf-665eecb0facfc4b84581829e54ea956aac799fbc.zip
Refactored IEventProcessor interface and all implementations
-rw-r--r--doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/datashare/MyChannel.java8
-rw-r--r--examples/bundles/org.eclipse.ecf.example.collab/launchconfigs/ECF Example Collab Client 2.launch86
-rw-r--r--examples/bundles/org.eclipse.ecf.example.pubsub/src/org/eclipse/ecf/pubsub/model/SharedModelFactory.java20
-rw-r--r--framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/sharedobject/AbstractSharedObject.java34
-rw-r--r--framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/sharedobject/OptimisticSharedObject.java8
-rw-r--r--framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/sharedobject/SharedObjectMsgEventProcessor.java11
-rw-r--r--framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/sharedobject/TwoPhaseCommitEventProcessor.java12
-rw-r--r--framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/util/IEventHandler.java4
-rw-r--r--framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/util/IEventProcessor.java18
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.datashare/src/org/eclipse/ecf/provider/datashare/BaseChannel.java13
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java8
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/registry/RemoteServiceRegistrationImpl.java11
12 files changed, 118 insertions, 115 deletions
diff --git a/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/datashare/MyChannel.java b/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/datashare/MyChannel.java
index 40205a027..b23a63168 100644
--- a/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/datashare/MyChannel.java
+++ b/doc/bundles/org.eclipse.ecf.tutorial/src/org/eclipse/ecf/tutorial/datashare/MyChannel.java
@@ -29,18 +29,14 @@ public class MyChannel extends BaseChannel {
super.initialize();
// Add event processor that responds to IContainerConnectedEvent messages
addEventProcessor(new IEventProcessor() {
- public boolean acceptEvent(Event event) {
- if (event instanceof IContainerConnectedEvent) return true;
- return false;
- }
- public Event processEvent(Event event) {
+ public boolean processEvent(Event event) {
// If event is IContainerConnectedEvent
if (event instanceof IContainerConnectedEvent) {
IContainerConnectedEvent ccevent = (IContainerConnectedEvent) event;
// Check to make sure it's a client...not the groupID
if (!ccevent.getTargetID().equals(getGroupID())) sendHelloMessage();
}
- return event;
+ return false;
}});
}
diff --git a/examples/bundles/org.eclipse.ecf.example.collab/launchconfigs/ECF Example Collab Client 2.launch b/examples/bundles/org.eclipse.ecf.example.collab/launchconfigs/ECF Example Collab Client 2.launch
index 917a7ac73..10820c6b8 100644
--- a/examples/bundles/org.eclipse.ecf.example.collab/launchconfigs/ECF Example Collab Client 2.launch
+++ b/examples/bundles/org.eclipse.ecf.example.collab/launchconfigs/ECF Example Collab Client 2.launch
@@ -4,7 +4,7 @@
<booleanAttribute key="usefeatures" value="false"/>
<stringAttribute key="bootstrap" value=""/>
<booleanAttribute key="useProduct" value="false"/>
-<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.higgins.context.profileshare,org.eclipse.higgins.app,net.sourceforge.eclipsejaas.sample,org.eclipse.higgins.context.model.persistence,org.eclipse.higgins.edit,net.sourceforge.eclipsejaas.auth,net.sourceforge.eclipsejaas,org.eclipse.higgins,org.eclipse.higgins.context.model,net.sourceforge.eclipsejaas.sampleauth1,org.eclipse.higgins.context.user,org.eclipse.higgins.context.example,net.sourceforge.eclipsejaas.authstatic,org.eclipse.higgins.app.util,org.eclipse.higgins.app.ui,net.sourceforge.eclipsejaas.util,org.eclipse.ecf.server,net.sourceforge.eclipsejaas.samplelogin,org.eclipse.higgins.context.store,jingle_jep_0166.tests,net.sourceforge.eclipsejaas.sampleauth2,jingle_jep_0166,org.eclipse.higgins.context.share"/>
+<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.ecf.server"/>
<booleanAttribute key="tracing" value="true"/>
<stringAttribute key="location2" value="C:\eclipse3.1m4\eclipse\runtime-workspace"/>
<stringAttribute key="selected_target_plugins" value="com.ibm.icu,org.apache.lucene,org.eclipse.ant.core,org.eclipse.compare,org.eclipse.core.commands,org.eclipse.core.contenttype,org.eclipse.core.expressions,org.eclipse.core.filebuffers,org.eclipse.core.filesystem,org.eclipse.core.filesystem.win32.x86,org.eclipse.core.jobs,org.eclipse.core.resources,org.eclipse.core.resources.compatibility,org.eclipse.core.resources.win32,org.eclipse.core.runtime,org.eclipse.core.runtime.compatibility,org.eclipse.core.runtime.compatibility.auth,org.eclipse.core.runtime.compatibility.registry,org.eclipse.core.variables,org.eclipse.debug.core,org.eclipse.debug.ui,org.eclipse.draw2d,org.eclipse.emf,org.eclipse.emf.codegen,org.eclipse.emf.codegen.ecore,org.eclipse.emf.common,org.eclipse.emf.common.ui,org.eclipse.emf.commonj.sdo,org.eclipse.emf.ecore,org.eclipse.emf.ecore.change,org.eclipse.emf.ecore.change.edit,org.eclipse.emf.ecore.edit,org.eclipse.emf.ecore.sdo,org.eclipse.emf.ecore.sdo.edit,org.eclipse.emf.ecore.sdo.editor,org.eclipse.emf.ecore.xmi,org.eclipse.emf.edit,org.eclipse.emf.edit.ui,org.eclipse.equinox.common,org.eclipse.equinox.preferences,org.eclipse.equinox.registry,org.eclipse.gef,org.eclipse.help,org.eclipse.help.appserver,org.eclipse.help.base,org.eclipse.help.ui,org.eclipse.jdt,org.eclipse.jdt.core,org.eclipse.jdt.core.manipulation,org.eclipse.jdt.debug,org.eclipse.jdt.debug.ui,org.eclipse.jdt.junit,org.eclipse.jdt.junit.runtime,org.eclipse.jdt.launching,org.eclipse.jdt.ui,org.eclipse.jface,org.eclipse.jface.text,org.eclipse.ltk.core.refactoring,org.eclipse.ltk.ui.refactoring,org.eclipse.osgi,org.eclipse.search,org.eclipse.swt,org.eclipse.swt.win32.win32.x86,org.eclipse.team.core,org.eclipse.team.ui,org.eclipse.text,org.eclipse.ui,org.eclipse.ui.cheatsheets,org.eclipse.ui.console,org.eclipse.ui.editors,org.eclipse.ui.forms,org.eclipse.ui.ide,org.eclipse.ui.intro,org.eclipse.ui.navigator,org.eclipse.ui.navigator.resources,org.eclipse.ui.views,org.eclipse.ui.views.properties.tabbed,org.eclipse.ui.win32,org.eclipse.ui.workbench,org.eclipse.ui.workbench.texteditor,org.eclipse.update.configurator,org.eclipse.update.core,org.eclipse.update.core.win32,org.eclipse.update.ui,org.junit"/>
@@ -21,8 +21,8 @@
<mapEntry key="org.eclipse.update.configurator/debug" value="false"/>
<mapEntry key="org.eclipse.ecf/debug/twophasecommiteventprocessor" value="true"/>
<mapEntry key="org.eclipse.osgi/monitor/activation" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/content_assist/extensions" value="1000"/>
<mapEntry key="org.eclipse.team.ftp/requests" value="true"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/content_assist/extensions" value="1000"/>
<mapEntry key="org.eclipse.ui.ide/debug/gc" value="false"/>
<mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/>
<mapEntry key="org.eclipse.ui/debug/showSystemJobs" value="false"/>
@@ -46,8 +46,8 @@
<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.ltk.core.refactoring/perf/participants/checkConditions" value="300"/>
+<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/>
<mapEntry key="org.eclipse.ecf/debug/filter" value="*"/>
<mapEntry key="org.eclipse.jdt.core/perf/containerinitializer" value="5000"/>
@@ -61,22 +61,22 @@
<mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/>
<mapEntry key="org.eclipse.ecf/debug/idfactory" value="true"/>
<mapEntry key="org.eclipse.ecf.example.collab/debug/genericsharedobject" value="true"/>
-<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/filter" value="*"/>
<mapEntry key="org.eclipse.ui/perf/part.input" value="200"/>
+<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/filter" value="*"/>
<mapEntry key="org.eclipse.jface.text/debug/AnnotationPainter" value="false"/>
<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectmanager" value="true"/>
<mapEntry key="org.eclipse.ecf.datashare/debug" value="true"/>
<mapEntry key="org.eclipse.ecf/debug/factoryinit" value="true"/>
-<mapEntry key="org.eclipse.osgi/resolver/imports" value="false"/>
<mapEntry key="org.eclipse.ecf.sdo/debug" value="true"/>
-<mapEntry key="org.eclipse.osgi/trace/filters" value="trace.properties"/>
-<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/imports" value="false"/>
<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.osgi/trace/filters" value="trace.properties"/>
<mapEntry key="org.eclipse.ecf.sdo/EMFUpdateManager" value="true"/>
<mapEntry key="org.eclipse.ecf.ui/debug/textchatcomposite" value="true"/>
<mapEntry key="org.eclipse.equinox.preferences/general" value="false"/>
-<mapEntry key="org.eclipse.ecf.datashare/ConsistentMulticaster" value="true"/>
<mapEntry key="org.eclipse.ecf.example.collab/debug/transactionsharedobject" value="true"/>
+<mapEntry key="org.eclipse.ecf.datashare/ConsistentMulticaster" value="true"/>
<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/>
<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
<mapEntry key="org.eclipse.ecf.example.collab/debug/flag" value="true"/>
@@ -85,12 +85,12 @@
<mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/>
<mapEntry key="org.eclipse.update.core/debug/install" value="false"/>
<mapEntry key="org.eclipse.debug.ui/debug/viewer_cache_debug" value="false"/>
-<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser/inprocess" value="false"/>
-<mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/>
+<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
<mapEntry key="org.eclipse.ui/perf/part.control" value="800"/>
-<mapEntry key="org.eclipse.osgi/profile/benchmark" value="false"/>
+<mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/>
<mapEntry key="org.eclipse.ecf.provider.xmpp/debug" value="true"/>
+<mapEntry key="org.eclipse.osgi/profile/benchmark" value="false"/>
<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
<mapEntry key="org.eclipse.osgi/debug/manifest" value="false"/>
@@ -101,36 +101,36 @@
<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
<mapEntry key="org.eclipse.team.cvs.ssh/debug" value="false"/>
<mapEntry key="org.eclipse.ui/trace/handlers.verbose" 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.osgi/debug/startlevel" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
-<mapEntry key="org.eclipse.core.resources/preferences" value="false"/>
<mapEntry key="org.eclipse.core.resources/restore/tree" value="false"/>
+<mapEntry key="org.eclipse.core.resources/preferences" value="false"/>
<mapEntry key="org.eclipse.help/debug/protocols" value="false"/>
<mapEntry key="org.eclipse.core.resources/perf/save.participants" value="500"/>
-<mapEntry key="org.eclipse.core.resources/natures" 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.osgi/defaultprofile/buffersize" value="256"/>
<mapEntry key="org.eclipse.osgi/resolver/cycles" value="false"/>
<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/>
<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/>
<mapEntry key="org.eclipse.ui/trace/contexts.performance" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/>
<mapEntry key="org.eclipse.core.runtime/compatibility/debug" value="false"/>
<mapEntry key="org.eclipse.ecf.provider/debug/transactioneventprocessor" value="false"/>
<mapEntry key="org.eclipse.ui/debug/declaredImages" 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.ui/trace/contexts.verbose" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectwrapper" value="true"/>
<mapEntry key="org.eclipse.ecf.provider.irc/debug/filter" value="*"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectwrapper" value="true"/>
+<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/>
<mapEntry key="org.eclipse.help.base/debug" value="true"/>
<mapEntry key="org.eclipse.ecf.sdo/SharedDataGraph" value="true"/>
<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener" value="false"/>
<mapEntry key="org.eclipse.ecf.provider.jms/debug" value="true"/>
-<mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/>
<mapEntry key="org.eclipse.core.jobs/jobs" value="false"/>
+<mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/>
<mapEntry key="org.eclipse.ui/trace/sources" value="false"/>
<mapEntry key="org.eclipse.core.resources/strings" value="false"/>
<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPartReference" value="false"/>
@@ -141,8 +141,8 @@
<mapEntry key="org.eclipse.core.resources/contenttype" value="false"/>
<mapEntry key="org.eclipse.ui/debug/contributions" value="false"/>
<mapEntry key="org.eclipse.ui/debug/job.stale" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/>
<mapEntry key="org.eclipse.ui/perf/workbench.start" value="45000"/>
+<mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/>
<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/>
<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/indexmanager" value="false"/>
@@ -163,12 +163,12 @@
<mapEntry key="org.eclipse.ecf.example.collab/debug/filter" value="*"/>
<mapEntry key="org.eclipse.ecf.provider/debug" value="true"/>
<mapEntry key="org.eclipse.ecf.example.collab/debug/urlsharedobject" value="false"/>
-<mapEntry key="org.eclipse.osgi/defaultprofile/logfilename" value=""/>
<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
+<mapEntry key="org.eclipse.osgi/defaultprofile/logfilename" value=""/>
<mapEntry key="org.eclipse.ecf.example.collab/debug" value="true"/>
<mapEntry key="org.eclipse.ecf.provider.jms/debug/brokercontainer" value="true"/>
-<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.ui/trace/graphics" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/>
@@ -186,8 +186,8 @@
<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
<mapEntry key="org.eclipse.equinox.preferences/set" value="false"/>
<mapEntry key="org.eclipse.team.core/streams" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/>
<mapEntry key="org.eclipse.ui/trace/keyBindings" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/>
<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/>
<mapEntry key="org.eclipse.ecf.ui/debug/flag" value="true"/>
<mapEntry key="org.eclipse.core.jobs/jobs/beginend" value="false"/>
@@ -206,20 +206,20 @@
<mapEntry key="org.eclipse.ecf.provider/debug/connection" value="true"/>
<mapEntry key="org.eclipse.jdt.ui/debug" value="true"/>
<mapEntry key="org.eclipse.ecf.provider.jmdns/debug/flag" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javamodel/cache" value="false"/>
<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javamodel/cache" value="false"/>
<mapEntry key="org.eclipse.osgi/debug/messageBundles" value="false"/>
<mapEntry key="org.eclipse.ecf.provider.jms/debug/clientcontainer" value="true"/>
<mapEntry key="org.eclipse.jdt.core.manipulation/debug" value="true"/>
<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2" value="false"/>
<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener2" value="false"/>
<mapEntry key="org.eclipse.jdt.core/perf/reconcile" value="1000"/>
-<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
<mapEntry key="org.eclipse.help.webapp/debug" value="true"/>
-<mapEntry key="org.eclipse.ecf/debug/sharedobjectcontainerfactory" value="true"/>
+<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
-<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/>
+<mapEntry key="org.eclipse.ecf/debug/sharedobjectcontainerfactory" value="true"/>
<mapEntry key="org.eclipse.team.core/backgroundevents" value="false"/>
+<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/>
<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
<mapEntry key="org.eclipse.ecf/debug/flag" value="true"/>
<mapEntry key="org.eclipse.update.core/debug/warning" value="false"/>
@@ -228,8 +228,8 @@
<mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
<mapEntry key="org.eclipse.jdt.ui/perf/explorer/makeActions" value="1000"/>
<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener" value="false"/>
<mapEntry key="org.eclipse.team.core/threading" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener" value="false"/>
<mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
<mapEntry key="org.eclipse.osgi/debug/packageadmin/timing" value="false"/>
<mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
@@ -237,8 +237,8 @@
<mapEntry key="org.eclipse.core.resources/save/syncinfo" value="false"/>
<mapEntry key="org.eclipse.osgi/profile/startup" value="false"/>
<mapEntry key="org.eclipse.ecf.ui/debug/filter" value="*"/>
-<mapEntry key="org.eclipse.ecf.provider/debug/basesharedobject" value="false"/>
<mapEntry key="org.eclipse.team.ftp/list" value="true"/>
+<mapEntry key="org.eclipse.ecf.provider/debug/basesharedobject" value="false"/>
<mapEntry key="org.eclipse.osgi/debug/services" value="false"/>
<mapEntry key="org.eclipse.core.resources/save/markers" value="false"/>
<mapEntry key="org.eclipse.core.runtime/preferences/plugin" value="false"/>
@@ -247,25 +247,25 @@
<mapEntry key="org.eclipse.core.jobs/jobs/timing" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
<mapEntry key="org.eclipse.jdt.ui/debug/ResultCollector" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
<mapEntry key="org.eclipse.pde.core/cache" value="false"/>
+<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.osgi/debug/bundleTime" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.jms/debug/filter" value="*"/>
<mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.jms/debug/filter" value="*"/>
<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
-<mapEntry key="org.eclipse.team.core/debug" value="false"/>
<mapEntry key="org.eclipse.team.ftp/responses" value="true"/>
+<mapEntry key="org.eclipse.team.core/debug" value="false"/>
<mapEntry key="org.eclipse.ecf.datashare/OrderedMulticaster" value="true"/>
<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/>
<mapEntry key="org.eclipse.osgi/debug/events" value="false"/>
-<mapEntry key="org.eclipse.ecf.discovery/debug/filter" value="*"/>
<mapEntry key="org.eclipse.ecf.provider/debug/sharedobjectcontext" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/monitorbundles" value="false"/>
+<mapEntry key="org.eclipse.ecf.discovery/debug/filter" value="*"/>
<mapEntry key="org.eclipse.core.jobs/jobs/errorondeadlock" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/monitorbundles" value="false"/>
<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/smackdebug" value="true"/>
<mapEntry key="org.eclipse.ui.intro.universal/trace/logPerformance" value="false"/>
@@ -273,16 +273,16 @@
<mapEntry key="org.eclipse.jdt.core/debug/sourcemapper" value="false"/>
<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
<mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/perf/javadeltalistener" value="500"/>
<mapEntry key="org.eclipse.osgi/profile/debug" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/perf/javadeltalistener" value="500"/>
<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/xmppgroupchatsharedobject" value="true"/>
<mapEntry key="org.eclipse.ui/trace/contexts" value="false"/>
<mapEntry key="org.eclipse.core.contenttype/debug" value="false"/>
-<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/xmpppresencesharedobject" value="true"/>
<mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/operations" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
+<mapEntry key="org.eclipse.ecf.provider.xmpp/debug/xmpppresencesharedobject" value="true"/>
<mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/>
+<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/operations" value="false"/>
<mapEntry key="org.eclipse.ecf.provider.jms/debug/channel" value="true"/>
<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/>
@@ -295,11 +295,11 @@
<mapEntry key="org.eclipse.jface.text.source/debug/RevisionRulerColumn" value="false"/>
<mapEntry key="org.eclipse.ui/debug" value="false"/>
<mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/failure" 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.ui/trace/handlers" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
<mapEntry key="org.eclipse.ecf.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
<mapEntry key="org.eclipse.ecf.provider.jmdns/debug" value="true"/>
<mapEntry key="org.eclipse.ui.browser/debug" value="false"/>
<mapEntry key="org.eclipse.core.resources/save/tree" value="false"/>
@@ -312,8 +312,8 @@
<mapEntry key="org.eclipse.osgi/resolver/grouping" value="false"/>
<mapEntry key="org.eclipse.ui.ide/debug" value="false"/>
<mapEntry key="org.eclipse.jdt.core/formatter/enable_new" value="false"/>
-<mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
<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/experimental/menus" value="false"/>
<mapEntry key="org.eclipse.pde.core/classpath" value="false"/>
</mapAttribute>
@@ -325,8 +325,8 @@
<stringAttribute key="configLocation" value=""/>
<booleanAttribute key="clearws" value="false"/>
<stringAttribute key="location1" value="C:\eclipse3.1m4\eclipse\second-runtime-workspace"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-console"/>
<stringAttribute key="pde.version" value="3.2a"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-console"/>
<stringAttribute key="templateConfig" value=""/>
<booleanAttribute key="default" value="false"/>
<booleanAttribute key="clearConfig" value="true"/>
diff --git a/examples/bundles/org.eclipse.ecf.example.pubsub/src/org/eclipse/ecf/pubsub/model/SharedModelFactory.java b/examples/bundles/org.eclipse.ecf.example.pubsub/src/org/eclipse/ecf/pubsub/model/SharedModelFactory.java
index bce726cd6..4f3c3a528 100644
--- a/examples/bundles/org.eclipse.ecf.example.pubsub/src/org/eclipse/ecf/pubsub/model/SharedModelFactory.java
+++ b/examples/bundles/org.eclipse.ecf.example.pubsub/src/org/eclipse/ecf/pubsub/model/SharedModelFactory.java
@@ -16,6 +16,7 @@ import org.eclipse.ecf.core.IContainerListener;
import org.eclipse.ecf.core.ISharedObjectContainer;
import org.eclipse.ecf.core.ISharedObjectManager;
import org.eclipse.ecf.core.ReplicaSharedObjectDescription;
+import org.eclipse.ecf.core.SharedObjectAddException;
import org.eclipse.ecf.core.SharedObjectCreateException;
import org.eclipse.ecf.core.SharedObjectDescription;
import org.eclipse.ecf.core.events.IContainerEvent;
@@ -46,6 +47,7 @@ public class SharedModelFactory {
final ISharedObjectManager mgr = container.getSharedObjectManager();
final Object[] result = new Object[1];
final Object monitor = new Object();
+
IContainerListener listener = new IContainerListener() {
public void handleEvent(IContainerEvent event) {
if (event instanceof ISharedObjectActivatedEvent) {
@@ -62,18 +64,24 @@ public class SharedModelFactory {
try {
container.addListener(listener, null);
- SharedObjectDescription desc = createLocalAgentDescription(id, container.getID(), data, updaterID);
+/* SharedObjectDescription desc = createLocalAgentDescription(id, container.getID(), data, updaterID);
synchronized (monitor) {
mgr.createSharedObject(desc);
if (result[0] == null)
monitor.wait(getCreationTimeout());
}
+*/
+ synchronized (monitor) {
+ addSharedObject(mgr,id,data,updaterID);
+ if (result[0] == null) monitor.wait(getCreationTimeout());
+ }
} catch (InterruptedException e) {
throw new SharedObjectCreateException(e);
} finally {
container.removeListener(listener);
}
+
return (IMasterModel) result[0];
}
@@ -81,6 +89,16 @@ public class SharedModelFactory {
return DEFAULT_CREATION_TIMEOUT;
}
+ protected void addSharedObject(ISharedObjectManager mgr, ID id, Object data, String updaterID) throws SharedObjectCreateException {
+ HashMap props = new HashMap(2);
+ props.put(INITIAL_DATA_KEY, data);
+ props.put(MODEL_UPDATER_KEY, updaterID);
+ try {
+ mgr.addSharedObject(id, new LocalAgent(), props);
+ } catch (SharedObjectAddException e) {
+ throw new SharedObjectCreateException(e);
+ }
+ }
protected SharedObjectDescription createLocalAgentDescription(ID sharedObjectID, ID homeContainerID, Object data, String updaterID) {
HashMap props = new HashMap(2);
props.put(INITIAL_DATA_KEY, data);
diff --git a/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/sharedobject/AbstractSharedObject.java b/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/sharedobject/AbstractSharedObject.java
index b626e5d65..a90c54012 100644
--- a/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/sharedobject/AbstractSharedObject.java
+++ b/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/sharedobject/AbstractSharedObject.java
@@ -25,6 +25,7 @@ import org.eclipse.ecf.core.ISharedObjectManager;
import org.eclipse.ecf.core.ReplicaSharedObjectDescription;
import org.eclipse.ecf.core.SharedObjectInitException;
import org.eclipse.ecf.core.events.ISharedObjectMessageEvent;
+import org.eclipse.ecf.core.events.RemoteSharedObjectEvent;
import org.eclipse.ecf.core.identity.ID;
import org.eclipse.ecf.core.util.Event;
import org.eclipse.ecf.core.util.IEventProcessor;
@@ -108,10 +109,8 @@ public class AbstractSharedObject implements ISharedObject,
}
for(Iterator i=eventProcessors.iterator(); i.hasNext(); ) {
IEventProcessor ep = (IEventProcessor) i.next();
- if (ep.acceptEvent(evt)) {
- trace("calling eventProcessor="+ep+" for event="+evt);
- if (ep.processEvent(evt)==null) return;
- }
+ trace("calling eventProcessor="+ep+" for event="+evt);
+ if (ep.processEvent(evt)) break;
}
}
public void handleEvents(Event[] events) {
@@ -234,6 +233,22 @@ public class AbstractSharedObject implements ISharedObject,
return;
}
}
+ protected SharedObjectMsg getSharedObjectMsgFromEvent(
+ ISharedObjectMessageEvent event) {
+ Object eventData = event.getData();
+ Object msgData = null;
+ // If eventData is not null and instanceof RemoteSharedObjectEvent
+ // then its a remote event and we extract the SharedObjectMsgEvent it
+ // contains and get it's data
+ if (eventData != null && eventData instanceof RemoteSharedObjectEvent) {
+ // It's a remote event
+ Object rsoeData = ((RemoteSharedObjectEvent) event).getData();
+ if (rsoeData != null && rsoeData instanceof SharedObjectMsgEvent)
+ msgData = ((SharedObjectMsgEvent) rsoeData).getData();
+ } else msgData = eventData;
+ if (msgData != null && msgData instanceof SharedObjectMsg) return (SharedObjectMsg) msgData;
+ return null;
+ }
/**
* Handle a SharedObjectMessageEvent. This method will be automatically called by
* the SharedObjectMsgEventProcessor when a SharedObjectMessageEvent is received.
@@ -246,7 +261,16 @@ public class AbstractSharedObject implements ISharedObject,
*/
protected Event handleSharedObjectMsgEvent(ISharedObjectMessageEvent event) {
trace("handleSharedObjectMsgEvent("+event+")");
- return event;
+ SharedObjectMsg msg = getSharedObjectMsgFromEvent(event);
+ Object msgResult = null;
+ if (msg != null) msgResult = handleSharedObjectMsg(msg);
+ if (msgResult == null) return null;
+ else return event;
+ }
+
+ protected Object handleSharedObjectMsg(SharedObjectMsg msg) {
+ trace("handleSharedObjectMsg("+msg+")");
+ return msg;
}
/**
* Get a ReplicaSharedObjectDescription for a replica to be created on a given receiver.
diff --git a/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/sharedobject/OptimisticSharedObject.java b/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/sharedobject/OptimisticSharedObject.java
index 89448875c..1f20c7460 100644
--- a/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/sharedobject/OptimisticSharedObject.java
+++ b/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/sharedobject/OptimisticSharedObject.java
@@ -48,12 +48,8 @@ public class OptimisticSharedObject extends AbstractSharedObject {
super.initialize();
trace("initialize()");
addEventProcessor(new IEventProcessor() {
- public boolean acceptEvent(Event event) {
- return true;
- }
- public Event processEvent(Event event) {
+ public boolean processEvent(Event event) {
if (event instanceof ISharedObjectActivatedEvent) {
- ISharedObjectActivatedEvent soae = (ISharedObjectActivatedEvent) event;
if (isPrimary() && isConnected()) {
trace("replicating to all");
OptimisticSharedObject.this
@@ -68,7 +64,7 @@ public class OptimisticSharedObject extends AbstractSharedObject {
.replicateToRemoteContainers(new ID[] { targetID });
}
}
- return event;
+ return false;
}
});
}
diff --git a/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/sharedobject/SharedObjectMsgEventProcessor.java b/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/sharedobject/SharedObjectMsgEventProcessor.java
index ab0e6f69e..ffe1a3886 100644
--- a/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/sharedobject/SharedObjectMsgEventProcessor.java
+++ b/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/sharedobject/SharedObjectMsgEventProcessor.java
@@ -27,14 +27,9 @@ public class SharedObjectMsgEventProcessor implements IEventProcessor {
super();
this.sharedObject = sharedObject;
}
- public boolean acceptEvent(Event event) {
- return (event instanceof ISharedObjectMessageEvent);
- }
- public Event processEvent(Event event) {
- if (!(event instanceof ISharedObjectMessageEvent)) {
- return event;
- }
- return processSharedObjectMsgEvent((ISharedObjectMessageEvent) event);
+ public boolean processEvent(Event event) {
+ if (!(event instanceof ISharedObjectMessageEvent)) return false;
+ return (processSharedObjectMsgEvent((ISharedObjectMessageEvent) event)==null);
}
protected Event processSharedObjectMsgEvent(ISharedObjectMessageEvent event) {
return sharedObject.handleSharedObjectMsgEvent(event);
diff --git a/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/sharedobject/TwoPhaseCommitEventProcessor.java b/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/sharedobject/TwoPhaseCommitEventProcessor.java
index 4481ca381..54ef81bbf 100644
--- a/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/sharedobject/TwoPhaseCommitEventProcessor.java
+++ b/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/sharedobject/TwoPhaseCommitEventProcessor.java
@@ -116,17 +116,9 @@ public class TwoPhaseCommitEventProcessor implements IEventProcessor,
/*
* (non-Javadoc)
*
- * @see org.eclipse.ecf.core.util.IEventProcessor#acceptEvent(org.eclipse.ecf.core.util.Event)
- */
- public boolean acceptEvent(Event event) {
- return true;
- }
- /*
- * (non-Javadoc)
- *
* @see org.eclipse.ecf.core.util.IEventProcessor#processEvent(org.eclipse.ecf.core.util.Event)
*/
- public Event processEvent(Event event) {
+ public boolean processEvent(Event event) {
if (event instanceof ISharedObjectActivatedEvent) {
handleActivated((ISharedObjectActivatedEvent) event);
} else if (event instanceof IContainerConnectedEvent) {
@@ -141,7 +133,7 @@ public class TwoPhaseCommitEventProcessor implements IEventProcessor,
if (data instanceof ISharedObjectCommitEvent) localCommitted();
}
// Let other event processors have a shot at this event
- return event;
+ return false;
}
protected void handleActivated(ISharedObjectActivatedEvent event) {
trace("handleActivated(" + event + ")");
diff --git a/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/util/IEventHandler.java b/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/util/IEventHandler.java
index 08213c33c..19d7df264 100644
--- a/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/util/IEventHandler.java
+++ b/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/util/IEventHandler.java
@@ -7,7 +7,7 @@ public interface IEventHandler {
* handleEvents method.
*
* @param event
- * the Event for the ISharedObject to process
+ * the Event for the ISharedObject to handle
*/
public void handleEvent(Event event);
@@ -17,7 +17,7 @@ public interface IEventHandler {
* handleEvents method.
*
* @param events
- * the Events [] for the ISharedObject to process
+ * the Events [] for the ISharedObject to handle
*/
public void handleEvents(Event[] events);
}
diff --git a/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/util/IEventProcessor.java b/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/util/IEventProcessor.java
index 347f025ac..5fc2d0646 100644
--- a/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/util/IEventProcessor.java
+++ b/framework/bundles/org.eclipse.ecf/src/org/eclipse/ecf/core/util/IEventProcessor.java
@@ -10,24 +10,12 @@ package org.eclipse.ecf.core.util;
public interface IEventProcessor {
/**
- * Accept given Event. If implementers return true for a given Event then
- * this indicates that the {@link #processEvent(Event) } method should be
- * subsequently called.
- *
- * @param event
- * the Event under consideration for acceptance
- * @return true if given Event should be passed to processEvent method,
- * false if it should not
- */
- public boolean acceptEvent(Event event);
- /**
* Process given Event
*
* @param event
* the Event to process
- * @return Event to be provided to next IEventProcessor in chain. If null,
- * this signifies that processing of this Event should cease with
- * this Event processor
+ * @return true if the event has been successfully processed and no further processing should occur.
+ * False if the event should receive further processing.
*/
- public Event processEvent(Event event);
+ public boolean processEvent(Event event);
} \ No newline at end of file
diff --git a/providers/bundles/org.eclipse.ecf.provider.datashare/src/org/eclipse/ecf/provider/datashare/BaseChannel.java b/providers/bundles/org.eclipse.ecf.provider.datashare/src/org/eclipse/ecf/provider/datashare/BaseChannel.java
index a1655a365..c42347228 100644
--- a/providers/bundles/org.eclipse.ecf.provider.datashare/src/org/eclipse/ecf/provider/datashare/BaseChannel.java
+++ b/providers/bundles/org.eclipse.ecf.provider.datashare/src/org/eclipse/ecf/provider/datashare/BaseChannel.java
@@ -101,16 +101,7 @@ public class BaseChannel extends TransactionSharedObject implements IChannel {
if (!isPrimary()) initializeReplicaChannel();
addEventProcessor(new IEventProcessor() {
- public boolean acceptEvent(Event event) {
- if (event instanceof IContainerConnectedEvent)
- return true;
- else if (event instanceof IContainerDisconnectedEvent)
- return true;
- else if (event instanceof ISharedObjectMessageEvent)
- return true;
- return false;
- }
- public Event processEvent(Event event) {
+ public boolean processEvent(Event event) {
trace("processEvent("+event+")");
IChannelListener l = getListener();
if (event instanceof IContainerConnectedEvent) {
@@ -127,7 +118,7 @@ public class BaseChannel extends TransactionSharedObject implements IChannel {
BaseChannel.this
.handleMessageEvent((ISharedObjectMessageEvent) event);
}
- return event;
+ return false;
}
});
trace("initialize()");
diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java
index a2e8a62a7..c8cfeddba 100644
--- a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java
+++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java
@@ -72,16 +72,12 @@ public class RegistrySharedObject extends AbstractSharedObject {
public void initialize() throws SharedObjectInitException {
super.initialize();
super.addEventProcessor(new IEventProcessor() {
- public boolean acceptEvent(Event arg0) {
- return true;
- }
-
- public Event processEvent(Event arg0) {
+ public boolean processEvent(Event arg0) {
if (arg0 instanceof IContainerConnectedEvent)
handleContainerConnectedEvent((IContainerConnectedEvent) arg0);
else if (arg0 instanceof IContainerDisconnectedEvent)
handleContainerDisconnectedEvent((IContainerDisconnectedEvent) arg0);
- return null;
+ return false;
}
});
localRegistry = new RemoteServiceRegistryImpl(getHomeContainerID());
diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/registry/RemoteServiceRegistrationImpl.java b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/registry/RemoteServiceRegistrationImpl.java
index fe4c9a938..6d8f7d1d4 100644
--- a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/registry/RemoteServiceRegistrationImpl.java
+++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/registry/RemoteServiceRegistrationImpl.java
@@ -45,6 +45,8 @@ public class RemoteServiceRegistrationImpl implements
public static final int UNREGISTERED = 0x02;
+ protected transient RemoteServiceReferenceImpl reference = null;
+
public RemoteServiceRegistrationImpl() {
}
@@ -54,7 +56,7 @@ public class RemoteServiceRegistrationImpl implements
this.service = service;
this.clazzes = clazzes;
this.containerID = registry.getContainerID();
-
+ this.reference = new RemoteServiceReferenceImpl(this);
synchronized (registry) {
serviceid = registry.getNextServiceId();
this.properties = createProperties(properties);
@@ -77,7 +79,12 @@ public class RemoteServiceRegistrationImpl implements
}
public IRemoteServiceReference getReference() {
- return new RemoteServiceReferenceImpl(this);
+ if (reference == null) {
+ synchronized (this) {
+ reference = new RemoteServiceReferenceImpl(this);
+ }
+ }
+ return reference;
}
public void setProperties(Dictionary properties) {

Back to the top