From 973147137a23cfb368e0d387b9513fdae4ef46b4 Mon Sep 17 00:00:00 2001 From: Eike Stepper Date: Fri, 27 Oct 2006 18:19:36 +0000 Subject: Added registries for connectors and channels --- plugins/org.eclipse.net4j/.options | 2 +- .../net4j/transport/AbstractConnector.java | 70 ++++++--- .../net4j/transport/AbstractProtocolFactory.java | 4 - .../internal/net4j/transport/BufferImpl.java | 24 ++-- .../internal/net4j/transport/ChannelImpl.java | 87 +++++++++-- .../embedded/AbstractEmbeddedConnector.java | 8 +- .../net4j/transport/tcp/AbstractTCPConnector.java | 16 +-- .../net4j/transport/tcp/ControlChannelImpl.java | 46 +++--- .../net4j/transport/tcp/TCPAcceptorImpl.java | 4 +- .../src/org/eclipse/net4j/Net4jFactory.java | 107 -------------- .../src/org/eclipse/net4j/package.html | 2 +- .../org/eclipse/net4j/signal/SignalProtocol.java | 2 +- .../src/org/eclipse/net4j/transport/Buffer.java | 6 +- .../src/org/eclipse/net4j/transport/Channel.java | 10 +- .../src/org/eclipse/net4j/transport/ChannelID.java | 21 +++ .../src/org/eclipse/net4j/transport/Connector.java | 6 +- .../net4j/transport/util/BufferOutputStream.java | 12 +- .../net4j/transport/util/ChannelOutputStream.java | 4 +- .../src/org/eclipse/net4j/util/Net4jUtil.java | 159 +++++++++++++++++++++ .../src/org/eclipse/net4j/util/ObjectUtil.java | 41 ++++++ .../src/org/eclipse/net4j/util/StringUtil.java | 1 - .../util/registry/AbstractCachingRegistry.java | 3 - .../util/registry/AbstractMappingRegistry.java | 7 - .../net4j/util/registry/IRegistryElement.java | 2 - 24 files changed, 424 insertions(+), 220 deletions(-) delete mode 100644 plugins/org.eclipse.net4j/src/org/eclipse/net4j/Net4jFactory.java create mode 100644 plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/ChannelID.java create mode 100644 plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/Net4jUtil.java create mode 100644 plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/ObjectUtil.java (limited to 'plugins/org.eclipse.net4j') diff --git a/plugins/org.eclipse.net4j/.options b/plugins/org.eclipse.net4j/.options index 2aa722539a..d4803f3631 100644 --- a/plugins/org.eclipse.net4j/.options +++ b/plugins/org.eclipse.net4j/.options @@ -7,7 +7,7 @@ org.eclipse.net4j/debug.registry = true org.eclipse.net4j/debug.om = true org.eclipse.net4j/debug.buffer = true -org.eclipse.net4j/debug.buffer.stream = true +org.eclipse.net4j/debug.buffer.stream = false org.eclipse.net4j/debug.channel = true org.eclipse.net4j/debug.selector = true org.eclipse.net4j/debug.acceptor = true diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/AbstractConnector.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/AbstractConnector.java index 46853d7fe7..f2873f4a64 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/AbstractConnector.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/AbstractConnector.java @@ -53,6 +53,14 @@ public abstract class AbstractConnector extends AbstractLifecycle implements Con } }; + private static final int MIN_CONNECTOR_ID = 1; + + private static final int MAX_CONNECTOR_ID = Integer.MAX_VALUE; + + private static int nextConnectorID = MIN_CONNECTOR_ID; + + private int connectorID = getNextConnectorID(); + private ConnectorCredentials credentials; private IRegistry protocolFactoryRegistry; @@ -98,6 +106,11 @@ public abstract class AbstractConnector extends AbstractLifecycle implements Con { } + public Integer getID() + { + return connectorID; + } + public abstract void multiplexBuffer(Channel channel); public ExecutorService getReceiveExecutor() @@ -204,10 +217,10 @@ public abstract class AbstractConnector extends AbstractLifecycle implements Con state = newState; fireStateChanged(newState, oldState); - switch (newState) { case DISCONNECTED: + REGISTRY.deregister(connectorID); if (finishedConnecting != null) { finishedConnecting.countDown(); @@ -238,6 +251,7 @@ public abstract class AbstractConnector extends AbstractLifecycle implements Con case CONNECTED: finishedConnecting.countDown(); // Just in case of suspicion finishedNegotiating.countDown(); + REGISTRY.register(this); break; } @@ -334,9 +348,9 @@ public abstract class AbstractConnector extends AbstractLifecycle implements Con public Channel openChannel(String protocolID) throws ConnectorException { - short channelID = findFreeChannelID(); - ChannelImpl channel = createChannel(channelID, protocolID); - registerChannelWithPeer(channelID, protocolID); + short channelIndex = findFreeChannelIndex(); + ChannelImpl channel = createChannel(channelIndex, protocolID); + registerChannelWithPeer(channelIndex, protocolID); try { @@ -354,17 +368,17 @@ public abstract class AbstractConnector extends AbstractLifecycle implements Con return channel; } - public ChannelImpl createChannel(short channelID, String protocolID) + public ChannelImpl createChannel(short channelIndex, String protocolID) { ChannelImpl channel = new ChannelImpl(receiveExecutor); Protocol protocol = createProtocol(protocolID, channel); if (TRACER.isEnabled()) { - TRACER.trace(toString() + ": Opening channel " + channelID //$NON-NLS-1$ + TRACER.trace(toString() + ": Opening channel " + channelIndex //$NON-NLS-1$ + (protocol == null ? " without protocol" : " with protocol " + protocolID)); //$NON-NLS-1$ //$NON-NLS-2$ } - channel.setChannelID(channelID); + channel.setChannelIndex(channelIndex); channel.setConnector(this); channel.setReceiveHandler(protocol); channel.addLifecycleListener(channelLifecycleListener); @@ -372,11 +386,11 @@ public abstract class AbstractConnector extends AbstractLifecycle implements Con return channel; } - public ChannelImpl getChannel(short channelID) + public ChannelImpl getChannel(short channelIndex) { try { - ChannelImpl channel = channels.get(channelID); + ChannelImpl channel = channels.get(channelIndex); if (channel == null || channel == NULL_CHANNEL) { throw new NullPointerException(); @@ -388,7 +402,7 @@ public abstract class AbstractConnector extends AbstractLifecycle implements Con { if (TRACER.isEnabled()) { - TRACER.trace(toString() + ": Invalid channelID " + channelID); //$NON-NLS-1$ + TRACER.trace(toString() + ": Invalid channelIndex " + channelIndex); //$NON-NLS-1$ } return null; @@ -413,7 +427,7 @@ public abstract class AbstractConnector extends AbstractLifecycle implements Con return result; } - protected short findFreeChannelID() + protected short findFreeChannelIndex() { synchronized (channels) { @@ -432,25 +446,25 @@ public abstract class AbstractConnector extends AbstractLifecycle implements Con protected void addChannel(ChannelImpl channel) { - short channelID = channel.getChannelID(); - while (channelID >= channels.size()) + short channelIndex = channel.getChannelIndex(); + while (channelIndex >= channels.size()) { channels.add(NULL_CHANNEL); } - channels.set(channelID, channel); + channels.set(channelIndex, channel); } protected void removeChannel(ChannelImpl channel) { channel.removeLifecycleListener(channelLifecycleListener); - int channelID = channel.getChannelID(); + int channelIndex = channel.getChannelIndex(); if (TRACER.isEnabled()) { - TRACER.trace(toString() + ": Removing channel " + channelID); //$NON-NLS-1$ + TRACER.trace(toString() + ": Removing channel " + channelIndex); //$NON-NLS-1$ } - channels.set(channelID, NULL_CHANNEL); + channels.set(channelIndex, NULL_CHANNEL); } protected Protocol createProtocol(String protocolID, Channel channel) @@ -584,9 +598,29 @@ public abstract class AbstractConnector extends AbstractLifecycle implements Con super.onDeactivate(); } - protected abstract void registerChannelWithPeer(short channelID, String protocolID) + protected abstract void registerChannelWithPeer(short channelIndex, String protocolID) throws ConnectorException; + private int getNextConnectorID() + { + int id = nextConnectorID; + if (nextConnectorID == MAX_CONNECTOR_ID) + { + if (TRACER.isEnabled()) + { + TRACER.trace(toString() + ": ID wrap around"); //$NON-NLS-1$ + } + + nextConnectorID = MIN_CONNECTOR_ID; + } + else + { + ++nextConnectorID; + } + + return id; + } + /** * Is registered with each {@link Channel} of this {@link Connector}. *

diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/AbstractProtocolFactory.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/AbstractProtocolFactory.java index b3f3ae40a9..3f14c60ee0 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/AbstractProtocolFactory.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/AbstractProtocolFactory.java @@ -36,8 +36,4 @@ public abstract class AbstractProtocolFactory implements ProtocolFactory { return isForClients() && isForServers(); } - - public void dispose() - { - } } diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/BufferImpl.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/BufferImpl.java index 3570ed07cc..bfaed8ed40 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/BufferImpl.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/BufferImpl.java @@ -41,7 +41,7 @@ public class BufferImpl implements Buffer private BufferProvider bufferProvider; - private short channelID; + private short channelIndex; private boolean eos; @@ -75,14 +75,14 @@ public class BufferImpl implements Buffer this.bufferProvider = bufferProvider; } - public short getChannelID() + public short getChannelIndex() { if (state == State.INITIAL || state == State.READING_HEADER) { throw new IllegalStateException("state == " + state); //$NON-NLS-1$ } - return channelID; + return channelIndex; } public short getCapacity() @@ -120,7 +120,7 @@ public class BufferImpl implements Buffer { byteBuffer.clear(); state = State.INITIAL; - channelID = NO_CHANNEL; + channelIndex = NO_CHANNEL; eos = false; } @@ -157,7 +157,7 @@ public class BufferImpl implements Buffer } byteBuffer.flip(); - channelID = byteBuffer.getShort(); + channelIndex = byteBuffer.getShort(); short payloadSize = byteBuffer.getShort(); if (payloadSize < 0) { @@ -194,13 +194,13 @@ public class BufferImpl implements Buffer return byteBuffer; } - public ByteBuffer startPutting(short channelID) + public ByteBuffer startPutting(short channelIndex) { if (state == State.PUTTING) { - if (channelID != this.channelID) + if (channelIndex != this.channelIndex) { - throw new IllegalArgumentException("channelID != this.channelID"); //$NON-NLS-1$ + throw new IllegalArgumentException("channelIndex != this.channelIndex"); //$NON-NLS-1$ } } else if (state != State.INITIAL) @@ -210,7 +210,7 @@ public class BufferImpl implements Buffer else { state = State.PUTTING; - this.channelID = channelID; + this.channelIndex = channelIndex; byteBuffer.clear(); byteBuffer.position(BufferImpl.HEADER_SIZE); @@ -228,9 +228,9 @@ public class BufferImpl implements Buffer if (state == State.PUTTING) { - if (channelID == NO_CHANNEL) + if (channelIndex == NO_CHANNEL) { - throw new IllegalStateException("channelID == NO_CHANNEL"); //$NON-NLS-1$ + throw new IllegalStateException("channelIndex == NO_CHANNEL"); //$NON-NLS-1$ } int payloadSize = byteBuffer.position() - BufferImpl.HEADER_SIZE + EOS_OFFSET; @@ -246,7 +246,7 @@ public class BufferImpl implements Buffer } byteBuffer.flip(); - byteBuffer.putShort(channelID); + byteBuffer.putShort(channelIndex); byteBuffer.putShort((short)payloadSize); byteBuffer.position(0); state = State.WRITING; diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/ChannelImpl.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/ChannelImpl.java index 5aa08421ab..42e6e780dd 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/ChannelImpl.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/ChannelImpl.java @@ -14,7 +14,9 @@ import org.eclipse.net4j.transport.Buffer; import org.eclipse.net4j.transport.BufferHandler; import org.eclipse.net4j.transport.BufferProvider; import org.eclipse.net4j.transport.Channel; +import org.eclipse.net4j.transport.ChannelID; import org.eclipse.net4j.transport.Connector; +import org.eclipse.net4j.util.ObjectUtil; import org.eclipse.net4j.util.concurrent.AsynchronousWorkSerializer; import org.eclipse.net4j.util.concurrent.SynchronousWorkSerializer; import org.eclipse.net4j.util.concurrent.WorkSerializer; @@ -23,6 +25,7 @@ import org.eclipse.net4j.util.om.ContextTracer; import org.eclipse.internal.net4j.bundle.Net4j; import org.eclipse.internal.net4j.transport.BufferImpl.State; +import org.eclipse.internal.net4j.transport.tcp.ControlChannelImpl; import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; @@ -36,7 +39,7 @@ public class ChannelImpl extends AbstractLifecycle implements Channel, BufferPro private static final ContextTracer TRACER = new ContextTracer(Net4j.DEBUG_CHANNEL, ChannelImpl.class); - private short channelID = BufferImpl.NO_CHANNEL; + private short channelIndex = BufferImpl.NO_CHANNEL; private AbstractConnector connector; @@ -57,19 +60,24 @@ public class ChannelImpl extends AbstractLifecycle implements Channel, BufferPro this.receiveExecutor = receiveExecutor; } - public short getChannelID() + public ChannelID getID() { - return channelID; + return new ChannelIDImpl(); } - public void setChannelID(short channelID) + public short getChannelIndex() { - if (channelID == BufferImpl.NO_CHANNEL) + return channelIndex; + } + + public void setChannelIndex(short channelIndex) + { + if (channelIndex == BufferImpl.NO_CHANNEL) { - throw new IllegalArgumentException("channelID == INVALID_CHANNEL_ID"); //$NON-NLS-1$ + throw new IllegalArgumentException("channelIndex == INVALID_CHANNEL_ID"); //$NON-NLS-1$ } - this.channelID = channelID; + this.channelIndex = channelIndex; } public Connector getConnector() @@ -171,16 +179,16 @@ public class ChannelImpl extends AbstractLifecycle implements Channel, BufferPro @Override public String toString() { - return "Channel[" + connector + ", channelID=" + channelID + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + return "Channel[" + connector + ", channelIndex=" + channelIndex + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } @Override protected void onAboutToActivate() throws Exception { super.onAboutToActivate(); - if (channelID == BufferImpl.NO_CHANNEL) + if (channelIndex == BufferImpl.NO_CHANNEL) { - throw new IllegalStateException("channelID == INVALID_CHANNEL_ID"); //$NON-NLS-1$ + throw new IllegalStateException("channelIndex == INVALID_CHANNEL_ID"); //$NON-NLS-1$ } if (connector == null) @@ -202,14 +210,69 @@ public class ChannelImpl extends AbstractLifecycle implements Channel, BufferPro { receiveSerializer = new AsynchronousWorkSerializer(receiveExecutor); } + + if (!(this instanceof ControlChannelImpl)) + { + Channel.REGISTRY.register(this); + } } @Override protected void onDeactivate() throws Exception { + if (!(this instanceof ControlChannelImpl)) + { + Channel.REGISTRY.deregister(getID()); + } + receiveSerializer = null; - sendQueue.clear(); - sendQueue = null; + if (sendQueue != null) + { + sendQueue.clear(); + sendQueue = null; + } + super.onDeactivate(); } + + /** + * @author Eike Stepper + */ + private final class ChannelIDImpl implements ChannelID + { + public Connector getConnector() + { + return connector; + } + + public short getChannelIndex() + { + return channelIndex; + } + + @Override + public boolean equals(Object obj) + { + if (obj instanceof ChannelID) + { + ChannelID that = (ChannelID)obj; + return channelIndex == that.getChannelIndex() + && ObjectUtil.equals(connector, that.getConnector()); + } + + return false; + } + + @Override + public int hashCode() + { + return ObjectUtil.hashCode(connector) ^ channelIndex; + } + + @Override + public String toString() + { + return "ChannelID[" + connector + ", channelIndex=" + channelIndex + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + } } diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/embedded/AbstractEmbeddedConnector.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/embedded/AbstractEmbeddedConnector.java index dbd0a48dc0..c1fbcc735f 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/embedded/AbstractEmbeddedConnector.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/embedded/AbstractEmbeddedConnector.java @@ -44,12 +44,12 @@ public abstract class AbstractEmbeddedConnector extends AbstractConnector } @Override - protected void registerChannelWithPeer(short channelID, String protocolID) + protected void registerChannelWithPeer(short channelIndex, String protocolID) throws ConnectorException { try { - ChannelImpl channel = getPeer().createChannel(channelID, protocolID); + ChannelImpl channel = getPeer().createChannel(channelIndex, protocolID); if (channel == null) { throw new ConnectorException("Failed to register channel with peer"); //$NON-NLS-1$ @@ -69,8 +69,8 @@ public abstract class AbstractEmbeddedConnector extends AbstractConnector public void multiplexBuffer(Channel localChannel) { - short channelID = localChannel.getChannelID(); - ChannelImpl peerChannel = peer.getChannel(channelID); + short channelIndex = localChannel.getChannelIndex(); + ChannelImpl peerChannel = peer.getChannel(channelIndex); if (peerChannel == null) { throw new IllegalStateException("peerChannel == null"); //$NON-NLS-1$ diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/AbstractTCPConnector.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/AbstractTCPConnector.java index 8974e39620..6df749f60e 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/AbstractTCPConnector.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/AbstractTCPConnector.java @@ -10,13 +10,13 @@ **************************************************************************/ package org.eclipse.internal.net4j.transport.tcp; -import org.eclipse.net4j.Net4jFactory; import org.eclipse.net4j.transport.Buffer; import org.eclipse.net4j.transport.Channel; import org.eclipse.net4j.transport.ConnectorException; import org.eclipse.net4j.transport.tcp.TCPConnector; import org.eclipse.net4j.transport.tcp.TCPSelector; import org.eclipse.net4j.transport.tcp.TCPSelectorListener; +import org.eclipse.net4j.util.Net4jUtil; import org.eclipse.net4j.util.lifecycle.LifecycleUtil; import org.eclipse.net4j.util.om.ContextTracer; @@ -148,9 +148,9 @@ public abstract class AbstractTCPConnector extends AbstractConnector implements ByteBuffer byteBuffer = inputBuffer.startGetting(socketChannel); if (byteBuffer != null) { - short channelID = inputBuffer.getChannelID(); - ChannelImpl channel = channelID == ControlChannelImpl.CONTROL_CHANNEL_ID ? controlChannel - : getChannel(channelID); + short channelIndex = inputBuffer.getChannelIndex(); + ChannelImpl channel = channelIndex == ControlChannelImpl.CONTROL_CHANNEL_ID ? controlChannel + : getChannel(channelIndex); if (channel != null) { channel.handleBufferFromMultiplexer(inputBuffer); @@ -244,10 +244,10 @@ public abstract class AbstractTCPConnector extends AbstractConnector implements } @Override - protected void registerChannelWithPeer(short channelID, String protocolID) + protected void registerChannelWithPeer(short channelIndex, String protocolID) throws ConnectorException { - if (!controlChannel.registerChannel(channelID, protocolID)) + if (!controlChannel.registerChannel(channelIndex, protocolID)) { throw new ConnectorException("Failed to register channel with peer"); //$NON-NLS-1$ } @@ -258,7 +258,7 @@ public abstract class AbstractTCPConnector extends AbstractConnector implements { if (isConnected()) { - controlChannel.deregisterChannel(channel.getChannelID()); + controlChannel.deregisterChannel(channel.getChannelIndex()); } super.removeChannel(channel); @@ -270,7 +270,7 @@ public abstract class AbstractTCPConnector extends AbstractConnector implements super.onAboutToActivate(); if (selector == null) { - selector = Net4jFactory.createTCPSelector(); + selector = Net4jUtil.createTCPSelector(); LifecycleUtil.activate(selector); } } diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/ControlChannelImpl.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/ControlChannelImpl.java index 38d2459571..850dbcfc5d 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/ControlChannelImpl.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/ControlChannelImpl.java @@ -48,41 +48,41 @@ public final class ControlChannelImpl extends ChannelImpl public ControlChannelImpl(AbstractTCPConnector connector) { super(connector.getReceiveExecutor()); - setChannelID(CONTROL_CHANNEL_ID); + setChannelIndex(CONTROL_CHANNEL_ID); setConnector(connector); } - public boolean registerChannel(short channelID, String protocolID) + public boolean registerChannel(short channelIndex, String protocolID) { - assertValidChannelID(channelID); - Synchronizer registration = registrations.correlate(channelID); + assertValidChannelIndex(channelIndex); + Synchronizer registration = registrations.correlate(channelIndex); Buffer buffer = provideBuffer(); ByteBuffer byteBuffer = buffer.startPutting(CONTROL_CHANNEL_ID); byteBuffer.put(OPCODE_REGISTRATION); - byteBuffer.putShort(channelID); + byteBuffer.putShort(channelIndex); BufferUtil.putUTF8(byteBuffer, protocolID); handleBuffer(buffer); return registration.get(REGISTRATION_TIMEOUT); } - public void deregisterChannel(short channelID) + public void deregisterChannel(short channelIndex) { - assertValidChannelID(channelID); + assertValidChannelIndex(channelIndex); Buffer buffer = provideBuffer(); ByteBuffer byteBuffer = buffer.startPutting(CONTROL_CHANNEL_ID); byteBuffer.put(OPCODE_DEREGISTRATION); - byteBuffer.putShort(channelID); + byteBuffer.putShort(channelIndex); handleBuffer(buffer); } - private void assertValidChannelID(short channelID) + private void assertValidChannelIndex(short channelIndex) { - if (channelID <= CONTROL_CHANNEL_ID) + if (channelIndex <= CONTROL_CHANNEL_ID) { - throw new IllegalArgumentException("channelID <= CONTROL_CHANNEL_ID"); //$NON-NLS-1$ + throw new IllegalArgumentException("channelIndex <= CONTROL_CHANNEL_ID"); //$NON-NLS-1$ } } @@ -96,15 +96,15 @@ public final class ControlChannelImpl extends ChannelImpl { case OPCODE_REGISTRATION: { - short channelID = byteBuffer.getShort(); - assertValidChannelID(channelID); + short channelIndex = byteBuffer.getShort(); + assertValidChannelIndex(channelIndex); boolean success = true; try { byte[] handlerFactoryUTF8 = BufferUtil.getByteArray(byteBuffer); String protocolID = BufferUtil.fromUTF8(handlerFactoryUTF8); - ChannelImpl channel = ((AbstractTCPConnector)getConnector()).createChannel(channelID, + ChannelImpl channel = ((AbstractTCPConnector)getConnector()).createChannel(channelIndex, protocolID); if (channel != null) { @@ -121,26 +121,26 @@ public final class ControlChannelImpl extends ChannelImpl success = false; } - sendStatus(OPCODE_REGISTRATION_ACK, channelID, success); + sendStatus(OPCODE_REGISTRATION_ACK, channelIndex, success); break; } case OPCODE_REGISTRATION_ACK: { - short channelID = byteBuffer.getShort(); + short channelIndex = byteBuffer.getShort(); boolean success = byteBuffer.get() == SUCCESS; - registrations.put(channelID, success); + registrations.put(channelIndex, success); break; } case OPCODE_DEREGISTRATION: { - short channelID = byteBuffer.getShort(); - assertValidChannelID(channelID); + short channelIndex = byteBuffer.getShort(); + assertValidChannelIndex(channelIndex); try { - ChannelImpl channel = ((AbstractTCPConnector)getConnector()).getChannel(channelID); + ChannelImpl channel = ((AbstractTCPConnector)getConnector()).getChannel(channelIndex); if (channel != null) { channel.deactivate(); @@ -149,7 +149,7 @@ public final class ControlChannelImpl extends ChannelImpl { if (TRACER.isEnabled()) { - TRACER.trace(toString() + ": Invalid channel id: " + channelID); //$NON-NLS-1$ + TRACER.trace(toString() + ": Invalid channel id: " + channelIndex); //$NON-NLS-1$ } } } @@ -172,12 +172,12 @@ public final class ControlChannelImpl extends ChannelImpl } } - private void sendStatus(byte opcode, short channelID, boolean status) + private void sendStatus(byte opcode, short channelIndex, boolean status) { Buffer buffer = provideBuffer(); ByteBuffer byteBuffer = buffer.startPutting(CONTROL_CHANNEL_ID); byteBuffer.put(opcode); - byteBuffer.putShort(channelID); + byteBuffer.putShort(channelIndex); byteBuffer.put(status ? SUCCESS : FAILURE); handleBuffer(buffer); } diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/TCPAcceptorImpl.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/TCPAcceptorImpl.java index 04b5a67b95..b0ba67c16a 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/TCPAcceptorImpl.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/transport/tcp/TCPAcceptorImpl.java @@ -10,7 +10,6 @@ **************************************************************************/ package org.eclipse.internal.net4j.transport.tcp; -import org.eclipse.net4j.Net4jFactory; import org.eclipse.net4j.transport.Buffer; import org.eclipse.net4j.transport.BufferProvider; import org.eclipse.net4j.transport.ProtocolFactory; @@ -19,6 +18,7 @@ import org.eclipse.net4j.transport.tcp.TCPAcceptorListener; import org.eclipse.net4j.transport.tcp.TCPConnector; import org.eclipse.net4j.transport.tcp.TCPSelector; import org.eclipse.net4j.transport.tcp.TCPSelectorListener; +import org.eclipse.net4j.util.Net4jUtil; import org.eclipse.net4j.util.lifecycle.AbstractLifecycle; import org.eclipse.net4j.util.lifecycle.LifecycleListener; import org.eclipse.net4j.util.lifecycle.LifecycleNotifier; @@ -311,7 +311,7 @@ public class TCPAcceptorImpl extends AbstractLifecycle implements TCPAcceptor, B if (selector == null) { - selector = Net4jFactory.createTCPSelector(); + selector = Net4jUtil.createTCPSelector(); LifecycleUtil.activate(selector); } } diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/Net4jFactory.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/Net4jFactory.java deleted file mode 100644 index 3bbed80203..0000000000 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/Net4jFactory.java +++ /dev/null @@ -1,107 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2004, 2005, 2006 Eike Stepper, Germany. - * 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: - * Eike Stepper - initial API and implementation - **************************************************************************/ -package org.eclipse.net4j; - -import org.eclipse.net4j.transport.BufferPool; -import org.eclipse.net4j.transport.BufferProvider; -import org.eclipse.net4j.transport.Connector; -import org.eclipse.net4j.transport.tcp.TCPAcceptor; -import org.eclipse.net4j.transport.tcp.TCPConnector; -import org.eclipse.net4j.transport.tcp.TCPSelector; - -import org.eclipse.internal.net4j.transport.BufferFactoryImpl; -import org.eclipse.internal.net4j.transport.BufferPoolImpl; -import org.eclipse.internal.net4j.transport.BufferUtil; -import org.eclipse.internal.net4j.transport.embedded.ClientEmbeddedConnectorImpl; -import org.eclipse.internal.net4j.transport.tcp.ClientTCPConnectorImpl; -import org.eclipse.internal.net4j.transport.tcp.TCPAcceptorImpl; -import org.eclipse.internal.net4j.transport.tcp.TCPSelectorImpl; - -/** - * @author Eike Stepper - */ -public final class Net4jFactory -{ - private Net4jFactory() - { - } - - public static BufferProvider createBufferFactory(short bufferCapacity) - { - return new BufferFactoryImpl(bufferCapacity); - } - - public static BufferProvider createBufferFactory() - { - return new BufferFactoryImpl(BufferUtil.DEFAULT_BUFFER_CAPACITY); - } - - public static BufferPool createBufferPool(BufferProvider factory) - { - return new BufferPoolImpl(factory); - } - - public static BufferPool createBufferPool(short bufferCapacity) - { - return createBufferPool(createBufferFactory(bufferCapacity)); - } - - public static BufferPool createBufferPool() - { - return createBufferPool(createBufferFactory()); - } - - public static Connector createEmbeddedConnector(BufferProvider bufferProvider) - { - ClientEmbeddedConnectorImpl connector = new ClientEmbeddedConnectorImpl(); - connector.setBufferProvider(bufferProvider); - return connector; - } - - public static TCPAcceptor createTCPAcceptor(BufferProvider bufferProvider, TCPSelector selector, - String address, int port) - { - TCPAcceptorImpl acceptor = new TCPAcceptorImpl(); - acceptor.setBufferProvider(bufferProvider); - acceptor.setSelector(selector); - acceptor.setListenPort(port); - acceptor.setListenAddr(address); - return acceptor; - } - - public static TCPAcceptor createTCPAcceptor(BufferProvider bufferProvider, TCPSelector selector) - { - return createTCPAcceptor(bufferProvider, selector, TCPAcceptor.DEFAULT_ADDRESS, - TCPAcceptor.DEFAULT_PORT); - } - - public static TCPConnector createTCPConnector(BufferProvider bufferProvider, - TCPSelector selector, String host, int port) - { - ClientTCPConnectorImpl connector = new ClientTCPConnectorImpl(); - connector.setBufferProvider(bufferProvider); - connector.setSelector(selector); - connector.setHost(host); - connector.setPort(port); - return connector; - } - - public static TCPConnector createTCPConnector(BufferProvider bufferProvider, - TCPSelector selector, String host) - { - return createTCPConnector(bufferProvider, selector, host, TCPConnector.DEFAULT_PORT); - } - - public static TCPSelector createTCPSelector() - { - return new TCPSelectorImpl(); - } -} diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/package.html b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/package.html index dcbc0f3e1f..4090603d51 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/package.html +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/package.html @@ -18,7 +18,7 @@ The main package of the Net4j API. Contains sub packages for the different layers of Net4j as well as a collection of {@link org.eclipse.net4j.util utility} packages and a -{@link org.eclipse.net4j.Net4jFactory factory} class for the creation various +{@link org.eclipse.net4j.util.Net4jUtil factory} class for the creation various instances of the transport layer interfaces.

diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java index 1d1ec0527f..5c0252ee9e 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java @@ -209,7 +209,7 @@ public abstract class SignalProtocol extends AbstractProtocol public Buffer provideBuffer() { Buffer buffer = delegate.provideBuffer(); - ByteBuffer byteBuffer = buffer.startPutting(getChannel().getChannelID()); + ByteBuffer byteBuffer = buffer.startPutting(getChannel().getChannelIndex()); if (SignalProtocol.TRACER.isEnabled()) { SignalProtocol.TRACER.trace("Providing buffer for correlation " + correlationID); //$NON-NLS-1$ diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/Buffer.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/Buffer.java index 1b095544bf..4af1881997 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/Buffer.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/Buffer.java @@ -38,7 +38,7 @@ import java.nio.channels.SocketChannel; * // Obtain a fresh buffer * Buffer buffer = bufferProvider.getBuffer(); * - * // Start filling the buffer for channelID 4711 + * // Start filling the buffer for channelIndex 4711 * ByteBuffer byteBuffer = buffer.startPutting(4711); * byteBuffer.putDouble(15.47); * @@ -82,13 +82,13 @@ public interface Buffer { public BufferProvider getBufferProvider(); - public short getChannelID(); + public short getChannelIndex(); public short getCapacity(); public ByteBuffer startGetting(SocketChannel socketChannel) throws IOException; - public ByteBuffer startPutting(short channelID); + public ByteBuffer startPutting(short channelIndex); public boolean write(SocketChannel socketChannel) throws IOException; diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/Channel.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/Channel.java index c57af778c1..f6212c36d1 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/Channel.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/Channel.java @@ -10,6 +10,10 @@ **************************************************************************/ package org.eclipse.net4j.transport; +import org.eclipse.net4j.util.registry.HashMapRegistry; +import org.eclipse.net4j.util.registry.IRegistry; +import org.eclipse.net4j.util.registry.IRegistryElement; + /** * A bidirectional communications channel for the asynchronous exchange of * {@link Buffer}s. A channel is lightweight and virtual in the sense that it @@ -22,9 +26,11 @@ package org.eclipse.net4j.transport; * * @author Eike Stepper */ -public interface Channel extends BufferHandler +public interface Channel extends BufferHandler, IRegistryElement { - public short getChannelID(); + public static final IRegistry REGISTRY = new HashMapRegistry(); + + public short getChannelIndex(); public Connector getConnector(); diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/ChannelID.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/ChannelID.java new file mode 100644 index 0000000000..af7265d300 --- /dev/null +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/ChannelID.java @@ -0,0 +1,21 @@ +/*************************************************************************** + * Copyright (c) 2004, 2005, 2006 Eike Stepper, Germany. + * 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: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.net4j.transport; + +/** + * @author Eike Stepper + */ +public interface ChannelID +{ + public Connector getConnector(); + + public short getChannelIndex(); +} diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/Connector.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/Connector.java index bea5c53386..aa3e7ee002 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/Connector.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/Connector.java @@ -10,7 +10,9 @@ **************************************************************************/ package org.eclipse.net4j.transport; +import org.eclipse.net4j.util.registry.HashMapRegistry; import org.eclipse.net4j.util.registry.IRegistry; +import org.eclipse.net4j.util.registry.IRegistryElement; /** * One endpoint of a physical connection of arbitrary nature between two @@ -26,8 +28,10 @@ import org.eclipse.net4j.util.registry.IRegistry; * * @author Eike Stepper */ -public interface Connector +public interface Connector extends IRegistryElement { + public static final IRegistry REGISTRY = new HashMapRegistry(); + public Type getType(); public boolean isClient(); diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/util/BufferOutputStream.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/util/BufferOutputStream.java index 5de5d85789..9beebff3a6 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/util/BufferOutputStream.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/util/BufferOutputStream.java @@ -39,10 +39,10 @@ public class BufferOutputStream extends OutputStream private Buffer currentBuffer; - private short channelID; + private short channelIndex; public BufferOutputStream(BufferHandler bufferHandler, BufferProvider bufferProvider, - short channelID) + short channelIndex) { if (bufferHandler == null) { @@ -56,12 +56,12 @@ public class BufferOutputStream extends OutputStream this.bufferHandler = bufferHandler; this.bufferProvider = bufferProvider; - this.channelID = channelID; + this.channelIndex = channelIndex; } - public BufferOutputStream(BufferHandler bufferHandler, short channelID) + public BufferOutputStream(BufferHandler bufferHandler, short channelIndex) { - this(bufferHandler, extractBufferProvider(bufferHandler), channelID); + this(bufferHandler, extractBufferProvider(bufferHandler), channelIndex); } @Override @@ -130,7 +130,7 @@ public class BufferOutputStream extends OutputStream if (currentBuffer == null) { currentBuffer = bufferProvider.provideBuffer(); - currentBuffer.startPutting(channelID); + currentBuffer.startPutting(channelIndex); } } diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/util/ChannelOutputStream.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/util/ChannelOutputStream.java index 37ef3b79f3..785a10cc0e 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/util/ChannelOutputStream.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/transport/util/ChannelOutputStream.java @@ -20,11 +20,11 @@ public class ChannelOutputStream extends BufferOutputStream { public ChannelOutputStream(Channel channel) { - super(channel, channel.getChannelID()); + super(channel, channel.getChannelIndex()); } public ChannelOutputStream(Channel channel, BufferProvider bufferProvider) { - super(channel, bufferProvider, channel.getChannelID()); + super(channel, bufferProvider, channel.getChannelIndex()); } } diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/Net4jUtil.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/Net4jUtil.java new file mode 100644 index 0000000000..a911bc5e9e --- /dev/null +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/Net4jUtil.java @@ -0,0 +1,159 @@ +/*************************************************************************** + * Copyright (c) 2004, 2005, 2006 Eike Stepper, Germany. + * 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: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.net4j.util; + +import org.eclipse.net4j.transport.BufferPool; +import org.eclipse.net4j.transport.BufferProvider; +import org.eclipse.net4j.transport.Channel; +import org.eclipse.net4j.transport.Connector; +import org.eclipse.net4j.transport.Protocol; +import org.eclipse.net4j.transport.ProtocolFactory; +import org.eclipse.net4j.transport.Connector.Type; +import org.eclipse.net4j.transport.tcp.TCPAcceptor; +import org.eclipse.net4j.transport.tcp.TCPConnector; +import org.eclipse.net4j.transport.tcp.TCPSelector; + +import org.eclipse.internal.net4j.transport.BufferFactoryImpl; +import org.eclipse.internal.net4j.transport.BufferPoolImpl; +import org.eclipse.internal.net4j.transport.BufferUtil; +import org.eclipse.internal.net4j.transport.embedded.ClientEmbeddedConnectorImpl; +import org.eclipse.internal.net4j.transport.tcp.ClientTCPConnectorImpl; +import org.eclipse.internal.net4j.transport.tcp.TCPAcceptorImpl; +import org.eclipse.internal.net4j.transport.tcp.TCPSelectorImpl; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Set; + +/** + * @author Eike Stepper + */ +public final class Net4jUtil +{ + private Net4jUtil() + { + } + + public static BufferProvider createBufferFactory(short bufferCapacity) + { + return new BufferFactoryImpl(bufferCapacity); + } + + public static BufferProvider createBufferFactory() + { + return new BufferFactoryImpl(BufferUtil.DEFAULT_BUFFER_CAPACITY); + } + + public static BufferPool createBufferPool(BufferProvider factory) + { + return new BufferPoolImpl(factory); + } + + public static BufferPool createBufferPool(short bufferCapacity) + { + return createBufferPool(createBufferFactory(bufferCapacity)); + } + + public static BufferPool createBufferPool() + { + return createBufferPool(createBufferFactory()); + } + + public static Connector createEmbeddedConnector(BufferProvider bufferProvider) + { + ClientEmbeddedConnectorImpl connector = new ClientEmbeddedConnectorImpl(); + connector.setBufferProvider(bufferProvider); + return connector; + } + + public static TCPAcceptor createTCPAcceptor(BufferProvider bufferProvider, TCPSelector selector, + String address, int port) + { + TCPAcceptorImpl acceptor = new TCPAcceptorImpl(); + acceptor.setBufferProvider(bufferProvider); + acceptor.setSelector(selector); + acceptor.setListenPort(port); + acceptor.setListenAddr(address); + return acceptor; + } + + public static TCPAcceptor createTCPAcceptor(BufferProvider bufferProvider, TCPSelector selector) + { + return createTCPAcceptor(bufferProvider, selector, TCPAcceptor.DEFAULT_ADDRESS, + TCPAcceptor.DEFAULT_PORT); + } + + public static TCPConnector createTCPConnector(BufferProvider bufferProvider, + TCPSelector selector, String host, int port) + { + ClientTCPConnectorImpl connector = new ClientTCPConnectorImpl(); + connector.setBufferProvider(bufferProvider); + connector.setSelector(selector); + connector.setHost(host); + connector.setPort(port); + return connector; + } + + public static TCPConnector createTCPConnector(BufferProvider bufferProvider, + TCPSelector selector, String host) + { + return createTCPConnector(bufferProvider, selector, host, TCPConnector.DEFAULT_PORT); + } + + public static TCPSelector createTCPSelector() + { + return new TCPSelectorImpl(); + } + + public static Collection getChannels(String protocolID, Set types) + { + if (types == null) + { + types = ProtocolFactory.SYMMETRIC; + } + + Collection channels = Channel.REGISTRY.getElements(); + Collection result = new ArrayList(channels.size()); + for (Channel channel : channels) + { + if (types.contains(channel.getConnector().getType())) + { + if (protocolID == null || protocolID.length() == 0) + { + result.add(channel); + } + else + { + if (channel.getReceiveHandler() instanceof Protocol) + { + Protocol protocol = (Protocol)channel.getReceiveHandler(); + if (protocolID.equals(protocol.getProtocolID())) + { + result.add(channel); + } + } + } + } + } + + return result; + } + + public static Collection getChannels(String protocolID) + { + return getChannels(protocolID, null); + } + + public static Collection getChannels(Set types) + { + return getChannels(null, types); + } +} diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/ObjectUtil.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/ObjectUtil.java new file mode 100644 index 0000000000..6ec7f67933 --- /dev/null +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/ObjectUtil.java @@ -0,0 +1,41 @@ +/*************************************************************************** + * Copyright (c) 2004, 2005, 2006 Eike Stepper, Germany. + * 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: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.net4j.util; + +/** + * @author Eike Stepper + */ +public final class ObjectUtil +{ + private ObjectUtil() + { + } + + public static boolean equals(Object o1, Object o2) + { + if (o1 == null) + { + return o2 == null; + } + + return o1.equals(o2); + } + + public static int hashCode(Object o) + { + if (o == null) + { + return 0; + } + + return o.hashCode(); + } +} diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/StringUtil.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/StringUtil.java index e8d0c1b6e2..4a5833f7b9 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/StringUtil.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/StringUtil.java @@ -29,5 +29,4 @@ public final class StringUtil return count; } - } diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/registry/AbstractCachingRegistry.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/registry/AbstractCachingRegistry.java index cd0f06179c..b9f8ea24cb 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/registry/AbstractCachingRegistry.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/registry/AbstractCachingRegistry.java @@ -54,7 +54,6 @@ public abstract class AbstractCachingRegistry else { fireElementDeregistering(oldElement); - oldElement.dispose(); } fireElementRegistered(element); @@ -69,7 +68,6 @@ public abstract class AbstractCachingRegistry if (element != null) { fireElementDeregistering(element); - element.dispose(); if (delegatedElement != null) { @@ -124,7 +122,6 @@ public abstract class AbstractCachingRegistry for (E element : getCache().values()) { fireElementDeregistering(element); - element.dispose(); } getCache().clear(); diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/registry/AbstractMappingRegistry.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/registry/AbstractMappingRegistry.java index e9c4fd97e6..f9b3df66c6 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/registry/AbstractMappingRegistry.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/registry/AbstractMappingRegistry.java @@ -35,7 +35,6 @@ public abstract class AbstractMappingRegistry if (oldElement != null) { fireElementDeregistering(oldElement); - oldElement.dispose(); } fireElementRegistered(element); @@ -47,7 +46,6 @@ public abstract class AbstractMappingRegistry if (element != null) { fireElementDeregistering(element); - element.dispose(); } } @@ -73,11 +71,6 @@ public abstract class AbstractMappingRegistry @Override public synchronized void dispose() { - for (E element : getMap().values()) - { - element.dispose(); - } - getMap().clear(); } diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/registry/IRegistryElement.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/registry/IRegistryElement.java index 2f80d44040..33083a5c3c 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/registry/IRegistryElement.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/registry/IRegistryElement.java @@ -17,8 +17,6 @@ public interface IRegistryElement { public ID getID(); - public void dispose(); - /** * @author Eike Stepper */ -- cgit v1.2.3