Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2015-11-24 04:49:09 +0000
committerslewis2015-11-24 04:49:09 +0000
commit0000e26e7a8c3bea4456751965ea55eca9e19718 (patch)
treed491a6e7fde06bfe60a989fcc03acc199d31d183 /framework
parentf952a7b6054e4e01cd06126ec670bc80173ceb5d (diff)
downloadorg.eclipse.ecf-0000e26e7a8c3bea4456751965ea55eca9e19718.tar.gz
org.eclipse.ecf-0000e26e7a8c3bea4456751965ea55eca9e19718.tar.xz
org.eclipse.ecf-0000e26e7a8c3bea4456751965ea55eca9e19718.zip
Additional changes for generic provider for
https://bugs.eclipse.org/bugs/show_bug.cgi?id=482862 Change-Id: I2918678b2bd2f58f0a3f35db2362fd0dc6c1adf9
Diffstat (limited to 'framework')
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/META-INF/MANIFEST.MF2
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/internal/provider/ProviderPlugin.java17
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/IConnectRequestHandler.java3
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/IConnection.java1
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/ConnectRequestMessage.java32
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/ConnectResultMessage.java22
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/IClientSocketFactory.java2
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/IServerSocketFactory.java2
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/ISocketAcceptHandler.java2
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/GenericContainerInstantiator.java4
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainer.java15
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainerConfig.java1
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainerGroup.java83
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SSLGenericContainerInstantiator.java4
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SSLServerSOContainerGroup.java50
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/TCPServerSOContainerGroup.java47
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/gmm/GMMImpl.java4
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/gmm/MemberChanged.java24
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/util/IdentifiableObjectOutputStream.java7
19 files changed, 172 insertions, 150 deletions
diff --git a/framework/bundles/org.eclipse.ecf.provider/META-INF/MANIFEST.MF b/framework/bundles/org.eclipse.ecf.provider/META-INF/MANIFEST.MF
index f71507931..6ed46bcad 100644
--- a/framework/bundles/org.eclipse.ecf.provider/META-INF/MANIFEST.MF
+++ b/framework/bundles/org.eclipse.ecf.provider/META-INF/MANIFEST.MF
@@ -1,6 +1,6 @@
Manifest-Version: 1.0
Bundle-SymbolicName: org.eclipse.ecf.provider;singleton:=true
-Bundle-Version: 4.6.100.qualifier
+Bundle-Version: 4.7.0.qualifier
Bundle-Name: %plugin.name
Bundle-Vendor: %plugin.provider
Bundle-Activator: org.eclipse.ecf.internal.provider.ProviderPlugin
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/internal/provider/ProviderPlugin.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/internal/provider/ProviderPlugin.java
index 6e7280610..037f0b6a2 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/internal/provider/ProviderPlugin.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/internal/provider/ProviderPlugin.java
@@ -11,6 +11,8 @@
package org.eclipse.ecf.internal.provider;
+import java.io.*;
+import java.util.Hashtable;
import javax.net.ssl.SSLServerSocketFactory;
import javax.net.ssl.SSLSocketFactory;
import org.eclipse.core.runtime.*;
@@ -76,6 +78,14 @@ public class ProviderPlugin implements BundleActivator {
context1.registerService(ContainerTypeDescription.class, new ContainerTypeDescription(SSLGenericContainerInstantiator.SSLCLIENT_NAME, new SSLGenericContainerInstantiator(), "ECF SSL Generic Client", false, true), null); //$NON-NLS-1$
}
});
+ // testing
+ Hashtable<String, Object> props = new Hashtable<String, Object>();
+ props.put(IClassResolver.BUNDLE_PROP_NAME, PLUGIN_ID);
+ this.context.registerService(IClassResolver.class, new BundleClassResolver(context.getBundle()), props);
+ }
+
+ public ObjectInputStream createObjectInputStream(InputStream ins) throws IOException {
+ return ClassResolverObjectInputStream.create(this.context, ins, "(" + IClassResolver.BUNDLE_PROP_NAME + "=" + this.context.getBundle().getSymbolicName() + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
/**
@@ -104,6 +114,7 @@ public class ProviderPlugin implements BundleActivator {
private LogService systemLogService;
+ @SuppressWarnings("unchecked")
protected LogService getLogService() {
if (context == null) {
if (systemLogService == null)
@@ -138,6 +149,11 @@ public class ProviderPlugin implements BundleActivator {
return NAMESPACE_IDENTIFIER;
}
+ public BundleContext getContext() {
+ return this.context;
+ }
+
+ @SuppressWarnings("unchecked")
public SSLServerSocketFactory getSSLServerSocketFactory() {
if (context == null)
return null;
@@ -148,6 +164,7 @@ public class ProviderPlugin implements BundleActivator {
return (SSLServerSocketFactory) sslServerSocketFactoryTracker.getService();
}
+ @SuppressWarnings("unchecked")
public SSLSocketFactory getSSLSocketFactory() {
if (context == null)
return null;
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/IConnectRequestHandler.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/IConnectRequestHandler.java
index 6497579cb..945bf3e0a 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/IConnectRequestHandler.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/IConnectRequestHandler.java
@@ -33,6 +33,5 @@ public interface IConnectRequestHandler {
* @return any data intended as a response. If null is returned, this
* typically means refusal of connect request
*/
- public Serializable handleConnectRequest(Socket aSocket, String target,
- Serializable data, ISynchAsynchConnection conn);
+ public Serializable handleConnectRequest(Socket aSocket, String target, Serializable data, ISynchAsynchConnection conn);
} \ No newline at end of file
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/IConnection.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/IConnection.java
index 3033b09c9..70c7416b5 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/IConnection.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/IConnection.java
@@ -11,7 +11,6 @@
package org.eclipse.ecf.provider.comm;
import java.util.Map;
-
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.ecf.core.identity.ID;
import org.eclipse.ecf.core.util.ECFException;
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/ConnectRequestMessage.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/ConnectRequestMessage.java
index 83c91211e..06467511d 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/ConnectRequestMessage.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/ConnectRequestMessage.java
@@ -17,24 +17,24 @@ import java.net.URI;
public class ConnectRequestMessage implements Serializable {
private static final long serialVersionUID = 3257844363974226229L;
URI target;
- Serializable data;
+ Serializable data;
- public ConnectRequestMessage(URI target, Serializable data) {
- this.target = target;
- this.data = data;
- }
+ public ConnectRequestMessage(URI target, Serializable data) {
+ this.target = target;
+ this.data = data;
+ }
- public URI getTarget() {
- return target;
- }
+ public URI getTarget() {
+ return target;
+ }
- public Serializable getData() {
- return data;
- }
+ public Serializable getData() {
+ return data;
+ }
- public String toString() {
- StringBuffer buf = new StringBuffer("ConnectRequestMessage["); //$NON-NLS-1$
- buf.append(target).append(";").append(data).append("]"); //$NON-NLS-1$ //$NON-NLS-2$
- return buf.toString();
- }
+ public String toString() {
+ StringBuffer buf = new StringBuffer("ConnectRequestMessage["); //$NON-NLS-1$
+ buf.append(target).append(";").append(data).append("]"); //$NON-NLS-1$ //$NON-NLS-2$
+ return buf.toString();
+ }
} \ No newline at end of file
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/ConnectResultMessage.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/ConnectResultMessage.java
index 367df9ef7..e134567ac 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/ConnectResultMessage.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/ConnectResultMessage.java
@@ -17,17 +17,17 @@ public class ConnectResultMessage implements Serializable {
private static final long serialVersionUID = 3833188038300938804L;
Serializable data;
- public ConnectResultMessage(Serializable data) {
- this.data = data;
- }
+ public ConnectResultMessage(Serializable data) {
+ this.data = data;
+ }
- public Serializable getData() {
- return data;
- }
+ public Serializable getData() {
+ return data;
+ }
- public String toString() {
- StringBuffer buf = new StringBuffer("ConnectResultMessage["); //$NON-NLS-1$
- buf.append(data).append("]"); //$NON-NLS-1$
- return buf.toString();
- }
+ public String toString() {
+ StringBuffer buf = new StringBuffer("ConnectResultMessage["); //$NON-NLS-1$
+ buf.append(data).append("]"); //$NON-NLS-1$
+ return buf.toString();
+ }
} \ No newline at end of file
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/IClientSocketFactory.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/IClientSocketFactory.java
index 683870dce..c20a33aef 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/IClientSocketFactory.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/IClientSocketFactory.java
@@ -15,5 +15,5 @@ import java.io.IOException;
import java.net.Socket;
public interface IClientSocketFactory {
- Socket createSocket(String name, int port, int timeout) throws IOException;
+ Socket createSocket(String name, int port, int timeout) throws IOException;
} \ No newline at end of file
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/IServerSocketFactory.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/IServerSocketFactory.java
index a62dd35ab..881db59e7 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/IServerSocketFactory.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/IServerSocketFactory.java
@@ -15,5 +15,5 @@ import java.io.IOException;
import java.net.ServerSocket;
public interface IServerSocketFactory {
- ServerSocket createServerSocket(int port, int backlog) throws IOException;
+ ServerSocket createServerSocket(int port, int backlog) throws IOException;
} \ No newline at end of file
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/ISocketAcceptHandler.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/ISocketAcceptHandler.java
index 576ce14ec..20e2ea4ec 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/ISocketAcceptHandler.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/comm/tcp/ISocketAcceptHandler.java
@@ -14,5 +14,5 @@ package org.eclipse.ecf.provider.comm.tcp;
import java.net.Socket;
public interface ISocketAcceptHandler {
- public void handleAccept(Socket aSocket) throws Exception;
+ public void handleAccept(Socket aSocket) throws Exception;
} \ No newline at end of file
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/GenericContainerInstantiator.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/GenericContainerInstantiator.java
index 429b4b3c3..f4dc3dec7 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/GenericContainerInstantiator.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/GenericContainerInstantiator.java
@@ -351,8 +351,8 @@ public class GenericContainerInstantiator implements IContainerInstantiator, IRe
*/
public Class[][] getSupportedParameterTypes(ContainerTypeDescription description) {
if (!isClient(description))
- return new Class[][] { {ID.class}, {ID.class, Integer.class}};
- return new Class[][] { {}, {ID.class}, {ID.class, Integer.class}};
+ return new Class[][] {{ID.class}, {ID.class, Integer.class}};
+ return new Class[][] {{}, {ID.class}, {ID.class, Integer.class}};
}
public String[] getSupportedIntents(ContainerTypeDescription description) {
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainer.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainer.java
index cd4bf7e8d..206c7ccfe 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainer.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainer.java
@@ -523,7 +523,8 @@ public abstract class SOContainer extends AbstractContainer implements ISharedOb
public static ContainerMessage deserializeContainerMessage(byte[] bytes) throws IOException {
final ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
- final ObjectInputStream ois = new ObjectInputStream(bis);
+
+ final ObjectInputStream ois = ProviderPlugin.getDefault().createObjectInputStream(bis);
Object obj = null;
try {
obj = ois.readObject();
@@ -559,6 +560,13 @@ public abstract class SOContainer extends AbstractContainer implements ISharedOb
return receiver;
}
+ /**
+ * @since 4.7
+ */
+ public ISynchAsynchEventHandler getMessageReceiver() {
+ return getReceiver();
+ }
+
protected ISharedObject getSharedObject(ID id) {
final SOWrapper wrap = getSharedObjectWrapper(id);
return (wrap == null) ? null : wrap.getSharedObject();
@@ -997,10 +1005,7 @@ public abstract class SOContainer extends AbstractContainer implements ISharedOb
final ByteArrayInputStream bins = new ByteArrayInputStream(bytes);
Object obj = null;
try {
- // First try normal classloading. In Eclipse environment this will
- // use
- // buddy classloading
- final ObjectInputStream oins = new ObjectInputStream(bins);
+ final ObjectInputStream oins = ProviderPlugin.getDefault().createObjectInputStream(bins);
obj = oins.readObject();
} catch (final ClassNotFoundException e) {
// first reset stream
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainerConfig.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainerConfig.java
index 535071a0e..3af0f92b8 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainerConfig.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainerConfig.java
@@ -13,7 +13,6 @@ package org.eclipse.ecf.provider.generic;
import java.util.HashMap;
import java.util.Map;
-
import org.eclipse.core.runtime.Assert;
import org.eclipse.ecf.core.identity.ID;
import org.eclipse.ecf.core.sharedobject.ISharedObjectContainerConfig;
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainerGroup.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainerGroup.java
index edb81abe2..118f232d1 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainerGroup.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainerGroup.java
@@ -11,12 +11,20 @@
package org.eclipse.ecf.provider.generic;
-import java.util.TreeMap;
-import java.util.Collections;
-import java.util.Map;
-import java.util.Iterator;
+import java.io.*;
+import java.net.Socket;
+import java.net.URI;
+import java.util.*;
+import org.eclipse.ecf.internal.provider.ProviderPlugin;
+import org.eclipse.ecf.provider.comm.tcp.*;
+
+public class SOContainerGroup implements ISocketAcceptHandler {
+
+ /**
+ * @since 4.7
+ */
+ public static final String INVALID_CONNECT = "Invalid connect request."; //$NON-NLS-1$
-public class SOContainerGroup {
String name;
protected Map map;
@@ -57,4 +65,69 @@ public class SOContainerGroup {
public Iterator elements() {
return map.values().iterator();
}
+
+ /**
+ * @since 4.7
+ */
+ protected ObjectOutputStream createObjectOutputStream(Socket aSocket) throws IOException {
+ return new ObjectOutputStream(aSocket.getOutputStream());
+ }
+
+ /**
+ * @since 4.7
+ */
+ protected ObjectInputStream createObjectInputStream(Socket aSocket) throws IOException {
+ return ProviderPlugin.getDefault().createObjectInputStream(aSocket.getInputStream());
+ }
+
+ /**
+ * @since 4.7
+ */
+ protected ConnectRequestMessage readConnectRequestMessage(ObjectInputStream ins) throws IOException, ClassNotFoundException {
+ ConnectRequestMessage req = (ConnectRequestMessage) ins.readObject();
+ if (req == null)
+ throw new InvalidObjectException(INVALID_CONNECT + " Connect request message cannot be null"); //$NON-NLS-1$
+ return req;
+ }
+
+ /**
+ * @since 4.7
+ */
+ public void handleAccept(Socket aSocket) throws Exception {
+ // Set tcp no delay option
+ aSocket.setTcpNoDelay(true);
+
+ final ObjectOutputStream oStream = createObjectOutputStream(aSocket);
+ oStream.flush();
+ final ObjectInputStream iStream = createObjectInputStream(aSocket);
+
+ final ConnectRequestMessage req = readConnectRequestMessage(iStream);
+
+ final URI uri = req.getTarget();
+ if (uri == null)
+ throw new InvalidObjectException(INVALID_CONNECT + " URI connect target cannot be null"); //$NON-NLS-1$
+ final String path = uri.getPath();
+ if (path == null)
+ throw new InvalidObjectException(INVALID_CONNECT + " Path cannot be null"); //$NON-NLS-1$
+
+ // Given path, lookup associated container
+ final TCPServerSOContainer srs = (TCPServerSOContainer) get(path);
+ if (srs == null)
+ throw new InvalidObjectException("Container not found for path=" + path); //$NON-NLS-1$
+
+ // Create our local messaging interface
+ final Client newClient = new Client(aSocket, iStream, oStream, srs.getMessageReceiver());
+ // Get output stream lock so nothing is sent until we've responded
+ Object outputStreamLock = newClient.getOutputStreamLock();
+ // No other threads can access messaging interface until connect request handler has
+ // accepted or rejected connect request
+ synchronized (outputStreamLock) {
+ // Call checkConnect
+ final Serializable resp = srs.handleConnectRequest(aSocket, path, req.getData(), newClient);
+ // Create connect response wrapper and send it back
+ oStream.writeObject(new ConnectResultMessage(resp));
+ oStream.flush();
+ }
+ }
+
} \ No newline at end of file
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SSLGenericContainerInstantiator.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SSLGenericContainerInstantiator.java
index 9ec475c26..442cc037d 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SSLGenericContainerInstantiator.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SSLGenericContainerInstantiator.java
@@ -424,8 +424,8 @@ public class SSLGenericContainerInstantiator implements IContainerInstantiator,
*/
public Class[][] getSupportedParameterTypes(ContainerTypeDescription description) {
if (!isClient(description))
- return new Class[][] { {ID.class}, {ID.class, Integer.class}};
- return new Class[][] { {}, {ID.class}, {ID.class, Integer.class}};
+ return new Class[][] {{ID.class}, {ID.class, Integer.class}};
+ return new Class[][] {{}, {ID.class}, {ID.class, Integer.class}};
}
public String[] getSupportedIntents(ContainerTypeDescription description) {
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SSLServerSOContainerGroup.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SSLServerSOContainerGroup.java
index 006d3faba..8208eecf4 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SSLServerSOContainerGroup.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SSLServerSOContainerGroup.java
@@ -10,8 +10,9 @@
******************************************************************************/
package org.eclipse.ecf.provider.generic;
-import java.io.*;
-import java.net.*;
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.Socket;
import javax.net.ssl.SSLServerSocket;
import javax.net.ssl.SSLServerSocketFactory;
import org.eclipse.core.runtime.IStatus;
@@ -19,7 +20,8 @@ import org.eclipse.core.runtime.Status;
import org.eclipse.ecf.core.util.Trace;
import org.eclipse.ecf.internal.provider.ECFProviderDebugOptions;
import org.eclipse.ecf.internal.provider.ProviderPlugin;
-import org.eclipse.ecf.provider.comm.tcp.*;
+import org.eclipse.ecf.provider.comm.tcp.ISocketAcceptHandler;
+import org.eclipse.ecf.provider.comm.tcp.Server;
/**
* @since 4.3
@@ -27,7 +29,6 @@ import org.eclipse.ecf.provider.comm.tcp.*;
public class SSLServerSOContainerGroup extends SOContainerGroup implements ISocketAcceptHandler {
public static final int DEFAULT_BACKLOG = 50;
- public static final String INVALID_CONNECT = "Invalid connect request."; //$NON-NLS-1$
public static final String DEFAULT_GROUP_NAME = SSLServerSOContainerGroup.class.getName();
private int port = 0;
@@ -107,40 +108,6 @@ public class SSLServerSOContainerGroup extends SOContainerGroup implements ISock
return isOnTheAir;
}
- void handleSyncAccept(Socket aSocket) throws Exception {
- // Set socket options
- aSocket.setTcpNoDelay(true);
- final ObjectOutputStream oStream = new ObjectOutputStream(aSocket.getOutputStream());
- oStream.flush();
- final ObjectInputStream iStream = new ObjectInputStream(aSocket.getInputStream());
- final ConnectRequestMessage req = (ConnectRequestMessage) iStream.readObject();
- if (req == null)
- throw new InvalidObjectException(INVALID_CONNECT + " Connect request message cannot be null"); //$NON-NLS-1$
- final URI uri = req.getTarget();
- if (uri == null)
- throw new InvalidObjectException(INVALID_CONNECT + " URI connect target cannot be null"); //$NON-NLS-1$
- final String path = uri.getPath();
- if (path == null)
- throw new InvalidObjectException(INVALID_CONNECT + " Path cannot be null"); //$NON-NLS-1$
- final SSLServerSOContainer srs = (SSLServerSOContainer) get(path);
- if (srs == null)
- throw new InvalidObjectException("Container not found for path=" + path); //$NON-NLS-1$
- // Create our local messaging interface
- final Client newClient = new Client(aSocket, iStream, oStream, srs.getReceiver());
- // Get output stream lock so nothing is sent until we've responded
- Object outputStreamLock = newClient.getOutputStreamLock();
- // No other threads can access messaging interface until space has
- // accepted/rejected
- // connect request
- synchronized (outputStreamLock) {
- // Call checkConnect
- final Serializable resp = srs.handleConnectRequest(aSocket, path, req.getData(), newClient);
- // Create connect response wrapper and send it back
- oStream.writeObject(new ConnectResultMessage(resp));
- oStream.flush();
- }
- }
-
public synchronized void takeOffTheAir() {
trace("Taking " + getName() + " off the air."); //$NON-NLS-1$ //$NON-NLS-2$
if (listenerThread != null) {
@@ -188,6 +155,13 @@ public class SSLServerSOContainerGroup extends SOContainerGroup implements ISock
}, "SSLServerSOContainerGroup(" + port + ")"); //$NON-NLS-1$ //$NON-NLS-2$
}
+ /**
+ * @since 4.7
+ */
+ protected void handleSyncAccept(final Socket aSocket) throws Exception {
+ super.handleAccept(aSocket);
+ }
+
public void handleAccept(final Socket aSocket) {
new Thread(threadGroup, new Runnable() {
public void run() {
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/TCPServerSOContainerGroup.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/TCPServerSOContainerGroup.java
index 1a1d92369..e2761e393 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/TCPServerSOContainerGroup.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/TCPServerSOContainerGroup.java
@@ -10,16 +10,15 @@
******************************************************************************/
package org.eclipse.ecf.provider.generic;
-import java.io.*;
-import java.net.*;
+import java.io.IOException;
+import java.net.InetAddress;
import org.eclipse.ecf.core.util.Trace;
import org.eclipse.ecf.internal.provider.ECFProviderDebugOptions;
import org.eclipse.ecf.internal.provider.ProviderPlugin;
-import org.eclipse.ecf.provider.comm.tcp.*;
+import org.eclipse.ecf.provider.comm.tcp.Server;
-public class TCPServerSOContainerGroup extends SOContainerGroup implements ISocketAcceptHandler {
+public class TCPServerSOContainerGroup extends SOContainerGroup {
- public static final String INVALID_CONNECT = "Invalid connect request."; //$NON-NLS-1$
public static final String DEFAULT_GROUP_NAME = TCPServerSOContainerGroup.class.getName();
private int port;
private Server listener;
@@ -78,44 +77,6 @@ public class TCPServerSOContainerGroup extends SOContainerGroup implements ISock
return isOnTheAir;
}
- private void setSocketOptions(Socket aSocket) throws SocketException {
- aSocket.setTcpNoDelay(true);
- }
-
- public void handleAccept(Socket aSocket) throws Exception {
- // Set socket options
- setSocketOptions(aSocket);
- final ObjectOutputStream oStream = new ObjectOutputStream(aSocket.getOutputStream());
- oStream.flush();
- final ObjectInputStream iStream = new ObjectInputStream(aSocket.getInputStream());
- final ConnectRequestMessage req = (ConnectRequestMessage) iStream.readObject();
- if (req == null)
- throw new InvalidObjectException(INVALID_CONNECT + " Connect request message cannot be null"); //$NON-NLS-1$
- final URI uri = req.getTarget();
- if (uri == null)
- throw new InvalidObjectException(INVALID_CONNECT + " URI connect target cannot be null"); //$NON-NLS-1$
- final String path = uri.getPath();
- if (path == null)
- throw new InvalidObjectException(INVALID_CONNECT + " Path cannot be null"); //$NON-NLS-1$
- final TCPServerSOContainer srs = (TCPServerSOContainer) get(path);
- if (srs == null)
- throw new InvalidObjectException("Container not found for path=" + path); //$NON-NLS-1$
- // Create our local messaging interface
- final Client newClient = new Client(aSocket, iStream, oStream, srs.getReceiver());
- // Get output stream lock so nothing is sent until we've responded
- Object outputStreamLock = newClient.getOutputStreamLock();
- // No other threads can access messaging interface until space has
- // accepted/rejected
- // connect request
- synchronized (outputStreamLock) {
- // Call checkConnect
- final Serializable resp = srs.handleConnectRequest(aSocket, path, req.getData(), newClient);
- // Create connect response wrapper and send it back
- oStream.writeObject(new ConnectResultMessage(resp));
- oStream.flush();
- }
- }
-
public synchronized void takeOffTheAir() {
if (listener != null) {
trace("Taking " + getName() + " off the air."); //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/gmm/GMMImpl.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/gmm/GMMImpl.java
index bac4aa7e9..2df6b056f 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/gmm/GMMImpl.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/gmm/GMMImpl.java
@@ -10,9 +10,7 @@
******************************************************************************/
package org.eclipse.ecf.provider.generic.gmm;
-import java.util.Observable;
-import java.util.TreeSet;
-import java.util.Iterator;
+import java.util.*;
import org.eclipse.ecf.core.identity.ID;
public class GMMImpl extends Observable {
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/gmm/MemberChanged.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/gmm/MemberChanged.java
index 4e1f7df2b..0acdc2932 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/gmm/MemberChanged.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/gmm/MemberChanged.java
@@ -12,19 +12,19 @@
package org.eclipse.ecf.provider.generic.gmm;
public class MemberChanged {
- Member member;
- boolean added;
+ Member member;
+ boolean added;
- public MemberChanged(Member member, boolean added) {
- this.member = member;
- this.added = added;
- }
+ public MemberChanged(Member member, boolean added) {
+ this.member = member;
+ this.added = added;
+ }
- public Member getMember() {
- return member;
- }
+ public Member getMember() {
+ return member;
+ }
- public boolean getAdded() {
- return added;
- }
+ public boolean getAdded() {
+ return added;
+ }
} \ No newline at end of file
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/util/IdentifiableObjectOutputStream.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/util/IdentifiableObjectOutputStream.java
index b1acd0fe3..135d5ddec 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/util/IdentifiableObjectOutputStream.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/util/IdentifiableObjectOutputStream.java
@@ -10,9 +10,7 @@
*******************************************************************************/
package org.eclipse.ecf.provider.util;
-import java.io.IOException;
-import java.io.ObjectOutputStream;
-import java.io.OutputStream;
+import java.io.*;
/**
* Stores Java objects in the underlying stream in an manner that allows
@@ -23,8 +21,7 @@ import java.io.OutputStream;
public class IdentifiableObjectOutputStream extends ObjectOutputStream {
String name = null;
- public IdentifiableObjectOutputStream(String name, OutputStream outs)
- throws IOException {
+ public IdentifiableObjectOutputStream(String name, OutputStream outs) throws IOException {
super(outs);
this.name = name;
}

Back to the top