diff options
author | slewis | 2009-03-07 06:37:30 +0000 |
---|---|---|
committer | slewis | 2009-03-07 06:37:30 +0000 |
commit | b56afa7ffdaff2caf0856d7cc6d4a9516cdb685f (patch) | |
tree | a650a112c6ce876c637cc015e1cd65708b0e4a9f /server-side/bundles/org.eclipse.ecf.server.generic/src | |
parent | c6d46adba3e6d184686ce717f796777b0adef931 (diff) | |
download | org.eclipse.ecf-b56afa7ffdaff2caf0856d7cc6d4a9516cdb685f.tar.gz org.eclipse.ecf-b56afa7ffdaff2caf0856d7cc6d4a9516cdb685f.tar.xz org.eclipse.ecf-b56afa7ffdaff2caf0856d7cc6d4a9516cdb685f.zip |
Updates to address bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=267481
Diffstat (limited to 'server-side/bundles/org.eclipse.ecf.server.generic/src')
4 files changed, 59 insertions, 37 deletions
diff --git a/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/internal/server/generic/Activator.java b/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/internal/server/generic/Activator.java index 4a723a149..13a7d81eb 100644 --- a/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/internal/server/generic/Activator.java +++ b/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/internal/server/generic/Activator.java @@ -2,7 +2,7 @@ package org.eclipse.ecf.internal.server.generic; import org.eclipse.core.runtime.*; import org.eclipse.ecf.core.util.LogHelper; -import org.eclipse.ecf.discovery.service.IDiscoveryService; +import org.eclipse.ecf.discovery.IDiscoveryAdvertiser; import org.eclipse.ecf.server.generic.ServerManager; import org.osgi.framework.*; import org.osgi.service.log.LogService; @@ -40,8 +40,8 @@ public class Activator implements BundleActivator { return (IExtensionRegistry) extensionRegistryTracker.getService(); } - public IDiscoveryService getDiscovery() { - return (IDiscoveryService) discoveryTracker.getService(); + public IDiscoveryAdvertiser getDiscovery() { + return (IDiscoveryAdvertiser) discoveryTracker.getService(); } public Bundle getBundle() { @@ -74,7 +74,7 @@ public class Activator implements BundleActivator { plugin = this; this.extensionRegistryTracker = new ServiceTracker(ctxt, IExtensionRegistry.class.getName(), null); this.extensionRegistryTracker.open(); - this.discoveryTracker = new ServiceTracker(ctxt, IDiscoveryService.class.getName(), null); + this.discoveryTracker = new ServiceTracker(ctxt, IDiscoveryAdvertiser.class.getName(), null); this.discoveryTracker.open(); serverManager = new ServerManager(); } diff --git a/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/AbstractGenericServer.java b/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/AbstractGenericServer.java index 6dd9bff1e..721a7e031 100644 --- a/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/AbstractGenericServer.java +++ b/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/AbstractGenericServer.java @@ -3,40 +3,12 @@ package org.eclipse.ecf.server.generic; import java.io.IOException; import java.security.PermissionCollection; import java.util.*; -import org.eclipse.ecf.core.IContainerListener; -import org.eclipse.ecf.core.events.*; import org.eclipse.ecf.core.identity.*; import org.eclipse.ecf.core.security.IConnectHandlerPolicy; -import org.eclipse.ecf.core.sharedobject.ISharedObjectContainerConfig; import org.eclipse.ecf.provider.generic.*; public abstract class AbstractGenericServer { - protected class GenericServerContainer extends TCPServerSOContainer { - - private IContainerListener departedListener = new IContainerListener() { - public void handleEvent(IContainerEvent event) { - if (event instanceof IContainerDisconnectedEvent) { - IContainerDisconnectedEvent de = (IContainerDisconnectedEvent) event; - handleDisconnect(de.getTargetID()); - } else if (event instanceof IContainerEjectedEvent) { - IContainerEjectedEvent de = (IContainerEjectedEvent) event; - handleEject(de.getTargetID()); - } - } - }; - - public GenericServerContainer(ISharedObjectContainerConfig config, TCPServerSOContainerGroup listener, String path, int keepAlive) { - super(config, listener, path, keepAlive); - addListener(departedListener); - } - - public void dispose() { - removeListener(departedListener); - super.dispose(); - } - } - protected void handleDisconnect(ID targetID) { // nothing to do } @@ -97,7 +69,7 @@ public abstract class AbstractGenericServer { protected void createAndInitializeServer(String path, int keepAlive) throws IDCreateException { if (path == null || path.equals("")) //$NON-NLS-1$ throw new NullPointerException("Cannot create ID with null or empty path"); //$NON-NLS-1$ - GenericServerContainer s = new GenericServerContainer(createServerConfig(path), serverGroup, path, keepAlive); + GenericServerContainer s = new GenericServerContainer(this, createServerConfig(path), serverGroup, path, keepAlive); IConnectHandlerPolicy policy = createConnectHandlerPolicy(s, path); if (policy != null) s.setConnectPolicy(policy); diff --git a/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/GenericServerContainer.java b/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/GenericServerContainer.java new file mode 100644 index 000000000..9b0eece59 --- /dev/null +++ b/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/GenericServerContainer.java @@ -0,0 +1,52 @@ +/******************************************************************************* +* Copyright (c) 2009 EclipseSource 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: +* EclipseSource - initial API and implementation +******************************************************************************/ +/** + * + */ +package org.eclipse.ecf.server.generic; + +import org.eclipse.ecf.core.IContainerListener; +import org.eclipse.ecf.core.events.*; +import org.eclipse.ecf.core.sharedobject.ISharedObjectContainerConfig; +import org.eclipse.ecf.provider.generic.TCPServerSOContainer; +import org.eclipse.ecf.provider.generic.TCPServerSOContainerGroup; + +/** + * + * @since 2.0 + * + */ +public class GenericServerContainer extends TCPServerSOContainer { + + final AbstractGenericServer abstractGenericServer; + + private IContainerListener departedListener = new IContainerListener() { + public void handleEvent(IContainerEvent event) { + if (event instanceof IContainerDisconnectedEvent) { + IContainerDisconnectedEvent de = (IContainerDisconnectedEvent) event; + GenericServerContainer.this.abstractGenericServer.handleDisconnect(de.getTargetID()); + } else if (event instanceof IContainerEjectedEvent) { + IContainerEjectedEvent de = (IContainerEjectedEvent) event; + GenericServerContainer.this.abstractGenericServer.handleEject(de.getTargetID()); + } + } + }; + + public GenericServerContainer(AbstractGenericServer abstractGenericServer, ISharedObjectContainerConfig config, TCPServerSOContainerGroup listener, String path, int keepAlive) { + super(config, listener, path, keepAlive); + this.abstractGenericServer = abstractGenericServer; + addListener(departedListener); + } + + public void dispose() { + removeListener(departedListener); + super.dispose(); + } +}
\ No newline at end of file diff --git a/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/ServerManager.java b/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/ServerManager.java index 87e97c59b..c6ed608d0 100644 --- a/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/ServerManager.java +++ b/server-side/bundles/org.eclipse.ecf.server.generic/src/org/eclipse/ecf/server/generic/ServerManager.java @@ -19,10 +19,8 @@ import java.util.*; import org.eclipse.core.runtime.*; import org.eclipse.ecf.core.identity.*; import org.eclipse.ecf.core.sharedobject.ISharedObjectContainer; -import org.eclipse.ecf.discovery.ServiceInfo; -import org.eclipse.ecf.discovery.ServiceProperties; +import org.eclipse.ecf.discovery.*; import org.eclipse.ecf.discovery.identity.IServiceID; -import org.eclipse.ecf.discovery.service.IDiscoveryService; import org.eclipse.ecf.internal.server.generic.Activator; import org.eclipse.ecf.internal.server.generic.Messages; import org.eclipse.ecf.provider.generic.*; @@ -180,7 +178,7 @@ public class ServerManager { } private void registerServerForDiscovery(NamedGroup group, boolean pwrequired) { - final IDiscoveryService discovery = Activator.getDefault().getDiscovery(); + final IDiscoveryAdvertiser discovery = Activator.getDefault().getDiscovery(); if (discovery != null) { try { final String rawGroupName = group.getRawName(); |